Edit

Share via


HtmlTextWriter Class

Definition

Writes markup characters and text to an ASP.NET server control output stream. This class provides formatting capabilities that ASP.NET server controls use when rendering markup to clients.

public ref class HtmlTextWriter : System::IO::TextWriter
public class HtmlTextWriter : System.IO.TextWriter
type HtmlTextWriter = class
    inherit TextWriter
Public Class HtmlTextWriter
Inherits TextWriter
Inheritance
Derived

Examples

The following code example shows how to override the Render method of a custom control that is derived from the Control class. The code example illustrates how to use various HtmlTextWriter methods, properties, and fields.

// Overrides the Render method to write a <span> element
// that applies styles and attributes. 
protected override void Render(HtmlTextWriter writer) 
{     
    // Set attributes and values along with attributes and styles  
    // attribute defined for a <span> element.
    writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('Hello');");
    writer.AddAttribute("CustomAttribute", "CustomAttributeValue");
    writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "Red");
    writer.AddStyleAttribute("Customstyle", "CustomStyleValue");
    writer.RenderBeginTag(HtmlTextWriterTag.Span);
    // Create a space and indent the markup inside the 
    // <span> element.
    writer.WriteLine();
    writer.Indent++;
    writer.Write("Hello");
    writer.WriteLine();
    
    // Controls the encoding of markup attributes
    // for an <img> element. Simple known values 
    // do not need encoding.
    writer.AddAttribute(HtmlTextWriterAttribute.Alt, 
        "Encoding, \"Required\"", 
        true);
    writer.AddAttribute("myattribute", 
        "No "encoding " required", 
        false);
    writer.RenderBeginTag(HtmlTextWriterTag.Img);
    writer.RenderEndTag();
    writer.WriteLine();

    // Create a non-standard markup element.
    writer.RenderBeginTag("MyTag");
    writer.Write("Contents of MyTag");
    writer.RenderEndTag();
    writer.WriteLine();

    // Create a manually rendered <img> element
    // that contains an alt attribute.
    writer.WriteBeginTag("img");
    writer.WriteAttribute("alt", "A custom image.");
    writer.Write(HtmlTextWriter.TagRightChar);
    writer.WriteEndTag("img");
    writer.WriteLine();

    writer.Indent--;
    writer.RenderEndTag();
}
' Overrides the Render method to write a <span> element
' that applies styles and attributes.     
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)

    ' Set attributes and values along with attributes and styles
    ' attribute defined for a <span> element.
    writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('Hello');")
    writer.AddAttribute("CustomAttribute", "CustomAttributeValue")
    writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "Red")
    writer.AddStyleAttribute("CustomStyle", "CustomStyleValue")
    writer.RenderBeginTag(HtmlTextWriterTag.Span)

    '  Create a space and indent the markup inside the 
    ' <span> element.
    writer.WriteLine()
    writer.Indent += 1

    writer.Write("Hello")
    writer.WriteLine()

    ' Controls the encoding of markup attributes
    ' for an <img> element. Simple known values 
    ' do not need encoding.
    writer.AddAttribute(HtmlTextWriterAttribute.Alt, _
        "Encoding, ""Required""", _
        True)
    writer.AddAttribute("myattribute", _
        "No "encoding " required", _
        False)
    writer.RenderBeginTag(HtmlTextWriterTag.Img)
    writer.RenderEndTag()
    writer.WriteLine()

    ' Create a non-standard markup element.
    writer.RenderBeginTag("Mytag")
    writer.Write("Contents of MyTag")
    writer.RenderEndTag()
    writer.WriteLine()

    ' Create a manually rendered <img> element
    ' that contains an alt attribute.
    writer.WriteBeginTag("img")
    writer.WriteAttribute("alt", "A custom image.")
    writer.Write(HtmlTextWriter.TagRightChar)
    writer.WriteEndTag("img")

    writer.WriteLine()

    writer.Indent -= 1
    writer.RenderEndTag()

End Sub

Remarks

The HtmlTextWriter class is used to render HTML 4.0 to desktop browsers. The HtmlTextWriter is also the base class for all markup writers in the System.Web.UI namespace, including the ChtmlTextWriter, Html32TextWriter, and XhtmlTextWriter classes. These classes are used to write the elements, attributes, and style and layout information for different types of markup. In addition, these classes are used by the page and control adapter classes that are associated with each markup language.

In most circumstances, ASP.NET automatically uses the appropriate writer for the requesting device. However, if you create a custom text writer or if you want to specify a particular writer to render a page for a specific device, you must map the writer to the page in the controlAdapters section of the application .browser file.

Constructors

HtmlTextWriter(TextWriter)

Initializes a new instance of the HtmlTextWriter class that uses a default tab string.

HtmlTextWriter(TextWriter, String)

Initializes a new instance of the HtmlTextWriter class with a specified tab string character.

Fields

CoreNewLine

Stores the newline characters used for this TextWriter.

(Inherited from TextWriter)
DefaultTabString

Represents a single tab character.

DoubleQuoteChar

Represents the quotation mark (") character.

EndTagLeftChars

Represents the left angle bracket and slash mark (</) of the closing tag of a markup element.

EqualsChar

Represents the equal sign (=).

EqualsDoubleQuoteString

Represents an equal sign (=) and a double quotation mark (") together in a string (=").

SelfClosingChars

Represents a space and the self-closing slash mark (/) of a markup tag.

SelfClosingTagEnd

Represents the closing slash mark and right angle bracket (/>) of a self-closing markup element.

SemicolonChar

Represents the semicolon (;).

SingleQuoteChar

Represents an apostrophe (').

SlashChar

Represents the slash mark (/).

SpaceChar

Represents a space ( ) character.

StyleEqualsChar

Represents the style equals (:) character used to set style attributes equal to values.

TagLeftChar

Represents the opening angle bracket (<) of a markup tag.

TagRightChar

Represents the closing angle bracket (>) of a markup tag.

Properties

Encoding

Gets the encoding that the HtmlTextWriter object uses to write content to the page.

FormatProvider

Gets an object that controls formatting.

(Inherited from TextWriter)
Indent

Gets or sets the number of tab positions to indent the beginning of each line of markup.

InnerWriter

Gets or sets the text writer that writes the inner content of the markup element.

NewLine

Gets or sets the line terminator string used by the HtmlTextWriter object.

TagKey

Gets or sets the HtmlTextWriterTag value for the specified markup element.

TagName

Gets or sets the tag name of the markup element being rendered.

Methods

AddAttribute(HtmlTextWriterAttribute, String)

Adds the markup attribute and the attribute value to the opening tag of the element that the HtmlTextWriter object creates with a subsequent call to the RenderBeginTag method.

AddAttribute(HtmlTextWriterAttribute, String, Boolean)

Adds the markup attribute and the attribute value to the opening tag of the element that the HtmlTextWriter object creates with a subsequent call to the RenderBeginTag method, with optional encoding.

AddAttribute(String, String)

Adds the specified markup attribute and value to the opening tag of the element that the HtmlTextWriter object creates with a subsequent call to the RenderBeginTag method.

AddAttribute(String, String, Boolean)

Adds the specified markup attribute and value to the opening tag of the element that the HtmlTextWriter object creates with a subsequent call to the RenderBeginTag method, with optional encoding.

AddAttribute(String, String, HtmlTextWriterAttribute)

Adds the specified markup attribute and value, along with an HtmlTextWriterAttribute enumeration value, to the opening tag of the element that the HtmlTextWriter object creates with a subsequent call to the RenderBeginTag method.

AddStyleAttribute(HtmlTextWriterStyle, String)

Adds the markup style attribute associated with the specified HtmlTextWriterStyle value and the attribute value to the opening markup tag created by a subsequent call to the RenderBeginTag method.

AddStyleAttribute(String, String)

Adds the specified markup style attribute and the attribute value to the opening markup tag created by a subsequent call to the RenderBeginTag method.

AddStyleAttribute(String, String, HtmlTextWriterStyle)

Adds the specified markup style attribute and the attribute value, along with an HtmlTextWriterStyle enumeration value, to the opening markup tag created by a subsequent call to the RenderBeginTag method.

BeginRender()

Notifies an HtmlTextWriter object, or an object of a derived class, that a control is about to be rendered.

Close()

Closes the HtmlTextWriter object and releases any system resources associated with it.

CreateObjRef(Type)

Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose()

Releases all resources used by the TextWriter object.

(Inherited from TextWriter)
Dispose(Boolean)

Releases the unmanaged resources used by the TextWriter and optionally releases the managed resources.

(Inherited from TextWriter)
DisposeAsync()

Asynchronously releases all resources used by the TextWriter object.

(Inherited from TextWriter)
EncodeAttributeValue(HtmlTextWriterAttribute, String)

Encodes the value of the specified markup attribute based on the requirements of the HttpRequest object of the current context.

EncodeAttributeValue(String, Boolean)

Encodes the value of the specified markup attribute based on the requirements of the HttpRequest object of the current context.

EncodeUrl(String)

Performs minimal URL encoding by converting spaces in the specified URL to the string "%20".

EndRender()

Notifies an HtmlTextWriter object, or an object of a derived class, that a control has finished rendering. You can use this method to close any markup elements opened in the BeginRender() method.

EnterStyle(Style)

Writes the opening tag of a <span> element that contains attributes that implement the layout and character formatting of the specified style.

EnterStyle(Style, HtmlTextWriterTag)

Writes the opening tag of a markup element that contains attributes that implement the layout and character formatting of the specified style.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
ExitStyle(Style)

Writes the closing tag of a <span> element to end the specified layout and character formatting.

ExitStyle(Style, HtmlTextWriterTag)

Writes the closing tag of the specified markup element to end the specified layout and character formatting.

FilterAttributes()

Removes all the markup and style attributes on all properties of the page or Web server control.

Flush()

Clears all buffers for the current HtmlTextWriter object and causes any buffered data to be written to the output stream.

FlushAsync()

Asynchronously clears all buffers for the current writer and causes any buffered data to be written to the underlying device.

(Inherited from TextWriter)
FlushAsync(CancellationToken)

Asynchronously clears all buffers for the current writer and causes any buffered data to be written to the underlying device.

(Inherited from TextWriter)
GetAttributeKey(String)

Obtains the corresponding HtmlTextWriterAttribute enumeration value for the specified attribute.

GetAttributeName(HtmlTextWriterAttribute)

Obtains the name of the markup attribute associated with the specified HtmlTextWriterAttribute value.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetLifetimeService()
Obsolete.

Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetStyleKey(String)

Obtains the HtmlTextWriterStyle enumeration value for the specified style.

GetStyleName(HtmlTextWriterStyle)

Obtains the markup style attribute name associated with the specified HtmlTextWriterStyle enumeration value.

GetTagKey(String)

Obtains the HtmlTextWriterTag enumeration value associated with the specified markup element.

GetTagName(HtmlTextWriterTag)

Obtains the markup element associated with the specified HtmlTextWriterTag enumeration value.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService()
Obsolete.

Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
IsAttributeDefined(HtmlTextWriterAttribute)

Determines whether the specified markup attribute and its value are rendered during the next call to the RenderBeginTag method.

IsAttributeDefined(HtmlTextWriterAttribute, String)

Determines whether the specified markup attribute and its value are rendered during the next call to the RenderBeginTag method.

IsStyleAttributeDefined(HtmlTextWriterStyle)

Determines whether the specified markup style attribute is rendered during the next call to the RenderBeginTag method.

IsStyleAttributeDefined(HtmlTextWriterStyle, String)

Determines whether the specified markup style attribute and its value are rendered during the next call to the RenderBeginTag method.

IsValidFormAttribute(String)

Checks an attribute to ensure that it can be rendered in the opening tag of a <form> markup element.

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean)

Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
OnAttributeRender(String, String, HtmlTextWriterAttribute)

Determines whether the specified markup attribute and its value can be rendered to the current markup element.

OnStyleAttributeRender(String, String, HtmlTextWriterStyle)

Determines whether the specified markup style attribute and its value can be rendered to the current markup element.

OnTagRender(String, HtmlTextWriterTag)

Determines whether the specified markup element will be rendered to the requesting page.

OutputTabs()

Writes a series of tab strings that represent the indentation level for a line of markup characters.

PopEndTag()

Removes the most recently saved markup element from the list of rendered elements.

PushEndTag(String)

Saves the specified markup element for later use when generating the end tag for a markup element.

RegisterAttribute(String, HtmlTextWriterAttribute)

Registers markup attributes, whether literals or dynamically generated, from the source file so that they can be properly rendered to the requesting client.

RegisterStyle(String, HtmlTextWriterStyle)

Registers markup style properties, whether literals or dynamically generated, from the source file so that they can be properly rendered to the requesting client.

RegisterTag(String, HtmlTextWriterTag)

Registers markup tags, whether literals or dynamically generated, from the source file so that they can be properly rendered to the requesting client.

RenderAfterContent()

Writes any text or spacing that occurs after the content and before the closing tag of the markup element to the markup output stream.

RenderAfterTag()

Writes any spacing or text that occurs after the closing tag for a markup element.

RenderBeforeContent()

Writes any text or spacing before the content and after the opening tag of a markup element.

RenderBeforeTag()

Writes any text or spacing that occurs before the opening tag of a markup element.

RenderBeginTag(HtmlTextWriterTag)

Writes the opening tag of the markup element associated with the specified HtmlTextWriterTag enumeration value to the output stream.

RenderBeginTag(String)

Writes the opening tag of the specified markup element to the output stream.

RenderEndTag()

Writes the end tag of a markup element to the output stream.

ToString()

Returns a string that represents the current object.

(Inherited from Object)
Write(Boolean)

Writes the text representation of a Boolean value to the output stream, along with any pending tab spacing.

Write(Char)

Writes the text representation of a Unicode character to the output stream, along with any pending tab spacing.

Write(Char[])

Writes the text representation of an array of Unicode characters to the output stream, along with any pending tab spacing.

Write(Char[], Int32, Int32)

Writes the text representation of a subarray of Unicode characters to the output stream, along with any pending tab spacing.

Write(Decimal)

Writes the text representation of a decimal value to the text stream.

(Inherited from TextWriter)
Write(Double)

Writes the text representation of a double-precision floating-point number to the output stream, along with any pending tab spacing.

Write(Int32)

Writes the text representation of a 32-byte signed integer to the output stream, along with any pending tab spacing.

Write(Int64)

Writes the text representation of a 64-byte signed integer to the output stream, along with any pending tab spacing.

Write(Object)

Writes the text representation of an object to the output stream, along with any pending tab spacing.

Write(ReadOnlySpan<Char>)

Writes a character span to the text stream.

(Inherited from TextWriter)
Write(Single)

Writes the text representation of a single-precision floating-point number to the output stream, along with any pending tab spacing.

Write(String)

Writes the specified string to the output stream, along with any pending tab spacing.

Write(String, Object)

Writes a tab string and a formatted string to the output stream, using the same semantics as the Format(String, Object) method, along with any pending tab spacing.

Write(String, Object, Object)

Writes a formatted string that contains the text representation of two objects to the output stream, along with any pending tab spacing. This method uses the same semantics as the Format(String, Object, Object) method.

Write(String, Object, Object, Object)

Writes a formatted string to the text stream, using the same semantics as the Format(String, Object, Object, Object) method.

(Inherited from TextWriter)
Write(String, Object[])

Writes a formatted string that contains the text representation of an object array to the output stream, along with any pending tab spacing. This method uses the same semantics as the Format(String, Object[]) method.

Write(String, ReadOnlySpan<Object>)

Writes a formatted string to the text stream, using the same semantics as Format(String, ReadOnlySpan<Object>).

(Inherited from TextWriter)
Write(StringBuilder)

Writes a string builder to the text stream.

(Inherited from TextWriter)
Write(UInt32)

Writes the text representation of a 4-byte unsigned integer to the text stream.

(Inherited from TextWriter)
Write(UInt64)

Writes the text representation of an 8-byte unsigned integer to the text stream.

(Inherited from TextWriter)
WriteAsync(Char)

Writes a character to the text stream asynchronously.

(Inherited from TextWriter)
WriteAsync(Char[])

Writes a character array to the text stream asynchronously.

(Inherited from TextWriter)
WriteAsync(Char[], Int32, Int32)

Writes a subarray of characters to the text stream asynchronously.

(Inherited from TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronously writes a character memory region to the text stream.

(Inherited from TextWriter)
WriteAsync(String)

Writes a string to the text stream asynchronously.

(Inherited from TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Asynchronously writes a string builder to the text stream.

(Inherited from TextWriter)
WriteAttribute(String, String)

Writes the specified markup attribute and value to the output stream.

WriteAttribute(String, String, Boolean)

Writes the specified markup attribute and value to the output stream, and, if specified, writes the value encoded.

WriteBeginTag(String)

Writes any tab spacing and the opening tag of the specified markup element to the output stream.

WriteBreak()

Writes a <br /> markup element to the output stream.

WriteEncodedText(String)

Encodes the specified text for the requesting device, and then writes it to the output stream.

WriteEncodedUrl(String)

Encodes the specified URL, and then writes it to the output stream. The URL might include parameters.

WriteEncodedUrlParameter(String)

Encodes the specified URL parameter for the requesting device, and then writes it to the output stream.

WriteEndTag(String)

Writes any tab spacing and the closing tag of the specified markup element.

WriteFullBeginTag(String)

Writes any tab spacing and the opening tag of the specified markup element to the output stream.

WriteLine()

Writes a line terminator string to the output stream.

WriteLine(Boolean)

Writes any pending tab spacing and the text representation of a Boolean value, followed by a line terminator string, to the output stream.

WriteLine(Char)

Writes any pending tab spacing and a Unicode character, followed by a line terminator string, to the output stream.

WriteLine(Char[])

Writes any pending tab spacing and an array of Unicode characters, followed by a line terminator string, to the output stream.

WriteLine(Char[], Int32, Int32)

Writes any pending tab spacing and a subarray of Unicode characters, followed by a line terminator string, to the output stream.

WriteLine(Decimal)

Writes the text representation of a decimal value to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLine(Double)

Writes any pending tab spacing and the text representation of a double-precision floating-point number, followed by a line terminator string, to the output stream.

WriteLine(Int32)

Writes any pending tab spacing and the text representation of a 32-byte signed integer, followed by a line terminator string, to the output stream.

WriteLine(Int64)

Writes any pending tab spacing and the text representation of a 64-byte signed integer, followed by a line terminator string, to the output stream.

WriteLine(Object)

Writes any pending tab spacing and the text representation of an object, followed by a line terminator string, to the output stream.

WriteLine(ReadOnlySpan<Char>)

Writes the text representation of a character span to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLine(Single)

Writes any pending tab spacing and the text representation of a single-precision floating-point number, followed by a line terminator string, to the output stream.

WriteLine(String)

Writes any pending tab spacing and a text string, followed by a line terminator string, to the output stream.

WriteLine(String, Object)

Writes any pending tab spacing and a formatted string containing the text representation of an object, followed by a line terminator string, to the output stream.

WriteLine(String, Object, Object)

Writes any pending tab spacing and a formatted string that contains the text representation of two objects, followed by a line terminator string, to the output stream.

WriteLine(String, Object, Object, Object)

Writes out a formatted string and a new line to the text stream, using the same semantics as Format(String, Object).

(Inherited from TextWriter)
WriteLine(String, Object[])

Writes any pending tab spacing and a formatted string that contains the text representation of an object array, followed by a line terminator string, to the output stream.

WriteLine(String, ReadOnlySpan<Object>)

Writes out a formatted string and a new line to the text stream, using the same semantics as Format(String, ReadOnlySpan<Object>).

(Inherited from TextWriter)
WriteLine(StringBuilder)

Writes the text representation of a string builder to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLine(UInt32)

Writes any pending tab spacing and the text representation of a 4-byte unsigned integer, followed by a line terminator string, to the output stream.

WriteLine(UInt64)

Writes the text representation of an 8-byte unsigned integer to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync()

Asynchronously writes a line terminator to the text stream.

(Inherited from TextWriter)
WriteLineAsync(Char)

Asynchronously writes a character to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync(Char[])

Asynchronously writes an array of characters to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync(Char[], Int32, Int32)

Asynchronously writes a subarray of characters to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronously writes the text representation of a character memory region to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync(String)

Asynchronously writes a string to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Asynchronously writes the text representation of a string builder to the text stream, followed by a line terminator.

(Inherited from TextWriter)
WriteLineNoTabs(String)

Writes a string, followed by a line terminator string, to the output stream. This method ignores any specified tab spacing.

WriteStyleAttribute(String, String)

Writes the specified style attribute to the output stream.

WriteStyleAttribute(String, String, Boolean)

Writes the specified style attribute and value to the output stream, and encodes the value, if specified.

WriteUrlEncodedString(String, Boolean)

Writes the specified string, encoding it according to URL requirements.

Explicit Interface Implementations

IDisposable.Dispose()

For a description of this member, see Dispose().

(Inherited from TextWriter)

Applies to

See also