1. بشكل عام ، إذا كنت ترغب في إضافة بعض خصائص JavaScript إلى التحكم في نموذج الويب على صفحة ASPX ، فيمكنك استخدام السمات.
على سبيل المثال ، بالنسبة إلى Textbox TXT ، يمكنك: يمكنك:
txt.attributes.add ("onClick" ، "fcn0 () ؛") ؛
ثم ، عندما تكون على صفحة الويب ، يتم استدعاء وظيفة FCN0 JavaScript.
1.1.
على سبيل المثال ، بالنسبة لـ Radiobutton RBT ، لا يمكن لـ IDE التعرف على سمة OnClick ، ثم البيان أعلاه ،
rbt.attributes.add ("onclick" ، "fcn1 (this) ؛") ؛
في إطار .NET 1.1
<نوع الإدخال = معرف الراديو = rbt> ...
في إطار .NET 1.0
<span> <type type = Radio ID = RBT> ... </span>
لاحظ أنه في FCN1 ، فإن الكائن المقابل للمعلمة يختلف. هذا فرق بسيط.
2. للتحكم في HTML ، تحتاج إلى القيام بالمزيد من الأشياء.
عند تصميم صفحة ASPX ، اسحب التحكم في نموذج الويب من شريط الأدوات.
1. صفحة ASPX أكثر جملة
<asp: textbox id = "textbox1" runat = "server"> </asp: textbox>
ثانياً ، الكود وراء
system.web.ui.webcontrols.textbox spox1 ؛
إذا كان عنصر تحكم HTML ، فحينئذٍ في الجملة الأولى ، فلن يظهر Runat = "Server" ، ولن تتم إضافة اللعبة الثانية تلقائيًا.
لذلك ، إذا كنت ترغب في الوصول إلى التحكم في HTML ، فأنت بحاجة
1. إضافة سمة Runat = "Server" إلى عبارة صفحة ASPX ، والتي تصبح
<type type = "text" size = "9" id = "htxt" runat = "server">
ثانياً ، الإعلان المعروض في الكود وراء
system.web.ui.htmlcontrols.htmlinputtext ؛
لاحظ أن معرف الجملة الأولى هو نفس الاسم المتغير للجملة الثانية.
2.1 、注意到 , 前面 system.web.ui.webcontrols.textbox 对应的 html control 是 system.web.ui.htmlcontrols.htmlinputtext , 对应的 html 的 tag 是 <
في المقابل ، يكون التحكم في HTML المقابل لعلامة HTML <Body> هو
system.web.ui.htmlControls.htmlgnericControl mybody ؛
2.2. انظر إلى هذه صفحة ASPX
<٪@ page language = "c#" codeBebeHind = "WebForm2.aspx.cs" AutoEventWareUp = "false" errinits = "testcs.webform2" ٪>
<!
<html>
<head>
<title> webform2 </itlem>
<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_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>
</form>
</body>
</html>
المحتوى بسيط للغاية. .
Microsoft Autopostback = Postback تنفيذ WebControl True ، المبدأ هو:
أولاً ، إذا كانت صفحة ASPX هذه تحتوي على WebControl من 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. على سبيل المثال ، سيتم تقديم قائمة المنسدلة أعلاه:
<حدد name = "dropdownlist1" onChange = "__dopostback ('' DropDownList1 '،' ')" language = "javaScript" id = "dropdownlist1">
<value Option = "A"> A </soph>
<Option Value = "B"> B </soph>
<Option Value = "C"> C </soph>
</select>
وبهذه الطريقة ، اتصل بـ theform.submit () ؛
هذا هو خطأ من Microsoft.
يمكن رؤية الحل هنا: http://www.devhawk.net/art_submitfirefixup.ashx. فقرة سابقة
<httpmodules>
<add type = "devhawk.web.submitfirefixupmodule ، submitfirefixupmodule" name = "submitfirefixupmodule" /> /> />
</httpmodules>
هذا جيّد.
3. التطبيق.
غالبًا ما أسمع شكاوى مفادها أنه إذا غيرت JavaScript عنصر <select> مع JavaScript على المتصفح ، فإن القائمة المنسدلة على جانب الخادم المقابل لا يمكن معرفة هذا التحديث.
قد يظهر هذا الموقف في قائمة "الاتحاد".
باستخدام التكنولوجيا أعلاه ، قمت بعمل مثل هذا الحل (على غرار طريقة ViewState):
أولاً ، أقوم بتحديد TXTWRAP مربع النص بطول وعرض 0 ، وأضف جميع القائمة المنسدلة التي أريد التعامل معها بسمات مثل Athososw = "True" للتحضير للمعالجة.
2. ارجع إلى محتوى ما ورد أعلاه 2.2 أعلاه ، انضممت إلى substridfirefixupmodule لضمان حدث OnSubmit الذي يؤدي إلى شكله.
ثالثًا ، سيقوم حدث 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 () == 'حدد' && 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 = '' ؛
لـ (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.
} ؛
رابعًا ، يسمى page_load الخاص بـ clscommon.unwrapcontrol (هذا ، txtwrap.text) ؛ ClScommon هو فئة الأدوات الخاصة بي.
جامعة الفراغ العام الثابت
{{
regex r3 = new regex ("(" ("(" ("(" ("((&&&)) ؛ // split on hyphens.
regex r2 = new regex ("(" ("(" ("(" ("(&&)) ؛ // split on hyphens.
regex r1 = new regex ("(" (&)) ؛ // split on hyphens.
String [] SA3 ، SA2 ، SA1 ؛
السلسلة S3 ، S2 ، S1 ؛
int i3 ، i2 ، i1 ؛
سلسلة 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) ؛
إذا (SA2.Length> 1)
{{
S1 = SA2 [0] ؛
SA1 = R1.SPLIT (S1) ؛
إذا (sa1.length == 3)
{{
strid = sa1 [0] ؛
strtagname = SA1 [2] ؛
ctrlunwrap = pgunwrap.findControl (strid) ؛
إذا (ctrlunwrap! = فارغة)
{{
إذا (strtagname == "حدد")
{{
ddlunwrap = (dropdownlist) ctrlunwrap ؛
ddlunwrap.items.clear () ؛
لـ (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 جميع الحقوق محفوظة ، يرجى الإشارة.