gridview+checkbox的各种操作【转】

来源:http://hi.baidu.com/heavensxq/item/29736dcfbdc30403c710b2b1

1.首先如何在gridview中加入一个checkbox,注意不是checkboxfiled

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" BorderStyle="None" />//在这儿呢,是的,就是这么简单
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="countyname" HeaderText="县" FooterText="县区" />
    <asp:BoundField DataField="DepartmentId" />
</Columns>

2.全选功能

找到checkbox1是最重要的:CheckBox cbox=(CheckBox)gridview1.Rows[i].FindControl("CheckBox1");

for (int i = 0; i < gridview1.Rows.Count; i++)
{
    CheckBox cbox = (CheckBox)gridview1.Rows[i].FindControl("CheckBox1");
    cbox.Checked = true;
}

这样就能实现全选功能

3.添加选中的项

for (int i = 0; i < gridview1.Rows.Count; i++)
{
     CheckBox cbox=(CheckBox)gridview1.Rows[i].FindControl("CheckBox1");
     if (cbox.Checked == true)
     {
         //添加数据的代码,三层架构啊,神马神马的。。。                   
     }
}

跟全选功能差不多

4.如果要显示数据库中已有的项

就是页面载入给gridview绑定数据的时候,要在RowDataBound事件中完成,没执行一行数据,看符不符合条件让checkbox勾选上

5.访问gridview中隐藏的列

注意,一开始不能就隐藏某列,这样的话是取不到值的

gridview1.Columns[2].Visible = true;//绑定是多次使用的,所以绑定以前一定要看得到
DataSet dscounty = Lib.DBUtility.DbHelperSQL.Query("select * from county left join location on county.countyid=location.countyid and DepartmentId='"+Session["DepartmentId"].ToString().Trim()+"' where county.cityaddresscode='"+dw_city.SelectedValue+"'");
gridview1.DataSource = dscounty;
gridview1.DataBind();
gridview1.Columns[2].Visible = false;//绑定之后就让它隐藏,但是是能够访问并取到值得
参考了网上各位大神的代码,以此为总结。
原文地址:https://www.cnblogs.com/huashanqingzhu/p/3733984.html