在 asp.net 个网络表单上更新或显示进度标签
Update or show progress label on asp.net web forms
我正在 asp.net 中创建带有文件附件的 Web 表单项目。
我放置了一个标签控件来指示流程的进度
(例如 'Starting process',几秒钟后更改为 'Reading 1st record file',最终标签 'File process complete!')。
我怎样才能实现这个例程?这需要刷新页面吗?
期待您的回复。谢谢。
好的,好的开始过程或者说一个像这样的漂亮的gif:
所以,第一个消息,或者动画是没有问题的。
其他信息?嗯,除非你伪造这个,否则要困难得多。
所以,举个简单的例子,假设我们有一个按钮需要很长时间(比如 4 秒)。
所以,我们说这个按钮:
<asp:Button ID="cmdProcess" runat="server" Text="Big process"
CssClass="btn"
OnClick="cmdProcess_Click"
OnClientClick="showwait()" />
<script>
function showwait() {
$("#MyProgress").show()
}
</script>
<div id="MyProgress" style="display:none">
<h2>Working</h2>
<img src="../Content/wait2.gif" style="height: 67px; width: 80px" />
</div>
因此,当您单击上面的按钮时,它会 运行 一个客户端例程(显示我们的 div),然后是服务器端代码,如下所示:
protected void cmdProcess_Click(object sender, EventArgs e)
{
Thread.Sleep(4000);
}
所以,你有这个:
当你点击按钮时,你会看到这句话持续 4 秒:
所以,这很简单,因为我们只显示 div。
还有奖金?好吧,既然按钮是post-back,那么当按钮代码完成后,客户端当然会重新刷新,现在我们的“延迟div”不再显示了。
但是,如果您想更改消息,请说:
工作第 1 部分......
然后工作第 2 部分 .....
然后我将开始这个“漫长”的过程作为网络方法。这可能很困难,因为您调用的任何 Web 方法都不会使用所有页面控件。
通常,您可以(可能)在 post 后面,启动一个新线程,传递值,然后有一个计时器(客户端)调用一个网络方法 return是状态。
并且该计时器必须“检查”一些状态值(比如每隔一秒),并从服务器获取一些值。由于我们没有(而且真的不能有)额外的 post-backs,那么该 web 方法将必须获取该状态消息。该 Web 方法可能必须 return 来自 session() 的一些状态。
所以当你点击一个按钮时显示“一个”消息?
很简单。
上传过程的进度可以使用 ajax 上传而不是常规上传来实现。您需要创建一个 Web 服务,它将接受文件作为输入,然后 post 接受它。完成后可以隐藏进度条。
一些解决方案是:
File upload progress bar with jQuery
Upload Progress Bar in PHP
我正在 asp.net 中创建带有文件附件的 Web 表单项目。 我放置了一个标签控件来指示流程的进度 (例如 'Starting process',几秒钟后更改为 'Reading 1st record file',最终标签 'File process complete!')。 我怎样才能实现这个例程?这需要刷新页面吗?
期待您的回复。谢谢。
好的,好的开始过程或者说一个像这样的漂亮的gif:
所以,第一个消息,或者动画是没有问题的。
其他信息?嗯,除非你伪造这个,否则要困难得多。
所以,举个简单的例子,假设我们有一个按钮需要很长时间(比如 4 秒)。
所以,我们说这个按钮:
<asp:Button ID="cmdProcess" runat="server" Text="Big process"
CssClass="btn"
OnClick="cmdProcess_Click"
OnClientClick="showwait()" />
<script>
function showwait() {
$("#MyProgress").show()
}
</script>
<div id="MyProgress" style="display:none">
<h2>Working</h2>
<img src="../Content/wait2.gif" style="height: 67px; width: 80px" />
</div>
因此,当您单击上面的按钮时,它会 运行 一个客户端例程(显示我们的 div),然后是服务器端代码,如下所示:
protected void cmdProcess_Click(object sender, EventArgs e)
{
Thread.Sleep(4000);
}
所以,你有这个:
当你点击按钮时,你会看到这句话持续 4 秒:
所以,这很简单,因为我们只显示 div。
还有奖金?好吧,既然按钮是post-back,那么当按钮代码完成后,客户端当然会重新刷新,现在我们的“延迟div”不再显示了。
但是,如果您想更改消息,请说:
工作第 1 部分......
然后工作第 2 部分 .....
然后我将开始这个“漫长”的过程作为网络方法。这可能很困难,因为您调用的任何 Web 方法都不会使用所有页面控件。
通常,您可以(可能)在 post 后面,启动一个新线程,传递值,然后有一个计时器(客户端)调用一个网络方法 return是状态。
并且该计时器必须“检查”一些状态值(比如每隔一秒),并从服务器获取一些值。由于我们没有(而且真的不能有)额外的 post-backs,那么该 web 方法将必须获取该状态消息。该 Web 方法可能必须 return 来自 session() 的一些状态。
所以当你点击一个按钮时显示“一个”消息? 很简单。
上传过程的进度可以使用 ajax 上传而不是常规上传来实现。您需要创建一个 Web 服务,它将接受文件作为输入,然后 post 接受它。完成后可以隐藏进度条。
一些解决方案是:
File upload progress bar with jQuery
Upload Progress Bar in PHP