您的位置:首页 > 编程语言 > ASP

ASP.NET 2.0数据教程之三十一 使用DataList来一行显示多条记录

2010-05-03 20:59 801 查看

导言

在前两章的做的DataList的例子里我们都是使用单列的HTML<table>来显示数据.而自定义使DataList将数据显示在多列多行的table里也非常容易.而且还可以以单行多列来显示数据.

我们可以通过RepeatColumns和RepeatDirection属性来自定义DataList.这两个属性决定了数据显示时候的列数和方向(水平或垂直).图1是以一个3列的table来显示product信息的DataList例子.

代码

<asp:DataList ID="DataList1" runat="server" DataKeyField="ProductID" DataSourceID="ObjectDataSource1" EnableViewState="False">
<ItemTemplate>
<h4>
<asp:Label runat="server" ID="ProductNameLabel"
Text='<%# Eval("ProductName") %>'></asp:Label>
</h4>
Available in the
<asp:Label runat="server" ID="CategoryNameLabel" Text='<%# Eval("CategoryName") %>' />
store for
<asp:Label runat="server" ID="UnitPriceLabel" Text='<%# Eval("UnitPrice", "{0:C}") %>' />
</ItemTemplate>
</asp:DataList>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetProducts" TypeName="ProductsBLL">
</asp:ObjectDataSource>

注意在UnitPrice的Eval绑定语法里我包含了一个格式符,用来将值转换为货币格式- Eval("UnitPrice","{0:C}").

在浏览器里浏览这个页,如图2所示,DataList以单列多行的table显示product信息.





图 2: 默认情况下DataList 显示一个单列多行的table

第二步: 修改DataList的布局方向

默认情况下DataList垂直的用单列多行table来显示项(item).这个可以通过RepeatDirection属性来修改.

将RepeatDirection属性从Vertical改为Horizontal后,DataList会以单行多列显示数据.可以在设计器里选择RepeatDirection属性窗口修改这个属性.修改完后设计器马上会调整DataList的布局,创建一个单行多列的界面(见图3).





图 3: RepeatDirection属性用来决定DataList的项的布局方向

When displaying small amounts of data, a single-row, multi-column table might be an ideal way to maximize screen real estate. For larger volumes of data, however, a single row will require numerous columns, which pushes those items that can’t fit on the screen off to the right. Figure 4 shows the products when rendered in a single-row DataList. Since there are many products (over 80), the user will have to scroll far to the right to view information about each of the products.
当显示小数据量时,一个单行多列的table是一个理想的选择.而大数据量时,单行需要很多列,屏幕会因为显示不了这么多项而出现水平滚动条.图4显示在单行的DataList里显示product信息的情况.因为product的数量太多(81),用户不得不向右滚动来查看每个product的信息.





图 4: 大数据量时单列的DataList会有水平滚动条,

第三步: 以多列多行的table来显示数据

为了创建多行多列的DataList,我们需要设置RepeatColumns属性为显示的列数.默认的RepeatColumns属性为0,因此DataList会单列或单行的显示所有的项(取决于RepeatDirection属性的值).

我们将在例子里每行显示3个product.因此设置RepeatColumns属性为3.做完这个后,在浏览器里浏览页面.如图5所示,product显示以3列多行列出.





图 5: 每行显示3条product

RepeatDirection属性影响DataList的项的布局.图5显示的是RepeatDirection为Horizontal的情况.注意最前面的三个product — Chai, Chang, and Aniseed Syrup — 是先从左到右,再从上到下列出.后面的三个product(从Chef Anton’s Cajun Seasoning开始)在开始三个下面的一行里.将RepeatDirection改为Vertical,这些product的布局变为先从上到下,再从左到右.见图6.





图 6: Products 垂直布局

在最后的table里有多少行取决于记录的总数除以RepeatColumns的值.由于有84条product信息,除以3为28行.如果还有余数,最后的行或列会用空的cell填充.如果RepeatDirection为Vertical,那么最后的列会有空cell.如果RepeateDirection为Horizontal,那么最后的行有空cell.

总结

DataList默认情况使用单列多行的table来显示项.和GridView只有一个TemplateField差不多.我们可以一行显示多条记录来.仅仅是设置RepeatColumns属性为每行的列数就可以达到这个目的.另外,RepeatDirection属性可以用来指定多行多列的table的内容是水平布局 —先从左到右,再从上到下 —或垂直的 —先从上到下,再从左到右.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐