显示进度时删除按钮

时间:2008-09-29 12:08:13

标签: asp.net vb.net ajax

我在ASP.NET wep应用程序表单上有一个按钮,当点击该按钮时,将信息发布到第三方Web服务。

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

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

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

3 个答案:

答案 0 :(得分:3)

您必须将javascript方法挂钩到页面请求管理器(Sys.WebForms.PageRequestManager.getInstance()。add_initializeRequest)。这是我用来隐藏按钮的代码,我希望禁用它们(看看底部的链接是如何完成的)。

ASP.NET

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

的Javascript

<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>

Why my ASP.NET AJAX forms are never submitted twice by Dave Ward了解详情。

答案 1 :(得分:1)

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

在各种AJAX工具包和灯箱的模态对话框实现中,您会看到这种情况。

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

答案 2 :(得分:0)

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

干杯:)