用户的 SharpBox 进度条
Posted
技术标签:
【中文标题】用户的 SharpBox 进度条【英文标题】:SharpBox Progress Bar for the user 【发布时间】:2016-08-17 23:08:30 【问题描述】:我试图在上传文件期间向用户显示进度条。我可以通过下面的方法在后端获取百分比,但是我无法打印 e.PercentageProgress 返回的百分比以显示给用户。
static void UploadDownloadProgress(Object sender, FileDataTransferEventArgs e)
// Need to show this on a label or return to front end somehow
System.Diagnostics.Debug.WriteLine(e.PercentageProgress);
e.Cancel = false;
问题是如何让 e.PercentageProgress 显示在 aspx 页面上或让它在 javascript 中使用?
【问题讨论】:
这似乎不是那么容易实现的。我必须修改我的解决方案并首先在服务器上上传文件(我可以轻松地显示进度条),然后上传到保管箱。这只会在后台运行,因此用户不需要被告知它,并且无论用户停留或离开站点(网络方法)都将完成请求。另一个优势是大大减少了上传时间。 【参考方案1】:试试这样的:
public class ProgressInformer
public static string Progress = "0";
static void UploadDownloadProgress(Object sender, FileDataTransferEventArgs e)
// print a dot
System.Diagnostics.Debug.WriteLine(e.PercentageProgress);
// Need to show this on a label or return to front end somehow
ProgressInformer.Progress = e.PercentageProgress.ToString();
e.Cancel = false;
现在,由于您正在使用值设置静态变量,因此您可以从其他地方访问它。然后,您可以使用该值使用某种方法或服务在前端回显。可能是这样的:
public string EchoToFrontEnd()
return ProgressInformer.Progress;
限制:如果这对你有用,这个解决方案仍然不是线程安全的。这意味着,您无法回显多个下载的进度。您一次只能下载一次。
希望这会有所帮助...!
【讨论】:
问题是 SharpBox 会自动触发该方法几次。即使我设置了进度,我也需要在 UploadDownloadProgress 方法被触发时准确地获取数据。我现在正在尝试这样的事情并且值永远不会改变:perc.Text = docUpload.Progress.ToString(); 所以实际上我似乎需要在 UploadDownloadProgress 方法中管理获取前端的百分比以上是关于用户的 SharpBox 进度条的主要内容,如果未能解决你的问题,请参考以下文章