【问题标题】:ASP.NET Busy indicatorASP.NET 忙指示器
【发布时间】:2010-09-08 19:56:00
【问题描述】:

有没有办法让 ASP.net 页面(使用 AJAX)显示一些繁忙的指示器(只是一个标签就可以了),同时禁用一些按钮(以防止双击)然后执行工作。在工作结束时,标签会发生变化以指示新的状态。

当我尝试这样做时:

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 结果,中间什么都没有。 如果需要,我不介意使用 javascript 使其工作,或者其他任何事情。

【问题讨论】:

    标签: asp.net ajax


    【解决方案1】:

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

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

    基本上,我将按钮设置为“禁用”,但没有什么能阻止您将其扩展为调用您自己的客户端代码。

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

    【讨论】:

      【解决方案2】:

      您可能会发现有关此问题的讨论很有帮助:

      ASP.Net double-click problem

      解决方案仅处理按钮,但您可以将想法扩展到禁用更多 DOM 并显示隐藏的 div 与您的消息作为客户端单击功能的一部分。

      【讨论】:

        【解决方案3】:

        您应该能够使用一些 jQuery 来查找按钮并禁用它们。当我过去这样做时,我还将按钮的文本更改为“请稍候...”。我将客户端 onclick 与按钮的回发连接起来。

        它对我来说非常有用,因为它阻止了按钮再次被按下,并且还为用户提供了他们已成功单击按钮的即时视觉反馈。

        如果您需要一个示例,我相信我可以为您挖掘一些代码。

        【讨论】:

          【解决方案4】:

          如果您希望在回发结果返回之前更新页面,则必须使用 javascript,类似这样的东西。这是一种通用方法,您可能应该根据需要进行自定义。

          在您的 html 中:

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

          在页面设置中:

          BtnEnvoyer.OnClientClick = "ShowWait();";
          

          然后,当单击按钮时,ShowWait 将在实际处理回发时应用您想要的任何视觉效果。一旦准备好,整个页面将被回发的结果替换。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-06-11
            • 2017-05-25
            • 2018-11-04
            • 1970-01-01
            • 2012-02-04
            • 2013-04-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多