Benutzer mit den meisten Antworten
Seite Laden nach Response.Flush()

Frage
-
hallo zusammen
auf die Default.asp wir aus DataGrid eine Pdf-datei bzw. Report erstellt, die Erstellung der Pdf-Datei geschiet durch ein Aufruf eines Webservice
der eine Tabelle geliefert bekommt und darus ein Pdf erstellt, nun schickt der Webservice die Datei an dem Clinet zurück.
das Problem ist nach dem der Client die Datei bekommt, wird die Seite nicht mehr geladen
also die Status-Label nicht mehr aktualliesiert, weil die Seite kein Postback mehr bekommt. dh wenn eine unabhängige Fehldermeldung in der StatusLabel vor der erstellung der Pdf angezeigt war, bleibt drin also wird nicht gelöscht auch wenn mann label.text="" setzt
Antworten
Alle Antworten
-
Hi,
a) Classic ASP oder ASP.NET?
b) Wer ruft hier welchen Webservice wie auf?
c) Woher sollte der Client wissen, dass er die Seite neu laden soll, wenn der Aufruf doch auf einen Webservice geht? Was soll der Client da auch neu laden und vor allem, warum?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Da hast vollkommen recht, die Seite bekommt nichts mit, dass die zustand der Seite sich geändert hat, da der Webservice eine Datei an dem Client zuruckschickt, deswegen wird die Statuslabel nicht zurückgesetzt und genau das ist das Problem
heist es man soll damit leben oder gibts ein um weg.
-
Hi,
Da hast vollkommen recht, die Seite bekommt nichts mit, dass die zustand der Seite sich geändert hat, da der Webservice eine Datei an dem Client zuruckschickt, deswegen wird die Statuslabel nicht zurückgesetzt und genau das ist das Problem
nuja, das Problem sehe ich gar nicht. Da Du nicht schreibst, wie genau die Datei nun eigentlich von wo aus geladen wird, kann man da auch nur spekulieren.
Generell könnte man, nachdem die Datei geladen wurde, einen weiteren Webservice aufrufen, der die Statustexte neu lädt und anzeigt. Alternativ auch einfach self.location.href="/deineseite.aspx"; ausführen, damit wird dann die angegebene Datei nochmals im Browser geladen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Durch ButtonClick auf die Default.aspx wird die Methode PDFExport_Click ausgelöst, die wiederrum die WebService Methode myService.ExportData aufruft.
private void PDFExport_Click(object sender, EventArgs e) { Master.SetPageStatus(""); .... Byte[] results; results = myService.ExportData(dt, exportFormat, reportName); // Export-Datei erstellen HttpResponse Response = HttpContext.Current.Response; Response.ContentType = "Application/"; Response.AddHeader("content-disposition", "attachment; filename=" + filename + "_" + DateTime.Today.ToString("dd.MM.yyyy") + "." + fileFormat); Response.OutputStream.Write(results, 0, results.Length); Response.Flush(); }
Mit dem Aufruf Master.SetPageStatus(""); soll die Methode SetPageStatus die Statuslabel auf die MasterPageDefault zurückgesetzt werden (die Mehode wird tatsichlich aufgerufen aber die Label wird nicht zurückgestezt?!)
public void SetPageStatus(string Status) { lblStatus.Text = Status; }
dann liefert der Webservice die Pdf an dem Client zurück ohne die Seite neue zuladen.wenn ich versuche die seite neu zuladen durch den
Response.Redirect("Default.aspx", true);
geht die Pdfdatei verloren
-