如何用gridview全选并删除所有选中项
如何用gridview全选并删除所有选中项
使用c#
不用js可以实现吗?
[解决办法]
模板列绑定checkbox:
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<input type= "checkbox " id= "selectall " onclick= "select_all() ">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID= "chkSelect " runat= "server " />
</ItemTemplate>
</asp:TemplateField>
........
</Columns>
删除按钮:
<asp:Button ID= "Button2 " CssClass= "button1 " runat= "server " Text= "删 除 " />
全选JS:
function select_all(){
var a=document.getElementsByTagName( "input ");
for(var j=0;j <a.length;j++)
{
if(a[j].type== "checkbox ")
a[j].checked=document.all.selectall.checked;
}
}
后台删除操作VB:
Sub button2_click(ByVal s As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim rowindex As Int16
Dim suc As Boolean = False
Dim conn As New OleDbConnection
conn.ConnectionString = StrCon
conn.Open()
Dim strcomm As New OleDbCommand
strcomm.Connection = conn
For rowindex = 0 To GridView1.Rows.Count - 1
If CType(GridView1.Rows(rowindex).FindControl( "chkSelect "), CheckBox).Checked = True Then
strsql = "delete from shouzhi where id= " & GridView1.DataKeys.Item(rowindex).Value & " "
strcomm.CommandText = strsql
strcomm.ExecuteNonQuery()
suc = True
End If
Next
conn.Close()
strsql = ViewState( "strsql ")
BindList()
If suc = True Then
Label3.Text = "删除成功 "
Label3.ForeColor = Drawing.Color.Red
Else
Label3.Text = "未选择任何项目 "
Label3.ForeColor = Drawing.Color.Red
End If
End Sub
[解决办法]
如果在模板列里面,则checkbox的id是自己的嵌套命名的,送楼主一套自己使用的js方法
/**************************************************************
* 全部选中GridView中的CheckBox列(指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
* @param checkBoxName 模版列中的CheckBox控件ID:
*
**************************************************************/
function CheckAllWithcheckBoxName( gridViewName, checkBoxName )
{
//查找gridview的模式匹配字符串
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) ");
for(i = 0; i < document.all.length; i = i + 1)
{
if (RegString.test(document.all[i].id))
{
//获取查找到的gridView对象
var grid = document.getElementById(document.all[i].id);
//循环执行选中操作
for(i = 0; i < grid.all.length; i = i + 1)
{
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) " + checkBoxName);
if (RegString.test(grid.all[i].id))
{
grid.all[i].checked = true;
}
}
break;
}
}
return false;
}
/**************************************************************
* 全部取消选中GridView中的CheckBox列(指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
* @param checkBoxName 模版列中的CheckBox控件ID:
*
**************************************************************/
function CheckAllNoWithcheckBoxName( gridViewName, checkBoxName )
{
//查找gridview的模式匹配字符串
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) ");
for(i = 0; i < document.all.length; i = i + 1)
{
if (RegString.test(document.all[i].id))
{
//获取查找到的gridView对象
var grid = document.getElementById(document.all[i].id);
//循环执行取消选中操作
for(i = 0; i < grid.all.length; i = i + 1)
{
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) " + checkBoxName);
if (RegString.test(grid.all[i].id))
{
grid.all[i].checked = false;
}
}
break;
}
}
return false;
}
/**************************************************************
* 全部选中GridView中的CheckBox列(不指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
*
**************************************************************/
function CheckAll( gridViewName )
{
//查找gridview的模式匹配字符串
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) ");
for(i = 0; i < document.all.length; i = i + 1)
{
if (RegString.test(document.all[i].id))
{
//获取查找到的gridView对象
var grid = document.getElementById(document.all[i].id);
//循环执行选中操作
for(i = 0; i < grid.all.length; i = i + 1)
{
if (grid.all[i].type== "checkbox " )
{
grid.all[i].checked = true;
}
}
break;
}
}
return false;
}
/**************************************************************
* 全部取消选中GridView中的CheckBox列(不指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
*
**************************************************************/
function CheckAllNo( gridViewName )
{
//查找gridview的模式匹配字符串
var RegString = new RegExp( "(.*?) " + gridViewName + "(.*?) ");
for(i = 0; i < document.all.length; i = i + 1)
{
if (RegString.test(document.all[i].id))
{
//获取查找到的gridView对象
var grid = document.getElementById(document.all[i].id);
//循环执行取消选中操作
for(i = 0; i < grid.all.length; i = i + 1)
{
if (grid.all[i].type== "checkbox " )
{
grid.all[i].checked = false;
}
}
break;
}
}
return false;
}
/**************************************************************
* 前台CheckBox控件,全部选中或取消GridView中的CheckBox列(不指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
*
**************************************************************/
function CheckBoxCheckAll(gridViewName)
{
var chk = document.getElementById(event.srcElement.id);
if ( chk.checked )
{
CheckAll( gridViewName );
}
else
{
CheckAllNo( gridViewName );
}
}
/**************************************************************
* 前台CheckBox控件,全部选中或取消GridView中的CheckBox列(指定checkBox的ID)
*
* @param gridViewName GridView控件ID:
* @param checkBoxName 模版列中的CheckBox控件ID:
*
**************************************************************/
function CheckBoxCheckAllWithcheckBoxName(gridViewName, checkBoxName)
{
var chk = document.getElementById(event.srcElement.id);
if ( chk.checked )
{
CheckAllWithcheckBoxName( gridViewName, checkBoxName );
}
else
{
CheckAllNoWithcheckBoxName( gridViewName, checkBoxName );
}
}