【问题标题】:How to display alert popup before execute next line in asp.net c#如何在asp.net c#中执行下一行之前显示警报弹出窗口
【发布时间】:2016-01-29 11:49:45
【问题描述】:

我想在我的 Web 应用程序中显示警报/消息。我尝试了下面的代码,但在所有代码行执行后都会显示警报。

ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Only alert Message');", true); 

但是我想在代码执行的中间显示 i,如果可以的话,请帮助我..

【问题讨论】:

  • 你不能。 RegisterStartupScript 如您所见,将注册一个启动脚本,而不是调用它。此外,仅当客户端收到并处理响应时才会调用此脚本。您可以尝试针对您的方案的解决方法。创建一个隐藏按钮,并定义一个在警报到该按钮后要处理的函数。然后在您的脚本中,显示警报并调用单击此按钮。
  • @Rajesh 你好 rajesh 感谢您的回复。你能详细解释一下吗..
  • 正如 rajesh 提到的,这是不可能的,因为脚本在客户端运行,这意味着 Asp.net 必须呈现响应,并且还会注册脚本(如果提供)并将其返回给客户端只有客户端才能运行脚本。
  • @viru 是否有任何替代本机。
  • 阅读我的描述。我已经在其中提到了一种解决方法。

标签: javascript c# asp.net .net


【解决方案1】:

正如我已经评论过的:

你不能。如您所见,RegisterStartupScript 将注册一个启动脚本而不是调用它。此外,仅当客户端收到并处理响应时才会调用此脚本。您可以尝试针对您的方案的解决方法。创建一个隐藏按钮,并定义一个在警报到该按钮后要处理的函数。然后在您的脚本中,显示警报并调用单击此按钮。

您的函数可能如下所示:

public string myFunction(){
  int a = 123;
  .
  .
  .

  ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Only alert Message');", true); 

  .
  .
  .
  .
  .
  return str;

}

你必须把这个函数分成两部分:

public string myFunction1(){
  int a = 123;
  .
  .
  .

  ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Only alert Message');", true); 

  return str;
}

public string myFunction2(){
  .
  .
  .
  .
  .

}

并将myFunction1 关联到原始事件,将myFunction2 关联到隐藏按钮。然后将您的脚本更新为:

ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Only alert Message'); document.getElementById('<% hiddenBtn.clientId %>').click()", true); 

这将调用剩余的代码和流程逻辑。

注意 这是一个解决方法。理想情况下,您应该尝试拆分功能并尝试使用后台处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2017-12-06
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多