DevTrain Startseite SharePoint Camp ? In 5 Tagen zum SharePoint Profi!  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: VB.NET | Thema: Re: HTML-Ausgabe umleiten | Von: Klaus Holster ( 12.07.2004 09:53)

Hallo Tobi,

mit Response.Filter kann man den fertigen HTML-Code in der Form wie ihn ASP.NET erzeugt hat, abfangen und selbst verarbeiten.

Dazu muss eine Filter-Klasse erstellt werden und in der Global.asax eine Instanz davon an Reguest.Filter zugewiesen werden:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Response.Filter = New PageCaptureFilter(Response.Filter)
End Sub

Die Filterklasse kann z.B. so aussehen:

Public Class PageCaptureFilter
Inherits System.IO.Stream
Private ResponseStream As System.IO.Stream
Private CapturedResponse As String

Public Sub New(ByVal InStream As System.IO.Stream)
ResponseStream = InStream
End Sub

Public Overrides Sub Write(ByVal buffer() As Byte, _
ByVal offset As Integer, _
ByVal count As Integer)

Dim ResponseAsString As String = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count)
CapturedResponse += ResponseAsString

ResponseStream.Write(buffer, offset, count)

End Sub

Public Overrides ReadOnly Property CanRead() As Boolean
Get
Return True
End Get
End Property

Public Overrides ReadOnly Property CanSeek() As Boolean
Get
Return False
End Get
End Property

Public Overrides ReadOnly Property CanWrite() As Boolean
Get
Return True
End Get
End Property

Public Overrides Sub Flush()
Dim SW As New System.IO.StreamWriter("c:\scratch\LastCapturedPage.html", False, System.Text.Encoding.UTF8)
SW.Write(CapturedResponse)
SW.Close()

ResponseStream.Flush()
End Sub

Public Overrides ReadOnly Property Length() As Long
Get
Return 0
End Get
End Property

Private pos As Long
Public Overrides Property Position() As Long
Get
Return pos
End Get
Set(ByVal Value As Long)
pos = Value
End Set
End Property

Public Overrides Function Read(ByVal buffer() As Byte, ByVal offset As Integer, ByVal count As Integer) As Integer
Return ResponseStream.Read(buffer, offset, count)
End Function

Public Overrides Function Seek(ByVal offset As Long, ByVal origin As System.IO.SeekOrigin) As Long
Return ResponseStream.Seek(offset, origin)
End Function

Public Overrides Sub SetLength(ByVal value As Long)
ResponseStream.SetLength(value)
End Sub
End Class

Schöne Grüße,

Klaus




Betreff Von Datum
Re: HTML-Ausgabe umleiten
oha! Vielen Dank *staun*<br><br>damit kann ich bestimmt was anfangen! :)
G. Guest 12.07.2004 15:36
Re: HTML-Ausgabe umleiten
Hallo nochmal!<br><br>Ich hab da doch ne Frage zu:<br><br>und zwar rufe ich<br>Response.Filter = New PageCaptureFilter(Response.Filter)<br>nicht in der global.asax auf, sonder im PreRender der aspx.<br><br>Das klappt...
G. Guest 17.07.2004 11:07

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG