从没有id的gridview获取复选框值

时间:2015-03-24 22:14:00

标签: c# asp.net gridview

我的代码

<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的值(已检查或未检查)?

1 个答案:

答案 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