首先我要说明的是:1.实现GridView中CheckBox全选:我采用JavaScript在前台实现。
2.实现提交CheckBox选中的相关内容:采用的是在后台遍历GridView中的每行,
筛选出CheckBox选中项,再进行逻辑处理。
1.在GridView中加入<asp:TemplateField>,在<HeaderTemplate>中放一个HTML控件CheckBox进行全选,在<ItemTemplate>中放一个服务器控件CheckBox来选中GridView中每一行。
例如:
<asp:TemplateField>
<HeaderTemplate>
<input type="checkbox" id="chkAll" name="chkAll" οnclick="Check(this,'^GridView1')" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
其中HTML控件中的onclick是实现CheckBox全选的逻辑。
下面是οnclick="Check(this,'^GridView1')"的代码:
<script language="javascript" type="text/javascript">
function Check(parentChk, pattern) {
var elements = document.getElementsByTagName("INPUT");
for (i = 0; i < elements.length; i++) {
if (parentChk.checked == true) {
if (IsCheckBox(elements[i]) && IsMatch(elements[i].id, pattern)) {
elements[i].checked = true;
}
}
else {
if (IsCheckBox(elements[i]) && IsMatch(elements[i].id, pattern))
{ elements[i].checked = false; }
}
}
}
function IsMatch(id, pattern) {
var regularExpression = new RegExp(pattern);
return id.match(regularExpression);
}
function IsCheckBox(chk) {
return (chk.type == 'checkbox');
}
</script>
这个方法希望您自己品味。
2.接下来是提交CheckBox选中项
在后台提交按钮中加入下面代码:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string str="";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//精华都在这条if语句上
if (((CheckBox)GridView1.Rows[i].Cells[0].Controls[1]).Checked == true)
{
//进行逻辑处理的代码
}
}
}
这里面Row[i]是GridView的每行,Cells[0]是每行的第几个单元格,Controls[1]是服务器控件的子控项。
不知道您看懂了没?写的不好,还请多指教!