Ada kontrol UpdatePanel di atlas, yang mendukung pembaruan parsial. Cukup tentukan Mode="Conditional". Tentu saja, ScriptManager juga harus menyetel EnablePartialRendering="true".
Pembaruan sebagian, menggunakan xmlHttp. Prosesnya adalah sebagai berikut:
1: Selama postback, js halaman mem-postback data pada halaman (seluruh halaman harus di-postback)
2: Latar belakang menerima permintaan dan mulai memproses (pemuatan halaman dapat dipicu)
3: Setelah diproses, tinggal kirim kembali data yang akan diupdate ke halaman tersebut (tentukan bagian data mana yang akan dikirim kembali sesuai dengan nama UpdatePanel yang ingin diupdate. Ini kode this.updatePanelXX.Update() )
4: Halaman (klien) hanya memperbarui bagian data postback ini (inilah yang disebut pembaruan parsial, metodenya adalah menemukan updatePanle, lalu UpdatePanel.InnerHtml=PostBackData. Ini adalah pengganti langsung.)
Dari ini sudut pandang, yang disebut pembaruan parsial Yang baru adalah menggambar ulang hanya bagian updatePanel yang ditentukan (saat memposting kembali ke server, seluruh halaman harus diposting kembali; kode latar belakang akan memproses masing-masing seperti sebelumnya; tetapi hanya sebagian hasil pemrosesan akan dikembalikan ke klien).
Dengan cara ini, akan sangat sulit jika Anda ingin memicu pemrosesan js suatu halaman saat UpdatePanle sedang memproses. Karena semua data yang Anda posting kembali diperbarui ke sudut kecil, Response.Write(js) sebelumnya tidak akan berfungsi sama sekali.
Solusinya adalah ini:
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenOverViewPart", openScript); Gunakan metode RegisterStartupScript untuk mendaftarkan fungsi js, dan kemudian dapat dijalankan dengan lancar.
Faktanya, eksekusinya tidak begitu lancar, karena setelah atlas melakukan pembaruan parsial, semua js di halaman akan disatukan---urus urusan Anda sendiri---sehingga akan menimbulkan dampak kecil: banyak js memiliki seperti <! - dan simbol komentar lainnya, jika tidak hati-hati, js Anda sendiri juga akan dikomentari. Ini memang lebih menyusahkan.
Solusinya adalah X. Anda perlu mengontrol sendiri gaya keluaran js dan menambahkan beberapa carriage return lagi untuk menunjukkan bahwa itu bukan komentar.
string openScript = "nt";
openScript = "<skrip" + " type='teks/javascript'>rn"
+ "rn"
+ "var a=0;rn"
+ "opener.top.__doPostBack('" + Permintaan.Params["refresh"] + "','refresh');rn"
+ "jendela.pembuka.fokus();"
+ "jendela.tutup();"
+ "<" + "/skrip" + ">";