2012-06-09 65 views
0

之後檢查我有一個代碼,爲什麼複選框回發

<form id="form1" runat="server"> 
<asp:Label runat="server" ID="Label1" EnableViewState="false" /> 
<asp:CheckBox runat="server" ID="Check1" EnableViewState="false" Checked="false" /> 
<asp:Button runat="server" ID="Button1" Text="Button1" /> 
</form> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack) return; 

    Label1.Text = "Label value"; 
    Check1.Checked = true; 
} 

爲什麼在回發的文字是絕望的,但複選框選中還是? 謝謝

回答

1

參考文獻引證 - Understanding ASP.NET View State by Scott Mitchell DOC:

頁面生命週期階段3 - 加載回發數據

它是一種常見誤解該視圖狀態開發商之間是 莫名其妙負責讓文本框,複選框,DropDownLists, 和其他Web控件在整個回發過程中記住它們的值。這不是 ,因爲這些值是通過發佈後的表單字段 值標識的,並且在LoadPostData()方法中爲那些實現IPostBackDataHandler的控件 分配。

1

由於複選框從表單數據中選取狀態,所以在重新創建時它會保持選中狀態。

viewstate只需要記住複選框之前的狀態,以便服務器端Change事件有效。從這個MSDN文章

相關問題