ASPNET_ListView 用法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

ListView 基础

ListView 是模板驱动的控件,这意味着它默认情况下不会呈现任何数据——您必须以模板

的形式完全指定希望它呈现的HTML。与大多数模板控件类似,ItemTemplate 将成为您工作的重点,您需要将绑定数据集中每一行不断重复的HTML 内容放在ItemTemplate 里。ListView 中的新功能,也是它与其它控件的真正不同之处在于引进了LayoutTemplate。在LayoutTemplate 中,您可以将要输出的顶级HTML 定义为控件呈现的内容。例如,如果希望ListView 作为表格呈现,则可以在LayoutTemplate 中包含顶级

和 元素,把行和单元格的呈现留给ItemTemplate,如图1所示(在本示例中,绑定的数据源将显示包含电影标题和发行日期的简单表格)。图2显示了浏览器呈现。

Figure 1 Using LayoutTemplate and ItemTemplate

复制代码

DataSourceID="_moviesDataSource">

IDTitleRelease Date

<%# Eval("movie_id") %>

<%# Eval("title") %>

<%# Eval("release_date", "{0:d}") %>

Figure 2显示在表格中的列表(单击该图像获得较大视图)

LayoutTemplate 和ItemTemplate 之间的关联由LayoutTemplate 中ID 设置为itemPlaceholder 的单一服务器端控件完成。(您可以使用ListView 的ItemPlaceholderID 属性更改ID 字符串的默认值。)在第一个示例中,我将PlaceHolder 控件的实例放置在模板中,即我希望注入ItemTemplate 内容的位置。请注意:尽管必须支持子控件,但并没有限制必须使用什么类型的控件作为占位符——ID 才是重要。例如,我可以使用服务器端表格行代替PlaceHolder 控件编写LayoutTemplate,实现同样的效果:

复制代码

IDTitleRelease Date

通常情况下,出于以下两个原因,我更喜欢使用通用的PlaceHolder 控件。第一个原因是名称匹配得很好。而且,该控件并不呈现其自身的HTML,而是用ItemTemplate 的内容代替,因此如果控件除在层次结构中保留位置以外无任何其它目的,这是更合乎逻辑的选择。当然,使ListView 如此灵活的原因是您可以完全控制LayoutTemplate 的内容。您不是只能使用表格——您可以将任何希望呈现的HTML 放置在LayoutTemplate 中,只要注入itemPlaceholder 控件位置时ItemTemplate 的内容有效即可。以下是绑定到相同电影数据源的ListView 示例,但这次不是表格,是带有标题和发行日期的电影显示在项目符号列表中(结果列表如图3所示):

Figure 3相同列表,不同格式(单击该图像获得较大视图)

复制代码

ID="_simpleTableListView"

DataSourceID="_moviesDataSource">

    ID="itemPlaceholder" />

  • <%# Eval("title") %>,

    <%# Eval("release_date", "{0:d}") %>

  • ListView 和CSS

    开发人员长久以来在创建CSS 驱动的站点时都受到单独控件的限制。许多默认控件呈现内联样式,或者难于使CSS 类与其HTML 输出部分相关联。实际上Microsoft 在2006 年4 月已发布名为“C SS 控件适配器”的工具包,该工具包为几个完全由CSS

    驱动的控件(包括GridView)提供了可选呈现机制,帮助纠正该问题(有关详细信息,请参见2006 年10 月的“非常”专栏

    /msdnmag/issues/06/10/ExtremeASPNET)。这些备用呈现机制从未并入完整版当中,所以需要单独安装且缺少设计人员支持。

    ListView 通过让您完全控制何时何地应用样式表,使您在站点里利用CSS 变得更为简捷。一种常见的情形是开发人员为特定页面手动预先设计,通常包含HTML 和CSS。采用传统的GridView 呈现数据表的特定设计总是很难保证正确,因为GridView 类仅提供用于修改HTML 结果的有限挂接集。

    我见过许多开发人员经历过的试验和错误,将样式属性应用到网格,查看页面源以准确理解样式放置的位置,并反复试验直到网格能够按要求呈现为止。使用ListView,您不必再做这些猜测工作了,因为现在您可以控制布局和内容。

    例如,假设提供给您的表格需要按照图4所示的方式显示,并使用由 .htm 和 .css 文件组成的设计,如图5中所示。

    Figure 5 HTML and CSS for the Table

    HTML

    复制代码