我有一個包含一個複選框一個相當複雜的頁面後,選中=真:Asp.Net - 調試爲什麼複選框已回傳
// 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本身的互動完全是微不足道的 - 我已經花了很多時間試圖找出如何此複選框的選中值被設置爲true,沒有成功 - 有什麼調試/診斷方法可以找出爲什麼這個複選框的選中值已更改?在OnInit()
經過是假的,但是通過檢查的時候我去Page_Load()
-
// In the .aspx
<input type="checkbox" id="TelephonyEnabledCheckBox" runat="server" />
// In the .aspx.cs
protected System.Web.UI.HtmlControls.HtmlInputCheckBox TelephonyEnabledCheckBox
完全一樣的事情仍然發生:
UPDATE:所以我現在已經切換到使用HtmlInputCheckBox
控制是真的。該郵箱在回發時絕對未選中,Request.Form["TelephonyEnabledCheckBox"]
爲"0"
(表示未檢查)。
怎麼回事?目前我擔心我需要直接使用回發值(但它會很好理解發生了什麼)
有沒有Javascript設置複選框運行的選中狀態? – adrianos 2009-12-04 17:07:56
爲了將來的參考,這應該是一個普通的問題,而不是社區維基。 – 2009-12-04 17:15:58
我不知道這是如何成爲社區維基 - 它絕對不是我的意圖。 – Justin 2009-12-04 17:23:42