您的位置:首页 > 其它

复选框全选、批量删除

2015-08-13 20:38 435 查看


// 脚本全选

<head runat="server">
<title></title>
<script type="text/javascript">
function selectAll(chk) {
var checkboxs = document.getElementsByTagName("input");
for (var i = 0; i < checkboxs.length; i++) {
if(checkboxs[i].type == "checkbox"){
checkboxs[i].checked = chk.checked;
}
}
}
</script>
</head>


<HeaderTemplate>
<asp:CheckBox ID="cboSelectAll" Text="全选" runat="server" AutoPostBack="True" oncheckedchanged="cboSelectAll_CheckedChanged" />|
<input type="checkbox" id="htmlCboSelectAll" onclick="selectAll(this)" />JS全选 <br />
<asp:LinkButton ID="lbDeleteSelected" runat="server"
onclick="lbDeleteSelected_Click" OnClientClick="return confirm('确定要批量删除吗?')">批量删除</asp:LinkButton>
</HeaderTemplate>


//批量删除
protected void lbDeleteSelected_Click(object sender, EventArgs e)
{
bool hasDeleteRow = false;//是否有选中要删除的项
StringBuilder bookIDs = new StringBuilder("delete from BookInfo where bookid in(");
//遍历GridView中的行,获取被选中行的主键值
foreach (GridViewRow row in this.gvBookInfos.Rows)
{
if (((CheckBox)row.FindControl("cboSelect")).Checked)
{
hasDeleteRow = true;
int bookID = Convert.ToInt32(this.gvBookInfos.DataKeys[row.RowIndex].Value);
bookIDs.Append(bookID+",");
}
}
//没有选中行时,给出相应提示
if (!hasDeleteRow)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('请选择要删除的选项!')", true);
return;
}
string ids = bookIDs.ToString();
ids = ids.Substring(0,ids.Length-1)+")";
int result = DBUtil.ExecuteSql(ids);
if (result > 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('批量删除成功!')", true);
GridViewBind();
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('批量删除失败!')", true);
}
}


// 复选框全选状态

protected void cboSelectAll_CheckedChanged(object sender, EventArgs e)
{
//先获取到全选复选框的状态
bool state = ((CheckBox)this.gvBookInfos.HeaderRow.FindControl("cboSelectAll")).Checked;
//再设置每一个项中的复选框状态
foreach (GridViewRow row in this.gvBookInfos.Rows)
{
((CheckBox)row.FindControl("cboSelect")).Checked = state;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: