Table Class

Displays a table on a Web page.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public class Table : WebControl, IPostBackEventHandler
public class Table extends WebControl implements IPostBackEventHandler
public class Table extends WebControl implements IPostBackEventHandler

The Table control allows you to build an HTML table and specify its characteristics in a straightforward manner. A table can be built at design time given some static content, but the power of a Table Web server control is often realized when the table is built programmatically with dynamic contents.

It is important to remember that any programmatic addition or modification of table rows or cells will not persist across posts to the server. This is because table rows and cells are controls of their own, and not properties of the Table control. To persist any changes to the table, rows and cells must be reconstructed after each postback. In fact, if substantial modifications are expected, it is recommended that a DataList, DataGrid, or GridView control be used instead of the Table control. As a result, the Table class is primarily used by control developers.

Caution noteCaution

This control can be used to display user input, which might include malicious client script. Check any information that is sent from a client for executable script, SQL statements, or other code before displaying it in your application. You can use validation controls to verify user input before displaying the input text in a control. ASP.NET provides an input request validation feature to block script and HTML in user input. For more information, see Securing Standard ControlsHow to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings, and Validating User Input in ASP.NET Web Pages.


The markup rendered by default for this control might not conform to accessibility standards such as the Web Content Accessibility Guidelines 1.0 (WCAG) priority 1 guidelines. For details about accessibility support for this control, see ASP.NET Controls and Accessibility.

The following code example demonstrates how to create a table at design time. The table contains two rows of two cells each.


The following code sample uses the single-file code model and may not work correctly if copied directly into a code-behind file. This code sample must be copied into an empty text file that has an .aspx extension. For more information on the Web Forms code model, see ASP.NET Web Page Code Model.

<%@ Page Language="C#" AutoEventWireup="True" %>
     <h3>Table example, constructed at design time</h3>
 <form runat=server>
 <asp:Table id="Table1" runat="server"
          Row 0, Col 0
          Row 0, Col 1
          Row 1, Col 0
          Row 1, Col 1

The following code example demonstrates how to construct a table programmatically. Creating a table dynamically consists of three steps. First, create TableCell objects to represent the cells in a row. Content for the cells is added by either setting the Text property or by adding controls to the Control.Controls collection of the TableCell. Next, create a TableRow to represent a row in the table. Add the TableCell objects created earlier to the Cells collection of the TableRow. Finally, add the TableRow to the Rows collection of the Table control. Repeat this process for each row in the table.

<%@ Page Language="C#" AutoEventWireup="True" %>

     <script language="C#" runat="server">
         void Page_Load(Object sender, EventArgs e) {
             // Generate rows and cells.           
             int numrows = 3;
             int numcells = 2;
             for (int j=0; j<numrows; j++) {          
                 TableRow r = new TableRow();
                 for (int i=0; i<numcells; i++) {
                     TableCell c = new TableCell();
                     c.Controls.Add(new LiteralControl("row " + j.ToString() + ", cell " + i.ToString()));
     <h3>Table Example, constructed programmatically</h3>
     <form runat=server>
         <asp:Table id="Table1" 

  • AspNetHostingPermission  for operating in a hosted environment. Demand value: LinkDemand; Permission value: Minimal.
  • AspNetHostingPermission  for operating in a hosted environment. Demand value: InheritanceDemand; Permission value: Minimal.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0