views:

51

answers:

2
<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 />

This fires in the code behind:

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

But it's always coming out as true! Whether it is checked or not! I know I'm doing it wrong, could someone show me how to access this value properly?

+1  A: 

You are doing it the right way. The boolean property Checked should just say True or False (I even tested it). Is your Page_Load doing something with the checkbox? In other words, is the value of the checkbox somehow (re)set when the post back is occuring (the postback of the button click).

In your Page_Load method you could include:

if (!this.IsPostBack)
{
// Set default or loaded values for controls
}
Wim Haanstra
Yes, stupidly it sets it to the profile value in page load, how can I stop that code from loading before the button click event?
Tom Gullen
@Tom Gullen see my answer, or you could set it in the aspx page
TheLukeMcCarthy
if (!this.IsPostBack)// Do your thing.
Wim Haanstra
+1  A: 

like @Curt said, it looks to me like you have something in your page_load. if you set the value in Page_Load make sure it is inside the following if statement

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