3

我有一个页面,当我们单击创建按钮时,它会发送 Web 请求以获取所有链接,但这意味着虽然需要一些时间才能使所有链接正常工作,但当时我想加载图像

 Button ID="btnRender" runat="server" Text="Page Render" OnClick="btnRender_Click" />
        <asp:Button ID="btn_submit" runat="server" Text="Submit" OnClientClick="javascript:finda();" />
        <asp:Button ID="btn_createlink" runat="server" Text="Create link" OnClick="btn_createlink_Click" />

当用户单击图像或文本时,我想调用 btn_createlink_Click" 按钮

4

3 回答 3

7

没有 Ajax 工具:
这将在按钮单击时调用加载图像并在页面加载完成时隐藏图像。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
      function ShowProgressBar() {
        document.getElementById('dvProgressBar').style.visibility = 'visible';
      }

      function HideProgressBar() {
        document.getElementById('dvProgressBar').style.visibility = "hidden";
      }
    </script>
</head>
<body onload="javascript:HideProgressBar()" >
    <form id="form1" runat="server">
     <div>
  <div style="float:left;">
      <asp:Button ID="btn_createlink" runat="server" Text="Create link" OnClick="btn_createlink_Click" OnClientClick="javascript:ShowProgressBar()" />
  </div>
  <div ID="dvProgressBar" style="float:left;visibility: hidden;" >
        <img src="/images/progress_bar.gif" /> resolving address, please wait...
  </div>
  <br style="clear:both" />
</div>
    </form>
</body>
</html>


于 2013-04-09T06:19:41.700 回答
0

您可以借助 BackgroundWorker 组件的多线程来实现这一点。看看多线程与Backgroundworker

后台工作者 C# 后台工作者

还有这个

您可以在 _Dowork 方法中调用您的 loading.gif 图像。希望这可以帮助。

于 2013-04-09T06:06:47.843 回答
0

编辑:

您可能想看看 HttpResponse.Flush

强制将所有当前缓冲的输出发送到客户端。在请求处理过程中,可以多次调用 Flush 方法。

请参阅以下链接:HttpResponse.Flush 方法

您可以显示加载图像并在每 X 个加载的链接中调用此方法。

老的:

由于问题缺少信息,我假设您正在进行 Ajax 调用,以便从服务器获取链接集合并更新表。

我建议您使用 jQuery 并按照之前关于 SO 的答案,以便在发出请求时显示动画加载微调器并在完成时隐藏它。

请参阅链接:Jquery Ajax 加载图像

于 2013-04-09T06:07:27.453 回答