1. GridView 控件
GridView 控件用于显示表中的数据。通过使用 GridView 控件,您可以显示、编辑、删除、排序和翻阅多种不同的数据源(包括数据库、XML 文件和公开数据的业务对象)中的表格数据。
显示表格数据是软件开发中的一个周期性任务。ASP.NET 提供了许多工具来在网格中显示表格数据,例如 GridView 控件。通过使用 GridView 控件,您可以显示、编辑和删除多种不同的数据源(例如数据库、XML 文件和公开数据的业务对象)中的数据。
可以使用 GridView 来完成以下操作:
- · 通过数据源控件自动绑定和显示数据。
- · 通过数据源控件对数据进行选择、排序、分页、编辑和删除。
另外,还可以通过以下方式自定义 GridView 控件的外观和行为:
- · 指定自定义列和样式。
- · 利用模板创建自定义用户界面 (UI) 元素。
- · 通过处理事件将自己的代码添加到 GridView 控件的功能中。
1.1 使用 GridView 控件进行数据绑定
GridView 控件提供了两个用于绑定到数据的选项:
- · 使用 DataSourceID 属性进行数据绑定,此选项让您能够将 GridView 控件绑定到数据源控件。建议使用此方法,因为它允许 GridView 控件利用数据源控件的功能并提供了内置的排序、分页和更新功能。
- · 使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET 数据集和数据读取器在内的各种对象。此方法需要为所有附加功能(如排序、分页和更新)编写代码。
当使用 DataSourceID 属性绑定到数据源时,GridView 控件支持双向数据绑定。除可以使该控件显示返回的数据之外,还可以使它自动支持对绑定数据的更新和删除操作。
1.2 在 GridView 控件中设置数据显示格式
可以指定 GridView 控件的行的布局、颜色、字体和对齐方式。可以指定行中包含的文本和数据的显示。另外,可以指定将数据行显示为项目、交替项、选择的项还是编辑模式项。GridView 控件还允许指定列的格式。
1.3 使用 GridView 控件编辑和删除数据
默认情况下,GridView 控件在只读模式下显示数据。但是,该控件还支持一种编辑模式,在该模式下控件显示一个包含可编辑控件(如 TextBox 或 CheckBox 控件)的行。您还可以对 GridView 控件进行配置以显示一个 Delete 按钮,用户可单击该按钮来删除数据源中相应的记录。
GridView 控件可对其关联数据源自动执行编辑和删除操作,使您无需编写代码即可启用编辑行为。或者,也可以以编程方式控制编辑和删除数据的过程(如在 GridView 控件绑定到只读数据源控件的情况下)。
您可以使用模板对当某个行处于编辑模式时使用的输入控件进行自定义。
1.4 GridView 排序功能
GridView 控件支持在不需要任何编程的情况下通过单个列排序。通过使用排序事件以及提供排序表达式,您可以进一步自定义 GridView 控件的排序功能。
1.5 GridView 分页功能
GridView 控件提供一种简单的分页功能。可以通过使用 GridView 控件的 PagerTemplate 属性来自定义 GridView 控件的分页功能。
适用场景
GridView 控件一般适用于以表的形式显示规则的二维关系数据。例如用于显示站点下所有用户的列表。
2. DataList 控件
DataList Web 服务器控件以可自定义的格式显示数据库行的信息。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。标头、脚注和分隔符模板 也用于自定义 DataList 的整体外观。通过在模板中包括 Web 服务器控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。
DataList与GridView不同,必须通过自定义的template 来显示数据项。DataList 与 GridView相比不支持排序,分页功能。
适用场景:DataList 一般适用于显示“单列多行”关系的数据,例如用于显示产品列表,每一个ListItem显示一件产品的信息,你可以为ListItem 定义自己需要的格式。
3. Repeater 控件
Repeater Web 服务器控件是一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,Repeater 控件依次通过数据源中的记录,并为每个记录呈现一个项,并且在客户端不会生出多余的HTML代码,所以可以使用该控件来生成Rss、Atom的XML格式 来发布新闻信息等。
Repeater 控件与上述2 个控件相比显得最为单薄,Repeater 一般用于只读的数据,对数据呈现的列表不具备编辑,排序,分页等功能。
适用场景
功能非常单薄,它使用数据源返回的一组记录呈现只读列表。
三控件使用场景的比较:GridView常用于多行多列的数据展示,DataList常用于多行一列数据的展示,而Repeater控件常用也多行一列或一行多列数据的展示。
三控件使用效率的比较:GridView使用效率最低,DataList比GridView最高,而Repeater控件最高。
三控件内置功能的比较:GridView内置功能丰富,能够进行分页,而DataList次之,不能够进行分页,而Repeater控件内置的东西最少,也不能够进行分页。
4: DataList和Repeater控件的比较
GridView控件显示数据时在每个单元中显示一份信息(例如,员工6的名)。ASP.NET2.0提供了另一种选择,在一个表格单元中显示一条 记录的所有字段(在一个字段中显示员工6的名、姓、ID和雇佣日期等所有信息)。有两个数据绑定控件在每个表格单元中显示一条记录:DataList和 Repeater控件。两种之间惟一的差别是DataList控件有默认的格式和模板,而Repeater控件需要设计人员进行较多的设置。
创建DataList控件类似于创建GridView控件。可以从工具条拖放该数据绑定控件并让VWD带领您创建一个新的数据源控件,或者可 以手动添加数据源控件,然后创建该数据绑定控件。DataList控件的属性支持设置Layout Repeat Direction功能,从而使得记录可以在水平方向或垂直方向上增长,列的数量也一样。使用RepeatColomns属性可以进行布局列的数目,使用 RepeatDirection属性来设定布局的方向。
模板使得您可以设置表格单元丙的空间。例如,如果希望在每个DataList单元中显示一组不同的字段么可以修改模板将表格单元的背景修改为粉红色或者为每个表格单元添加一个标记,那后面的练习将带领您修改模板。
模板的意义很重大,但有些地方容易让人混淆。首先,模板本身不显示数据。相反,模板包含了实际显示数据的数据绑定控件,例如标签。其次,对于 一个特定的空间有多个模板。DataList控件的一个单元可以具有Item Template(普通的数据显示)、Alternating ItemTemplate(每隔一条记录使用相同的颜色)、Selected Template(当选中数据时改变外观)和EditItem Template(在编辑的过程中改变外观)。每个模板都是单独设计的,如您在后面所见。第三个让人混淆的地方是为了修改模板必须进入特定模板的编辑模 式;不能在Design View中通过选择和修改字段而改变模板。在编辑模板之后必须显式地结束模板的编辑模式。最后,ASP.NET 2.0在模板的内容中使用了术语style(样式)。样式主要为外观提供属性(颜色、边界等)。如果在样式和模板中同时设置了颜色和边界,则以模板中的为 准。这看起来像是一项充满危险的技术,但一旦使用了模板之后,您将发现模板的功能非常强大。
在理解了模板之后,我们可以回顾前面的介绍并做两个说明。首先,在GridView控件中仍然可以使用模板,而且使用方式相同。其次,DataList控 件和Repeater控件之间的区别在于DataLi st控件有一组默认的模板,而Repeater控件是一个空白区域,必须在这个区域中创建各种模板。
一个奔跑的程序员