Answers:
这实际上是关于您想要实现的目标
Gridview-设计受限,类似于html表。更多内置功能,例如编辑/更新,页面,排序。很多开销。
DataGrid-Gridview的旧版本。gridview是一个超级数据网格。
数据列表-Gridview的更多可定制版本。也有一些开销。您必须自己设计,需要更多的人工工作。
ListView-新的Datalist :)。几乎是数据列表和gridview的混合体,您可以在其中使用分页并在Gridview中构建类似功能,但可以自由设计。这个家族中的新控件之一
直放站-重量很轻。没有内置功能,如页眉,页脚。具有最小的开销。
其他人都喜欢:取决于。
现在获取一些具体的指导(扩展上面的WebDude的出色答案)...
您的设计是否适合数据的自然电子表格或网格视图?网格视图。
您是否需要显示列表或其他格式的数据视图,可能带有页眉和页脚,还可能需要为每个数据记录使用特定的控件和/或格式?(例如,EG,自定义链接,可能的LinkButton或特定的编辑控件?)此显示是否特别不自然地适合电子表格或网格视图?列表显示
如果满足ListView的所有条件,但是自然适合网格,则可以考虑使用DataList。
当我只需要一些带有一些自定义设计位,无标题,无页脚,美观又干净的基本数据进行迭代时,我会选择Repeater。
声明以下示例代码对于全部3(ListView,DataList,Repeater)都是可能的
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
在以下列表中,您可以看到每个模板的可用模板和选项,并自己查看差异
ListView(注意编辑,分组,插入,布局)
DataList(注意样式对)
直放站
CompositeDataBoundControl:
看下面的类层次结构(和相关的控件)。
这些控件在其模板中托管其他asp.net控件,以向用户显示绑定数据
ListView控件
ListView控件还使用模板来显示数据。但是,它支持许多其他模板,这些模板允许在处理数据时使用更多方案。这些模板包括LayoutTemplate,GroupTemplate,ItemSeparatorTemplate。
ListView控件(与DataList和Repeater不同)还隐式支持使用数据源控件来编辑,插入和删除数据的功能。您可以为每种情况定义单独的模板。
数据列表控件
DataList控件的工作方式类似于Repeater控件。它为数据集中的每一行重复数据,并根据定义的模板显示此数据。但是,它在各种HTML结构中对模板中定义的数据进行布局。这包括水平或垂直布局的选项,还允许您设置应如何以流或表格布局方式重复数据。
DataList控件不会自动使用数据源控件来编辑数据。而是提供命令事件,您可以在其中为这些情况编写自己的代码。若要启用这些事件,可以将Button控件添加到模板之一,并将按钮的CommandName属性设置为edit,delete,update或cancel关键字。然后,适当的事件由DataList控件引发。
中继器控制
Repeater控件还使用模板定义自定义绑定。但是,它不会将数据显示为单独的记录。相反,它会重复您在模板中指定的数据行。这使您可以创建一行数据,并使其在页面中重复。
Repeater控件是一个只读模板。也就是说,它仅支持ItemTemplate。它不隐式支持编辑,插入和删除。如果需要此功能,则应考虑使用其他控件之一,否则,您必须自己为Repeater控件编写代码。
上面的描述来自使用Microsoft.NET Framework 4的MCTS考试70-515 Web应用程序开发。
本书甚至没有提到DataGrid,它被流行的GridView取代,并被其他用户很好地回答了
确实!我已经在博客上介绍了ASP.NET 4.0数据工具之间的差异。基本上,网格视图是呈现表格信息的最强大方法,而ListView控件则用于更复杂的重复数据显示。如果我向ASP.NET新手提供建议,我会告诉他们从内而外学习Gridview,而忽略其他控件。
一切都取决于您要如何布局数据。
如果您需要控制布局(如表格与CSS或其他内容),请使用Repeater或ListView。在这两者之间,ListView为您提供了更多事件以及用于编辑,选择和插入的内置命令。附加的分页和分组功能。中继器非常简单,它会重复数据的布局。由于您是手动构建布局,因此Listview和Repeater需要更多代码。
GridView是更新的DataGrid,因此几乎没有任何理由使用DataGrid。当连接到标准ASP.NET数据源时,GridView确实可以很好地工作,但是将您限制在具有许多布局规则的表格布局中。GridView需要较少的代码,因为您使用的是内置布局。