ASP.NET 网格视图与列表视图

Posted

技术标签:

【中文标题】ASP.NET 网格视图与列表视图【英文标题】:ASP.NET Grid View vs. List View 【发布时间】:2010-10-27 20:59:50 【问题描述】:

使用listview 比gridview 有什么优势?我需要在视图中进行分页、编辑行、插入行和删除行。哪种控制最适合?似乎 GridView 不支持数据寻呼机。如果我将网格视图迁移到列表视图,我会牺牲什么?

【问题讨论】:

【参考方案1】:

ListView 让您可以更好地控制生成的 html 标记。

【讨论】:

【参考方案2】:

它真的取决于/要求使用哪个控件的场景 Listview 完全是模板驱动并支持插入记录,您可以使用常规的 html 表格并使用 CSS 对其进行样式来呈现数据,您对设计布局有很大的控制权。 另一方面,GridView,您可以插入记录,但这可能涉及使用 页脚和您的 objectdatasource_inserting 事件。您需要在gridview页脚中找到并捕获输入的数据,然后直接添加到您的objectdatasource的输入参数中。

【讨论】:

【参考方案3】:

Gridview 是最好的选择。您可以比任何其他控件更容易地完成您提到的所有事情。列表视图是从列表框派生的

ListView 控件支持以下功能:

支持绑定到数据源 SqlDataSource 等控件, LinqDataSource 和 ObjectDataSource。

通过自定义外观 用户定义的模板和样式。

内置排序功能。

内置更新和删除 能力。

内置插入功能。

支持分页功能 使用 DataPager 控件。

内置项目选择功能。

以编程方式访问 ListView 对象模型动态设置 属性、处理事件等。

多个关键字段。


GridView 在表格中显示数据源的值,其中每列代表一个字段,每行代表一条记录。 GridView 控件使您能够选择、排序和编辑这些项目。

GridView 控件用于在表格中显示数据源的值。每列代表一个字段,而每一行代表一条记录。 GridView 控件支持以下功能:

绑定到数据源控件,例如 作为 SqlDataSource。

内置排序功能。

内置更新和删除 能力。

内置分页功能。

内置行选择功能。

以编程方式访问 GridView 对象模型动态设置 属性、处理事件等。

多个关键字段。

多个数据字段 超链接列。

通过自定义外观 主题和风格。

了解其他数据绑定 可用的控件 ASP.NET,请参阅 ASP.NET 数据绑定 Web 服务器控件概述。

【讨论】:

【参考方案4】:

This article is particularly useful 进行比较。

对我来说,这是您可以呈现的 HTML 的原始灵活性。在我正在开发的一个项目中,我使用的是 GridView,但替换为 ListView,因为我想要 GridView 无法提供的非常具体的分页要求。我本可以使用 3rd 方 gridview 来提供分页要求,但我想尽量减少对 3rd 方代码的依赖。

在我看来,ListView 本身就是从 ASP.NET 2.0 迁移到 3.5 的一个很好的理由。

【讨论】:

【参考方案5】:

GridView 支持:

点击排序 分页 编辑 选择 基于模板的布局(在<table> 内呈现)

ListView 支持:

列表项 分页(需要使用DataPager) 编辑 选择 点击排序(需要手动创建事件处理器) 基于模板的布局(根据需要呈现 + 提供更多模板,例如 - GroupTemplate)

使用 ListView 的原因是如果您需要一些特殊的布局,例如,创建一个在同一行中放置多个项目的表格,或者摆脱基于表格的完全渲染)- GridView 无法做到这一点。

使用 GridView更简单、更快捷,所以除非您需要特殊的布局来显示数据,否则请使用 GridView。

【讨论】:

以上是关于ASP.NET 网格视图与列表视图的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net 在网格视图控件中获取摘要页脚

ASP.net 应用程序未在使用 WCF 服务的网格视图控件中显示总计

如何使用 JQuery c# 在嵌套网格视图 ASP.net 中使用日期时间选择器

在网格视图中的 ASCX 控件内的控件上使用 Javascript 显示隐藏。 (ASP.NET + Javascript)

剑道网格内的剑道树视图

ASP.NET MVC 4 数据网格