2

uploadFile 中に進行状況バーをユーザーに表示しようとしています。以下のメソッドを使用してバックエンドでパーセンテージを取得できますが、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 で使用したりできるかということです。

4

1 に答える 1

0

次のようなことを試してください:

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;
}

制限:これで問題が解決しない場合でも、このソリューションはスレッド セーフではありません。つまり、複数のダウンロードの進行状況をエコーすることはできません。一度に 1 つのダウンロードで作業する必要があります。

お役に立てれば...!

于 2016-04-24T16:21:38.400 に答える