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 应用程序未在使用 WCF 服务的网格视图控件中显示总计
如何使用 JQuery c# 在嵌套网格视图 ASP.net 中使用日期时间选择器
在网格视图中的 ASCX 控件内的控件上使用 Javascript 显示隐藏。 (ASP.NET + Javascript)