Viewing Table Data
Several controls are available for getting data onto a page. All of them
offer extra functionality for editing data, but we will look at this in the next
part of the tutorial. Some of the controls are designed for viewing a whole
table or the results of a query, whereas others are designed for the display of
only one record at a time.
The simplest control is the GridView and we will look at how to use the GridView step
by step to reinforce some of the concepts.
Step by step
- In Windows Explorer make a copy of your StockControl web application folder
and name it GridView.
- Run VWD and open the GridView website
- Open default.aspx in design view
- Drag a GridView from the Data section of the Toolbox onto
your page.
- The GridView Tasks dialog should appear
automatically, but if not click the small black arrow at the top right of
the GridView control. Now from the Choose Data Source dropdown list select
<New Data Source>.
- In the Data Source configuration Dialog choose Database
and change the ID to sqldsStock. (We are professionals and we always
rename our elements.)
- In the Configure Data Source - sqldsStock dialog choose
the data connection from the list (there should only be one), and click
Next.
- In the next page of the wizard change the name of the
connection to appcsStock and click Next.
- In the next page of the wizard choose tblStock from the
name drop down list and select the * column. Now click the Advanced
Options buttons.
- In the Advanced SQL Generation Options dialog select the 'Generate
Insert, Update and Delete statements' checkbox and press OK, then click
Next
- On the next page you can click Test Query to see whether
your connection works. If you are satisfied that it is working click
Finish.
- If you didn't type any data into your tables, perhaps now
is the time to do it so that you will see some data when you run the
project. Save your project and select Run. The project will eventually run
and you will see a web page with the data from your Stock table in a
simple grid.
Try the
Gridview application,
or download a
ZIP version of Gridview.
Alternate controls for viewing data
The ListView control
ListView is new in version 3.5 of ASP.NET and is a logical progression
from the GridView, where additional automated functionality is provided. You
can experiment with it yourself. It comes into it's own when you need full
table editing functionality and the tutorial will look at this in the next
page.
The DataList control
Repeat the GridView process above with a new website, called DataList, but use a DataList control rather than a GridView control. The DataList allows more
control over the layout of each record, although the default simply presents
each record as a vertical column of Field Name and Field Value pairs. The DataList
control is very flexible and caters for multi-column layout however, it does not provide any automatic editing
functionality. Use the Edit Templates feature from the Smart Tag to control
the layout of each record.
We will not develop the use of DataList controls in
this course.
Try the
DataList application
or download the
ZIP version of DataList.
The Repeater control
The Repeater is more complicated to use, but is more flexible. The
other two can be edited in design view using templates and the GridView can be configured
to do editing etc, without having to write any scripts. The Repeater control
has to be edited in Source view, but does give you the flexibility to control
exactly how you want each record displaying. The simplest code you can get away
with is as follows:
- In Windows Explorer make a copy of your StockControl application and name
it Repeater.
- Start VWD and open the Repeater Website.
- Start with the blank page and add a Repeater control.
- Configure the Data Source as with the previous two
examples.
- Switch to Source view.
- Find the
<asp:Repeater>
element and insert an
<ItemTemplate>
element as follows:
<asp:Repeater ... >
<ItemTemplate>
</ItemTemplate>
</asp:Repeater>
- Inside the ItemTemplate tag you insert the XHTML code for
a single record and a special tag for each field within the XHTML. In the
example below four fields are inserted, separated by commas, with a line
break at the end.
<asp:Repeater ... >
<ItemTemplate>
<%# Eval("StockCode") %>
,
<%# Eval("Description") %>
,
<%# Eval("Price") %>
,
<%# Eval("StockLevel") %>
<br />
</ItemTemplate>
</asp:Repeater>
- If you switch back to design view you will see an approximation
of what the data will look like, but you cannot edit the layout in Design
view.
Try the
Repeater application,
or download the
ZIP version of Repeater.
As well as the <ItemTemplate> element there are templates allowing you to
display alternating items differently, record separators, headers and footers. The
following source shows how to list all the StockCodes separated by '|' on a single
line.
<asp:Repeater ... >
<HeaderTemplate>Stock Ids: </HeaderTemplate>
<ItemTemplate>
<%# Eval("StockCode") %>
</ItemTemplate>
<SeparatorTemplate> | </SeparatorTemplate>
</asp:Repeater>
The templates can contain any valid XHTML, giving you the ultimate flexibility to
create a page layout. Try this
alternative Repeater
application or download the
ZIP version of the alternative repeater.
We will not develop the use of the Repeater control any further in this
tutorial.
The DetailsView control
This control is similar to the GridView control and is
configured in the same way. However, this control only displays one record at a
time. It can be configured easily to allow edit, insert and delete operations
on table data. Try the simple example
of
DetailsView
or download the
ZIP version of DetailsView.
The FormView control
This control is similar to the DataList control except that
it only displays one record at a time, and like the DetailsView control it can
be configured to allow edit, insert and delete operations, however, it is more
complex to configure. The
following source shows how to create a simple template to display a single field
from the current record.
<asp:FormView ...>
<ItemTemplate>
<p>Description: <%# Eval("Description") %></p>
</ItemTemplate>
</asp:FormView>
Try the simple example of
FormView
or download the
ZIP version of FormView.
We will not develop its use in this course.
Paging and Sorting Data
The basic controls for displaying data have a great deal of
flexibility in the way they can be configured from the properties pages. A
common requirement is to be able to display tabular data containing large
numbers of records in a manageable way. Pagination is the mechanism by which
the web page displays a limited number of records at any one time and provides
navigation links to scroll up and down the data, or directly to a specific
page. Coupled with this is the need to display data sorted by different
criteria. Pagination and sorting are both provided by simple property settings.
However, in this section we will look at other settings and configuration
options which enhance the user interface. We will use the GridView control for
our examples. The other controls use a similar mechanism, but may need more
effort to get them to work.
Pagination
Open the GridView website in VWD. If you select the GridView control and look at its
properties you will see a Paging Section. The two basic properties are AllowPaging and PageSize. Set these to true and a number respectively to break
the table display down into chunks of a specified number. The default setting
provides a numeric page navigation scheme with text links at the bottom of the GridView. More control over the navigation is provided through the PagerSettings property which has lots of sub-settings. These control text and
image/icon based navigation, and alternative schemes such as Previous/Next
rather than numeric page numbering.
Note: DetailsView and FormView only display a single record. Paging is a simple
mechanism to allow scrolling through the records.
Sorting
If you set the AllowSorting property to true on the GridView control a link is placed
in the header for each column. Clicking a link causes the page to refresh with the
table data sorted by the chosen column. A second click reverses the sort order.