当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(3)

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

点击次数:34 次 发布日期:2008-11-26 14:00:20 作者:源代码网
源代码网推荐     
源代码网推荐  DataList控件]
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    如前所述,DataGrid使用表格来显示数据。你也许需要更进一步地控制数据的显示。例如,你想使数据在表格中显示,但不是每行只有一条记录,而是多条。又或者,你并不想使用表格来显示数据,而是只将它们显示在一系列<span>标签中。
源代码网推荐  
源代码网推荐    DataList放弃了DataGrid中列表显示数据的概念,而是使用事先定义好的模板(Template)来定制显示。通过使用模板,可以同时使用HTML标签或数据绑定。这里的数据绑定的形式为:<%# … %>,用来显示数据源中给定条目的数据记录。如下的ItemTemplate将会显示数据源中CompanyName字段:
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    <asp:DataList runat="server" id="myDataList">
源代码网推荐  
源代码网推荐      <ItemTemplate>
源代码网推荐  
源代码网推荐        <%# DataBinder.Eval(Container.DataItem, "CompanyName") %>
源代码网推荐  
源代码网推荐      </ItemTemplate>
源代码网推荐  
源代码网推荐    </asp:DataList
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    通过修改上面的模板,我们可以使CompanyName字段显示为粗体字,而ContactName字段则以正常式样显示在CompanyName之下。
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    <asp:DataList runat="server" id="myDataList">
源代码网推荐  
源代码网推荐      <ItemTemplate>
源代码网推荐  
源代码网推荐        <b><%# DataBinder.Eval(Container.DataItem, "CompanyName") %></b>
源代码网推荐  
源代码网推荐        <br />
源代码网推荐  
源代码网推荐        <%# DataBinder.Eval(Container.DataItem, "ContactName") %>
源代码网推荐  
源代码网推荐      </ItemTemplate>
源代码网推荐  
源代码网推荐    </asp:DataList>
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    对于DataList数据源中的每一条记录,ItemTemplate会通过定义HTML标签来以相同的样式显示数据。ItemTemplate还支持其它其它6种模板:
源代码网推荐  
源代码网推荐    ·AlternatingItemTemplate
源代码网推荐  
源代码网推荐    ·EditItemTemplate
源代码网推荐  
源代码网推荐    ·FooterTemplate
源代码网推荐  
源代码网推荐    ·HeaderTemplate
源代码网推荐  
源代码网推荐    ·ItemTemplate
源代码网推荐  
源代码网推荐    ·SelectedItemTemplate
源代码网推荐  
源代码网推荐    ·SeparatorTemplate
源代码网推荐  
源代码网推荐    默认情况下DataList会将记录显示在HTML表格中。然而,通过设定RepeatColumn属性,你可以设置在一行中显示多少条记录。更进一步,你甚至可以指定DatList的内容不显示在表格中,而是<span>标签中。这可以通过设定RepearLayout属性来实现。
源代码网推荐  
源代码网推荐    通过模板、RepeatColumn和RepeatLayout属性,很明显DataList在定制数据输出样式方面较DataGrid更具灵活性,使得用户界面设计可以更加友好。当然,我们还需要进行功能性的对比,如分页、排序、记录编辑等等。
源代码网推荐  
源代码网推荐    通过EditItemIndex模板和EditCommand,UpdateCommand以及CancelCommand事件,DataList将支持记录编辑的功能。不过,比较DataGrid而言,这需要耗费更多的开发时间来实现。这种开发时间上的不一致主要有两个原因:
源代码网推荐  
源代码网推荐    ·编辑/更新/删除按钮在DataGrid中可以通过设定EditCommandColumn来自动添加;而在DataList中则需要手动添加。
源代码网推荐  
源代码网推荐    ·DataGrid的BoundColumn列样式自动使用文本框控件来显示记录编辑界面。而在DataList中,你必须通过EditItemTemplate明确地指定使用什么样的编辑界面。
源代码网推荐  
源代码网推荐    实现DataList中的分页、排序功能同记录编辑功能情况一样,并不算非常复杂。这些功能可以通过巧妙的编程加以实现,只是耗费一些开发时间。所以,如果需要用户对数据记录进行排序或编辑的话,使用DataGrid要比使用DataList方便得多。
源代码网推荐  
源代码网推荐    DataList的性能要比DataGrid好一些,特别是当DataList被包含在Form当中时。图2显示了WAST对DataList的测试。
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  图2:对DataList的每秒请求次数
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    可以看出,在被Web Form包含的情况下,DataList的性能要明显好于DataGrid。
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华