1. En términos generales, si desea agregar algunas características de JavaScript al control del formulario web en la página ASPX, puede usar atributos.Add para lograr.
Por ejemplo, para TextBox txt, puede: puede:
txt.attributes.add ("onClick", "fcn0 ();");
Luego, cuando está en la página web, se llama a la función JavaScript FCN0.
1.1.
Por ejemplo, para un RadioButton RBT, IDE no puede reconocer el atributo de OnClick, luego la declaración anterior,
Rbt.attributes.add ("onClick", "fcn1 (this);");
En el marco .NET 1.1
<Entrada tipo = radio id = rbt> ...
En .NET Framework 1.0
<span> <input type = radio id = rbt> ... </span>
Tenga en cuenta que en FCN1, el objeto correspondiente al parámetro esto es diferente. Esta es una ligera diferencia.
2. Para el control HTML, debe hacer más cosas.
Al diseñar la página ASPX, arrastre un control de formulario web desde la barra de herramientas.
1. Página ASPX Más oración
<ASP: TextBox id = "TextBox1" Runat = "Server"> </Asp: TextBox>
Segundo, código detrás
System.web.ui.webcontrols.TextBox textbox1;
Si es control HTML, en la primera oración, no aparecerá runat = "servidor", y el segundo juego no se agregará automáticamente.
Por lo tanto, si desea acceder al control HTML, necesita
1. Agregar runat = "servidor" atributo a la declaración de la página ASPX, que se convierte en
<input type = "text" size = "9" id = "htxt" runat = "servidor">
Segundo, la declaración se muestra en el código detrás
System.web.ui.htmlControls.htmlinputText;
Tenga en cuenta que la ID de la primera oración es la misma que el nombre variable de la segunda oración.
2.1 、注意到 , 前面 System.web.ui.webcontrols.textbox 对应的 html control 是 system.web.ui.htmlcontrols.htmlinputText , 对应的 html 的 tag 是 <input type = "text"> , ,
En consecuencia, el control HTML correspondiente de la etiqueta HTML <Body> es
System.web.ui.htmlControls.htmlgnericControl myBody;
2.2. Mira una página así ASPX
< %@ page lenguaje = "c#" codebehind = "webform2.aspx.cs" autoeventwareUp = "false" heredes = "testcs.webform2" %>
<!
<html>
<Evista>
<title> WebForm2 </title>
<meta name = "general" content = "Microsoft Visual Studio 7.0">
<meta name = "code_language" content = "c#">
<meta name = "vs_defaultClientScript" content = "javaScript">
<meta name = "vs_targetschema" content = "http://schemas.microsoft.com/intellisense/ie5">
<script language = "javaScript">
Función fcn1 ()
{{
Indicador ("Hola", "fcn1");
}
</script>
</ablo>
<cuerpo ms_positioning = "GridLayout">
<Form ID = "webform2" método = "post" runat = "servidor" 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>
El contenido es muy simple. .
Microsoft AutoPostback = Postback de implementación de WebControl de True, el principio es:
Primero, si esta página ASPX tiene el WebControl de AutoPostBack = True, entonces escribirá una función JavaScript llamada __DOPOSTBACK.
<script language = "javaScript">
<!-
Función __doPostback (eventTarget, eventArgument) {
var theForm;
if (window.navigator.appname.tologycase (). indexOf ("netscape")> -1) {{
theform = document.forms ["webform2"];
}
demás {
theform = document.webform2;
}
THEFOR .__ EVENTTARGET.VALUE = EVENTTARGET.SPLIT ("$").
TheForm .__ EventArgument.Value = EventArgument;
theform.subMit ();
}
//->
</script>
2. Por ejemplo, la lista desplegable anterior será renderizada:
<select name = "DropDownList1" onChange = "__DOPOSTBACK ('DropDownList1', '')" Language = "JavaScript" id = "DropdownList1">
<opción valor = "a"> a </ppection>
<opción valor = "b"> b </opción>
<opción valor = "c"> c </opción>
</select>
De esta manera, llame a TheForm.Submit ();
Este es un error de Microsoft.
La solución se puede ver aquí: http://www.devhawk.net/art_submitfirefixup.ashx. .
<httpmodules>
<add type = "devhawk.web.subMitfireFixUpModule, SubfireFixUpModule" name = "SubfireFixUpModule" /> /> />
</httpmodules>
Está bien.
3. Una aplicación.
A menudo escucho quejas de que si JavaScript cambia un elemento <select> con JavaScript en el navegador, entonces la lista desplegable en el lado del servidor correspondiente no puede conocer esta actualización.
Esta situación puede aparecer en la lista desplegable de la "Federación de Class".
Usando la tecnología anterior, hice una solución de este tipo (similar al método de ViewState):
Primero, defino un cuadro de texto TXTWRAP con 0 longitud y ancho, y agrego toda la lista desplegable que quiero manejar con atributos como athososw = "verdadero" para prepararse para el procesamiento.
2. Consulte el contenido de lo anterior 2.2 anterior, me uní al SubtfireFixUpModule para garantizar el evento OnSubmit que desencadena la forma.
Tercero, el evento OnSubmit de Formo ejecutará la función JavaScript fcnathosonsubmitwrap, que atravesó la lista desplegable del atributo de Athososwa a verdadero, registró los datos y finalmente se fusionó en TXTWRAP, este es un proceso de serialización. El código es el siguiente:
Función fcnathosonsubmitwrap ()
{{
txtwrap = document.all ["txtwrap"];
var i;
var strwrap = '';
para (i = 0; i <document.all.length; i ++)
{{
ctrl = document.all [i];
if (ctrl.tagname.touppercase () == 'select' && tipof (ctrl.atrososw)! = 'Undefined'))
{{
if (ctrl.atrososw.touppercase () == 'verdadero')
{{
Strwrap + = fcnathosrapselect (ctrl) + '&&&;
}
}
}
if (strrap.length> 3)
txtwrap.value = strwrap.substring (0, strwrap.length-3);
};
// athososw
Función fcnathoswrapselect (CtrlSelect)
{{
var i;
Var strwrapselect = ctrlselect.id + '&' + ctrlselect.tagname;
var strValue = '';
var strText = '';
para (i = 0; i <ctrlselect.options.length; i ++)
{{
strValue = ctrlselect.options [i].
strText = ctrlselect.options [i] .Text;
Strwrapselect + = '&&' + i + i + '&' + strValue.replace (/&/g, '%26') + '&' + strtext.replace (/&/g, '%26');
};
Devolver strwrapselect;
};
Cuarto, la página de formulario se llama clscommon.unwrapcontrol (this, txtwrap.text); ClSCommon es mi clase de herramientas.
Universidad estática pública nula
{{
regex r3 = new Regex ("(" ("(" ("(" (&&&&)); // dividido en Hyphens.
regex r2 = new Regex ("(" ("(" ("(&&)); // dividido en guiones.
regex r1 = new Regex ("(" (&)); // dividido en guiones.
cadena [] SA3, SA2, SA1;
Cadena S3, S2, S1;
int i3, i2, i1;
Cadena strid, strtagname;
System.web.ui.Control CtrlunWrap;
DropdownList DdlunWrap;
ListItem Liadd;
s3 = strunwrap;
Sa3 = r3.split (S3);
para (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];
ctrlunwrap = pgunwrap.findControl (strid);
if (ctrlunwrap! = nulo)
{{
If (strtagname == "select")
{{
ddlunwrap = (DropDownList) CtrlunWrap;
ddlunwrap.items.clear ();
para (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 todos los derechos reservados, por favor indique.