2016-04-24 11 views
2

Ich versuche, Benutzer eine Fortschrittsanzeige während der Uploaddatei anzuzeigen. Ich kann den Prozentsatz im Backend durch die unten angegebene Methode ermitteln, aber ich kann den von e.PercentageProgress zurückgegebenen Prozentsatz nicht drucken, um ihn dem Benutzer anzuzeigen.SharpBox Fortschrittsbalken für den Benutzer

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

Die Frage ist, wie kann ich die e.PercentageProgress zeigen auf einer aspx Seite bekommen oder bekommen es in Javascript verwenden?

+0

Dies scheint nicht so einfach zu erreichen. Ich musste meine Lösung ändern und die Datei zuerst auf den Server hochladen (wo ich leicht eine Fortschrittsanzeige anzeigen kann) und dann in die Dropbox hochladen. Dies wird nur im Hintergrund ausgeführt, so dass der Benutzer nicht darüber informiert werden muss und die Anfrage abschließen wird, unabhängig davon, ob der Benutzer die Site verlässt oder verlässt (Web-Methode). Ein weiterer Vorteil war die starke Abnahme der Uploadzeit. –

Antwort

0

versuchen, etwas wie folgt aus:

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

Nun, da Sie die statische Variable mit Wert setzen Sie es von woanders zugreifen können. Dann können Sie diesen Wert verwenden, um auf dem Front-End mit einer Methode oder einem Dienst zu echoen. Möglicherweise so:

public string EchoToFrontEnd() 
{ 
    return ProgressInformer.Progress; 
} 

Einschränkung: Wenn dies für Sie arbeitet immer noch diese Lösung nicht sicher ist, fädeln. Das bedeutet, dass Sie den Fortschritt für mehrere Downloads nicht wiedergeben können. Sie müssen mit einem einzelnen Download gleichzeitig arbeiten.

Hoffe, das hilft ...!

+0

Die Sache ist SharpBox feuert die Methode automatisch einige Male. Selbst wenn ich den Fortschritt festlege, muss ich die Daten genau abrufen, wenn die UploadDownloadProgress-Methode ausgelöst wird. Ich versuche jetzt so etwas und der Wert ändert sich nie: perc.Text = docUpload.Progress.ToString(); –

+0

So scheint es eigentlich, dass ich den Prozentsatz zu Front-End innerhalb der Methode UploadDownloadProgress erhalten muss –