Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多重删除功能只删除中继器控件中的一行_C#_Asp.net_Repeater - Fatal编程技术网

C# 多重删除功能只删除中继器控件中的一行

C# 多重删除功能只删除中继器控件中的一行,c#,asp.net,repeater,C#,Asp.net,Repeater,我有两个repeater控件,一个在另一个内部,实际上我显示的是两个不同表中的内容,我为每行添加了复选框,以使用单键单击删除多行,但在选中多个复选框后,delete query一次只删除一行。我只是在repeater控件下添加了checkobx,我试图找出异常,但堆栈没有显示它!!以下是我的代码隐藏: protected void btnDeleteNews_Click(object sender, EventArgs e) { foreach (RepeaterItem item i

我有两个repeater控件,一个在另一个内部,实际上我显示的是两个不同表中的内容,我为每行添加了复选框,以使用单键单击删除多行,但在选中多个复选框后,delete query一次只删除一行。我只是在repeater控件下添加了checkobx,我试图找出异常,但堆栈没有显示它!!以下是我的代码隐藏:

protected void btnDeleteNews_Click(object sender, EventArgs e)
{

    foreach (RepeaterItem item in rptMainBlock.Items)
    {

        if ((item.FindControl("chkDel") as CheckBox).Checked)
        {
            string newsId = (item.FindControl("lblNewsId") as Label).Text;
            cmd = new SqlCommand("DELETE FROM newsImageGal where newsId IN (SELECT newsId from news where newsId=@newsId);DELETE from news where newsId=@newsId", con);
            con.Open();
            cmd.Parameters.AddWithValue("@newsId", newsId);
            cmd.ExecuteNonQuery();

            this.Page.ClientScript.RegisterStartupScript(this.GetType(), "ex", "alert('Selected News Deleted Successfully');", true);
            con.Close();
            Response.Redirect("deleteNews.aspx");

        }
        else
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), "ex", "alert('No Data Deleted');", true);
        }
    }

}

请让我知道发生这种情况的原因。

问题是您正在使用以下命令在循环中重定向:

foreach (RepeaterItem item in rptMainBlock.Items)
{
    // delete ..
    Response.Redirect("deleteNews.aspx");  // aborts this thread and ends the page's life-cycle
}
我假设你只想在最后做一次:

foreach (RepeaterItem item in rptMainBlock.Items)
{
    // delete ..
}
Response.Redirect("deleteNews.aspx");
但是,
警报(“所选新闻已成功删除”)在重定向到另一个页面时也是毫无意义的