【发布时间】:2011-03-28 07:03:21
【问题描述】:
我在 ASP.NET 内容表单上有一个 CheckBox,如下所示:
<asp:CheckBox runat="server" ID="chkTest" AutoPostBack="true" OnCheckedChanged="chkTest_CheckedChanged" />
在我后面的代码中,我有以下方法:
protected void chkTest_CheckedChanged(object sender, EventArgs e)
{
}
当我在浏览器中加载页面并单击 CheckBox 时,它变为选中状态,页面回发,我可以看到 chkTest_CheckedChanged 被调用。
当我再次单击 CheckBox 时,它变为未选中状态,页面回发,但 chkTest_CheckedChanged 未被调用。
该过程是可重复的,因此一旦取消选中 CheckBox,选中它就会触发事件。
我在 Web.Config 中禁用了 View State,启用 View State 会导致此问题消失。在视图状态保持禁用状态时,我可以做些什么来触发可靠的事件?
更新:
如果我在服务器标签上设置Checked="true",当取消选中复选框时,情况会随着事件触发而逆转,但反之则不然。
更新 2:
我已经在我的页面中覆盖了OnLoadComplete,从那里我可以确认Request.Form["__EVENTTARGET"] 已正确设置为我的CheckBox 的ID。
【问题讨论】:
-
我也遇到过这种情况,为什么会这样?任何信息?这条隧道尽头有什么灯(不会让我撞倒)?
-
如果您可以发布 Page_Load 事件的代码会有所帮助
-
Page_Load 事件中没有任何内容。所有代码都在原帖中。