C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Next: We create the HtmlTextWriter as pass it the StringWriter instance in its New function.
RenderBeginTag: With RenderBeginTag, you can pass a string of the element name or a constant value in the HtmlTextWriterTag enumeration.
RenderEndTag: At the end of your code that sets up a tag, you must call RenderEndTag. This ends the element HTML.
Compile: To compile, change the project's client profile to .NET 4.0, not the Client Profile. Next, add the reference System.Web.
VB.NET program that uses HtmlTextWriter
Imports System.IO
Imports System.Web.UI
Module Module1
Dim _words As String() = {"dot", "net", "Codex"}
Function GetDivElements() As String
Using sw As StringWriter = New StringWriter
Using ht As HtmlTextWriter = New HtmlTextWriter(sw)
For Each word As String In _words
' Create the div.
ht.AddAttribute(HtmlTextWriterAttribute.Class, "c")
ht.RenderBeginTag(HtmlTextWriterTag.Div)
' Create the a.
ht.AddAttribute(HtmlTextWriterAttribute.Href, word)
ht.RenderBeginTag(HtmlTextWriterTag.A)
' Create the img.
ht.AddAttribute(HtmlTextWriterAttribute.Src, word + ".png")
ht.AddAttribute(HtmlTextWriterAttribute.Width, "200")
ht.AddAttribute(HtmlTextWriterAttribute.Height, "150")
ht.RenderBeginTag(HtmlTextWriterTag.Img)
' End all the tags.
ht.RenderEndTag()
ht.RenderEndTag()
ht.RenderEndTag()
Next
End Using
Return sw.ToString()
End Using
End Function
Sub Main()
Console.WriteLine(GetDivElements())
End Sub
End Module
Output
<div class="c">
<a href="dot"><img src="dot.png" width="200" height="150" /></a>
</div><div class="c">
<a href="net"><img src="net.png" width="200" height="150" /></a>
</div><div class="c">
<a href="Codex"><img src="Codex.png" width="200" height="150" /></a>
</div>
Optimization: When using HtmlTextWriter, it is best to pass it a buffer you are already using instead of a StringWriter.
Tip: The buffer must be derived from TextWriter. Try passing a buffer to HtmlTextWriter and see if the program compiles.
And: We can avoid the brackets and quotes and just write HTML based on where we want the elements to occur in the page structure.