将“请等待”javascript模式添加到aspx DetailView插入按钮

时间:2016-07-24 22:40:48

标签: javascript c# asp.net

使用aspx DetailsView的插入功能。想要在处理新记录并将其添加到数据库时显示javascript模式弹出窗口。我可以在DetailsView_ItemCommand中挂钩按钮。它不起作用,所以我开始尝试通过简单地显示一个javascript Alert()弹出窗口来弄清楚最新情况。但是,即使工作也无法做到这一点。这是相关的DetailsView_ItemCommand:

    protected void DetailsViewInsertFPL_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
    if (e.CommandName == "Insert")
    {
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "waitMessage", "alert('Please wait while your request is processed');", true);
        return;
    }
}

插入记录后,会有一个重定向到另一个aspx页面。

有人能引导我走上正确的道路吗?我将在旁边查看一些aspx页面和DetailsView属性,看看有没有设置正确的东西。

2 个答案:

答案 0 :(得分:0)

你不能使用

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "waitMessage", "alert('Please wait while your request is processed');", true);

然后是

response.redirect("toanotherpage.aspx");

ScriptManager.RegisterStartupScript将在页面中的所有元素之后(在表单的结束标记之前)呈现脚本,因此当您在同一代码块上使用响应重定向时,不会执行它。

要实现您的目标,您可以执行以下解决方案之一,

  1. 创建一个Javascript并为您提供重定向或此实例 在您想要的提醒消息之后有window.location
  2. 使用其他方法(如bootstrap)创建一个弹出模式,在模态上声明一个带有response.redirect代码的按钮。

答案 1 :(得分:0)

Alex Kudryashev建议将DetailView包含在asp:UpdatePanel中并使用asp:UpdateProgress显示"请等待您的请求被处理"给了我在这种情况下我需要的解决方案。

不常用户在这里,所以不确定如何给Alex分数,因为他的建议是评论而不是答案。在这种情况下,请随时告诉我如何处理投票。

感谢!!!!我已经把头撞到了墙上几天才让这个工作起来。