2009-12-04 45 views
0

我有一個包含一個複選框一個相當複雜的頁面後,選中=真: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"(表示未檢查)。

怎麼回事?目前我擔心我需要直接使用回發值(但它會很好理解發生了什麼)

+0

有沒有Javascript設置複選框運行的選中狀態? – adrianos 2009-12-04 17:07:56

+0

爲了將來的參考,這應該是一個普通的問題,而不是社區維基。 – 2009-12-04 17:15:58

+0

我不知道這是如何成爲社區維基 - 它絕對不是我的意圖。 – Justin 2009-12-04 17:23:42

回答

1

我的建議是隻建立一個簡單的頁面,只有複選框和然後看看如何表現。這樣,您可以絕對確定問題不是由頁面上其他事物的奇怪交互造成的。

+0

已經這樣做了:如預期的那樣,這不會發生在空白頁面上。這個問題肯定是由奇怪的相互作用造成的,但我不知道是什麼。 – Justin 2009-12-04 17:24:14