.NET checkbox.Checked always return false
.net, c#, checkbox, checked
Solution
I think you should wrap your `Data binding` with `if (!Page.IsPostBack)`
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//Bind your datasource here
}
}
Problem
i'm a newby at .NET and I'm having a problem with my checkboxes. They all return false, even if they are selected. Here is my asp code ``` <asp:GridView ID="gvGeneros1" runat="server" class="divTable" AutoGenerateColumns="False" DataKeyNames="idgenero" CssClass="table"> <Columns> <asp:BoundField DataField="nome" HeaderText="Gênero" SortExpression="nome" > <ControlStyle Width="200px" /> <ItemStyle Width="200px" /> </asp:BoundField> <asp:TemplateField AccessibleHeaderText="Check"> <ItemTemplate> <asp:CheckBox ID="checkGenero" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> ``` and here's my c# code ``` DataSet dsDivided; protected void Page_Load(object sender, EventArgs e) { Music musicbll = new Music(); DataSet dsGeneros = musicbll.getGenders(); int size = dsGeneros.Tables[0].Rows.Count; dsDivided = null; // Divide in two DataTable dsDivided = Tools.SplitDataTableInTwo((DataTable)dsGeneros.Tables[0], size / 2); gvGeneros1.DataSource = dsDivided.Tables["FirstSet"]; gvGeneros1.DataBind(); for (int i = 0; i < gvGeneros1.Rows.Count; i++) { ((CheckBox)gvGeneros1.Rows[i].Cells[1].Controls[1]).Checked=false; } } protected void btGravarPrefs_Click(object sender, EventArgs e) { DataTable dt = new DataTable("generos"); dt.Columns.Add("idgenero", typeof(int)); dt.Columns.Add("active", typeof(bool)); for (int i = 0; i < gvGeneros1.Rows.Count; i++) { int idCliente = (int)dsDivided.Tables[0].Rows[i][0]; bool check = ((CheckBox)gvGeneros1.Rows[i].Cells[1].Controls[1]).Checked; //always false dt.Rows.Add(new object[] { idCliente, check}); } } ``` } I don't know what to try more, and i search all over and it seems right. Thanks