Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / August 2007

Tip: Looking for answers? Try searching our database.

Render Control Help?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Daniel Di Vita - 06 Aug 2007 13:00 GMT
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
Kevin Spencer - 07 Aug 2007 12:31 GMT
A UserControl is a Templated Control. If you want a class that doesn't
render a UI, but writes HTML, write a class that uses an HtmlTextWriter to
write to a stream or to a string. An HtmlTextWriter is initialized with a
TextWriter-derived class, which includes both StreamWriter and StringWriter,
so you can use an HtmlTextWriter to build an HTML string as well as writing
to a stream.

Signature

HTH,

Kevin Spencer
Microsoft MVP

Printing Components, Email Components,
FTP Client Classes, Enhanced Data Controls, much more.
DSI PrintManager, Miradyne Component Libraries:
http://www.miradyne.net

>I posted this a week ago, but did not get a respone yet.
>
[quoted text clipped - 47 lines]
>
> Daniel

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.