1. Wenn Sie im Allgemeinen einige JavaScript -Eigenschaften zum Webform -Steuerelement auf der ASPX -Seite hinzufügen möchten, können Sie Attribute.add verwenden, um zu erreichen.
Zum Beispiel können Sie für TextBox TXT: Sie können: Sie können:
txt.attributes.add ("onclick", "fcn0 ();");
Wenn es sich auf der Webseite befindet, wird die FCN0 -JavaScript -Funktion aufgerufen.
1.1.
Zum Beispiel kann IDE für eine Radiobutton -RBT das Attribut von Onclick, dann die obige Anweisung, nicht erkennen.
Rbt.attributes.add ("onclick", "fcn1 (this);");
Im .NET Framework 1.1
<Eingabetyp = Radio -ID = RBT> ...
Im .NET Framework 1.0
<span> <Eingabetyp = Radio ID = RBT> ... </span>
Beachten Sie, dass in FCN1 das Objekt, das dem Parameter entspricht, dies unterschiedlich ist. Dies ist ein kleiner Unterschied.
2. Für die HTML -Kontrolle müssen Sie mehr Dinge tun.
Ziehen Sie beim Entwerfen der ASPX -Seite eine Webformregelung aus der Symbolleiste.
1. ASPX -Seite mehr Satz
<ASP: textbox id = "textbox1" runat = "server"> </ASP: textBox>
Zweitens Code dahinter
Protected System.Web.Ui.WebControls.TextBox TextBox1;
Wenn es sich um eine HTML -Steuerung handelt, wird im ersten Satz Runat = "Server" nicht angezeigt, und das zweite Spiel wird nicht automatisch hinzugefügt.
Wenn Sie daher auf HTML -Steuerung zugreifen möchten, benötigen Sie daher
1. Fügen Sie Runat = "Server" -attribut zur Anweisung der ASPX -Seite hinzu, die wird
<Eingabe type = "text" size = "9" id = "htxt" runat = "server">
Zweitens wurde eine Erklärung im Code dahinter angezeigt
Protected System.Web.Ui.htmlControls.htmlinputText;
Beachten Sie, dass die ID des ersten Satzes dem variablen Namen des zweiten Satzes der gleiche ist.
2.1 、注意到 , 前面 System.Web.Ui.Webcontrols.TextBox 对应的 HTML Control 是 System.Web.Ui.htmlcontrols.htmlinputText , 对应的 HTML 的 Tag 是 <eingabe type = "text"> ,
Entsprechend ist die entsprechende HTML -Steuerung von HTML -Tag <body>
public system.web.ui.htmlcontrols.htmlgnericcontrol mybody;
2.2. Schauen Sie sich eine solche ASPX -Seite an
< %@ page Language = "C#" codebehind = "webform2.aspx.cs" AutoEventwareUp = "False" inherits = "testcs.webform2" %>
<!
<html>
<kopf>
<title> webform2 </title>
<meta name = "allgemeine" content = "Microsoft Visual Studio 7.0">
<meta name = "code_klanguage" content = "c#">
<meta name = "vs_defaultClientscript" content = "javaScript">
<meta name = "vs_targetschema" content = "http://schemas.microsoft.com/intellisense/ie5">
<script Language = "JavaScript">
Funktion fcn1 ()
{{{{
Prompt ("hi", "fcn1");
}
</script>
</head>
<Body MS_Positioning = "GridLayout">
<form id = "webform2" methode = "post" runat = "server" onSubmit = "fcn1 ();">
<ASP: Button ID = "Button1" Runat = "Server" text = "Button"> </ASP: Button>
<ASP: DropdownList ID = "DropdownList1" Runat = "Server" autopostback = "true" >>
<ASP: listItem value = "a"> a </ASP: ListItem>
<ASP: ListItem value = "B"> B </ASP: ListItem>
<ASP: ListItem value = "C"> C </ASP: ListItem>
</ASP: DropdownList>
</form>
</body>
</html>
Der Inhalt ist sehr einfach. .
Microsoft Autopostback = True 'WebControl -Implementierungspostback, das Prinzip lautet:
Wenn diese ASPX -Seite zunächst das Webcontrol von autopostback = true enthält, schreiben Sie eine JavaScript -Funktion namens __dopostback.
<script Language = "JavaScript">
<!-
Funktion __dopostback (EventTarget, EventArgument) {
var theform;
if (window.navigator.appname.tologyCase (). indexof ("netscape")> -1) {{{{{{{{{{{{{{{{{{{
theform = document.forms ["webform2"];
}
anders {
theform = document.webform2;
}
Theform .__ eventTarget.value = eventTarget.split ("$").
Theform .__ eventArgument.Value = eventArgument;
theform.submit ();
}
//->
</script>
2. Zum Beispiel wird die obige Dropdownlist rendern:
<select name = "DropdownList1" onchange = "__dopostback ('DropdownList1', '')" Sprache = "JavaScript" id = "DropdownList1">
<Option value = "a"> a </option>
<Option Value = "B"> B </Option>
<Option Value = "C"> C </Option>
</select>
Auf diese Weise rufen Sie theform.submit () an.
Dies ist ein Fehler von Microsoft.
Die Lösung ist hier zu sehen: http://www.devhawk.net/art_submitfirefixup.ashx. Vorheriger Absatz
<httpmodules>
<add type = "devhawk.web.submitfirefixUpModule, submitfireFixUpModule" name = "subledFireFixUpModule" /> /> />
</httpmodules>
Das ist in Ordnung.
3. Ein Antrag.
Ich höre oft Beschwerden, dass die Dropdown -Liste auf der entsprechenden Serverseite dieses Update nicht kennen kann, wenn JavaScript ein Element mit JavaScript im Browser ändert.
Diese Situation kann in der Dropdown -Liste der "Klassenverband" erscheinen.
Mit der obigen Technologie habe ich eine solche Lösung (ähnlich der Methode von ViewState) erstellt:
Zunächst definiere ich eine Textbox txtWrap mit 0 Länge und Breite von 0 und füge die gesamte Dropdownliste hinzu, die ich mit Attributen wie Athososw = "True" verarbeiten möchte, um mich auf die Verarbeitung vorzubereiten.
2. In den oben genannten Inhalt der oben genannten oben 2.2 habe ich mich der SubmitFireFixUpModule angeschlossen, um das ONSUBMIT -Ereignis zu gewährleisten, das das Formular auslöst.
Drittens wird das ONSUBMIT -Ereignis von Form die JavaScript -Funktion fcnathosonsubmitwrap ausgeführt, die die Dropdown -Liste des Athososwa -Attributs durch die Daten durchquerte, die Daten schließlich in TXTWRAP fungierte. Der Code ist wie folgt:
Funktion fcnathosonsubmitwrap ()
{{{{
txtwrap = document.all ["txtwrap"];
var i;
var Strwrap = '';
für (i = 0; i <document.all.length; i ++)
{{{{
Strg = document.all [i];
if (ctrl.tagname.touppercase () == 'select' && typeof (ctrl.athososw)! = 'undefined'))
{{{{
if (ctrl.athososw.touppercase () == 'true')
{{{{
Strwrap + = fcnathoSwrapSelect (Strg) + '&&&;
}
}
}
if (Strwrap.length> 3)
txtwrap.value = strmrap.substring (0, strlrap.length-3);
};
// Athososw
Funktion fcnathoSwrapsSelect (Strlelect)
{{{{
var i;
Var StrwrapSelect = ctrlselect.id + '&' + ctrlelect.tagname;
var StrValue = '';
var Strtext = '';
für (i = 0; i <ctrlelect.options.length; i ++)
{{{{
StrValue = ctrlelect.options [i].
strText = StrlSelect.options [i] .Text;
StrwrapSelect + = '&&' + i + i + '&' + StrValue.replace (/&//g, '%26') + '&' + Strtext.Replace (/&//g,%26 ');
};
Return Strwrapselect;
};
Viertens heißt die Form des Formulars page_load clscommon.unwrapControl (this, txtwrap.text); CLSCommon ist meine Werkzeugklasse.
Statische öffentliche Void Universität
{{{{
regex r3 = neuer regex ("(" ("(" ("(" ("(&&&)); // Aufteilung auf Bindestriche.
regex r2 = neuer regex ("(" ("(" ("(" (&&)); // Aufteilung auf Bindestriche.
regex r1 = neuer regex ("(" (&)); // Aufteilen bei Bindestrichen.
String [] SA3, SA2, SA1;
String S3, S2, S1;
int i3, i2, i1;
String Strid, Strtagname;
System.Web.Ui.Control Strlunwrap;
DropdownList ddlunwrap;
ListItem liadd;
S3 = StrunWrap;
SA3 = R3.Split (S3);
für (i3 = 0; i3 <(sa3.Length+1)/2; i3 ++)
{{{{
S2 = SA3 [i3*2];
if (s2.Length> 0)
{{{{
SA2 = R2.Split (S2);
if (sa2.Length> 1)
{{{{
S1 = SA2 [0];
SA1 = R1.Split (S1);
if (sa1.length == 3)
{{{{
Strid = SA1 [0];
Strtagname = SA1 [2];
StrlunWrap = pgunwrap.findControl (STRID);
if (Strlunwrap! = NULL)
{{{{
If (Stragname == "SELECT"))
{{{{
ddlunwrap = (DropdownList) StrlunWrap;
ddlunwrap.items.clear ();
für (i2 = 1; i2 <(sa2.Length+1)/2; i2 ++)
{{{{
S1 = SA2 [i2*2];
SA1 = R1.Split (S1);
liadd = new System.Web.Ui.Webcontrols.ListItem (SA1 [4], SA1 [2]);
ddlunwrap.items.add (liadd);
}
}
}
}
}
}
}
}
ATHOSSMTH Alle Rechte vorbehalten, bitte geben Sie an.