2017-04-12 35 views
0

我有一个简单的asp.net WebForms应用程序有两种形式:Main.aspx和Card.aspx。 在卡的形式我有保存按钮,它具有以下click事件:如何在asp.net中的按钮点击事件显示JavaScript警报?

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()方法),并重定向到的主要形式。 虽然它保存数据并重定向到页面,但不显示警报。 应显示警报的代码适用于页面加载事件,但不适用于按钮单击事件。是什么原因?

回答

1

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

脚本作品在pageLoad的事件,因为没有重定向发生。(我假设,因为对于pageLoad的不提供的代码)

+0

谢谢你的非常快速的答案。 我注释掉了我的Response.Redirect()方法,现在我的页面显示了警报。但我不明白为什么它不适用于重定向方法。由于重定向方法位于警报显示方法之后。 而我如何显示警报然后重定向? – saidfagan

+0

你基本上是从服务器端注入JavaScript代码来显示警报。 JS代码在客户端执行。但是由于服务器端的重定向,您没有给客户端加载选项。要显示脚本然后重定向,您必须在客户端执行重定向。因此,与警报脚本一起,您必须添加以下代码:window.location.href =“/ Main.aspx”;并从服务器端删除重定向。 – Boney

+0

我几乎完全理解了这个问题并解决了它。非常感谢你! – saidfagan

相关问题