This topic has not yet been rated - Rate this topic

ChtmlTextWriter Class

Writes a series of cHTML-specific characters and text to the output stream of an ASP.NET server control. The ChtmlTextWriter class provides formatting capabilities that ASP.NET server controls use when rendering cHTML content to clients.

System.Object
  System.MarshalByRefObject
    System.IO.TextWriter
      System.Web.UI.HtmlTextWriter
        System.Web.UI.Html32TextWriter
          System.Web.UI.ChtmlTextWriter

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)
public class ChtmlTextWriter : Html32TextWriter

The ChtmlTextWriter type exposes the following members.

  Name Description
Public method ChtmlTextWriter(TextWriter) Initializes a new instance of the ChtmlTextWriter class that uses the DefaultTabString constant to indent lines.
Public method ChtmlTextWriter(TextWriter, String) Initializes a new instance of the ChtmlTextWriter class with the specified line indentation.
Top
  Name Description
Public property Encoding Gets the encoding that the HtmlTextWriter object uses to write content to the page. (Inherited from HtmlTextWriter.)
Protected property FontStack Infrastructure. Gets a collection of font information for the HTML to render. (Inherited from Html32TextWriter.)
Public property FormatProvider Gets an object that controls formatting. (Inherited from TextWriter.)
Protected property GlobalSuppressedAttributes Gets a Hashtable object of globally suppressed attributes that cannot be rendered on cHTML elements.
Public property Indent Gets or sets the number of tab positions to indent the beginning of each line of markup. (Inherited from HtmlTextWriter.)
Public property InnerWriter Gets or sets the text writer that writes the inner content of the markup element. (Inherited from HtmlTextWriter.)
Public property NewLine Gets or sets the line terminator string used by the HtmlTextWriter object. (Inherited from HtmlTextWriter.)
Protected property RecognizedAttributes Gets a Hashtable object of recognized attributes that could be rendered on cHTML elements.
Public property ShouldPerformDivTableSubstitution Gets or sets a Boolean value indicating whether to replace a Table element with a Div element to reduce the time that it takes to render a block of HTML. (Inherited from Html32TextWriter.)
Public property SupportsBold Gets or sets a Boolean value indicating whether the requesting device supports bold HTML text. Use the SupportsBold property to conditionally render bold text to the Html32TextWriter output stream. (Inherited from Html32TextWriter.)
Public property SupportsItalic Gets or sets a Boolean value indicating whether the requesting device supports italic HTML text. Use the SupportsItalic property to conditionally render italicized text to the Html32TextWriter output stream. (Inherited from Html32TextWriter.)
Protected property SuppressedAttributes Gets a Hashtable object of user-specified suppressed attributes that are not rendered on cHTML elements.
Protected property TagKey Gets or sets the HtmlTextWriterTag value for the specified markup element. (Inherited from HtmlTextWriter.)
Protected property TagName Gets or sets the tag name of the markup element being rendered. (Inherited from HtmlTextWriter.)
Top
  Name Description
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public 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. (Inherited from HtmlTextWriter.)
Public 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. (Inherited from HtmlTextWriter.)
Protected method 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. (Inherited from HtmlTextWriter.)
Public method AddRecognizedAttribute Adds an attribute to a cHTML element of the ChtmlTextWriter object.
Public 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. (Inherited from HtmlTextWriter.)
Public 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. (Inherited from HtmlTextWriter.)
Protected 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. (Inherited from HtmlTextWriter.)
Public method BeginRender Notifies an HtmlTextWriter object, or an object of a derived class, that a control is about to be rendered. (Inherited from HtmlTextWriter.)
Public method Close Closes the HtmlTextWriter object and releases any system resources associated with it. (Inherited from HtmlTextWriter.)
Public method CreateObjRef Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.)
Public method Dispose() Releases all resources used by the TextWriter object. (Inherited from TextWriter.)
Protected method Dispose(Boolean) Releases the unmanaged resources used by the TextWriter and optionally releases the managed resources. (Inherited from TextWriter.)
Protected method EncodeAttributeValue(HtmlTextWriterAttribute, String) Encodes the value of the specified markup attribute based on the requirements of the HttpRequest object of the current context. (Inherited from HtmlTextWriter.)
Protected method EncodeAttributeValue(String, Boolean) Encodes the value of the specified markup attribute based on the requirements of the HttpRequest object of the current context. (Inherited from HtmlTextWriter.)
Protected method EncodeUrl Performs minimal URL encoding by converting spaces in the specified URL to the string "%20". (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Public method ExitStyle(Style) Writes the closing tag of a <span> element to end the specified layout and character formatting. (Inherited from HtmlTextWriter.)
Public method ExitStyle(Style, HtmlTextWriterTag) Writes the closing tag of the specified markup element to end the specified layout and character formatting. (Inherited from HtmlTextWriter.)
Protected method FilterAttributes Removes all the markup and style attributes on all properties of the page or Web server control. (Inherited from HtmlTextWriter.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Flush Clears all buffers for the current HtmlTextWriter object and causes any buffered data to be written to the output stream. (Inherited from HtmlTextWriter.)
Protected method GetAttributeKey Obtains the corresponding HtmlTextWriterAttribute enumeration value for the specified attribute. (Inherited from HtmlTextWriter.)
Protected method GetAttributeName Obtains the name of the markup attribute associated with the specified HtmlTextWriterAttribute value. (Inherited from HtmlTextWriter.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetLifetimeService Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected method GetStyleKey Obtains the HtmlTextWriterStyle enumeration value for the specified style. (Inherited from HtmlTextWriter.)
Protected method GetStyleName Obtains the markup style attribute name associated with the specified HtmlTextWriterStyle enumeration value. (Inherited from HtmlTextWriter.)
Protected method GetTagKey Obtains the HtmlTextWriterTag enumeration value associated with the specified markup element. (Inherited from HtmlTextWriter.)
Protected method GetTagName Returns the HTML element that is associated with the specified HtmlTextWriterTag enumeration value. (Inherited from Html32TextWriter.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method InitializeLifetimeService Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected method IsAttributeDefined(HtmlTextWriterAttribute) Determines whether the specified markup attribute and its value are rendered during the next call to the RenderBeginTag method. (Inherited from HtmlTextWriter.)
Protected method IsAttributeDefined(HtmlTextWriterAttribute, String) Determines whether the specified markup attribute and its value are rendered during the next call to the RenderBeginTag method. (Inherited from HtmlTextWriter.)
Protected method IsStyleAttributeDefined(HtmlTextWriterStyle) Determines whether the specified markup style attribute is rendered during the next call to the RenderBeginTag method. (Inherited from HtmlTextWriter.)
Protected method IsStyleAttributeDefined(HtmlTextWriterStyle, String) Determines whether the specified markup style attribute and its value are rendered during the next call to the RenderBeginTag method. (Inherited from HtmlTextWriter.)
Public method IsValidFormAttribute Checks an attribute to ensure that it can be rendered in the opening tag of a <form> markup element. (Inherited from HtmlTextWriter.)
Protected method MemberwiseClone() Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method MemberwiseClone(Boolean) Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.)
Protected method OnAttributeRender Determines whether the specified cHTML attribute and its value are rendered to the requesting page. You can override the OnAttributeRender method in classes that derive from the ChtmlTextWriter class to filter out attributes that you do not want to render on devices that support cHTML. (Overrides HtmlTextWriter.OnAttributeRender(String, String, HtmlTextWriterAttribute).)
Protected method OnStyleAttributeRender Determines whether the specified cHTML markup style attribute and its value can be rendered to the current markup element. (Overrides Html32TextWriter.OnStyleAttributeRender(String, String, HtmlTextWriterStyle).)
Protected method OnTagRender Determines whether the specified cHTML markup element is rendered to the requesting page. (Overrides Html32TextWriter.OnTagRender(String, HtmlTextWriterTag).)
Protected method OutputTabs Writes a series of tab strings that represent the indentation level for a line of markup characters. (Inherited from HtmlTextWriter.)
Protected method PopEndTag Removes the most recently saved markup element from the list of rendered elements. (Inherited from HtmlTextWriter.)
Protected method PushEndTag Saves the specified markup element for later use when generating the end tag for a markup element. (Inherited from HtmlTextWriter.)
Public method RemoveRecognizedAttribute Removes an attribute of a cHTML element of the ChtmlTextWriter object.
Protected method RenderAfterContent Writes any text or spacing that appears after the content of the HTML element. (Inherited from Html32TextWriter.)
Protected method RenderAfterTag Writes any spacing or text that occurs after an HTML element's closing tag. (Inherited from Html32TextWriter.)
Protected method RenderBeforeContent Writes any tab spacing or font information that appears before the content that is contained in an HTML element. (Inherited from Html32TextWriter.)
Protected method RenderBeforeTag Writes any text or tab spacing that occurs before the opening tag of an HTML element to the HTML 3.2 output stream. (Inherited from Html32TextWriter.)
Public method RenderBeginTag(HtmlTextWriterTag) Writes the opening tag of the specified element to the HTML 3.2 output stream. (Inherited from Html32TextWriter.)
Public method RenderBeginTag(String) Writes the opening tag of the specified markup element to the output stream. (Inherited from HtmlTextWriter.)
Public method RenderEndTag Writes the end tag of an HTML element to the Html32TextWriter output stream, along with any font information that is associated with the element. (Inherited from Html32TextWriter.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method Write(Boolean) Writes the text representation of a Boolean value to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Char) Writes the text representation of a Unicode character to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Char[]) Writes the text representation of an array of Unicode characters to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Decimal) Writes the text representation of a decimal value to the text stream. (Inherited from TextWriter.)
Public method Write(Double) Writes the text representation of a double-precision floating-point number to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Int32) Writes the text representation of a 32-byte signed integer to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Int64) Writes the text representation of a 64-byte signed integer to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Object) Writes the text representation of an object to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(Single) Writes the text representation of a single-precision floating-point number to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(String) Writes the specified string to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method Write(UInt32) Writes the text representation of a 4-byte unsigned integer to the text stream. (Inherited from TextWriter.)
Public method Write(UInt64) Writes the text representation of an 8-byte unsigned integer to the text stream. (Inherited from TextWriter.)
Public method Write(String, Object) Writes a tab string and a formatted string to the output stream, using the same semantics as the String.Format method, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method 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 String.Format method. (Inherited from HtmlTextWriter.)
Public method Write(Char[], Int32, Int32) Writes the text representation of a subarray of Unicode characters to the output stream, along with any pending tab spacing. (Inherited from HtmlTextWriter.)
Public method 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 String.Format method. (Inherited from HtmlTextWriter.)
Public method Write(String, Object, Object, Object) Writes out a formatted string, using the same semantics as String.Format. (Inherited from TextWriter.)
Public method WriteAttribute(String, String) Writes the specified markup attribute and value to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteAttribute(String, String, Boolean) Writes the specified markup attribute and value to the output stream, and, if specified, writes the value encoded. (Inherited from HtmlTextWriter.)
Public method WriteBeginTag Writes any tab spacing and the opening tag of the specified markup element to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteBreak Writes a br element to the cHTML output stream. (Overrides HtmlTextWriter.WriteBreak().)
Public method WriteEncodedText Encodes the specified text for the requesting device, and then writes it to the output stream. (Overrides HtmlTextWriter.WriteEncodedText(String).)
Public method WriteEncodedUrl Encodes the specified URL, and then writes it to the output stream. The URL might include parameters. (Inherited from HtmlTextWriter.)
Public method WriteEncodedUrlParameter Encodes the specified URL parameter for the requesting device, and then writes it to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteEndTag Writes any tab spacing and the closing tag of the specified markup element. (Inherited from HtmlTextWriter.)
Public method WriteFullBeginTag Writes any tab spacing and the opening tag of the specified markup element to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteLine() Writes a line terminator string to the output stream. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method WriteLine(Char) Writes any pending tab spacing and a Unicode character, followed by a line terminator string, to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteLine(Char[]) Writes any pending tab spacing and an array of Unicode characters, followed by a line terminator string, to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteLine(Decimal) Writes the text representation of a decimal value followed by a line terminator to the text stream. (Inherited from TextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method WriteLine(Object) Writes any pending tab spacing and the text representation of an object, followed by a line terminator string, to the output stream. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method WriteLine(String) Writes any pending tab spacing and a text string, followed by a line terminator string, to the output stream. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method WriteLine(UInt64) Writes the text representation of an 8-byte unsigned integer followed by a line terminator to the text stream. (Inherited from TextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method 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. (Inherited from HtmlTextWriter.)
Public method WriteLine(String, Object, Object, Object) Writes out a formatted string and a new line, using the same semantics as Format. (Inherited from TextWriter.)
Public method WriteLineNoTabs Writes a string, followed by a line terminator string, to the output stream. This method ignores any specified tab spacing. (Inherited from HtmlTextWriter.)
Public method WriteStyleAttribute(String, String) Writes the specified style attribute to the output stream. (Inherited from HtmlTextWriter.)
Public method WriteStyleAttribute(String, String, Boolean) Writes the specified style attribute and value to the output stream, and encodes the value, if specified. (Inherited from HtmlTextWriter.)
Protected method WriteUrlEncodedString Writes the specified string, encoding it according to URL requirements. (Inherited from HtmlTextWriter.)
Top
  Name Description
Protected field CoreNewLine Stores the new line characters used for this TextWriter. (Inherited from TextWriter.)
Top

Compact HTML, or cHTML, is a subset of HTML 2.0, HTML 3.2, and HTML 4.0, and is designed to render on devices with limited memory and CPU power, along with small display screens, limited formatting capabilities, and a limited number of input options (such as a cell phone touch pad). Therefore, cHTML does not support the following:

  • JPEG images.

  • Tables.

  • Image maps.

  • Multiple character fonts and styles.

  • Background colors and images.

  • Frames.

  • Style sheets.

The ChtmlTextWriter class derives from the Html32TextWriter class and much of its functionality is provided by the Html32TextWriter and the base class for all markup text writers, which is the HtmlTextWriter class.

The following code example demonstrates how to create a class named CustomChtmlTextWriter that is derived from the ChtmlTextWriter class. It creates two constructors and overrides the OnAttributeRender method to prevent the bgcolor style attribute from being written to the output stream of the ChtmlTextWriter object. It also creates a class named ChtmlCustomPageAdapter that defines one method, CreateCustomChtmlTextWriter, which creates and returns an instance of the CustomChtmlTextWriter class. The CustomChtmlTextWriter then renders cHTML content for a page to devices with browsers that use cHTML markup.


// Create a class that derives from the
// ChtmlTextWriter class.
using System;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls.Adapters;

namespace AspNet.Samples.CS
{
	public class CustomChtmlTextWriter : ChtmlTextWriter
	{
		// Create two constructors for the new
		// text writer.
		public CustomChtmlTextWriter(TextWriter writer) : base(writer, DefaultTabString)
		{
		}

		public CustomChtmlTextWriter(TextWriter writer, String tabString)
			: base(writer, tabString)
		{
		}
		
		// Override the OnAttributeRender method to
		// not render the bgcolor attribute, which is
		// not supported in CHTML.
		protected override bool OnAttributeRender(string name, string value, HtmlTextWriterAttribute key)
		{
			if (String.Equals("bgcolor", name))
			{
				return false;
			}
			
			// Call the ChtmlTextWriter version of the
			// the OnAttributeRender method.
			return base.OnAttributeRender(name, value, key);
		}
	}

	// Derive from the WebControlAdapter class,
	// provide a CreateCustomChtmlTextWriter
	// method to attach to the custom writer.
	public class ChtmlCustomPageAdapter : WebControlAdapter
	{
		protected internal ChtmlTextWriter CreateCustomChtmlTextWriter(
			TextWriter writer)
		{
			return new CustomChtmlTextWriter(writer);
		}
	}
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ