最近,我与一个开发员讨论在网页上分栏呈现数据的问题。就是说,单个数据元素在网页的几个栏中重复,在网页下面不断出现。这个开发员编写了许多代码,使用Repeater控件来实现这个目的。虽然这种方法可用,但使用DataList数据控件则更为简单。
DataList控件只是asp.NET所有控件中的一个。由于它不断显示数据源中的域,所以与Repeater控件相类似。其差别在于,DataList控件支持水平(按栏)重复数据域。
DataList的默认格式化利用XHTML表格单元格。像Repeater和其它控件一样,DataList控件应用模板来控制输出结果格式化。列表A中包含使用DataList控件的语法。
前面的选项列表并不详细。你可在线找到一份更为全面的列表。下面是DataList陈述性语法的几个重要元素:
简单实例
通过实例说明DataList控件的用法是个不错的选择。列表B中的asp.NET C#页面显示标准SQL Server Northwind数据库中的所有客户名。
实际的数据(公司名称)通过ItemTemplate元素来显示。CompanyName域从数据源提取到控件中,并通过asp.NET Label控件显示。
AlternatingItemTemplate显示输出的其它项目(黄色背景用作示范)。SeparatorTemplate定义输出结果中单个数据元素间出现的内容,所以在前面的例子中出现了中断线。列表C中是对应的VB.NET代码。
扩充实例
前面的例子以易于模仿的格式提供了一种输出数据域的简单而又直接的方法。这是一种显示一排名称,并允许用户选择名称以获得更多信息的好方法。这也是下面的例子所采用的方法。下面的代码使用单独的DataList超链接打开另一个asp.NET页面,以查看被选中名称的公司的细节,从而前面的例子进行扩充。DataList Web Form最先出现在列表D中。