用户的 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 进度条的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何根据滚动视图的用户当前滚动位置同步/更改进度条进度?

android 进度条样式 怎么改

进度条取决于用户输入

VUE----页面加载进度条

android 怎么自定义绘制如下图中这种进度条

使用引导进度条以模态显示上传进度