【问题标题】:How to put loading image when something is processing?处理某事时如何放置加载图像?
【发布时间】:2013-03-31 10:24:20
【问题描述】:

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

 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" 按钮

【问题讨论】:

  • 你在做什么样的网络请求?阿贾克斯?
  • 获取链接的httpweb请求

标签: c# asp.net


【解决方案1】:

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


【讨论】:

  • 你是对的,但是 我想在这个按钮上调用那个图像跨度>
  • 我找到了很多解决方案,只有你的解决方案简单可行,谢谢。
【解决方案2】:

您可以在多线程和 BackgroundWorker 组件的帮助下实现这一点。 看看Multithreading with Backgroundworker

Backgroundworker C# backgroundworker

and this

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

【讨论】:

  • 对不起兄弟(validator.w3.org/checklink)所以当用户点击检查它需要一些时间来检查链接时我想要加载图像
【解决方案3】:

编辑:

你可能想看看 HttpResponse.Flush

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

查看以下链接:HttpResponse.Flush Method

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

旧:

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

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

查看链接:Jquery Ajax Loading image

【讨论】:

  • 对不起兄弟(validator.w3.org/checklink)所以当用户点击检查它需要一些时间来检查链接时我想要加载图像。但它不是 ajax
  • @hitarth 我根据您的评论编辑了我的答案。我建议使用 HttpResponse.Flush 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多