Pernah merasa kecewa ketika mengirim data pada web browsing seperti login ke salah satu situs, dan disana anda gagal melakukan login dan anda harus mengisi ulang data anda karena telah terhapus, menampilkan data atau objek pada suatu input data atau textbox disebut “VIEWSATATE”.
Jika data anda sedikit, itu tidak masalah. Tapi jika datanya banyak ? Nah, di ASP.NET Anda dapat menyimpan banyak coding dengan mempertahankan ViewState dari data objek di Formulir Web Anda.Jadi anda tidak perlu mengisi data anda kerena kesalahan kecil seperti tadi.
Mempertahankan ViewState
Ketika formulir dikirimkan dalam ASP klasik, semua data objek yang ada di Formulir Web akan dihapus. Misalkan anda telah mengirimkan formulir beserta banyak informasi dan server kembali dengan kesalahan, jadi Anda akan harus kembali ke bentuk awal dan memperbaiki informasi dengan memasukan ulang. Anda klik tombol kembali, dan apa yang terjadi ……. bentuk SEMUA nilai-nilai yang ada akan dihapus, dan Anda harus mulai dari awal lagi! Jadi Situs tidak mempertahankan ViewState Anda.
Ketika formulir dikirimkan dalam ASP. NET, muncul kembali dalam bentuk jendela browser bersama-sama dengan segala bentuk nilai. Kenapa? Hal ini karena ASP. NET mempertahankan ViewState Anda. Pada ViewState menunjukkan status halaman ketika diajukan ke server. Status tersebut ditentukan melalui objek tersembunyi ditempatkan pada setiap halaman dengan kontrol <form runat=”server”>. Source code bisa terlihat seperti ini:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....beberapa kode </form>
Mempertahankan ViewState adalah pengaturan default untuk ASP.NET Web Forms. Jika Anda ingin TIDAK mempertahankan ViewState, masukan direktif <% @ Page EnableViewState = “false”%> di bagian atas halaman .aspx atau tambahkan atribut EnableViewState = “false” untuk setiap kontrol.
Lihatlah skrip file .aspx berikut ini. Ini menunjukkan cara “lama” untuk melakukannya. Ketika Anda mengklik pada tombol kirim, nilai bentuk akan hilang:
<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Your name: <input type="text" name="fname" size="20">
<input type="submit" value="Submit">
</form>
<%
dim fname
fname=Request.Form("fname")
If fname<>"" Then
Response.Write("Hello " & fname & "!")
End If
%>
</body>
</html>
Pada ASP.NET, Ketika Anda mengklik pada tombol kirim, nilai bentuk TIDAK akan hilang:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Your name: <asp:TextBox id="txt1" runat="server" /> <asp:Button OnClick="submit" Text="Submit" runat="server" /> <p><asp:Label id="lbl1" runat="server" /></p> </form> </body> </html>
Ketika Anda menjalankan kode sumber di atas dan klik view source, Anda akan melihat bahwa ASP. NET telah menambahkan source code dalam bentuk kolom tersembunyi untuk mempertahankan ViewState
Contoh running program:
Sekarang Anda tidak perlu khawatir akan mengisi ulang data, karena data viewstate dipertahankan.







Web Services People