|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
Table Web Server Control Overview
TheWeb server control allows you to create server-programmable tables on ASP.NET pages. The and Web server controls provide a way to display the actual content for the Table control.
Tables are typically used not only to present tabular information, but as a way to format information on a Web page. There are a number of ways to create tables on your Web Forms page:
HTML table. You can add an HTML <table> element. If you are creating a static table (one in which you will not add or change content at run time), you should use an HTML table and not a Table control.
control. This is a <table> HTML element that has been converted to an HTML server control by adding the runat=server attribute. You can program this control in server code. For details about HTML server controls, see .
Table. A Web control that allows you to create and manipulate tables (for example, adding table rows and cells) using an object model that is consistent with other Web controls.
In general, you use a Table Web server control when you intend to add rows and cells (columns) to the table in code at run time. Although you can use it as a static table with predefined rows and columns, it is easier in this case to work with the HTML <table> element.
The Table Web server control can be easier to program than the HtmlTable control because it offers an object model with typed properties that is consistent with other Web server controls. (The model is also consistent between the Table, TableRow, and TableCell controls.)
Some of the functions you might accomplish with a Table Web server control can also be accomplished with the list Web server controls, specifically the, , and controls. All these controls are rendered (or have the option to be rendered) as HTML tables.
The differences between the list controls and the Table control are these:
The list controls are data-bound. The list controls work only against a data source, whereas the Table control can display any combination of HTML text and controls, whether or not they are data-bound.
The list controls use templates to specify the layout of their elements. The Table control supports the TableCell child control, which you can fill as you would any HTML <td> element.
The Table control acts as a parent control for TableRow controls. The table supports a property calledthat is a collection of TableRow objects. By managing this collection — adding or deleting items in it — you specify the rows for the table. The TableRow control in turn supports a collection called that contains TableCell objects.
The content to be displayed in the table is added to the TableCell control. The cell has aproperty that you set to any HTML text. Alternatively, you can display controls in the cell by creating instances of, and adding controls to, the cell's Controls collection.
The parent Table control supports properties to control the appearance of the entire table, such as Font, BackColor, and ForeColor. The TableRow and TableCell controls support these properties as well, so you can specify the look of individual rows or cells, overriding the parent table appearance.
Although the Table control (unlike the list Web server controls; see above) is not inherently data-bound, you can use it to display data from a database.
As with all Web server controls, you can bind any property of a Table control to a data source. However, the Table control does not support a property that you use to directly display data. Instead, you typically add TableCell controls to the table. You can then either bind the Text property of individual TableCell controls to data, or you can add data-bound controls (such as aor control) to the cell.