在做RS系统的时候,有一个基础信息查询的功能,查询记录显示在gridview中,在每条记录之前都有一个checkbox以供选中,然后将所有的选中记录导出到excel中。由于这样一条条选择很麻烦,后来客户要求将所有按条件查询出来的记录一次性全部选中。
经过上网查阅资料和自己实践,目前知道两种实现方式,一种是服务器端办法,一种是脚本方式。下面,咱们就来看一下这两种实现方式
服务器端:
在页面上放一个gridview控件,配置好数据源,编辑列,添加一个模版列,再编辑模版,放入一个checkbox控件。代码如下:
<asp:GridView
ID="GridView1"
runat="server" AllowPaging="True"AutoGenerateColumns="False"
DataKeyNames="ID"DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundFieldDataField="ID"
HeaderText="档案编号"
ReadOnly="True"SortExpression="ID" />
<asp:BoundFieldDataField="name"
HeaderText="姓名"
SortExpression="name" />
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBoxID="chkAll"
runat="server"
AutoPostBack="True"OnCheckedChanged="chkAll_CheckedChanged"/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBoxID="chkItem"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台cs代码:
protected void chkAll_CheckedChanged(object
sender, EventArgs e)
{
for (int i = 0; i <
this.GridView1.Rows.Count;i++)
{
((CheckBox)GridView1.Rows[i].FindControl("chkItem")).Checked =
((CheckBox)this.GridView1.HeaderRow.FindControl("chkAll")).Checked;
}
}
脚本:
<asp:GridView
ID="GridView1"
runat="server" AllowPaging="True"AutoGenerateColumns="False"
DataKeyNames="ID"DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundFieldDataField="ID"
HeaderText="档案编号"
ReadOnly="True"SortExpression="ID" />
<asp:BoundFieldDataField="name"
HeaderText="姓名"
SortExpression="name" />
<asp:TemplateField>
<HeaderTemplate>
<input id="chkAll"
onclick="SelectAll(this)";type=checkbox>
</HeaderTemplate>
<ItemTemplate>
<input id="chkItem"type=checkbox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
客户端js代码:
<scripttype="text/javascript">
functionSelectAll(chkbox)
{
varbox=chkbox;
state=theBox.checked;
elem=box.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox"&& elem[i].id!=box.id)
{
if(elem[i].checked!=state)
{
elem[i].click();
}
}
}
</script>
以上两种方法我用的是第一种,因为个人更喜欢用c#后台写。大家可以尝试不同的方法解决问题,殊途同归。
分享到:
相关推荐
获取GridView中Checkbox的值
js获得Gridview中选中checkbox行的信息,当你选择GridView中某一行或某几行前面的checkbox时可以得到当前行的所有信息或部分信息。
gridview 分页保存每页的Checkbox选中的值 最后取得所选 中的Checkbox的值
6.分页,跳到下一页,记录上一页面Checkbox选中状态 7.清除Checkbox选中状态 8.跳转页面,传参选中的Checkbox对应的姓名 之前是从网上看到的保存checkbox分页选中状态,但是没有传参,自己修改了一下方法可以传参给...
GridView中checkbox全部选中实现代码,即单击顶部的全选checkbox,全选所有checkbox,全选所有行。
主要介绍了 js取得gridview中获取checkbox选中的值,本文给大家分享两段代码片段,非常不错,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了GridView中点击CheckBox选中一行来改变此行的颜色的具体实现,需要的朋友可以参考下
两层嵌套的checkbox记录选中状态,listview嵌套Gridview,Gridview嵌套Checkbox
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
GridView空间中的各种使用方法,包括GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景...
GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改变该行的背景色...
jquery实现带复选框的gridview 带项目文件 可自己修改数据源 简单易用
GridView选择某条记录 和 分页 vs2010做的示例 很简单