(转)ASP.NET 3.5中的ListView控件和DataPager控件

来源:互联网 发布:下载数码大师软件 编辑:程序博客网 时间:2024/05/14 13:13
导读:
  原文地址:http://www.west-wind.com/WebLog/posts/127340.aspx
  [译者改后源码下载]
  [翻译]ASP.NET 3.5中的ListView控件和DataPager控件
  原文发布日期:2007.08.02
  作者:Rick Strahl
  翻译:webabcd
  介绍
  今天,我花了几个小时的时间研究了一下ASP.NET 3.5中的ListView控件和DataPager控件。 这两个控件是ASP.NET中新增的、非常受欢迎的控件。 ListView控件集成了DataGrid、DataList、Repeater和GridView控件的所有功能。 它可以像Repeater控件那样,让我们在控件内写任何HTML代码。
  可以说,ListView就是DataGrid和Repeater的结合体,它既有Repeater控件的开放式模板,又具有DataGrid控件的编辑特性。 这绝对是一个可以引起你兴趣的好东东,因为它给你提供了比DataGird丰富得多的布局手段,同时又具有DataGrid的所有特性。 ListView控件本身并不提供分页功能,但是我们可以通过另一个控件 –DataPager来实现分页的特性。 把分页的特性单独放到另一个控件里,会给我们带来很多好处,比如说可以让别的控件使用它,又比如说我们可以把它放在页面的任何地方。 实质上,DataPager就是一个扩展ListView分页功能的控件。
  ListView控件
  ListView是用来显示数据的,它的使用类似于Repeater控件。 ListView控件中有n多模板,出示如下:
  LayoutTemplate
  ItemTemplate
  AlternatingItemTemplate
  SelectedItemTemplate
  EmptyItemTemplate
  EmptyDataTemplate
  ItemSeparatorTemplate
  GroupTemplate
  GroupSeparatorTemplate
  EditItemTemplate
  InsertItemTemplate
  它有很多的模板。 其中有许多新增的模板,如GroupTemplate和InsertItemTemplate。 现在我们可能还无法了解GroupTemplate是如何工作的(后面会有介绍),但是对于InsertItemTemplate来说,一看就知道它是用于添加记录的(在之前的DataGird中是没有这个模板的)。
  继续摸索这个控件后,我发现它可以让你在它的模板内写任何HTML标记或控件,这将给我们带来很大的自由度。
  用ListView显示数据
  开始,你可以把ListView当作是Repeater来使用,也就是说它是模板驱动型的控件,其中的LayoutTemplate是ListView的一个布局模板。 参考如下示例:
  
  
  <  
  
  DataSourceID="Data"
  
  
  ItemContainerID="layoutTemplate"
  
  
  DataKeyNames="Pk"
  
  >
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  
  
  

  
  
  
  

  
  
  
  

  LayoutTemplate用来决定包裹着详细内容的容器的标记。 你可以在布局模板内放置任何控件,不过它必须要是服务端控件(runat=”server”)。 另外,你还需要指定ListView控件的ItemContainerID属性,它用来告知ListView在哪个容器下显示详细内容。 在上面的例子中,LayoutTemplate其实并没有起到什么作用,因为它只是将ListView显示的详细内容放到了一个
标记下而已。 但是,我们也可以用它来显示复杂的布局,如 Sku Abstract
  
  

  
  
  
  
  
  
  
  
  
  
  
   
  
  
  
   
  
  
  
  
  
  
  
原创粉丝点击