1. Вообще говоря, если вы хотите добавить некоторые характеристики JavaScript в управление веб -формой на странице ASPX, вы можете использовать Attributes.Add для достижения.
Например, для Textbox txt вы можете: вы можете:
txt.attributes.add ("onclick", "fcn0 ();");
Затем, когда он находится на веб -странице, вызывается функция JavaScript FCN0.
1.1.
Например, для RADOBUTTON RBT IDE не может распознать атрибут OnClick, затем вышеуказанное утверждение,
Rbt.attributes.add ("onclick", "fcn1 (это);");
В .NET Framework 1.1
<input type = radio id = rbt> ...
В .NET Framework 1.0
<pan> <input type = radio id = rbt> ... </span>
Обратите внимание, что в FCN1 объект, соответствующий параметру, это отличается. Это небольшая разница.
2. Для управления HTML вам нужно делать больше вещей.
При разработке страницы ASPX перетащите управление веб -формой с панели инструментов.
1. ASPX Page больше предложения
<ASP: TextBox ID = "TextBox1" Runat = "Server"> </asp: TextBox>
Во -вторых, код позади
Защищенная система.web.ui.webcontrols.textbox Textbox1;
Если это управление HTML, то в первом предложении Runat = "Server" не появится, а вторая игра не будет автоматически добавлена.
Поэтому, если вы хотите получить доступ к управлению HTML, вам нужно
1. Добавить атрибут runat = "server" к оператору страницы ASPX, которая становится
<input type = "text" size = "9" id = "htxt" runat = "server">
Во -вторых, объявление отображается в коде позади
Защищенная система.web.ui.htmlcontrols.htmlinputtext;
Обратите внимание, что идентификатор первого предложения совпадает с именем переменной второго предложения.
2.1 、注意到 , 前面 System.web.ui.webcontrols.textbox 对应的 html control 是 System.web.ui.htmlcontrols.htmlinputtext , 对应的 html 的 Tag 是 <input type = "text"> ,
Соответственно, соответствующий HTML -контроль тега HTML <Body> является
public System.web.ui.htmlcontrols.htmlgnericControl mybody;
2.2. Посмотрите на такую страницу ASPX
< %@ page language = "c#" codebehind = "webform2.aspx.cs" autoeventwareup = "false" inherits = "testcs.webform2" %>
<!
<html>
<голова>
<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">
Функция fcn1 ()
{{
Приглашение ("Привет", "fcn1");
}
</script>
</head>
<body ms_position = "gridlayout">
<form id = "webform2" method = "post" runat = "server" onsubmit = "fcn1 ();">
<ASP: Button ID = "Button1" Runat = "Server" Text = "Кнопка"> </asp: кнопка>
<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>
Содержание очень простое. Полем
Microsoft autopostback = true в области реализации веб -контроля, принцип:
Во -первых, если на этой странице ASPX есть веб -контроль AutoPostback = true, то вы напишите функцию JavaScript с именем __dopostback.
<script language = "javascript">
<!-
Функция __dopostback (EventTarget, EventArgument) {
var theform;
if (window.navigator.appname.tologycase (). Indexof ("Netscape")> -1) {{{{{{{
theform = document.forms ["webform2"];
}
еще {
theform = document.webform2;
}
Theform .__ EventTarget.value = EventTarget.split ("$").
Theform .__ EventArgument.value = EventArgument;
theform.submit ();
}
//->
</script>
2. Например, приведенный выше раскрывающийся список будет рендеринг:
<select name = "dropdownlist1" onchange = "__dopostback ('dropdownlist1', '')" language = "javascript" id = "dropdownlist1">
<option value = "a"> a </option>
<option value = "b"> b </option>
<option value = "c"> c </option>
</select>
Таким образом, позвоните Theform.submit ();
Это ошибка Microsoft.
Решение можно увидеть здесь: http://www.devhawk.net/art_submitfirefixup.ashx. И предыдущий абзац
<httpmodules>
<add type = "devhawk.web.submitfirefixupmodule, Opportfirefixupmodule" name = "OpportFirefixupModule" /> /> />
</httpmodules>
Это нормально.
3. Приложение.
Я часто слышу жалобы на то, что если JavaScript изменяет элемент <select> с JavaScript в браузере, то раскрывающийся список на соответствующей стороне сервера не может знать это обновление.
Эта ситуация может появиться в раскрывающемся списке «Федерации классов».
Используя приведенную выше технологию, я сделал такое решение (аналогично методу ViewState):
Во -первых, я определяю текстовый поток TXTWRAP с длиной 0 и шириной и добавляю все раскрывающийся список, с которым я хочу обработать с такими атрибутами, как Athososw = "true", чтобы подготовиться к обработке.
2. См. Содержание вышеупомянутого 2.2 выше, я присоединился к отправке Firefixupmodule, чтобы обеспечить событие Onsubmit, которое запускает форму.
В -третьих, событие Form Onsubmit выполнит функцию JavaScript fcnathosonsubmitWrap, которая пересекала раскрывающий список атрибута Athososwa к True, записал данные и, наконец, объединился в TXTWRAP. Код заключается в следующем:
Функция fcnathosonsubmitWrap ()
{{
txtWrap = document.all ["txtWrap"];
var i;
var strwrap = '';
для (i = 0; i <document.all.length; i ++)
{{
ctrl = document.all [i];
if (ctrl.tagname.touppercase () == 'select' && typeof (ctrl.athososw)! = 'undefined')))
{{
if (ctrl.athososw.touppercase () == 'true')
{{
StrWrap + = fcnathosWrapselect (ctrl) + '&&&&;
}
}
}
if (strwrap.length> 3)
txtwrap.value = strwrap.substring (0, strwrap.length-3);
};
// athososw
Функция 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');
};
Вернуть strWrapselect;
};
В -четвертых, Form's page_load называется clscommon.unwrapcontrol (this, txtwrap.text); Clscommon - это мой класс инструментов.
Статический общественный университет
{{
regex r3 = new Regex ("(" ("(" ("(" (&&&&)); // разделить на дефисах.
regex r2 = new Regex ("(" ("(" ("(&&)); // разделить на дефисах.
regex r1 = new Regex ("(" (&); // разделить на дефисах.
String [] SA3, SA2, SA1;
Строка S3, S2, S1;
int i3, i2, i1;
String Strid, strtagname;
System.web.ui.control ctrlunWrap;
Dropdownlist ddlunWrap;
Listitem liadd;
S3 = Strunwrap;
Sa3 = r3.split (s3);
для (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 == "select")
{{
ddlunWrap = (Dropdownlist) ctrlunWrap;
ddlunwrap.items.clear ();
for (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 все права защищены, пожалуйста, укажите.