GridView与CheckBox结合实现多选删除

js脚本代码(实现全选):
function SelectAll() {
//获取GridView中全部input对象集合,“GridView.ClientID”是获得经服务器处理后经过更改的id
var obj = document.getElementByIdx_xx_x_x_x("<%=GridView.ClientID%>").getElementsByTagName_r("input"); //注意此处代码在本博文发布时,新浪博客会自动更改,请自行更改

//遍历input对象,因为input对象类型type只有checkbox所以不用判断。i=1是要去掉表头的input对象
for (var i = 1; i < obj.length; i++) {
if (obj[i].checked == false) {
obj[i].checked = true;
}
else {
obj[i].checked = false;
}
}
//如果input对象类型type还有其他类型(如text、button等),则再增加个判断即可
//for (var i = 1; i < obj.length; i++) {
// if (obj[i].type == "checkbox"){
// if (obj[i].checked == false) {
// obj[i].checked = true;
// }
// else {
// obj[i].checked = false;
// }
// }
//}
}

aspx页面代码:
<asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" />
<asp:GridView ID="GridView1" runat="server" DataKeyNames="id">
<Columns>
<asp:TemplateField ItemStyle-Width="60" ItemStyle-HorizontalAlign="Center">
<HeaderTemplate>
<input id="chkHeader" type="checkbox" οnclick="SelectAll();" />选择
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<-- 其他列略,CheckBox控件我放在了首列,也建议大家这么做,如果没在首列,要更改后台cs文件代码 -->
</Columns>
</asp:GridView>

后台cs代码:
protected void btnDelete_Click(object sender, EventArgs e)
{
bool Choose = false; //用于标记GridView中任意CheckBox控件是否被选中
bool Wrong = false; //用于标记删除GridView中某一行的数据时是否失败
string msg = ""; //用于记录当删除失败时存储的错误信息

//遍历GridView所有行
CourseManage m_CourseManage = new CourseManage(); //此为Bll层类,根据你的需要自行更改
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//如果某一行的CheckBox被选中,则执行删除操作
CheckBox chk = (CheckBox)(GridView1.Rows[i].Cells[0].FindControl("chkItem"));
if (chk.Checked == true)
{
Choose = true;
//获取要被删除的记录id
int id = Convert.ToInt32(GridView1.DataKeys[i].Value);
if (m_CourseManage.Delete(id) == false) //请自行更改
{
Wrong = true;
msg = msg + "第" + (i + 1) + "行删除失败!";
continue;
}
}
}

//校验
if (Choose == false)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('没有任何选项被选中,无法删除!');</script>");
return;
}
if (Wrong == true)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('" + msg + "请联系管理员');</script>");
return;
}
GridView1.DataSource = m_CourseManage.SelectAll(); // 自行更改
GridView1.DataBind();

}

原文地址:http://blog.sina.com.cn/s/blog_8278b1800100wzdv.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值