首 页  资讯中心 下载中心 资讯教程 最新下载 发布软件 发布文章 网通站 电信站繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:曾子源码软件下载站 -> 网络编程 -> asp.net -> 文章内容 退出登录 用户管理
热门文章
· 常用C,VC,C++书籍下..
· 新概念英语视频教程..
· 常用 JAVA JAVA2 J..
· 《梦幻麻将馆9雀圣争..
· 新东方英语视频教程..
· 常用VB,Visual Basi..
· [组图] After Effect..
· WINDOWS 所有系统文..
· [组图] 让机器运行多..
· 全美经典学习指导系..
相关文章
· [图文] 关于QQ不是拍..
· [组图] 恶搞的艺术 关..
· 关于何种情况下使用..
· 关于何种情况下使用..
· 关于何种情况下使用..
· 腾讯公司关于QQ号码..
· 使用ASP.NET中的一点..
· 安全必读 关于网页代..
· 关于HtmlForm控件
· 给Asp.Net初学者的关..
关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(4)
作者: Scott Mitchell     来源:不详  发布时间:2006-5-12 21:57:46  发布人:admin

减小字体 增大字体

    
  [Repeater控件]
  
  
  
    Repeater控件是三种数据控件中在HTML输出方面最为灵活的控件。Repeater会按照你所要求的样式严格地输出数据记录。所以,如果你不想以表格方式或者简单的<span>输出数据,那么最好使用Repeater。
  
    与DataList一样,Repeater使用模板来指定输出样式。Repeater支持如下五种模板:
  
    ·AlternatingItemTemplate
  
    ·FooterTemplate
  
    ·HeaderTemplate
  
    ·ItemTemplate
  
    ·SeparatorTemplate
  
    HederTemplate和FooterTemplate指定在真正的记录输出之前或之后应处理的HTML内容。AlternatingItemTemplate和ItemTemplate则指定实际的每条输出记录的HTML样式。如,你需要绑定一个包含雇员信息的DataSet到一个Repeater,字段名为EmployeeName。如果你想在页面中不排序地显示这些记录,你可以使用如下的语句:
  
  
  
    <asp:Repeater runat="server" id="rptEmployees">
  
      <HeaderTemplate>
  
        <ul>
  
      </HeaderTemplate>
  
      <ItemTemplate>
  
        <li><%# DataBinder.Eval(Container.DataItem, "EmployeeName") %></li>
  
      </ItemTemplate>
  
      <FooterTemplate>
  
        </ul>
  
      </FooterTemplate>
  
    </asp:Repeater>
  
  
  
    Repeater类不是继承自WebControl类的,这一点与DataGrid和DataList不同。所以,Repeater没有样式方面的属性可供设定。也就是说,如果你想格式化输出Repeater的数据记录,你必须使用HTML标签来设定样式。如,在一例中,如果我们想将雇员名字显示成粗体,我们必须在ItemTemplate设置相应的HTML标签:
  
  
  
    <ItemTemplate>
  
      <li><b><%# DataBinder.Eval(Container.DataItem, "EmployeeName")%></b></li>
  
    </ItemTemplate>
  
  
  
    而如果使用DataGrid或DataList,我们只通过设定ItemStyle-Font-Bold属性为True即可实现。
  
    Repeater在格式化设定上的欠缺,直接反映到开发时间的延长上来。对输出数据样式上的越多要求,就越会导致开发周期的延长。这些在模板中规定样式的HTML标签也越发得显得混乱,而且,在将来页面更改时会更加困难,特别是当一个新的开发人员接替工作时。而使用DataGrid或DataList你尽可以只设定样式属性,而不使用模板。而且,如果使用Visual Studio.Net或ASP.Net Web Matrix工作时,这些属性更可以被直接设定而无需编码。
  
    因为Repeater开发时间的延长,其在内建功能(分页、排序及编辑)上的支持也显得不足。因此在可用性方面,Repeater有着明显的缺陷。当然,<b>如果</b>用户对于如何显示数据无所谓的话,这也算不了什么大问题。我之所以强调这个“如果”,是因为尽管用户有时在设计时并不要求能够分页、排序或编辑记录,但这样的要求往往会在开发后期,或在他们能看到显示出来的记录后产生。
  
    Repeater唯一优于DataGrid和DataList的特点是它的性能,尤其明显优于DataGrid。图3说明了这一点。
  
  
  
  
  
  
  图3:对Repeater的每秒请求次数
  
  
  
  [结论]
  
  
  
    在ASP.Net页面上显示数据时,多数的程序员会选择他们所熟悉的控件来使用,特别是DataGrid。然而,这样盲目的选择在没有“最好的通用控件”的情况下是不明智的。在选择控件来显示数据前,不妨问自己几个问题来帮助决策:是否允许用户对记录排序?是不是记录需要显示在非表格的情况下?页面是否会被高频度地访问,因此应多考虑性能?
  
    DataGrid提供了最多的功能,如允许访问者对记录编辑、排序或分页。同时它也是最容易使用的,甚至于简单到只需要将之添加到页面中而不必额外编写代码。不过这些易用性是以性能的损失为代价的。DataGrid在三种控件中是效率最低的,特别是在使用Web Form的情况下。
  
    通过使用模板,DataList提供了比DataGrid更加优秀的界面效果。不过这需要以牺牲一定的开发时间为代价。为了添加排序、分页和编辑功能,程序员不得不花费比使用DataGrid更多的精力来进行编码,虽然它的性能要优于DataGrid。
  
    最后,Repeater允许对数据记录作最大限度的HTML定制。通常,使用Repeater来显示数据记录比使用DataGrid和DataList要耗费更长的开发时间。另外,它不支持内建的编辑、排序和分页功能。所幸的是,Repeater在性能上要优于其它两种控件,特别是明显优于DataGrid。
  
  
  
  [附录]
  
  
  
  WAST测试设定
  
    测试是在运行Microsoft Windows 2003 Server操作系统的笔记本电脑上完成的。基本配置如下:Intel P4 2.4G CPU;512 MB RAM;30GB Ultra ATA Hard drive;网页服务器使用IIS 6.0;ASP.Net版本为1.1。此测试中的WAST被设置成使用单线程,每个测试时间为一分钟。
  
    测试代码http://download.microsoft.com/download/9/e/9/9e97b2f8-b317-4751-9ac1-2e34eebec26a/DataControlsPerfTest_Setup.msi点击此处下载  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [发表评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站信息排名查询
Copyright © 2004-2006 Zasp.Net. All Rights Reserved .