您的位置:首页 > 其它

GridView与CheckBox结合实现多选删除

2012-12-03 16:02 381 查看
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" onclick="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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: