显示进度时删除按钮

时间:2020-03-06 14:52:18  来源:igfitidea点击:

我在ASP.NET wep申请表上有一个按钮,单击该按钮后会消失,并向第三方Web服务发布信息。

我有一个与按钮关联的UpdateProgress。

在看到进度时(即服务器尚未完成操作)如何禁用/隐藏按钮

我正在考虑这样做,以阻止用户在发送信息时再次单击(因为这会导致发送重复的信息)

解决方案

最简单的方法是在整个页面上放置半透明的png,然后它们就无法将事件发送到下面的页面。在我看来,它看起来也不错。

我们可以在各种AJAX工具箱的模式对话框实现中以及在lightbox中看到这种情况。

如果我们不喜欢它的外观,则只需使其几乎完全透明即可(完全透明的Alpha值1并不明显)。

我们必须将javascript方法连接到页面请求管理器(Sys.WebForms.PageRequestManager.getInstance()。add_initializeRequest)。这是我用来隐藏按钮的代码,我希望禁用它们(请参阅底部的链接中的操作)。

ASP.NET

<div id="ButtonBar">
  <asp:Button id= ............
</div>

Java脚本

<script language="javascript">
  // Get a reference to the PageRequestManager.
  var prm = Sys.WebForms.PageRequestManager.getInstance();

  // Using that prm reference, hook _initializeRequest
  // and _endRequest, to run our code at the begin and end
  // of any async postbacks that occur.
  prm.add_initializeRequest(InitializeRequest);
  prm.add_endRequest(EndRequest);

  // Executed anytime an async postback occurs.
  function InitializeRequest(sender, args) 
  {
    $get('ButtonBar').style.visibility = "hidden";
  }

  // Executed when the async postback completes.
  function EndRequest(sender, args) 
  {
    $get('ButtonBar').style.visibility = "visible";
  }
</script>

有关更多信息,请参见Dave Ward为什么我的ASP.NET AJAX表单从不提交两次。

我还写了一篇关于此的博客文章,希望对我们有所帮助:
http://www.fitnessconnections.com/blog/post/2008/01/Disabling-a-submit-button-UpdatePanel-Update-method.aspx

干杯:)