日期:2014-05-17  浏览次数:20371 次

全选删除的问题,谁来帮下我感谢了。
protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (DataListItem dli in this.DataList1.Items)
        {
            Label lab = (Label)dli.FindControl("Label1");
            bool b = ((CheckBox)dli.FindControl("CheckBox3")).Checked;
            if (b)
            {
                int id = Convert.ToInt32(lab.Text);
                BLL.Article bll = new BLL.Article();
                int num = bll.Delete(id);
                if (num > 0)
                {
                    Response.Write("<script>alert('删除成功');</script>");

                }
                else
                {
                    Response.Write("<script>alert('删除失败');</script>");
                }
            }


        }
        Bindlist();
    }
我这个是全选删除,先循环查找出被选中的复选框然后获取ID来一条条删除,问题就是删除一条弹出一个删除成功有什么办法让他不管删除多少条只弹出一个删除成功对话框吗

------解决方案--------------------
两个方法:
1、先把要删除的id都记录下来,然后提交一起批量删除;
2、先搞一个bool变量,如果有删除失败,则变量为false,否则为true
  把那个提示语句移到循环外面,根据这个bool变量来判断是提示成功还是失败,这样就只有一次提示了
------解决方案--------------------
提示放在循环外边也可以
------解决方案--------------------
int num=0;  
foreach (DataListItem dli in this.DataList1.Items)
{
    Label lab = (Label)dli.FindControl("Label1");
    bool b = ((CheckBox)dli.FindControl("CheckBox3")).Checked;
if (b)
{
    int id = Convert.ToInt32(lab.Text);
    BLL.Article bll = new BLL.Article();
    num = bll.Delete(id);
                
}


}

if (num > 0)
{
    Response.Write("<script>alert('删除成功');</script>");
}
else
{
     Respo