关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(3)

[ DataList 控件 ]

如前所述, DataGrid 使用表格来显示数据。你也许需要更进一步地控制数据的显示。例如,你想使数据在表格中显示,但不是每行只有一条记录,而是多条。又或者,你并不想使用表格来显示数据,而是只将它们显示在一系列

1<span> 标签中。 
2
3DataList  放弃了  DataGrid  中列表显示数据的概念,而是使用事先定义好的模板(  Template  )来定制显示。通过使用模板,可以同时使用  HTML  标签或数据绑定。这里的数据绑定的形式为:  ```
4# … 
5``` ,用来显示数据源中给定条目的数据记录。如下的  ItemTemplate  将会显示数据源中  CompanyName  字段: 
6
7<asp:datalist id="myDataList" runat="server">
8<itemtemplate>

DataBinder.Eval(Container.DataItem, "CompanyName")

1
2</itemtemplate>
3</asp:datalist>
4<itemtemplate>
5<b>```
6# DataBinder.Eval(Container.DataItem, "CompanyName") 
7```</b>
8<br/>

DataBinder.Eval(Container.DataItem, "ContactName")

 1
 2</itemtemplate>
 3
 4
 5对于  DataList  数据源中的每一条记录,  ItemTemplate  会通过定义  HTML  标签来以相同的样式显示数据。  ItemTemplate  还支持其它其它  6  种模板: 
 6
 7·  AlternatingItemTemplate 
 8
 9·  EditItemTemplate 
10
11·  FooterTemplate 
12
13·  HeaderTemplate 
14
15·  ItemTemplate 
16
17·  SelectedItemTemplate 
18
19·  SeparatorTemplate 
20
21默认情况下  DataList  会将记录显示在  HTML  表格中。然而,通过设定  RepeatColumn  属性,你可以设置在一行中显示多少条记录。更进一步,你甚至可以指定  DatList  的内容不显示在表格中,而是  <span> 标签中。这可以通过设定  RepearLayout  属性来实现。 
22
23通过模板、  RepeatColumn  和  RepeatLayout  属性,很明显  DataList  在定制数据输出样式方面较  DataGrid  更具灵活性,使得用户界面设计可以更加友好。当然,我们还需要进行功能性的对比,如分页、排序、记录编辑等等。 
24
25通过  EditItemIndex  模板和  EditCommand  ,  UpdateCommand  以及  CancelCommand  事件,  DataList  将支持记录编辑的功能。不过,比较  DataGrid  而言,这需要耗费更多的开发时间来实现。这种开发时间上的不一致主要有两个原因: 
26
27·编辑  /  更新  /  删除按钮在  DataGrid  中可以通过设定  EditCommandColumn  来自动添加;而在  DataList  中则需要手动添加。 
28
29·  DataGrid  的  BoundColumn  列样式自动使用文本框控件来显示记录编辑界面。而在  DataList  中  ,  你必须通过  EditItemTemplate  明确地指定使用什么样的编辑界面。 
30
31实现  DataList  中的分页、排序功能同记录编辑功能情况一样,并不算非常复杂。这些功能可以通过巧妙的编程加以实现,只是耗费一些开发时间。所以,如果需要用户对数据记录进行排序或编辑的话,使用  DataGrid  要比使用  DataList  方便得多。 
32
33DataList  的性能要比  DataGrid  好一些,特别是当  DataList  被包含在  Form  当中时。图  2  显示了  WAST  对  DataList  的测试。 
34
35![](http://dev.csdn.net/Develop/ArticleImages/27/27436/CSDN_Dev_Image_2004-5-3125060.gif)
36
37图  2  :  对  DataList  的每秒请求次数 
38
39可以看出  ,  在被  Web Form  包含的情况下  ,  DataList  的性能要明显好于  DataGrid  。</span></span>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus