为什么在回发后检查复选框

时间:2012-06-09 08:38:38

标签: asp.net

我有下一个代码,

<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;
}

为什么回发文字绝望但仍然选中了复选框? 感谢

2 个答案:

答案 0 :(得分:1)

因为复选框从表单数据中选取状态,所以在重新创建时它会保持检查状态。

只需要记住该复选框之前的状态,以便服务器端Change事件有效。

答案 1 :(得分:1)

引用此MSDN文章的参考文献 - Understanding ASP.NET View State by Scott Mitchell doc:

页面生命周期第3阶段 - 加载回发数据

  

查看状态的开发人员中常见的误解   以某种方式负责TextBox,CheckBoxes,DropDownLists,   和其他Web控件在回发时记住它们的值。这是   不是这样,因为价值是通过回发表单字段标识的   值,并在LoadPostData()方法中为这些控件分配   实现IPostBackDataHandler。