中继器,ListView,DataList,DataGrid,GridView ...选择哪个?

时间:2020-03-06 14:46:52  来源:igfitidea点击:

如此众多的控件可供选择!确定用于在ASP.NET中显示数据的控件的最佳实践是什么?

解决方案

一切都取决于我们要如何布局数据。

如果我们需要控制布局(如表格与CSS或者其他内容),请使用Repeater或者ListView。在这两者之间,ListView为我们提供了更多事件以及用于编辑,选择和插入的内置命令。添加的分页和分组功能。中继器非常简单,它会重复数据的布局。由于我们是手动构建布局,因此Listview和Repeater需要更多代码。

GridView是更新的DataGrid,因此几乎没有任何理由使用DataGrid。当连接到标准ASP.NET数据源时,GridView确实可以很好地工作,但是将我们限制在具有许多布局规则的表格布局中。由于我们使用的是内置布局,因此GridView所需的代码更少。

这实际上是关于我们想要实现的目标

  • Gridview-设计受限,类似于html表。更多内置功能,例如编辑/更新,页面,排序。大量的开销。
  • DataGrid-Gridview的旧版本。 gridview是一个超级数据网格。
  • 数据列表-Gridview的更多可定制版本。也有一些开销。我们必须自己设计,需要更多的人工工作。
  • ListView-新的Datalist :)。几乎是数据列表和gridview的混合体,我们可以在其中使用分页并在Gridview中构建类似功能,但可以自由设计。这个家族中的新控件之一
  • 直放站-重量很轻。没有内置功能(如页眉,页脚)。具有最小的开销。

其他人都喜欢:取决于。

现在为一些特定的指导(扩展上面的WebDude的出色答案)...

设计是否适合数据的自然电子表格或者网格视图?网格视图。

我们是否需要显示列表或者其他格式的数据视图,可能带有页眉和页脚,以及可能为每个数据记录使用特定的控件和/或者格式? (例如,EG,自定义链接,可能的LinkBut​​ton或者特定的编辑控件?)此显示是否特别自然地不适合电子表格或者网格视图?列表显示

如果满足ListView的所有条件,但是自然适合网格,则可以考虑使用DataList。

当我只需要一些带有一些自定义设计位,无标题,无页脚,美观又干净的基本数据进行迭代时,我便选择了Repeater。