在ASP.NET 2.0这个强大的网络应用程序开发框架中,开发者经常需要面对的一个关键任务就是如何在网页上有效地展示数据。其中,DataList和Repeater是两个非常有用的控件,它们在处理数据呈现时各有特色。
选择使用哪一个控件,还需要根据具体的需求和项目的要求来决定。无论你选择哪一个,都需要对ASP.NET有深入的理解,以及对HTML和CSS的熟练掌握,这样才能创建出让用户满意的、具有吸引力的网页应用。
DataList和Repeater都是ASP.NET 2.0中强大的数据呈现工具。它们各有优点,选择哪一个取决于你的具体需求和项目的特性。无论你选择哪一个,只要你熟练掌握了它们的使用技巧,就能轻松地在网页上展示数据,创造出令人惊叹的应用程序。导言
在之前的28篇教程中,我们学习了如何使用GridView来显示数据源的多条记录。GridView控件以其强大的分页、排序、编辑和删除功能而深受开发者喜爱。它的标记结构是固定的,通常包含HTML的`
`标记,每行表示数据源的一条记录,每列代表一个字段。
尽管GridView提供了这些便利,但它对于自定义数据的显示并不够灵活。为了解决这个问题,ASP.NET 2.0引入了DataList和Repeater控件,它们使用模板来显示内容,而不是像GridView那样使用BoundFields、CheckBoxFields和ButtonFields等。DataList允许每行显示多条记录,而Repeater则不会生成多余的标记,非常适合那些需要精确控制标记生成的情况。
在接下来的教程中,我们将从使用DataList和Repeater的模板显示数据开始,学习它们的基本用法。我们将学习如何控制这些控件的格式,如何在DataList中改变数据的布局,最常见的主/从场景,编辑和删除数据的方法,以及如何分页等。
第一步:添加DataList和Repeater教程页
在开始本篇教程前,我们先创建一些将在本篇和后续教程中使用的页面。在DataListRepeaterBasics文件夹下,我们添加了Default.aspx、Basics.aspx、Formatting.aspx、RepeatColumnAndDirection.aspx和NestedControls.aspx等页面。
打开Default.aspx的设计视图,从UserControls文件夹中拖入SectionLevelTutorialListing.ascx用户控件。这个控件用于列出教程章节,我们在母板页和站点导航中创建了它。
接下来,我们将这些页面的地址添加到Web.sitemap中,并在Paging and Sorting ``之后添加有关狼蚁网站SEO优化的条目。
第二步:在DataList中显示Product信息
和FormView一样,DataList使用模板来显示信息,而不是使用BoundFields等。不同的是,DataList用于显示一组记录,而不是单独的一条。现在,我们开始本章的教程,学习如何将product绑定到DataList。
打开DataListRepeaterBasics文件夹中的Basics.aspx页面,并从工具箱中拖入一个DataList。在设计模式下,DataList在指定模板之前会是灰色的。
通过DataList的智能标签,我们添加了一个ObjectDataSource,使用ProductsBLL类的GetProducts方法来配置它。由于本教程中的DataList是只读的,所以在INSERT、UPDATE和DELETE标签的下拉列表中选择None。
配置完ObjectDataSource后,Visual Studio会自动为数据源返回的每个字段创建一个ItemTemplate,用于显示name和value。这个默认的ItemTemplate看起来和绑定FormView时自动生成的模板相似。
第三步:改善DataList的外观
DataList提供了与样式有关的属性,如Font、ForeColor、BackColor、CssClass等。我们创建了一个名为DataList.skin的Skin文件,用于定义DataList的默认显示属性。
第四步:浏览DataList的其它Templates
DataList支持除ItemTemplate外的其它6种模板:HeaderTemplate、AlternatingItemTemplate、SelectedItemTemplate、EditItemTemplate、SeparatorTemplate和FooterTemplate。
第五步:使用Repeater
Repeater与DataList类似,也基于模板构建,但它在输出上提供了更大的灵活性。我们使用Repeater在单行HTML`