Use a Repeater
, DataList
, or
DataGrid
control. Always
choose
the smallest and fastest control that meets your needs, which
invariably will be influenced by other criteria. For example:
- If you need a quick and easy solution
Use a
DataGrid
.- If you need a lightweight read-only tabular display
Use a
Repeater
.- If you need your solution to be small and fast
Use a
Repeater
(lightest) orDataList
(lighter).- If you want to use a template to customize the appearance of the display
Choose a
Repeater
orDataList
.- If you want to select rows or edit the contents of a data table
Choose a
DataList
or aDataGrid
.- If you want built-in support to sort your data by column or paginate its display
Choose a
DataGrid
.
ASP.NET provides three excellent options for displaying tabular
data—Repeater
, DataList
,
and DataGrid
—but each comes with trade-offs.
For instance, the DataGrid
control is particularly
versatile, but you can pay a heavy price in terms of performance. On
the flip side, the Repeater
control is lighter
weight, but is for read-only display; if you later decide you need to
edit your data, you must rework your code to use the
DataList
or DataGrid
control
instead (unless, of course, you want to embark on your own custom
coding odyssey).
The impact on performance is due to the fact that ASP.NET creates an
actual control for every element of a DataGrid
control, even whitespace, which is built as a
Literal
control. Each of these controls is then
responsible for rendering the appropriate HTML output. The
DataGrid
is, therefore, the heavyweight of the
grid control group, because of the server processing required to
build the applicable output. The DataList
is
lighter and the Repeater
lighter still.
Table 1-1 summarizes the built-in features
supported by the tabular controls and only includes controls that
support data binding. (A standard Table
control is
not included because it does not inherently support data binding,
even though individual controls placed in a table can be data bound.)
With custom code, there are virtually no limits to what you can do to
modify the behavior of these controls.
Table 1-1. Comparative summary of native tabular control features
Feature |
Repeater control |
DataList control |
DataGrid control |
---|---|---|---|
Default appearance |
None (template driven) |
Table |
Table |
Automatically generates columns from the data source |
No |
No |
Yes |
Header can be customized |
Yes |
Yes |
Yes |
Data row can be customized |
Yes |
Yes |
Yes |
Supports alternating row customization |
Yes |
Yes |
Yes |
Supports customizable row separator |
Yes |
Yes |
No |
Footer can be customized |
Yes |
Yes |
Yes |
Supports pagination |
No |
No |
Yes |
Supports sorting |
No |
No |
Yes |
Supports editing contents |
No |
Yes |
Yes |
Supports selecting a single row |
No |
Yes |
Yes |
Supports selecting multiple rows |
No |
No |
No |
Supports arranging data items horizontally or vertically (from left-to-right or top-to-bottom) |
No |
Yes |
No |
Performance issues aside, there are some other aspects to consider
when choosing a tabular control. As a general rule, the
DataGrid
works extraordinarily well for a
quick-and-dirty tabular display (see Recipe 1.2) and for other situations in which you
think you’ll be reasonably satisfied with its
default appearance and behavior. Indeed, because the
DataGrid
is so versatile, this chapter provides
many recipes for modifying and adapting it. However, if you
anticipate needing a lot of flexibility in controlling the
organization and layout of the tabular display or you do not need to
edit or paginate the data, you may want to consider using the
DataList
or Repeater
instead.
For example, Recipe 1.3 shows how you
can use templates to organize and enhance the output of a tabular
display. Take a look at that recipe’s output (Figure 1-2) to see what we’re driving
at. Some up-front planning in this respect can save you considerable
time and effort down the road.
Get ASP.NET Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.