0

我正在用 C# 编写 asp.net 项目。

我在页面 default.aspx 中有一个按钮,当我单击该按钮然后更新页面时我需要 javascript 警报。我通过以下方式做到这一点:

protected void Button1_Click(object sender, EventArgs e)  
{  
Response.Write("<script language='javascript'>alert('OK');</script>");
Response.Redirect("default.aspx");
}

但不会发生 javascript 警报。那么,如何让 javascript 警报先出现然后更新页面呢?

4

4 回答 4

3

试试这个:

protected void Page_Load(....)
{
    this.myButton.Attributes.Add("onclick", "alert('OK'); return true;");
}

或者在 ASPX

<asp:Button runat="server" ID="myButton" onClientClick="alert('OK'); return true;" ... />

要在服务器上处理完某些内容后执行代码,请尝试以下操作:

ASPX

    <asp:ScriptManager runat="server" ID="scriptManager" />
    <asp:Button Text="text" runat="server" OnClick="dd_Click" />

背后的代码

    protected void dd_Click(object sender, EventArgs e)
    {
        // add your cool stuff
        ScriptManager.RegisterStartupScript(this, typeof(RelatedUpdatePanels), "myKey", "alert('OK');window.location='newurl.aspx';", true);
    }
于 2012-07-17T09:32:27.880 回答
3

它不起作用,因为您正在调用Response.Redirect. 在此之前在当前页面上发生的任何事情都将无效,因为新页面将在当前页面呈现之前立即重定向。

你有几个选择,但我认为你想要的是这个......

protected void Button1_Click(object sender, EventArgs e)
{
  Response.Write("<script type='text/javascript'>");
  Response.Write("alert('OK');");
  Response.Write("document.location.href='default.aspx';");
  Response.Write("</script>");
}

另一种选择是将要显示的消息存储在会话变量之类的东西中,然后在重定向后将其显示在新页面上——但这更复杂,并且还需要更新新页面。

于 2012-07-17T09:56:27.673 回答
2

尝试关注

 protected void Button1_Click(object sender, EventArgs e)  
    { 
      ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script   language='JavaScript'>alert('OK'); window.location.href = 'Default.aspx';</script>");  
    }
于 2012-07-17T09:40:37.753 回答
0

ClientScript.RegisterStartupScript(Page.GetType(), "validation", "alert('无效的用户名或密码'); document.location.href='Default.aspx';");

或者

ClientScript.RegisterStartupScript(Page.GetType(), "validation", "alert('无效的用户名或密码'); window.location.href='Default.aspx';");

于 2014-08-24T19:54:44.830 回答