gridview+checkbox的各种操作

本文详细介绍了在GridView中添加Checkbox的方法,包括如何实现全选功能,添加选中项,显示数据库已有项,并提供在RowDataBound事件中根据条件勾选Checkbox的技巧。同时强调了访问隐藏列时的注意事项,指出初始隐藏列将无法获取其值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;//绑定之后就让它隐藏,但是是能够访问并取到值得

===============================================

asp.net gridview中checkbox 单选

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("没有选择数据操作无效!");

        }

    }
如何让checkbox复选框只能单选
$("#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;   
      }         
     });       
    }       
   });     
  });  
});  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值