Reputation: 3
I have a DataGrid which has Checkboxes which are used to select certain users. When Ok button is clicked, I should get the state of checkbox, and if checked get ID of the row. I get to the checkbox, but value is always Checked = false, even when I check my checkbox, of course. Code is below:
.aspx
<Columns>
<asp:TemplateColumn HeaderText="Odabir">
<ItemTemplate>
<asp:CheckBox ID="chkVjezba" runat="server" Enabled="true"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Vježba" DataField="Naziv"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Broj serija">
<ItemTemplate>
<asp:TextBox ID="brojSerija" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Ocjena 6">
<ItemTemplate>
<asp:TextBox ID="ocjena6" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Ocjena 7">
<ItemTemplate>
<asp:TextBox ID="ocjena7" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Ocjena 8">
<ItemTemplate>
<asp:TextBox ID="ocjena8" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Ocjena 9">
<ItemTemplate>
<asp:TextBox ID="ocjena9" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Ocjena 10">
<ItemTemplate>
<asp:TextBox ID="ocjena10" runat="server" Width="20px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
My .cs Code File:
foreach (DataGridItem row in vjezbeGrid.Items)
{
if (((CheckBox)row.Cells[0].FindControl("chkVjezba")).Checked)
{
//something
}
}
Thanks.
Upvotes: 0
Views: 1864
Reputation: 480
You might databind on every postback. Make sure that you databind only if !Page.IsPostBack.
Upvotes: 1
Reputation: 10285
Try like this
foreach (DataGridItem row in vjezbeGrid.Items)
{
if (row.ItemType == ListItemType.Item)
{
CheckBox chkVjezba = (CheckBox)row.FindControl("chkVjezba");
if (chkVjezba.Checked)
{
//something
}
}
}
Upvotes: 1