Templated Controls

The data-bound controls you’ve seen thus far all tightly bind individual values retrieved from a data source into a list item or table cell. You can use a TemplateField (within a DetailsView or GridView) to control exactly how that value is displayed within that cell, but it will remain contained within that cell.

ASP.NET provides a complementary set of controls to those we’ve covered so far, which use templates exclusively to broaden the idea of one field per cell. Instead, you can use them to determine how whole rows of data rather than just fields are to be displayed. And rather than just confining that display of one data row to one table cell or one list item, two of the controls go a step further and allow you to define templates for the HTML markup that will surround the data.

  • The DataList control’s templates define how a row of data will be shown within a list of data.

  • The FormView control’s templates define how a row of data is shown on its own page, akin to the DetailsView.

  • The Repeater and ListView controls are “lookless.” Templates for these controls let you control everything regarding how rows of data are displayed and within which structure.

Table 8-14 summarizes the differences between the four controls and the GridView for comparison.

Table 8-14. Comparing template controls and the GridView

Feature

GridView

DataList

FormView

Repeater

ListView

Table layout

Yes

Yes

Yes

No

No

Flow layout

No

Yes

No

Yes

Yes

Column layout

No

Yes

No

No

No

Style properties

Yes

Yes

Yes

No

No

Templates

Columns/optional ...

Get Programming ASP.NET 3.5, 4th Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.