DetailsView Web 服务器控件概述
更新:2007 年 11 月
DetailsView 控件显示数据源的单个记录,其中每个数据行表示记录中的一个字段。此控件经常在主控/详细方案中与 GridView 控件一起使用。
本主题包括:
背景
代码示例
类参考
背景
使用 DetailsView 控件,您可以从它的关联数据源中一次显示、编辑、插入或删除一条记录。默认情况下,DetailsView 控件将记录的每个字段显示在它自己的一行内。DetailsView 控件通常用于更新和插入新记录,并且通常在主/详细方案中使用,在这些方案中,主控件的选中记录决定要在 DetailsView 控件中显示的记录。即使 DetailsView 控件的数据源公开了多条记录,该控件一次也仅显示一条数据记录。
DetailsView 控件依赖于数据源控件的功能执行诸如更新、插入和删除记录等任务。DetailsView 控件不支持排序。
DetailsView 控件可以自动对其关联数据源中的数据进行分页,但前提是数据由支持 ICollection 接口的对象表示或基础数据源支持分页。DetailsView 控件提供用于在数据记录之间导航的用户界面 (UI)。若要启用分页行为,请将 AllowPaging 属性设置为 true。
从关联的数据源选择特定的记录时,可以通过分页到该记录进行选择。由 DetailsView 控件显示的记录是当前选择的记录。
使用 DetailsView 控件进行数据绑定
DetailsView 控件提供了以下用于绑定到数据的选项:
使用 DataSourceID 属性进行数据绑定,此选项使您能够将 DetailsView 控件绑定到数据源控件。建议使用此选项,因为它允许 DetailsView 控件利用数据源控件的功能并提供了内置的更新和分页功能。
使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET 数据集和数据读取器在内的各种对象。此方法需要您为任何附加功能(如更新和分页等)编写代码。
当使用 DataSourceID 属性绑定到数据源时,DetailsView 控件支持双向数据绑定。除可以使该控件显示数据之外,还可以使它自动支持对绑定数据的插入、更新和删除操作。
使用 DetailsView 控件数据
DetailsView 控件绑定到数据源控件,后者接下来处理连接到数据存储区及返回所选择的数据的任务。将 DetailsView 控件绑定到数据与以声明方式设置 DataSourceID 属性一样简单。您也可以用编写代码的方式将该控件绑定到数据源。
若要启用编辑操作,请将 AutoGenerateEditButton 属性设置为 true。除呈现数据字段外,DetailsView 控件还将呈现一个**“编辑”按钮。单击“编辑”**按钮可使 DetailsView 控件进入编辑模式。在编辑模式下,DetailsView 控件的 CurrentMode 属性会从 ReadOnly 更改为 Edit,并且该控件的每个字段都会呈现其编辑用户界面,如文本框或复选框等。还可以使用样式、DataControlField 对象和模板自定义编辑用户界面。
说明: |
---|
若要使 DetailsView 控件支持编辑操作,绑定数据源必须支持对数据的更新操作。 |
可以将 DetailsView 控件配置为显示**“删除”和“插入”按钮,以便可以从数据源删除相应的数据记录或插入一条新的数据记录。与 AutoGenerateEditButton 属性相似,如果在 DetailsView 控件上将 AutoGenerateInsertButton 属性设置为 true,该控件就会呈现一个“新建”按钮。单击“新建”**按钮时,DetailsView 控件的 CurrentMode 属性会更改为 Insert。DetailsView 控件会为每个绑定字段呈现相应的用户界面输入控件,除非绑定字段的 InsertVisible 的属性设置为 false。
自定义 DetailsView 控件用户界面
DetailsView 控件支持 Fields 集合属性,后者包含类型为 BoundField、CommandField 或 HyperLinkField 的 DataControlField 对象。除了 DetailsView 控件将每个字段呈现为一行而不是一列之外,这在功能上与 GridView 控件的 Columns 集合相似。
与 GridView 控件一样,您可以自定义 DetailsView 控件的用户界面,方法是使用 HeaderStyle、RowStyle、AlternatingRowStyle、CommandRowStyle、FooterStyle、PagerStyle 和 EmptyDataRowStyle 这样的样式属性。
DetailsView 控件通过模板提供了其他自定义方法,使您可以更多地控制某些元素的呈现。可以为 DetailsView 控件定义自己的 EmptyDataTemplate、HeaderTemplate、FooterTemplate 和 PagerTemplate 属性。还可为通过将 TemplateField 对象添加到 Fields 集合中来为单个字段创建一个模板。
DetailsView 控件公开多个您可以处理的多个事件,以便执行您自己的代码。这些事件在对关联的数据源控件执行插入、更新和删除操作的前后引发。您还可以为 ItemCreated 和 ItemCommand 事件编写处理程序。有关更多信息,请参见 DetailsView Web 服务器控件事件。
说明: |
---|
DetailsView 控件的事件模型与 GridView 控件的事件模型相似。但是,DetailsView 控件不支持选择事件,因为当前记录始终是所选择的项。 |
返回页首
代码示例
演练:使用 DetailsView 服务器控件在网页上编辑和插入数据
演练:使用 LinqDataSource 和 DetailsView 控件检索、更新、插入和删除数据
在 DetailsView Web 服务器控件中创建自定义行
返回页首
类参考
下表列出了与 DetailsView 控件相关的关键类。
成员 |
说明 |
---|---|
控件的主类。 |
返回页首