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
DataListcontrol’s templates define how a row of data will be shown within a list of data.The
FormViewcontrol’s templates define how a row of data is shown on its own page, akin to theDetailsView.The
RepeaterandListViewcontrols 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 ... |