ASP.NET - Mengelola ViewState

Dengan mengelola ViewState (status lihat) objek di form Web, Anda dapat mengurangi banyak kerja pencode.

Mengelola ViewState (Status Lihat)

Ketika form classic ASP disubmit, semua nilai form akan dihapus. Bayangkan, Anda mengirimkan form yang mengandung banyak informasi, dan server mengembalikan kesalahan. Anda harus kembali ke form dan memperbaiki informasi. Anda menekan tombol back, lalu apa yang terjadi... semua nilai form dihapus, dan Anda harus mulai dari awal lagi. Situs tidak mengelola ViewState.

Ketika form ASP .NET disubmit, form akan muncul kembali bersama dengan semua nilai form. Bagaimana hal ini terjadi? Ini disebabkan ASP .NET mengekelola ViewState. ViewState akan menunjukkan status saat halaman disubmit ke server. Dengan menempatkan domain yang disembunyikan di dalam kontrol <form runat="server"> di setiap halaman, kita dapat menentukan status halaman. Kode asal mungkin seperti ini:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>

Mengelola ViewState adalah pengaturan baku ASP.NET Web Form. Jika Anda tidak ingin mengelola ViewState, tambahkan instruksi di atas halaman .aspx: <%@ Page EnableViewState="false" %> atau tambahkan atribut: EnableViewState="false" ke kontrol apapun.

Lihat berikut berkas .aspx. Ini menunjukkan cara operasi lama. Saat Anda menekan tombol submit, nilai form akan hilang:

<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Nama Anda: <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>

Tampilkan Contoh Ini

Ini adalah cara baru ASP .NET. Ketika Anda menekan tombol submit, nilai formulir 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">
Nama Anda: <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>

Tampilkan Contoh Ini (Silakan klik 'Lihat Dokumen Asli' di bingkai di sebelah kanan, Anda akan melihat ASP .NET telah menambahkan satu domain tersembunyi ke formulir, sehingga dapat mempertahankan ViewState.)