代码之家  ›  专栏  ›  技术社区  ›  David Brunelle

ASP.NET忙指示灯

  •  0
  • David Brunelle  · 技术社区  · 14 年前

    当我试着这样做的时候:

    Public Sub BtnEnvoyer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEnvoyer.Click
        BtnEnvoyer.Enabled = False
        LblStatus.Visible = True
        LblStatus.ForeColor = Drawing.Color.ForestGreen
        LblStatus.Text = "Envoi en cours..."
    
        SendEmail()
    
    End Sub
    
    Private Sub EnvoyerCourriel()
        ' Do some work 
    
        LblStatus.Text = "Done!"
        BtnEnvoyer.Enabled = True
    End Sub
    

    我只看到dn的结果,中间什么都没有。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Community THelper    7 年前

    几周前我问了一个非常类似的问题: ASP.NET Custom Button Control - How to Override OnClientClick But Preserve Existing Behaviour?

    我创建的类可以放到任何窗体上,并且可以防止双击。

    最好的办法是禁用按钮(就像我所做的那样),并显示一个隐藏的DIV,其中包含一个动画gif(AJAX加载图像)。

        2
  •  1
  •   Community THelper    7 年前

    你可能会发现关于这个问题的讨论很有帮助:

    ASP.Net double-click problem

    解决方案只处理这个按钮,但是您可以将这个想法扩展到禁用更多的DOM,并在客户端click函数中用消息显示一个隐藏的div。

        3
  •  1
  •   Antony Scott    14 年前

    您应该能够使用一些jQuery来查找按钮,并禁用它们。当我过去这样做的时候,我也把按钮的文本改成了“请稍候…”。我连接了客户端onclick和按钮的postback。

    这对我来说非常好,因为它阻止了按钮再次被按下,也给了用户一个即时的视觉反馈,他们已经成功地点击了按钮。

    如果你需要一个例子,我相信我可以为你找出一些代码。

        4
  •  0
  •   recursive    14 年前

    在html中:

    <head>
      <script type="text/javascript">
        function ShowWait() {
          document.getElementById('labelspan').innerText = 'Loading...';
        }
      </script>
    </head>
    

    在页面设置中:

    BtnEnvoyer.OnClientClick = "ShowWait();";
    

    当按下按钮时, ShowWait