Asp.net 显示进度时删除按钮

Asp.net 显示进度时删除按钮,asp.net,vb.net,ajax,Asp.net,Vb.net,Ajax,我在ASP.NET wep应用程序表单上有一个按钮,单击该按钮时,该按钮将关闭并向第三方web服务发布信息 我有一个与按钮关联的UpdateProgress 当进度可见时(即服务器尚未完成操作),如何禁用/隐藏按钮 我希望这样做可以阻止用户在发送信息时再次单击(因为这会导致发送重复的信息)最简单的方法是在整个页面上放置一个半透明的png,这样他们就无法将事件发送到下面的页面。在我看来,它看起来也不错 您可以在各种AJAX工具包的模态对话框实现和lightbox中看到这种情况 如果您不喜欢这种外观

我在ASP.NET wep应用程序表单上有一个按钮,单击该按钮时,该按钮将关闭并向第三方web服务发布信息

我有一个与按钮关联的UpdateProgress

当进度可见时(即服务器尚未完成操作),如何禁用/隐藏按钮


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

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

您可以在各种AJAX工具包的模态对话框实现和lightbox中看到这种情况


如果您不喜欢这种外观,只需使其几乎完全透明(完全透明的alpha值1不明显)。

您必须将javascript方法挂接到页面请求管理器(Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest)。下面是我用来隐藏按钮的代码,我更喜欢禁用它们(请参见底部链接中的操作)

ASP.NET


.

我还为此写了一篇博文,希望能对您有所帮助:


干杯:)

被接受的答案很有效。我唯一能做的就是在声明scriptmanager之前首先放置javascript代码。这导致PageRequestManager的.GetInstance返回null。移动到页面的末尾有效。谢谢你的帮助!
<div id="ButtonBar">
  <asp:Button id= ............
</div>
<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>