vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Problem bei Datei Export 
Autor: Threewood
Datum: 20.01.11 11:15

Hallo,

ich habe folgendes Problem:
Über ein ASP.net gridview werden Datensätze aus einer DB angezeigt. Der Benutzer hat die Möglichkeit gewünschte Datensätze zu markieren und zu exportieren. Für jeden Datensatz wird eine Datei erstellt, welche über einen Response abgespeichert wird.
Das funktioniert super wenn nur ein Datensatz markiert wurde. Werden mehrere markiert gibt es immer nur den obersten markierten Datensatz.

Wenn ich die Stream / Response Geschichte weglasse und es direkt in einer Datei speicher klappt es wunderbar. Allerdings soll der Benutzer selbst wählen wo die Datei abgespeichert werden soll.

Die Ausgabe in das Gridview und die Markierung spielt sich in einer aspx Datei ab.
Hier der Code:
 
Protected Sub ExportButton_Click(ByVal sender As Object, ByVal e As _
  System.EventArgs) Handles ExportButton.Click
 
Dim pn As String
 
For Each row As GridViewRow In GridView1.Rows
Dim cb As CheckBox = row.FindControl("ExportCB")
If cb IsNot Nothing AndAlso cb.Checked Then
 
'System.Diagnostics.Debug.Print(row.RowIndex)
Dim rows As GridViewRow = GridView1.Rows.Item(row.RowIndex)
pn = row.Cells(3).Text
 
System.Diagnostics.Debug.Print(pn)
Call createDoc(pn)
End If
Next
End Sub
 
Für jedes markierte Element soll "createDoc" aufgerufen werden. Das steckt in _
  einem Modul.
Hier der Code:
 
Sub createDoc(ByVal pn As String)
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data" & _
  "Source=WebTool.accdb; Persist Security Info=False;"
Dim SQLString As String = "Select * From GE7 WHERE ProjectNumber ='" & pn & "'"
Dim conn As New OleDbConnection(ConnString)
Dim cmd As New OleDbCommand(SQLString, conn)
cmd.CommandType = CommandType.Text
conn.Open()
 
Dim reader As OleDbDataReader = cmd.ExecuteReader()
reader.Read()
 
 
Dim stream As MemoryStream = DocumentReader.Create()
Dim doc As WordprocessingDocument = WordprocessingDocument.Create(stream, _
  WordprocessingDocumentType.Document)
Dim mainPart As MainDocumentPart = doc.AddMainDocumentPart
mainPart.Document = New Document
 
Text Formatierungen....
 
Dim body As Body = New Body()
body.Append(para1)
body.Append(para2)
 
 
mainPart.Document.Append(body)
 
mainPart.Document.Save()
doc.Close()
 
'System.Diagnostics.Debug.Print(SQLString)
reader.Close()
conn.Close()
Dim ha As HttpApplication = HttpContext.Current.ApplicationInstance
ha.Response.Clear()
ha.Response.AddHeader("content-disposition", [String].Format( _
  "attachment;filename={0}", pn & ".docx"))
ha.Response.ContentType = _
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
stream.WriteTo(ha.Response.OutputStream)
ha.Response.[End]()
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Datei Export 
Autor: Threewood
Datum: 20.01.11 12:10

Problem gelöst

Alle Dateien in eine zip packen und dann über den Response senden, weil es nur einen Response gibt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Datei Export 
Autor: ModeratorDaveS (Moderator)
Datum: 20.01.11 12:26

Mit Html ist das die einzige Lösung. Aber dieser Artikel erklärt wie es mit multi-part doch geht, mit vorbehalt. http://www.motobit.com/tips/detpg_multiple-files-one-request/.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel