Silverlight – Download vom Server

Ich hatte das Problem, eine PDF-Datei oder eine CSV-Datei, die dynamisch auf dem Server erstellt werden sollte, auf den Client zu bekommen. Der Download sollte aus einer Silverlight 4 Anwendung gestartet werden und es sollten Parameter für die Erstellung übergeben werden.

Gelöst habe ich das wie folgt:

Zunächst wird in die ASP.Net- bzw. in die HTML-Seite, in der die Silverlight Anwendung gehostet wird, ein JavaScript eingebettet, das eine URL aufruft. Die URL kann als Parameter an die JavaScript Function übergeben werden:

    <script type="text/javascript">
        function JsMethode(url){
            window.open(url, 'PopUp', 'width=800, height=600');
        }
    </script>

Danach wird der Aufruf des JavaScripts in die Silverlight Anwendung eingebaut:

System.Windows.Browser.HtmlPage.Window.Invoke("JsMethode", "CreateCsv.aspx?par=" & par.ToString)

bzw.

System.Windows.Browser.HtmlPage.Window.Invoke("JsMethode", "CreatePdf.aspx?par=" & par.ToString)

Im nächsten Schritt erstellen wir die ASP.Net Seiten, die die CSV- bzw. PDF-Datei erstellen:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim par As Integer = CInt(Request.QueryString("par"))
        CreatePdf(par:=par)
        Response.Clear()
        Response.ContentType = "Application/CSV"
        Response.AddHeader("Content-Disposition", "attachment;filename=" & s)
        Response.WriteFile("File.csv")
        Response.End()
    End Sub

bzw.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim par As Integer = CInt(Request.QueryString("par"))
        CreatePdf(par:=par)
        Response.Clear()
        Response.ContentType = "Application/pdf"
        Response.WriteFile("File.pdf")
        Response.End()
    End Sub

Das war’s.

Advertisements

Schlagwörter:

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: