转自:http://blog.youkuaiyun.com/pplcheer/article/details/50437363
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;//绑定之后就让它隐藏,但是是能够访问并取到值得
===============================================
- function signcheck(cbox)
- {
- var obj = document.getElementsByTagName("input");
- for(var i=0;i<obj.length;i++)
- {
- if(obj[i].type=="checkbox")
- {
- obj[i].checked =false;
- }
- }
- var sid = cbox.id;
- document.getElementById(sid).checked=true;
- }
- gridview模板列代码:
- <asp:TemplateField ShowHeader="False" HeaderText="选择">
- <ItemTemplate>
- <asp:CheckBox ID="CheckboxSign" runat="server" />
- </ItemTemplate>
- </asp:TemplateField>
- gridview数据行数据加载:
- protected void GridViewDuckSeed_RowDataBound(object sender, GridViewRowEventArgs e)
- {
- try
- {
- CheckBox cb = (CheckBox)e.Row.FindControl("CheckboxSign");
- if (cb != null)
- cb.Attributes.Add("onclick", "signcheck(" + cb.ClientID + ")");
- }
- catch
- {
- ;
- }
- }
- 通过选择行执行删除操作:
- protected void btnDelete_Click(object sender, EventArgs e)
- {
- string DuckNum = "", IsValid = "";
- foreach (GridViewRow row in GridViewDuckSort.Rows)
- {
- CheckBox CheckboxSign = row.FindControl("CheckboxSign") as CheckBox;
- if (CheckboxSign.Checked == true)
- {
- DuckNum = row.Cells[1].Text.ToString();
- IsValid = row.Cells[3].Text.ToString();
- }
- }
- if (!string.IsNullOrEmpty(DuckNum))
- Master.MessageBox("可执行删除操作!");
- else
- Master.MessageBox("没有选择数据操作无效!");
- }
- }
- $("#txm").find(".checkbox").each(function(){
- $(this).click(function(){
- var test= $(this).attr("checked");
- if(this.checked){
- GetData(this.value);
- $(this).parent("div").siblings().children(".checkbox").each(function(){
- if(test== this.checked){
- this.checked = false;
- }
- });
- }
- });
- });
- });