我有一个相当复杂的页面,其中包含一个复选框:
// In the .aspx
<asp:CheckBox id="MyCheckBox" runat="server" text="Testing" />
// In the .aspx.cs
protected System.Web.UI.WebControls.CheckBox MyCheckBox;
我所看到的是,在回发到页面后,复选框以某种方式结束,当我到达Page_Load
事件时,其Checked属性设置为true,我无法弄清楚为什么 - 我没有设置复选框的值或以任何方式修改复选框,此页面上没有转发器控件,当我提交表单时肯定不会检查CheckBox。
虽然页面本身非常复杂,但与CheckBox本身的交互完全是微不足道的 - 我已经花了很多时间试图弄清楚如何将此复选框的Checked值设置为true,但没有成功 - 有什么调试/诊断可以找出为什么这个复选框的检查值发生了变化?
更新:所以我现在转而使用HtmlInputCheckBox
控件:
// In the .aspx
<input type="checkbox" id="TelephonyEnabledCheckBox" runat="server" />
// In the .aspx.cs
protected System.Web.UI.HtmlControls.HtmlInputCheckBox TelephonyEnabledCheckBox
完全相同的事情仍然发生 - 在OnInit()
期间Checked是假的,但是当我到Page_Load()
检查时是真的。该邮箱肯定在回发时未选中,Request.Form["TelephonyEnabledCheckBox"]
为"0"
(表示未选中)。
怎么回事?目前我担心我需要直接使用回发值(但是理解最新情况会很好)
答案 0 :(得分:1)
我的建议是建立一个只有复选框的简单页面,然后看看它的行为方式。这样,您就可以完全确定问题不是由与页面上其他内容的奇怪交互引起的。