ASP.NET GridView与ListView的区别

46

使用ListView相对GridView有哪些优势?我需要在视图中进行分页、编辑行、插入行和删除行,哪个控件最适合做到这些功能?GridView似乎不支持数据分页。如果我将GridView迁移到ListView上,会失去什么?

5个回答

56

GridView支持以下功能:

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

ListView支持以下功能:

  • 列表项
  • 分页(需要使用DataPager)
  • 编辑
  • 选择
  • 单击排序(需要手动创建事件处理程序)
  • 基于模板的布局(按您想要的方式呈现 + 提供更多模板,例如 - GroupTemplate)

使用ListView的原因是如果您需要一些特殊布局,例如创建一个表格,在同一行中放置多个项,或完全脱离基于表格的呈现) - 这是使用GridView不可能实现的。

另一方面,使用GridView更容易和更快速,因此除非您需要特殊布局来显示数据,否则请使用GridView。


11
这篇文章对比了ListView、GridView、DataList和Repeater控件,非常有用。 在我看来,ListView的原始灵活性是它的亮点。在我开发的一个项目中,我一开始使用GridView,但后来换成了ListView,因为我想要实现非常具体的分页需求,而这无法通过GridView实现。我本可以使用第三方GridView来满足分页需求,但我想尽量减少对第三方代码的依赖。
仅就ListView而言,我认为这已经是从ASP.NET 2.0升级到3.5的充分理由了。

3

使用哪种控件取决于具体情况和需求。
Listview是完全基于模板的,支持插入记录,你可以使用常规的HTML表格并使用CSS进行样式设计来呈现数据,你对设计布局有更多的控制权。
另一方面,GridView也可以插入记录,但这可能需要使用页脚和objectdatasource_inserting事件。你需要找到并捕获gridview页脚中输入的数据,然后直接添加到objectdatasource的输入参数中。


2

ListView可以更好地控制生成的HTML标记。


0

Gridview是最好的选择。您可以比任何其他控件更轻松地完成您提到的所有事情。ListView派生自ListBox

ListView控件支持以下功能:

  • 支持绑定到数据源控件,例如SqlDataSource、LinqDataSource和ObjectDataSource。

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

    内置排序功能。

    内置更新和删除功能。

    内置插入功能。

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

    内置项目选择功能。

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

    多个关键字段。


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

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

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

    内置排序功能。

    内置更新和删除功能。

    内置分页功能。

    内置行选择功能。

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

    多个关键字段。

    超链接列的多个数据字段。

    通过主题和样式可自定义外观。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接