2011-01-21 56 views
1
<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" /> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

我已經EnableViewState屬性設置爲false,但是當我點擊按鈕,在文本框中的值回傳後仍然存在。爲什麼價值依然存在?如何禁用特定控件的視圖狀態?

+0

看看http://stackoverflow.com/questions/5748354/asp-net-page-controls-and-viewstate/15129881#15129881 – Lijo 2013-03-01 04:59:42

回答

4

看一看Understanding ASP.NET View State。在頁面生命週期中,有一個Load Post Data階段,它將從表單數據中填充控件值。

視圖狀態可以非常混亂,特別是爲什麼你需要它,如果控件與表單數據的填充後回來。來自上面相同鏈接的The Role of View State做了一個體面的工作來解釋爲什麼它很有用。

總結:視圖狀態不需要用戶輸入。視圖狀態用於存儲發生的頁面狀態的編程更改。一個簡單的例子是,當一個非提交按鈕被點擊並且處理程序改變標籤的文本時。該更改應存儲在視圖狀態中,以便在其他後發郵件中保留。

-1

Explanation

最簡單的方法是每次設置Text屬性的String.Empty。

+1

這是一個非常糟糕的做法我的朋友。 – 2011-01-21 13:22:57

+0

你爲什麼這麼認爲? – zavaz 2011-01-21 14:01:51

0

接受輸入的控件可以有自己的狀態,通過使用發送到服務器的數據恢復。它們不需要存儲在ViewState中。在某些方面,這些不是舊值,這些是用戶提交的新值(儘管他可能沒有改變它們)。

相關問題