我的代码
<asp:GridView ID="FireFighters" runat="server" AutoGenerateColumns="false" OnRowDataBound="FireFighters_RowDataBound" >
<Columns>
<asp:BoundField HeaderText="שם הכבאי" DataField="username" />
<asp:CheckBoxField HeaderText="מצוות לאירוע" DataField="IsLinked" />
</Columns>
</asp:GridView>
我无法添加和id到asp:CheckBoxField,我尝试从代码隐藏中调用它:
foreach(GridViewRow gvr in FireFighters.Rows)
{
lst.Add(new FireFighter{username=gvr.Attributes["id"].ToString(),IsLinked=((gvr.Cells[1] as Control) as CheckBox).Checked});
}
但是它为null,我如何获得Checkbox的值(已检查或未检查)?
答案 0 :(得分:1)
你快到了。这应该可以帮到你:
foreach (GridViewRow gvr in FireFighters.Rows)
{
lst.Add(new MyClass { username = ((DataControlFieldCell)gvr.Controls[0]).Text, IsLinked = ((CheckBox)gvr.Controls[1].Controls[0]).Checked });
}
每一行都有一组单元格,这些单元格里面有你想要的控件。您可以通过索引访问它们(在复选框的情况下)并将其转换为CheckBox
或访问单元格本身并获取文本并将其转换为DataControlFieldCell
。