DataList Web 服务器控件概述
更新:2007 年 11 月
DataList Web 服务器控件用可自定义的格式显示各行数据库信息。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。也可以使用标题、脚注和分隔符模板自定义 DataList 的整体外观。通过在模板中包括 Button Web 服务器控件,可将列表项连接到代码,而这些代码允许用户在显示、选择和编辑模式之间进行切换。
本主题包括:
背景
代码示例
类参考
背景
DataList Web 服务器控件以某种格式显示数据,这种格式可以使用模板和样式进行定义。DataList 控件可用于任何重复结构中的数据,如表。DataList 控件可以以不同的布局显示行,如按列或行对数据进行排序。
说明: |
---|
DataList 控件使用 HTML 表元素在列表中呈现项。若要精确地控制用于呈现列表的 HTML,请使用 Repeater Web 服务器控件,而不是 DataList 控件。 |
您可以选择将 DataList 控件配置为允许用户编辑或删除信息。还可以自定义该控件以支持其他功能,如选择行。
您可以使用模板通过包括 HTML 文本和控件来定义数据项的布局。例如,可以在某项中使用 Label Web 服务器控件来显示数据源中的字段。
下面各节介绍了 DataList 控件的功能。
将数据绑定到控件
必须将 DataList Web 服务器控件绑定到数据源。最常用的数据源是数据源控件,如 SqlDataSource 或 ObjectDataSource 控件。或者,可以将 DataList 控件绑定到任何实现 IEnumerable 接口的类,该接口包括 ADO.NET 数据集(DataSet 类)、数据读取器(SqlDataReader 类或 OleDbDataReader 类)或大部分集合。绑定数据时,您可以为 DataList 控件整体指定一个数据源。在给此控件添加其他控件(例如,列表项中的标签或文本框)时,还可以将子控件的属性绑定到当前数据项的字段。
为 DataList 项定义模板
在 DataList 控件中,可以使用模板定义信息的布局。
说明: |
---|
有关使用模板的概述,请参见 ASP.NET Web 服务器控件模板。 |
下表描述了 DataList 控件支持的模板。
模板属性 |
说明 |
---|---|
包含一些 HTML 元素和控件,将为数据源中的每一行呈现一次这些 HTML 元素和控件。 |
|
包含一些 HTML 元素和控件,将为数据源中的每两行呈现一次这些 HTML 元素和控件。通常,您可以使用此模板来为交替行创建不同的外观,例如指定一个与在 ItemTemplate 属性中指定的颜色不同的背景色。 |
|
包含一些元素,当用户选择 DataList 控件中的某一项时将呈现这些元素。通常,您可以使用此模板来通过不同的背景色或字体颜色直观地区分选定的行。还可以通过显示数据源中的其他字段来展开该项。 |
|
指定当某项处于编辑模式中时的布局。此模板通常包含一些编辑控件,如 TextBox 控件。 |
|
包含在列表的开始和结束处分别呈现的文本和控件。 |
|
包含在每项之间呈现的元素。典型的示例可能是一条直线(使用 HR 元素)。 |
样式
若要在模板中指定项的外观,可以设置该模板的样式。例如,您可以指定以下样式:
在白色背景上用黑色文本呈现各项。
在浅灰色背景上用黑色文本呈现交替项。
在黄色背景上用黑色加粗文本呈现选定项。
在浅蓝色背景上用黑色文本呈现正在编辑的项。
每个模板支持其自己的样式对象,您可以在设计时和运行时设置该样式对象的属性。您可以使用如下所示的样式:
有关更多信息,请参见 ASP.NET Web 服务器控件和 CSS 样式。
项的布局
DataList 控件使用 HTML 表对应用模板的项的呈现方式进行布局。您可以控制各个表单元格的顺序、方向和列数,这些单元格用于呈现 DataList 项。下表描述了 DataList 控件支持的布局选项。
布局选项 |
说明 |
---|---|
流布局 |
在流布局中,列表项在行内呈现,如同文字处理文档中一样。 |
表布局 |
在表布局中,列表项在 HTML 表中呈现。由于在表布局中可让您设置表单元格属性(如网格线),这就为您提供了更多可用于指定列表项外观的选项。有关详细信息,请参见如何:在 DataList Web 服务器控件中指定流格式或表格式。 |
垂直布局和水平布局 |
默认情况下,DataList 控件中的项在单个垂直列中显示。但是,可以指定该控件包含多个列。如果这样,可进一步指定这些项是垂直排序(类似于报刊栏)还是水平排列(类似于日历中的日)。有关详细信息,请参见如何:指定 DataList Web 服务器控件中的水平或垂直布局。 |
列数 |
不管 DataList 控件中的项是垂直排序还是水平排序,您都可指定列表将有多少列。这使您能够控制网页呈现的宽度,通常可避免水平滚动。 |
事件
DataList 控件支持多种事件。其中的 ItemCreated 事件可让您在运行时自定义项的创建过程。ItemDataBound 事件还为您提供了自定义 DataList 控件的能力,但需要在数据可用于检查之后。例如,如果您正使用 DataList 控件显示任务列表,则可以用红色文本显示过期项,以黑色文本显示已完成项,以绿色文本显示其他任务。这两个事件都可用于重写来自模板定义的格式设置。
其余事件为了响应列表项中的按钮单击而引发。这些事件旨在帮助您响应 DataList 控件的最常用功能。支持该类型的四个事件:
若要引发这些事件,可将 Button、LinkButton 或 ImageButton 控件添加到 DataList 控件中的模板中,并将这些按钮的 CommandName 属性设置为某个关键字,如 edit、delete、update 或 cancel。当用户单击项中的某个按钮时,就会向该按钮的容器(DataList 控件)发送事件。按钮具体引发哪个事件将取决于所单击按钮的 CommandName 属性的值。例如,如果某个按钮的 CommandName 属性设置为 edit,则单击该按钮时将引发 EditCommand 事件。如果 CommandName 属性设置为 delete,则单击该按钮将引发 DeleteCommand 事件,依此类推。
DataList 控件还支持 ItemCommand 事件,当用户单击某个没有预定义命令(如 edit 或 delete)的按钮时将引发该事件。您可以按照如下方法将此事件用于自定义功能:将某个按钮的 CommandName 属性设置为一个自己所需的值,然后在 ItemCommand 事件处理程序中测试这个值。例如,您可以在选择某项时使用这种方法,请参见如何:允许用户选择 DataList Web 服务器控件中的项中的介绍。
有关 Web 窗体事件的更多信息,请参见 ASP.NET Web 服务器控件事件模型。
编辑和选择项
可允许用户编辑控件中的单个项。其他数据控件(如 GridView、DetailsView 和 FormView 控件)可与数据源控件交互,从而支持自动更新和分页。与此相反,DataList 控件不能自动利用数据源控件的更新功能以及自动分页或排序。若要使用 DataList 控件执行更新、分页和排序,必须在编写的代码中执行更新任务。
常规的策略是创建一个 EditItemTemplate,在其中提供适合于编辑的布局和控件。还必须为用户提供一种方法,以指示他们要编辑项。实现此功能的最常见的方式是,在项模板中包括一个按钮(如果正在使用项模板,则利用 AlternatingItemTemplate 属性),然后将该按钮的 CommandName 属性设置为 edit。此后,当单击该按钮时,DataList 控件将自动引发 EditCommand 事件。在为事件处理程序编写的代码中,将项设置为编辑模式,这样就可以显示 EditItemTemplate。
EditItemTemplate 通常包括多个允许用户保存或放弃更改的按钮(例如,**“更新”和“取消”按钮)。这些按钮的工作方式与“编辑”**按钮类似,都是发送一条预定义命令消息(update 或 cancel)到 DataList 控件,进而引发 UpdateCommand 或 CancelCommand 事件,您可以相应地对这些事件做出响应。有关更多信息,请参见如何:允许用户编辑 DataList Web 服务器控件中的项。
使用 SelectedIndexChanged 事件选择某项的过程与此类似。将一个按钮添加到 ItemTemplate 中并将其 CommandName 属性设置为 select。然后为 SelectedIndexChanged 事件编写事件处理程序。当用户单击**“选择”**按钮时将引发 SelectedIndexChanged 事件。有关详细信息,请参见如何:允许用户选择 DataList Web 服务器控件中的项。有关更多信息,请参见如何:允许用户选择 DataList Web 服务器控件中的项。
返回页首
代码示例
如何:在 DataList Web 服务器控件中指定流格式或表格式
如何:指定 DataList Web 服务器控件中的水平或垂直布局
如何:允许用户选择 DataList Web 服务器控件中的项
如何:允许用户编辑 DataList Web 服务器控件中的项
如何:允许用户删除 DataList Web 服务器控件中的项
如何:响应 DataList 或 Repeater 项中的按钮事件
如何:在 DataList Web 服务器控件中动态自定义项
如何:在 DataList Web 服务器控件中动态创建模板
如何:将 DataList Web 服务器控件添加到 ASP.NET 网页
演练:使用 DataList Web 服务器控件显示并格式化数据
返回页首
类参考
下表列出了与 DataList 控件相关的关键类。
成员 |
说明 |
---|---|
控件的主类。 |
返回页首