Anggota Terdaftar dan Buat Database Pengembangan Web Anda,
Formulir HTML standar (elemen formulir) memungkinkan Anda untuk meneruskan dan mengirim informasi data ke halaman lain atau aplikasi untuk menggunakan elemen formulir. Dalam ASP.NET 1.X, halaman web menggunakan mekanisme pengiriman untuk mengirimkan data halaman ke halaman itu sendiri. Untuk ASP.NET 2.0, fungsinya telah diperluas dan dapat diizinkan untuk menyerahkan ke seluruh halaman. Mari kita bahas fitur baru ini minggu ini.
Metode tradisional
Untuk memfasilitasi perbandingan, saya ingin menghabiskan satu menit untuk meninjau cara -cara lama untuk mengirimkan data dari halaman web. Elemen tabel HTML memiliki atribut tindakan untuk menentukan sumber daya mana (SO yang disebut sumber daya merujuk ke halaman web, skrip, program, dll.) Untuk menangani data yang diajukan ini. Kode berikut adalah sampel.
<Html>
<Head> <Title> Sampel Formulir HTML </iteme> </head>
<body>
<Form Name = "Frmsample" Method = "Post" Action = "Target_Url">
<input type = "text" name = "fullname" id = "fullname" />
<input type = "tombol" name = "kirim" value = "kirim" /> />
</form>
</body> </html>
Nilai yang dimasukkan dalam domain teks (nama fullName) akan dikirimkan ke halaman atau program yang ditentukan oleh atribut tindakan elemen unit. Untuk pengembang ASP.NET, itu sangat jarang bahkan jika mereka telah menggunakan formulir HTML standar.
Ketika pengembang ASP.NET menghadapi tugas memberikan informasi data dari satu halaman web ke halaman web lainnya, ruang untuk pilihan sangat luas. Mereka termasuk variabel sesi, cookie, variabel querystring, cache caching), dan bahkan server.transfer, tetapi ASP.NET 2.0 juga menyediakan pilihan lain.
ASP.NET 2.0 menyediakan cara lain untuk menyediakan
Saat merancang ASP.NET 2.0, Microsoft mengenali kebutuhan melintasi data antar halaman web. Dengan kesadaran ini, atribut postbackurl ditambahkan ke kontrol tombol (tombol) ASP.nt. Ini memungkinkan Anda untuk menunjukkan di mana formulir dan data di atas dikirimkan ketika pengguna dikirimkan (yaitu, nilai URL yang ditentukan oleh properti postbackurl). Secara umum, transmisi silang -page adalah proses menggunakan JavaScript di latar belakang.
< %@ halaman bahasa = "vb" %><!
<html> <head>
<Title> Cross Postback Contoh </iteme>
</head> <body>
<Form ID = "FRMCROSSSSPOSTBack1" METODE = "POST" RUNAT = "Server">
<asp: label id = "lblname" runat = "server" text = "name:"> </asp: label>
<Asp: TextBox ID = "txtName" runat = "server"> </sp: textbox> <br />
<asp: label id = "lble-mailaddress" runat = "server" text = "e-mail:"> </sp: label>
<Asp: TextBox ID = "txte-mailAddress" runat = "server"> </sp: textbox> <br />
<asp: tombol id = "btnsubmit" runat = "server" text = "kirim" postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
Halaman ASP.NET di halaman ASP.NET memiliki dua domain teks (nama bernama (nama) dan email (email), dan tombol (tombol) yang digunakan untuk mengirimkan data. Atribut postback dari tombol pengiriman ini ditentukan sebagai halaman web lain, sehingga ketika formulir dikirimkan, data dapat dikirim ke halaman itu. CATATAN: Dalam contoh ini, elemen formulir diatur oleh atribut Posthod dengan mengatur atribut metode untuk membuat metode pengiriman post [2] selama pengiriman, tetapi ini tidak perlu, karena semua postback silang (pengiriman silang -page) menggunakan Metode pos sesuai desain.
Gunakan halaman sebelumnya
Ketika halaman ASP.NET dimuat melalui panggilan pengiriman silang, atribut ISPOSPOSTBack dari objek yang tidak akan dipicu. Namun, ada atribut yang disebut sebelumnyapage (halaman sebelumnya) memungkinkan Anda untuk mengakses dan menggunakan mereka yang menerapkan pengiriman silang.
Setiap kali permintaan silang -halaman terjadi, properti halaman sebelumnya dari halaman saat ini disimpan untuk merujuk halaman yang dikirimkan. Jika generasi halaman tidak berasal dari stimulasi pengiriman silang, atau halaman dalam kelompok program yang berbeda, maka properti halaman sebelumnya tidak akan diinisialisasi.
Anda dapat menentukan apakah pemuatan halaman adalah hasil dari pengiriman silang dengan memeriksa objek Halaman Sebelumnya. Jika nilainya nol, itu berarti bahwa itu adalah beban biasa, bukan nilai nol menunjukkan bahwa halaman web berasal dari pengiriman silang -halaman. Selain itu, kelas halaman juga berisi metode yang disebut isCrossSpagePostBack, yang secara khusus digunakan untuk menentukan apakah halaman tersebut merupakan hasil dari pengiriman silang.
Setelah Anda ditentukan, Anda dapat mengakses kontrol pada halaman panggilan dengan metode FindControl dari objek Halaman Sebelumnya. Kode berikut adalah halaman kedua dalam contoh kami; itu dipanggil oleh halaman yang tercantum di atas.
< %@ halaman bahasa = "vb" %><!
<html> <head>
<Title> Cross Postback Contoh 2 </iteme>
</head> <body>
<bahasa skrip = "vb" runat = "server">
sub page_load ()
Jika tidak (halaman.Previouspage bukan apa -apa) lalu)
Jika tidak (page.iscrosspagePostback) lalu
Response.write ("Nama: + cType (sebelumnyapage.findControl (" txtname "), textbox .text +" <br>)
Response.write ("E-mail:" + cType (sebelumnyapage.findControl ("txte-mailaddrss"), textbox) .text + "<br>")
akhiri jika
akhiri jika
akhir sub
</script> </body> </html>
Halaman ini menentukan apakah itu dipanggil dengan pengiriman silang. Jika demikian, akses nilai -nilai dari halaman panggilan melalui metode findControl, dan konversi kontrol yang diperoleh dengan metode ini ke kontrol kotak teks, dan kemudian tampilkan konten dari atribut teks (teks) mereka.
Anda dapat mengubah seluruh objek halaman sebelumnya menjadi jenis halaman yang memicu pengiriman silang -halaman. Metode ini memungkinkan Anda untuk mengakses halaman halaman dan metode halaman. Sebelum saya memberikan contoh teknologi ini, saya perlu menulis ulang contoh pertama yang memasukkan beberapa atribut global. Kode berikut adalah daftar pertama dari dua atribut.
< %@ halaman bahasa = "vb" %><!
<html> <head>
<Title> Cross Postback Contoh </iteme>
<bahasa skrip = "vb" runat = "server">
Nama Properti Readonly Publik
mendapatkan
Return me.txtname.text
Akhir Get
Akhir properti
E-MailAddress Properti Publik
mendapatkan
Kembalikan me.txte-mailaddress.text
Akhir Get
Akhir properti
</script> </head> <body>
<Form ID = "FRMCROSSSSPOSTBack1" METODE = "POST" RUNAT = "Server">
<asp: label id = "lblname" runat = "server" text = "name:"> </asp: label>
<Asp: TextBox ID = "txtName" runat = "server"> </sp: textbox> <br />
<asp: label id = "lble-mailaddress" runat = "server" text = "e-mail:"> </sp: label>
<Asp: TextBox ID = "txte-mailAddress" runat = "server"> < /asp: textbox> <br />
<asp: tombol id = "btnsubmit" runat = "server" text = "kirim" postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
Sekarang atribut telah dibangun sekarang, Anda dapat dengan mudah mengaksesnya. Agar waspada, objek Halaman sebelumnya Halaman harus dikonversi menjadi jenis yang benar, sehingga dapat mengakses atributnya dengan benar. Ini dapat diimplementasikan dengan mengubahnya menjadi kelas halaman yang sesuai.
<%@ halaman bahasa = "vb"%>< %@ Halaman referensi = "~/crosspostback1.aspx" %>
<!
<html> <head>
<Title> Cross Postback Contoh 3 </iteme>
</head> <body>
<bahasa skrip = "vb" runat = "server">
sub page_load ()
Redup cpppage sebagai crosspostback1_aspx
Jika tidak (halaman.Previouspage bukan apa -apa) lalu)
Jika tidak (page.iscrosspagePostback) lalu
if (page.previouspage.isvalid) lalu
CPPPAGE = CTYPE (sebelumnyaPage, crosspostback1_aspx)
response.write ("Nama: + cppppage.name +" <br> ")
Response.write ("email:" + cpppage.e-mailadddress)
akhiri jika
akhiri jika
akhiri jika
akhir sub
</script> </body> </html>
Jelaskan ini, ini mendefinisikan referensi ke halaman panggilan pada kepala kepala, sehingga jenis referensi ini dapat digunakan dalam kode. Melalui referensi ini, kode VB.NET yang sebenarnya menggunakan fungsi CTYPE untuk mengonversi objek Halaman Sebelumnya menjadi jenis yang sesuai. Setelah itu, atribut tersebut dapat digunakan seperti demonstrasi kode.
Penggunaan metode isValid dari objek halaman sebelumnya dalam daftar di atas diingatkan di sini: properti isValid pada halaman sebelumnya memastikan bahwa Anda telah lulus semua verifikasi dan pengujian hukum sebelum beroperasi.
Meringkaskan
Ada banyak aplikasi untuk mengirimkan parameter data antara web, termasuk mempertahankan informasi pengguna pribadi. Solusi web leluhur, seperti menggunakan QueryString dan cookie, memungkinkan Anda untuk menunjuk ke halaman lain dari satu halaman saat pengiriman terjadi.
ASP.NET 1.1 Selain memberikan metode tambahan, metode ini juga dapat didukung dengan baik, tetapi ASP.NET 2.0 bergantung pada pengiriman silang -halaman, yang telah membuat pengembangan besar dalam hal ini. Itu membuat satu data pemrosesan web dari halaman web lain sederhana. Saat Anda mengembangkan program ASP.NET 2.0 berikutnya, Anda harus memanfaatkan keunggulan konsep baru ini dengan baik.