G
Guest
I posted this a week ago, but did not get a respone yet.
I need to render a user control as a HTML string. I do not want the control
to appear on the page, however. Here is what I am doing…
I have an HTML template that will ultimately be sent via e-mail. Inside the
template I have IDs setup for each section that will be replaced with dynamic
data. In one section I need to display a specific kind of data. I already
have a user control that generates what I need. I need to get that control to
fire and then get rendered as HTML to be placed in the appropriate section of
the fore mentioned HTML template. This is the code I have so far:
Public Function BuildPropertyDetialsInfo() As String
Dim propertyInfoControl As New StringBuilder
Dim ms As New MemoryStream
Dim propertyInfoUserControl As New UserControl
Dim propertyInfoStringWriter As New StringWriter(propertyInfoControl)
Dim propertyInfoHTMLWriter As New HtmlTextWriter(New StreamWriter(ms))
Dim html As String = String.Empty
Try
propertyInfoHTMLWriter.BeginRender()
propertyInfoUserControl.LoadControl(renderControl)
propertyInfoUserControl.RenderControl(propertyInfoHTMLWriter)
propertyInfoHTMLWriter.EndRender()
propertyInfoHTMLWriter.Flush()
ms.Position = 0
Dim sr As New StreamReader(ms)
html = sr.ReadToEnd
Catch ex As Exception
End Try
Return html
I donl’t get anything back. I am assuming that I need to add the control to
the collection, but I don’t know how I would do this since I am not working
on a web form. I am inside a class that doens’t have access to a form page.
Any thoughts?
Daniel
I need to render a user control as a HTML string. I do not want the control
to appear on the page, however. Here is what I am doing…
I have an HTML template that will ultimately be sent via e-mail. Inside the
template I have IDs setup for each section that will be replaced with dynamic
data. In one section I need to display a specific kind of data. I already
have a user control that generates what I need. I need to get that control to
fire and then get rendered as HTML to be placed in the appropriate section of
the fore mentioned HTML template. This is the code I have so far:
Public Function BuildPropertyDetialsInfo() As String
Dim propertyInfoControl As New StringBuilder
Dim ms As New MemoryStream
Dim propertyInfoUserControl As New UserControl
Dim propertyInfoStringWriter As New StringWriter(propertyInfoControl)
Dim propertyInfoHTMLWriter As New HtmlTextWriter(New StreamWriter(ms))
Dim html As String = String.Empty
Try
propertyInfoHTMLWriter.BeginRender()
propertyInfoUserControl.LoadControl(renderControl)
propertyInfoUserControl.RenderControl(propertyInfoHTMLWriter)
propertyInfoHTMLWriter.EndRender()
propertyInfoHTMLWriter.Flush()
ms.Position = 0
Dim sr As New StreamReader(ms)
html = sr.ReadToEnd
Catch ex As Exception
End Try
Return html
I donl’t get anything back. I am assuming that I need to add the control to
the collection, but I don’t know how I would do this since I am not working
on a web form. I am inside a class that doens’t have access to a form page.
Any thoughts?
Daniel