1. De um modo geral, se você deseja adicionar algumas características de JavaScript ao controle do formulário da web na página ASPX, você pode usar atributos.add para alcançar.
Por exemplo, para o texto txt, você pode: você pode:
txt.attributes.add ("OnClick", "fcn0 ();");
Então, quando está na página da web, a função JavaScript FCN0 é chamada.
1.1.
Por exemplo, para um RBT de Radiobutton, o IDE não pode reconhecer o atributo de OnClick, depois a declaração acima,
Rbt.attributes.add ("OnClick", "fcn1 (this);");
Na estrutura .NET 1.1
<Tipo de entrada = Radio ID = RBT> ...
Na estrutura .NET 1.0
<pan> <Tipo de entrada = ID de rádio = rbt> ... </span>
Observe que no FCN1, o objeto correspondente ao parâmetro isso é diferente. Esta é uma pequena diferença.
2. Para controle HTML, você precisa fazer mais coisas.
Ao projetar a página ASPX, arraste um controle de formulário da web da barra de ferramentas.
1. Página ASPX mais frase
<Asp: textbox id = "textbox1" runat = "server"> </asp: textbox>
Segundo, código atrás
System.web.ui.webcontrols.textbox
Se for o controle HTML, na primeira frase, Runat = "Server" não aparecerá e o segundo jogo não será adicionado automaticamente.
Portanto, se você deseja acessar o controle HTML, você precisa
1. Adicione o atributo runat = "servidor" à declaração da página ASPX, que se torna
<input type = "text" size = "9" id = "htxt" runat = "server">>
Segundo, a declaração exibida em código atrás
System.web.ui.htmlControls.htmlinputtext;
Observe que o ID da primeira frase é o mesmo que o nome variável da segunda frase.
2.1 、注意到 , 前面 System.web.ui.webcontrols.textbox 对应的 HTML Control 是 System.web.ui.htmlControls.htmlinputText , 对应的 html 的 tag 是 <input Type = "text"> ,
Correspondentemente, o controle HTML correspondente da tag html <body> é
public System.web.ui.htmlControls.htmlgnericControl MyBody;
2.2. Veja uma página tão ASPX
< %@ página de página = "c#" codeBehind = "webform2.aspx.cs" autoeventwareup = "false" herits = "testcs.webform2" %>
<!
<html>
<head>
<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">
Função fcn1 ()
{{
Prompt ("oi", "fcn1");
}
</script>
</head>
<body ms_positioning="gridlayout">
<form id="webform2" method="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>
</morm>
</body>
</html>
O conteúdo é muito simples. .
Microsoft AutoPostback = Postback de implementação do WebControl da True, o princípio é:
Primeiro, se esta página ASPX tiver o WebControl do AutoPostback = true, você escreverá uma função JavaScript chamada __DOPOSTBACK.
<Script Language = "JavaScript">
<!-
Função __DOPOSTBACK (EventTarget, EventArgument) {
var theform;
if (window.navigator.appname.tologycase (). indexof ("netscape")> -1) {{
theForm = document.forms ["webform2"];
}
outro {
theForm = document.webform2;
}
TheForm .__ EventTarget.Value = EventTarget.split ("$").
Theform .__ EventArgument.value = EventArgument;
theform.subMit ();
}
//->
</script>
2. Por exemplo, a lista suspensa acima será renderizada:
<select name = "suspensoLlist1" onchange = "__DOPOSTBACK ('DOLHOWNLIST1', '')" idioma = "javascript" id = "suspensollist1">
<opção value = "a"> a </pption>
<opção value = "b"> b </pption>
<opção value = "c"> c </pption>
</leclect>
Dessa forma, ligue para o formulário de Formulário, mas o Formulário.
Este é um bug da Microsoft.
A solução pode ser vista aqui: http://www.devhawk.net/art_submitfirefixup.ashx. Parágrafo anterior
<httpmodules>
<add type = "devhawk.web.submitfirefixupmodule, submitfirefixupModule" name = "submitfirefixupmodule" /> /> />
</httpmodules>
Isso é bom.
3. Uma aplicação.
Costumo ouvir as queixas de que, se o JavaScript altera um elemento <select> com JavaScript no navegador, a lista suspensa no lado do servidor correspondente não pode saber esta atualização.
Essa situação pode aparecer na lista suspensa da "Federação de Classe".
Usando a tecnologia acima, fiz essa solução (semelhante ao método do ViewState):
Primeiro, defino uma caixa de texto txtwrap com 0 comprimento e largura e adiciono toda a lista suspensa que quero lidar com atributos como Athososw = "True" para me preparar para o processamento.
2. Consulte o conteúdo do acima 2.2 acima, juntei -me ao submitfirefixupmodule para garantir o evento Onsubmit que desencadeia se formar.
Terceiro, o evento OnSubmit do formulário executará a função JavaScript fcnathosonsoSubMitwrap, que atravessou a lista suspensa do atributo Athososwa ao verdadeiro, registrou os dados e finalmente se fundiu no TXTWrap. O código é o seguinte:
Função fcnathosonsOsubMitWrap ()
{{
txtWrap = document.all ["txtWrap"];
var i;
var strwrap = '';
for (i = 0; i <document.all.length; i ++)
{{
ctrl = document.all [i];
if (ctrl.tagname.touppercase () == 'select' && typeof (ctrl.athososw)! = 'indefinido'))
{{
if (ctrl.athososw.touppercase () == 'true')
{{
Strwrap + = fcnathosWrapSelect (ctrl) + '&&;
}
}
}
if (strwrap.length> 3)
txtwrap.value = strwrap.substring (0, strwrap.length-3);
};
// ATHOSOSW
Função fcnathosWrapSelect (CtrlSelect)
{{
var i;
Var strwrapSelect = ctrlSelect.id + '&' + ctrlSelect.TagName;
var strvalue = '';
var strText = '';
for (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');
};
Retornar strwrapSelect;
};
Quarto, o Page_load do formulário é chamado clscommon.unwrapControl (this, txtwrap.text); O CLSCommon é minha classe de ferramentas.
Universidade Void Public Static
{{
regex r3 = novo regex ("(" ("(" ("(" (&&&)); // dividido em hífens.
regex r2 = novo regex ("(" ("(" ("(&&)); // dividido em hífens.
regex r1 = novo regex ("(" (&)); // dividido em hífens.
String [] SA3, SA2, SA1;
String S3, S2, S1;
int i3, i2, i1;
String strid, strtagname;
System.Web.ui.Control Ctrlunwrap;
Lista suspensa 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! = null)
{{
If (strTagName == "Selecione")
{{
ddlunwrap = (listado suspenso) 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 os direitos reservados, por favor, indique.