<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" />
<asp:Button ID="Button1" runat="server" Text="Button" />
我已經EnableViewState屬性設置爲false,但是當我點擊按鈕,在文本框中的值回傳後仍然存在。爲什麼價值依然存在?如何禁用特定控件的視圖狀態?
<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" />
<asp:Button ID="Button1" runat="server" Text="Button" />
我已經EnableViewState屬性設置爲false,但是當我點擊按鈕,在文本框中的值回傳後仍然存在。爲什麼價值依然存在?如何禁用特定控件的視圖狀態?
看一看Understanding ASP.NET View State。在頁面生命週期中,有一個Load Post Data階段,它將從表單數據中填充控件值。
視圖狀態可以非常混亂,特別是爲什麼你需要它,如果控件與表單數據的填充後回來。來自上面相同鏈接的The Role of View State做了一個體面的工作來解釋爲什麼它很有用。
總結:視圖狀態不需要用戶輸入。視圖狀態用於存儲發生的頁面狀態的編程更改。一個簡單的例子是,當一個非提交按鈕被點擊並且處理程序改變標籤的文本時。該更改應存儲在視圖狀態中,以便在其他後發郵件中保留。
最簡單的方法是每次設置Text屬性的String.Empty。
這是一個非常糟糕的做法我的朋友。 – 2011-01-21 13:22:57
你爲什麼這麼認爲? – zavaz 2011-01-21 14:01:51
接受輸入的控件可以有自己的狀態,通過使用發送到服務器的數據恢復。它們不需要存儲在ViewState中。在某些方面,這些不是舊值,這些是用戶提交的新值(儘管他可能沒有改變它們)。
看看http://stackoverflow.com/questions/5748354/asp-net-page-controls-and-viewstate/15129881#15129881 – Lijo 2013-03-01 04:59:42