簡體   English   中英

為什么有些asp.net控件保持其狀態,盡管它的EnableViewState屬性為false?

[英]Why do some asp.net controls keep its state although its EnableViewState property is false?

在網站上放置一個文本框,一個復選框和一個按鈕。 將textbox的“EnableViewState”屬性設置為false ,將復選框設置為false 將內容寫入文本框並選中復選框。 單擊按鈕。

為什么仍然會寫入文本框並在響應后選中復選框?

有些東西並不完全依賴於ViewState。 在您列出的控件中,這些值在發送到服務器的POST中可用,因此它們已經離開那里並且控件以這種方式恢復其狀態。

其他的東西,例如<asp:Label>的文本,不會以任何方式發回,並且如果沒有ViewState,它們將丟失數據。 對於其他屬性也是如此,例如文本框的樣式等等......只有它的value才會被恢復,因為所有這些都被發送回來,因此,所有它都被編碼為抓取和恢復。 如果你說要把它變成紅色,這將在回發時丟失。

作為一般規則,控件可以從發布的數據嚴格恢復的內容將在回發時恢復,其他一切都將丟失。

因為HTML控件是無狀態控件。 因此,Microsoft提供了一個ViewState功能,可以在用戶將數據發送到服務器時或在回發后保持相同的值時提供幫助。 因此,您必須將屬性“EnableViewState”設置為True。 默認情況下,所有ASP.NET控件的EnableViewState都設置為True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM