Silakan lihat teks asli oleh Leon.Zhou: http://pfzhou.cnblogs.com/archive/2006/03/31/363342.html
Saya mengunduh kode contoh dan mengubahnya menjadi VB. Namun menemui beberapa masalah kecil:
Demo1 normal.
Demo2 gagal menguji Baris 22 di AJAX.aspx.vb menurut metode penulisan asli Leon. Jadi saya langsung memodifikasi properti OnClientClick button3 di lingkungan IDE, lihat Baris 52 dari testAJAX.asp. Tes berhasil.
Demo3 gagal menambahkan atribut klien sesuai dengan metode asli, dan baris 20 di testAJAX.aspx.vb tidak berfungsi. Tidak tahu kenapa. Jadi saya hanya menambahkan tombol3 untuk memicu acara klien.
Ini adalah contoh yang baik dan patut dipelajari. Untuk penjelasan rinci tentang prinsip tersebut, silakan lihat teks asli penulis. Saat pengujian, tambahkan <add name="NorthWind" connectionString="...corresponding database connection string..."> di web.config proyek Anda
testAJAX.aspx
1<%@ Halaman Language="VB" AutoEventWireup="false" CodeFile="testAJAX.aspx.vb" Inherits="testAJAX" %>
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
4
5<html xmlns=" http://www.w3.org/1999/xhtml " >
6<kepala id="Kepala1" runat="server">
7 <title>Pengiriman halaman ASP.NET 2.0 tanpa demonstrasi penyegaran</title>
8 <skrip tipe = "teks/javascript" bahasa = "javascript">
9 Fungsi CallServer1() fungsi CallServer1(kontrol input, konteks)
10 {
11 konteks.innerHTML = "<IMG SRC='images/pie.gif' />Memuat";
12 arg = 'ServerMethod1|' + inputkontrol.nilai;
13 <%= ClientScript.GetCallbackEventReference(Saya, "arg", "ReceiveServerData1", "konteks")%>;
14}
15
16 Fungsi MenerimaServerData1()fungsi MenerimaServerData1(hasil, konteks)
17 {
18 konteks.innerHTML = konteks.id + ":" + hasil;
19}
20
21 Fungsi CallServer2() fungsi CallServer2(obj)
dua puluh dua {
23 konteks = rentang grid;
24 konteks.innerHTML = "<IMG SRC='images/pie.gif' />Data sedang dimuat";
25 arg = "ServerMethod2|" + objek.nilai;
26 <%= ClientScript.GetCallbackEventReference(Saya, "arg", "ReceiveServerData2", "konteks")%>;
27}
28
29 Fungsi MenerimaServerData2()fungsi MenerimaServerData2(hasil, konteks)
30 {
31 konteks.innerHTML = hasil;
32}
33
34 </skrip>
35</kepala>
36<tubuh>
37 <form id="form1" runat="server">
38 <div>
39 <h1>Demo1:tombol html mengirimkan data</h1><br />
40 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
41 <input id="Button1" type="button" value="Kirim ke Label1" onclick="CallServer1(TextBox1, Label1)"/>
42 <input id="Button2" type="button" value="Kirim ke Label2" onclick="CallServer1(TextBox1, Label2)"/>
43 <br />
44 <asp:Label ID="Label1" runat="server" Text="Label1:"></asp:Label>
45 <br />
46 <asp:Label ID="Label2" runat="server" Text="Label2:"></asp:Label>
47 </div>
48 <jam />
49 <div>
50 <h1>Demo2: Tombol server mengirimkan data</h1><br />
51 <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
52 <asp:Button ID="Button3" runat="server" Text="Button" OnClientClick="CallServer1(TextBox2, Label3);return false;" /><br />
53 <asp:Label ID="Label3" runat="server" Text="Label3:"></asp:Label></div>
54 <jam />
55 <div>
56 <h1>Demo3: Mengikat data antara kotak daftar drop-down dan tampilan kisi</h1><br />
57 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ connectionStrings:NorthWind %>"
58 SelectCommand="pilih (negara) yang berbeda dari pelanggan"></asp:SqlDataSource>
59 <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ connectionStrings:NorthWind %>"
60 SelectCommand="pilih ID pelanggan, nama perusahaan, negara dari pelanggan di mana negara=@Negara ">
61 <PilihParameter>
62 <asp:ControlParameter Name="Negara" ControlID="DropDownList1" PropertyName="SelectedValue" />
63 </PilihParameter>
64 </asp:SqlDataSource>
65 <div>
66 <asp:DropDownList ID="DropDownList1" runat="server" Lebar="239px"
67 DataSourceID="SqlDataSource1" DataTextField="Negara" DataValueField="Negara">
68 </asp:Daftar DropDown>
69 <input id="Button4" type="button" value="Segarkan" onclick="CallServer2(DropDownList1)"/>
70</div>
71 <br />
72 <span id="gridspan">
73 <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource2" CellPadding="4" ForeColor="#333333" GridLines="Tidak Ada">
74 <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="Putih" />
75 <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
76 <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
77 <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Tengah" />
78 <HeaderStyle BackColor="#990000" Font-Bold="Benar" ForeColor="Putih" />
79 <AlternatingRowStyle BackColor="Putih" />
80 </asp:Tampilan Grid>
81</span>
82 </div>
83 </bentuk>
84</tubuh>
85</html>
86
tesAJAX.aspx.vb
1
2Sistem Impor
3Impor Sistem.Data
4Impor Sistem.Konfigurasi
5Impor Sistem.Web
6Impor Sistem.Web.Keamanan
7Impor Sistem.Web.UI
8Impor Sistem.Web.UI.WebControls
9Impor Sistem.Web.UI.WebControls.WebParts
10Impor Sistem.Web.UI.HtmlControls
11Impor Sistem.IO
12Sistem Impor.Globalisasi
13
14Tes Kelas Publik ParsialAJAXTes kelasAJAX
15 Mewarisi System.Web.UI.Page
16 Mengimplementasikan ICallbackEventHandler
17 Sub Page_Load yang Dilindungi()Sub Page_Load(Pengirim ByVal Sebagai Objek, ByVal dan Sebagai EventArgs)
18 'Daftarkan metode pemrosesan acara klien
19 'Sepertinya kalimat ini tidak berhasil, jadi saya menambahkan tombol tambahan4 untuk memicu acara klien oleh AndyDavis
20 DropDownList1.Attributes.Add("onchange", "CallServer2(ini)")
21 'Acara klien Button3 dapat diatur langsung di properti OnClientClick di IDE, tidak perlu menambahkannya di sini oleh AndyDavis
22 'Button3.Attributes.Add("onclick", "CallServer1(TextBox2, Label3);return false;")
23 Akhir Sub
dua puluh empat
25 Server pribadiKembali Sebagai String
26
27 Fungsi Publik GetCallbackResult()Fungsi GetCallbackResult() Sebagai Implementasi String ICallbackEventHandler.GetCallbackResult
28 'Untuk memudahkan melihat efek pemuatan, tambahkan penundaan
29 Sistem.Threading.Thread.Sleep(2000)
30
31 Redupkan bagian() Sebagai String = serverReturn.Split("|"c)
32 'Panggil sesuai dengan nama metode yang diteruskan dan teruskan parameter yang sesuai. Saat ini hanya satu parameter yang didukung
33 Kembalikan CStr([GetType]().GetMethod(parts(0)).Invoke(Me, New Object() {parts(1)}))
34 Fungsi Akhir
35
36
37 Sub Publik RaiseCallbackEvent()Sub RaiseCallbackEvent(ByVal eventArgument As String) Mengimplementasikan ICallbackEventHandler.RaiseCallbackEvent
38 serverReturn = eventArgument
39 Akhir Sub
40
41 'Menurut nama negara dalam bahasa Inggris atau singkatan yang dikirimkan dari klien, terjemahkan ke dalam nama negara Cina yang sesuai
42 Fungsi Publik ServerMethod1()Fungsi ServerMethod1(ByVal arg As String) Sebagai String
43 Redupkan Sebagai String = ""
44 Pilih Kasus arg.ToLower()
45 Kasus "cn"
46 Kasus "Cina"
47 detik = "Cina"
48 Keluar Pilih
49 Kasus "kita"
50 detik = "Amerika Serikat"
51 Keluar Pilih
52 Kasus Lain
53 s = "Negara tidak diketahui"
54 Keluar Pilih
55 Akhir Pilih
56 Pengembalian
57 Fungsi Akhir
58
59 'Perbarui konten GridView berdasarkan nilai yang diteruskan dari klien, dan kembalikan html GridView yang diperbarui
60 Fungsi Publik ServerMethod2()Fungsi ServerMethod2(ByVal arg As String) Sebagai String
61 DropDownList1.SelectedValue = arg
62 GridView1.DataBind()
63
64 Kembalikan RenderControl(GridView1)
65 Fungsi Akhir
66
67 Fungsi Kelebihan Beban Pribadi RenderControl()Fungsi RenderControl(Kontrol ByVal Sebagai Kontrol) Sebagai String
68 Redupkan writer1 As StringWriter = New StringWriter(CultureInfo.InvariantCulture)
69 Redupkan writer2 Sebagai HtmlTextWriter = HtmlTextWriter(writer1) baru
70
71 kontrol.RenderControl(penulis2)
72 penulis2.Flush()
73 penulis2.Tutup()
74
75 Kembalikan penulis1.ToString()
76 Fungsi Akhir
77Akhir Kelas
78