2010-09-30 79 views
4
<asp:CheckBox ID="isSubscribed" runat="server" /> Subscribe to mailing list?<br /><br /> 
<asp:Button runat="server" CssClass="btn" ID="btnPrefUpdate" OnClick="updatePrefs" Text="Update" /><br /><br /> 

這大火後面的代碼:ASP.net複選框總是被檢查

protected void updatePrefs(object sender, EventArgs e) 
{ 
    Response.Write(isSubscribed.Checked); 
    Response.End(); 
} 

但它總是現身爲真!不管它是否被檢查!我知道我做錯了,有人可以告訴我如何正確訪問這個值嗎?

+0

您的Page_Load事件中是否有任何將其設置爲true的內容?你有嘗試把「isSubscribed.Checked.ToString」? – Curt 2010-09-30 10:58:19

+0

啊,是的,在我的網頁加載我有isSubscribed.Checked = Master.isSubscribed;我怎麼才能讓點擊事件在那之前運行? – 2010-09-30 11:03:04

+0

它在UpdatePanel中嗎? – jmservera 2010-09-30 11:08:45

回答

9

像@Curt說,它看起來像你對我有你的Page_Load東西。如果您在Page_Load中設置了值,請確保它在以下語句中

if(!Page.isPostBack) 
{ 
    isSubscribed.Checked = true; 
} 
1

你正在做正確的方法。布爾屬性Checked應該說True或False(我甚至測試過它)。您的Page_Load是否在使用複選框進行操作?換句話說,當回發發生時(按鈕點擊的回發),是否以某種方式(重新)設置複選框的值。

在你的Page_Load方法,你可以包括:

if (!this.IsPostBack) 
{ 
// Set default or loaded values for controls 
} 
+0

是的,它愚蠢它將其設置爲頁面加載配置文件值,我怎麼能停止按鈕點擊事件之前加載代碼? – 2010-09-30 11:04:09

+0

@Tom Gullen看到我的答案,或者你可以如果(!this.IsPostBack) //將它設置在aspx頁面 – TheLukeMcCarthy 2010-09-30 11:10:27

+0

//做你的事情。 – 2010-09-30 11:10:27