在ASP.NET中显示成功消息

时间:2016-02-04 13:53:10

标签: c# asp.net

当我删除转发器中所有选中的复选框时 它应该显示成功消息。以下代码无效。我该如何解决这个问题?

protected void btnDeleteAll_Click(object sender, EventArgs e)
{
    for (int i = 0; i < rpCategory.Items.Count; i++)
    {
        CheckBox CheckBox1 = (CheckBox)
        rpCategory.Items[i].FindControl("checkBoxApproved");

        if (((CheckBox)rpCategory.Items[i].FindControl("checkBoxApproved")).Checked)
        {
            CheckBox CheckBox = (CheckBox)rpCategory.Items[i].FindControl("checkBoxApproved");

            SqlConnection cnn = system.baglan();
            SqlCommand cmd = new SqlCommand("DELETE FROM TBLCATEGORIES where  SubCategoryID is null", cnn);
            cmd.ExecuteNonQuery(); 

            DeleteMsg.Visible = true;

            Response.Redirect("Categories.aspx");
            cnn.Close();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您必须了解何时 您正在显示提醒。

您正在更改正在服务器上执行请求的页面中控件的可见性,并立即将用户重定向到另一个页面,因此永远不会呈现该控件。

或者在显示控件后重定向用户(每个示例添加一个接受按钮并在用户点击时重定向)或者您只是将变量传递给第二页并指示它显示消息。

答案 1 :(得分:0)

您正在将用户重定向到新页面,因此您在页面上处理回发的任何内容都不会显示。

显示消息的一种方法是将其作为参数传递给下一页。如果有要显示的消息,请检查该页面。

因此Response.Redirect("Categories.aspx");将成为Response.Redirect("Categories.aspx?Message=Deleted Stuff");

然后确保在Categories.aspx页面上有一个控件来显示该消息。在你的情况下,像<div runat="server" id="DeleteMsg"></div>。在Categories.aspx的Page_Load中执行以下操作:

if (Request["Message"] != null)
{
    // Note that you shouldn't just print anything from the URL here but this should get you started.
    DeleteMsg.InnerText = Request["Message"];
    DeleteMsg.Visible = true;
}
else
{
    DeleteMsg.Visible = false;
}