首页 > 代码库 > datagridview中使用checkbox问题。

datagridview中使用checkbox问题。

如果套用datagridview中的checkboxfield,生成的数据,会出现无法选择datagridview中数据项的问题,即checkbox不可以被鼠标点击,选中/取消选中。此checkbox的选中与否,完全取决于数据库,表中的bool值得类型,当值为true的时候,生成的datagridview中的checkbox是处于勾选状态的,要想取消勾选,需要通过sql语句,来修改后台数据库表中的对应字段的值(把true改成false)。这种方法比较烦。

另一种比较好的做法是在datagridview中增加一个templatefield,然后再在下面添加itemtemplate,在该itemtemplate中,增加checkbox控件。

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"  EnableModelValidation="True" style="width: 13px" >            <Columns>                <asp:TemplateField>                <ItemTemplate>                    <asp:CheckBox id="chk" runat="server"/>                </ItemTemplate>                    <ItemStyle HorizontalAlign="Center" />                </asp:TemplateField>                                <asp:BoundField DataField="USERID" HeaderText="代理设定" >                <ItemStyle HorizontalAlign="Center" />                </asp:BoundField>            </Columns>        </asp:GridView>

这样生成的checkbox控件就可以被选中了。选中的checkbox控件,如何取值?

可以循环遍历datagridview中的rows,然后将值checkbox为true的值取出即可。

 bool result = false; List<string> name=new List<string> (); for (int i = 0; i < GridView2.Rows.Count;i++ )        {            result = ((CheckBox)GridView2.Rows[i].FindControl("chk")).Checked;            if (result)                name.Add(GridView2.Rows[i].Cells[1].Text.Trim());        }

 

datagridview中使用checkbox问题。