Một trong những điều quan trọng của thiết kế website thường bị các Coder lãng quên. Nếu như bạn chưa xây dựng hệ thống lớn hoặc đang chuẩn bị xây dựng thì nên tìm hiểu bài viết mà IT Express giới thiệu sau đây
Sử dụng Session và ViewState là một kĩ năng quan trọng trong việc lập trình với ASP.Net. Bài viết này sẽ giúp các bạn hiểu về ViewState. Tôi sẽ lần lượt gửi tới các bạn các kiến thức cao hơn về ViewState.
ViewState là một kĩ thuật giúp bạn để giữ lại trạng thái của trang mặc dù trang được Postbacks.Thường thì khi một trang được postback thì mọi giá trị trên trang sẽ không được giữ lại. Để giữ lại giá trị trên trang thì bạn phải sử dụng ViewState để lưu lại giá trị đó. Các giá trị lưu trong ViewState sẽ được lần lượt lưu trữ và gửi tới client browser theo giá trị của một hidden form input. Khi bạn xem source (Trên trình duyệt của mình) của một trang sử dụng ViewState, bạn sẽ thấy hidden viewstate input được khai báo có dạng như sau:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTM1ODM3Nj......." />
Trường hidden sẽ chứa các giá trị viewstate cho tất cả các controls trên trang. Đây là một phần quan trọng của viewstate mà bạn cần nắm vững.
ViewState theo mặc định là sẽ được gửi tới client browser sau đó sẽ trở lại server trên form của một hidden input control trên trang của bạn, Việc lưu trữ một lượng lớn dữ liệu trong viewsate có thể làm tăng kích cỡ trang web của bạn, và có thể có ảnh hưởng đến việc thực thi nó nữa.
Để Disable ViewState cho một control, bạn chỉ cần thiết lập thuộc tính EnableViewState là false. Khi ViewState được diasbled cho một control, nó sẽ tự động disabled cho các controls khác là con của control này.
Example:
<asp:Label ID="lblRequestCount" runat="server" EnableViewState="false"></asp:Label>
Điều này không có nghĩa là bạn nên tránh sử dụng viewstate mà để bạn có thể kiểm soát dữ liệu được lưu và sự ảnh hưởng của nó tới toàn trang.
ViewState có ưu điểm và cũng có nhược điểm. Nhưng bạn hoàn toàn có thể kiểm soát được nó.
Một cách đơn giản để lưu trữ dữ liệu nhỏ vào Viewstate là sử dụng các thuộc tính thay cho biến thành viên. Thuộc tính này có thể sử dụng viewstate để lưu giá trị hơn là việc bạn sử dụng biến thành viên sẽ bị mất giá trị sau một lần postback. Ví dụ lưu trữ một giá trị Integer vào ViewState có thể được làm như sau:
VB
Public Property SomeInteger() As Integer
Get
Dim o As Object = ViewState("SomeInteger")
If Not o Is Nothing Then Return DirectCast(o, Integer)
Return 0 'a default
End Get
Set(ByVal value As Integer)
ViewState("SomeInteger") = value
End Set
End Property
C#
public int SomeInteger {
get {
object o = ViewState["SomeInteger"];
if (!o == null) return (int)o;
return 0;
//a default
}
set { ViewState["SomeInteger"] = value; }
}
Hy vọng vài ý trên giúp bạn hiểu được phần nào về ViewSate trong Asp.net
Tham khảo: Internet