1. Secara umum, jika Anda ingin menambahkan beberapa karakteristik JavaScript ke kontrol formulir web pada halaman ASPX, Anda dapat menggunakan atribut. Tambahkan untuk mencapainya.
Misalnya, untuk TextBox TXT, Anda dapat: Anda dapat:
txt.attributes.add ("onClick", "fcn0 ();");
Kemudian, ketika ada di halaman web, fungsi FCN0 JavaScript dipanggil.
1.1. Pengecualian adalah analisis atribut yang tidak dapat dikenali IDE.
Misalnya, untuk RADIOBUTTON RBT, IDE tidak dapat mengenali atribut OnClick, maka pernyataan di atas,
Rbt.attributes.add ("onClick", "fcn1 (this);");
Dalam .NET Framework 1.1
<Input Type = Radio ID = RBT> ...
Di .NET Framework 1.0
<span> <input type = Radio id = rbt> ... </span>
Perhatikan bahwa di FCN1, objek yang sesuai dengan parameter ini berbeda. Ini sedikit perbedaan.
2. Untuk kontrol HTML, Anda perlu melakukan lebih banyak hal.
Saat merancang halaman ASPX, seret kontrol formulir web dari toolbar.
1. Halaman aspx lebih banyak kalimat
<Asp: TextBox ID = "TextBox1" Runat = "Server"> </SP: TextBox>
Kedua, kode di belakang
System yang Dilindungi.Web.UI.WebControls.TextBox TextBox1;
Jika itu adalah kontrol HTML, maka dalam kalimat pertama, runat = "server" tidak akan muncul, dan game kedua tidak akan ditambahkan secara otomatis.
Oleh karena itu, jika Anda ingin mengakses kontrol HTML, Anda perlu
1. Tambahkan atribut runat = "server" ke pernyataan halaman ASPX, yang menjadi
<input type = "text" size = "9" id = "htxt" runat = "server">
Kedua, deklarasi ditampilkan dalam kode di belakang
System yang Dilindungi.web.ui.htmlControls.htmlinputText;
Perhatikan bahwa ID dari kalimat pertama sama dengan nama variabel kalimat kedua.
2.1 、注意到 , 前面 System.Web.Ui.WebControls.TextBox 对应的 Kontrol HTML 是 System.Web.Ui.htmlControls.htmlinputText , 对应的 HTML 的 Tag 是 <Input Type = "Teks"> , ,
Sejalan dengan itu, kontrol HTML yang sesuai dari tag html <dody> adalah
Public System.web.ui.htmlControls.htmlgnnericControl mybody;
2.2. Satu pengecualian adalah insiden pada insiden Onsubmit yang sesuai dengan tag <dorm> HTML. Lihatlah halaman ASPX seperti itu
< %@ page language = "c#" codebeHind = "webForm2.aspx.cs" autoEventwareUp = "false" warisasi = "testcs.webform2" %>
<!
<Html>
<head>
<title> webform2 </iteme>
<meta name = "umum" konten = "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">
<bahasa skrip = "javascript">
Fungsi fcn1 ()
{{
Prompt ("hai", "fcn1");
}
</script>
</head>
<body ms_positioning = "gridlayout">
<Form id = "WebForm2" Method = "POST" RUNAT = "Server" OnSubMit = "FCN1 ();">
<asp: tombol id = "button1" runat = "server" text = "button"> </sh: button>
<Asp: dropdownlist id = "dropDownlist1" runat = "server" autopostback = "true" >>
<asp: listItem value = "a"> a </sp: listitem>
<asp: listItem value = "b"> b </sp: listItem>
<asp: listItem value = "c"> c </sp: listItem>
</asp: dropdownlist>
</form>
</body>
</html>
Kontennya sangat sederhana. .
Microsoft AutoPostBack = True's WebControl Implementasi Postback, prinsipnya adalah:
Pertama, jika halaman ASPX ini memiliki WebControl of AutoPostBack = True, maka Anda akan menulis fungsi JavaScript yang disebut __DopostBack.
<bahasa skrip = "javascript">
<!-
Fungsi __DopostBack (EventTarget, EventArgument) {
var bentuk;
if (window.navigator.appname.tologycase (). indexOf ("netscape")> -1) {{{{{{
TheForm = document.Forms ["WebForm2"];
}
kalau tidak {
TheForm = document.webForm2;
}
The Form .__ EventTarget.Value = EventTarget.split ("$").
The Form .__ EventArgument.Value = EventArgument;
theForm.submit ();
}
//->
</script>
2. Misalnya, dropdownlist di atas akan diterjemahkan:
<Pilih Nama = "DropDownList1" Onchange = "__DopostBack ('dropDownList1', '')" bahasa = "javascript" id = "dropDownlist1">
<Option value = "a"> a </pection>
<Option value = "b"> b </pection>
<Option value = "c"> c </pection>
</pilih>
Dengan cara ini, hubungi TheForm.submit ();
Ini adalah serangga Microsoft.
Solusi dapat dilihat di sini: http://www.devhawk.net/art_submitfirefixup.ashx. Paragraf sebelumnya
<HttpModules>
<Tambah type = "devhawk.web.submitfirefixupmodule, kirimfirefixupmodule" name = "kirimfirefixupmodule" /> /> />>
</httpmodules>
Tidak apa -apa.
3. Aplikasi.
Saya sering mendengar keluhan bahwa jika JavaScript mengubah elemen <Colly> dengan JavaScript pada browser, maka daftar dropdownlist di sisi server yang sesuai tidak dapat mengetahui pembaruan ini.
Situasi ini dapat muncul di daftar dropdown dari "Federasi Kelas".
Menggunakan teknologi di atas, saya membuat solusi seperti itu (mirip dengan metode ViewState):
Pertama, saya mendefinisikan TextBox TxtWrap dengan panjang dan lebar 0, dan menambahkan semua daftar dropdown yang ingin saya tangani dengan atribut seperti Athososw = "true" untuk mempersiapkan pemrosesan.
2. Lihat konten dari 2.2 di atas di atas, saya bergabung dengan SubmitFirefixUpmodule untuk memastikan acara Onsubmit yang memicu formulir.
Ketiga, acara Onsubmit Form akan menjalankan fungsi JavaScript FcnathosonsubmitWrap, yang melintasi daftar dropdown dari atribut Athososwa ke True, merekam data, dan akhirnya bergabung menjadi TXTWRAP. Kodenya adalah sebagai berikut:
Fungsi fcnathosonsubmitwrap ()
{{
txtWrap = document.all ["txtwrap"];
var i;
var strwrap = '';
untuk (i = 0; i <document.all.length; i ++)
{{
ctrl = document.all [i];
if (ctrl.tagname.touppercase () == 'pilih' && typeof (ctrl.athososw)! = 'tidak terdefinisi')))
{{
if (ctrl.athososw.touppercase () == 'true')
{{
Strwrap + = fcnathoswrapselect (ctrl) + '&&&;
}
}
}
if (strwrap.length> 3)
txtwrap.value = strwrap.substring (0, strwrap.length-3);
};
// Athososw
Fungsi fcnathoswrapselect (ctrlselect)
{{
var i;
Var strwrapselect = ctrlselect.id + '&' + ctrlselect.tagname;
var strvalue = '';
var strtext = '';
untuk (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');
};
Mengembalikan strwrapselect;
};
Keempat, page_load formulir disebut clscommon.unwrapControl (this, txtwrap.text); Clscommon adalah kelas alat saya.
Universitas Void Publik Statis
{{
regex r3 = regex baru ("(" ("(" ("(" (&&&)); // Pisahkan pada tanda hubung.
regex r2 = regex baru ("(" ("(" ("(&&)); // dibagi pada tanda hubung.
regex r1 = regex baru ("(" (&)); // dibagi pada tanda hubung.
string [] SA3, SA2, SA1;
String 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);
untuk (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 == "pilih")
{{
ddlunwrap = (dropdownlist) ctrlunwrap;
ddlunwrap.items.clear ();
untuk (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 Semua Hak Dilindungi, Harap Tunjukkan.