比较GridView,DataList,Repeater,DetailsView,FormView
Posted on 2011-04-13 00:40 光照峋山 阅读(741) 评论(0) 编辑 收藏 举报Net 2.0中5个数据源控件,GridView,DataList,Repeater | DetailsView,FormView
(1)其中前3个用于呈现多列数据,后面2个用于呈现单列数据,即常用的数据明细.
(2)GridView和DetailsView控件的布局固定,自定义数据显示的布局功能有限,一般适合布局简单的数据呈现.
(3)DataList,Repeater和FormView数据控件都有很强的自定义布局能力,如果数据呈现需要较为复杂的布局方案,这3个控件是首选.
(4)GridView ,DetailsView和FormView都是2.0版本新增控件,内置了分页,排序等等功能,其改进程度是1.1所提供控件无法比的.
(5)DataList和Repeater是1.1版就提供的控件,内置功能较弱,需要自己实现分页,排序,数据事件等功能.
GridView 控件
GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。在表中显示数据源的值,其中每列表示一个字段,每行表示一条记录。
GridView 控件支持下面的功能:
· 绑定至数据源控件,如 SqlDataSource。
· 内置排序功能。
· 内置更新和删除功能。
· 内置分页功能。
· 内置行选择功能。
· 以编程方式访问 GridView 对象模型以动态设置属性、处理事件等。
· 多个键字段。
· 用于超链接列的多个数据字段。
· 可通过主题和样式进行自定义的外观.
绑定到数据
GridView 控件可绑定到数据源控件(如 SqlDataSource、ObjectDataSource 等等),以及实现 System.Collections..::.IEnumerable 接口的任何数据源(如 System.Data..::.DataView、System.Collections..::.ArrayList 或 System.Collections..::.Hashtable)。使用以下方法之一将 GridView 控件绑定到适当的数据源类型:
· 使用 DataSourceID属性绑定到数据源控件。这是绑定到数据的首选方法,因为它允许 GridView 控件利用数据源控件的功能来执行排序、更新、删除和分页。
· 使用 DataSource 属性进行数据绑定,此选项使您能够绑定到包括 ADO.NET 数据集和数据读取器在内的各种实现 System.Collections..::.IEnumerable 接口的数据源。请以编程方式将 GridView 控件的 DataSource 属性设置为该数据源,然后调用 DataBind 方法。当使用此方法时,GridView 控件不提供内置的排序、更新、删除和分页功能,需要自行编写代码。
GridView 控件不直接支持将记录插入数据源。但是,通过将 GridView 控件与 DetailsView 或 FormView 控件结合使用则可以插入记录。
在GridView中设置数据显示格式
可以指定 GridView 控件的行的布局、颜色、字体和对齐方式。可以指定行中包含的文本和数据的显示。另外,可以指定将数据行显示为项目、交替项、选择的项还是编辑模式项。GridView 控件还允许指定列的格式。
DetailsView 控件
DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。
DetailsView 控件支持下面的功能:
· 绑定至数据源控件,如 SqlDataSource。
· 内置插入功能。
· 内置更新和删除功能。
· 内置分页功能。
· 以编程方式访问 DetailsView 对象模型以动态设置属性、处理事件等。
· 可通过主题和样式进行自定义的外观。
FormView 控件
FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种不可更改的模板布局中,数据记录的每个字段都显示为控件中的一行。而 FormView 控件则不指定用于显示记录的预定义布局,您将自定义包含控件的模板,以显示记录中的各个字段。该模板可包含用于设置窗体布局的格式、控件和绑定表达式。
FormView 控件支持以下功能:
· 绑定到数据源控件,如 SqlDataSource 和 ObjectDataSource。
· 内置插入功能。
· 内置更新和删除功能。
· 内置分页功能。
· 以编程方式访问 FormView 对象模型以动态设置属性、处理事件等。
· 可通过用户定义的模板、主题和样式自定义外观。
Repeater 控件
Repeater Web 服务器控件是一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时, Repeater 控件使用数据源返回的一组记录为每个记录呈现只读项。
Repeater 控件是唯一允许在模板间拆分标记的 Web 控件。若要利用模板创建表,请在 HeaderTemplate 中包含表开始标记 (<table>),在 ItemTemplate 中包含单个表行标记 (<tr>),并在 FooterTemplate 中包含表结束标记 (</table>)。
DataList 控件
DataList 控件以可自定义的格式显示数据库行的信息,例如,将数据记录排成列或行的形式。
显示数据的格式必须在创建的模板中自定义。可以为项、交替项、选定项和编辑项创建模板。标头、脚注和分隔符模板也用于自定义 DataList 的整体外观。通过在模板中包括 Web 服务器控件,可将列表项连接到代码,这些代码使用户得以在显示、选择和编辑模式之间进行切换。
您可以对 DataList 控件进行配置,使用户能够编辑或删除表中的记录。(DataList 控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)
DataList 与 GridView相比不支持排序、分页功能。DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然。
DataList 控件的显示方向可以是垂直或水平的。设置 RepeatDirection 属性以指定显示方向。
DataList 控件的布局由 RepeatLayout 属性控制。将此属性设置为 RepeatLayout.Table 将以表的形式显示 DataList;而设置为 RepeatLayout.Flow 将显示不具有表结构的 DataList。
适用场景
DataList 一般适用于显示“单列多行”关系的数据,例如用于显示产品列表,每一个ListItem显示一件产品的信息,你可以为ListItem 定义自己需要的格式。