C# Can';无法在datagrid ASP.NET中获取复选框值
我有一个DataGrid,它有用于选择特定用户的复选框。当单击Ok按钮时,我应该获取复选框的状态,如果选中,则获取行的ID。我进入复选框,但值总是选中=false,当然,即使我选中复选框。代码如下:C# Can';无法在datagrid ASP.NET中获取复选框值,c#,asp.net,webforms,C#,Asp.net,Webforms,我有一个DataGrid,它有用于选择特定用户的复选框。当单击Ok按钮时,我应该获取复选框的状态,如果选中,则获取行的ID。我进入复选框,但值总是选中=false,当然,即使我选中复选框。代码如下: <Columns> <asp:TemplateColumn HeaderText="Odabir"> <ItemTemplate> <asp:C
<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>
.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>
谢谢。像这样试试
<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>
foreach (DataGridItem row in vjezbeGrid.Items)
{
if (row.ItemType == ListItemType.Item)
{
CheckBox chkVjezba = (CheckBox)row.FindControl("chkVjezba");
if (chkVjezba.Checked)
{
//something
}
}
}
您可以在每次回发时进行数据绑定。确保只有在以下情况下才进行数据绑定!Page.IsPostBack.就是这样!伟大的我刚刚添加了页面加载事件if(!IsPostBack)谢谢,将if(!IsPostBack)添加到页面加载事件解决了问题。@rukfash别忘了标记为答案。谁的答案对您更有帮助
<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>