当我删除转发器中所有选中的复选框时 它应该显示成功消息。以下代码无效。我该如何解决这个问题?
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();
}
}
}
答案 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;
}