【问题标题】:How to show JavaScript alert on button click event in asp.net?如何在 asp.net 中的按钮单击事件上显示 JavaScript 警报?
【发布时间】:2017-04-12 08:03:19
【问题描述】:

我有一个简单的 asp.net WebForms 应用程序,它有两个表单:Main.aspx 和 Card.aspx。 在卡片表单中,我有保存按钮,该按钮具有以下点击事件:

    protected void buttonSave_Click(object sender, EventArgs e)
    {
        if (canSave)
        {
            string script = String.Format("alert(\"{0}\");", "Successfully saved");
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alertMessage", script, true);
            Save();
            Response.Redirect("~/Main.aspx");
        }
    }

因此,它应该显示警报、保存数据(Save() 方法)并重定向到主窗体。 尽管它会保存数据并重定向到页面,但它不会显示警报。 应该显示警报的代码适用于页面加载事件,但不适用于按钮单击事件。是什么原因?

【问题讨论】:

    标签: asp.net .net webforms


    【解决方案1】:

    脚本在 Card.aspx 的客户端执行。 由于在服务器端本身您会重定向到 Main.aspx,因此脚本不会执行,因此不会显示警报。

    脚本在 PageLoad 事件中起作用,因为没有发生重定向。(我假设因为没有为 PageLoad 提供代码)

    【讨论】:

    • 感谢您的快速答复。我注释掉了我的 Response.Redirect() 方法,现在我的页面显示警报。但我不明白为什么它不适用于重定向方法。由于重定向方法位于警报显示方法之后。以及如何显示警报然后重定向?
    • 您基本上是从服务器端注入 javascript 代码来显示警报。 JS 代码在客户端执行。但是由于服务器端的重定向,您没有为客户端提供加载选项。要显示脚本然后重定向,您必须在客户端进行重定向。因此,与警报脚本一起,您必须添加以下代码:window.location.href = "/Main.aspx";并从服务器端删除重定向。
    • 我几乎完全理解了这个问题并解决了它。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 2015-06-04
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多