有很多不同的控件可供选择!在ASP.NET中确定用于显示数据的最佳控件的最佳实践是什么?
有很多不同的控件可供选择!在ASP.NET中确定用于显示数据的最佳控件的最佳实践是什么?
这实际上取决于你想要实现什么目标
Gridview - 在设计方面有限,像 HTML 表格一样工作。内置更多的功能,如编辑/更新、分页、排序。但是开销很大。
DataGrid - Gridview 的旧版本。Gridview 是一个超级数据网格。
Datalist - Gridview 的可定制版本。也有一些开销。需要手动设计。
ListView - 新的 Datalist :). 几乎是 datalist 和 gridview 的混合体,可以使用分页和内置 gridview 类似的功能,但具有设计自由度。这个家族中的新控件之一。
Repeater - 非常轻量级。没有内置的标题、页脚等功能。拥有最少的开销。
其他人的回答已经说得很清楚了:这取决于具体情况。
以下是一些具体的指南(基于WebDude上面的优秀回答)……
你的设计是否适合自然地将数据显示在电子表格或网格视图中?使用GridView。
你需要显示数据列表或其他格式化视图,可能带有标题和页脚,并且可能针对每个数据记录具有特定控件和/或格式化方式吗?(例如,自定义链接,可能是LinkButtons,或者特定的编辑控件?)这种显示在电子表格或网格视图中无法自然呈现吗?使用ListView。
如果您符合ListView的所有标准,但自然而然适合网格,则可以考虑使用DataList。
当我只需要基本数据和一些自定义设计元素进行迭代时,我选择Repeater,没有页眉、页脚,整洁美观。
对于所有三种控件(ListView、DataList、Repeater),都可以声明以下示例代码。
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
CompositeDataBoundControl:
请查看以下类层次结构(以及相关控件)。
这些控件在其模板中托管其他asp.net控件,以向用户显示绑定数据。
列表视图控件
列表视图控件也使用模板来显示数据。然而,它支持许多额外的模板,允许在处理数据时考虑更多情况。这些模板包括LayoutTemplate(布局模板),GroupTemplate(分组模板),ItemSeparatorTemplate(项分隔符模板)。
列表视图控件(与DataList和Repeater不同)还隐式地支持使用数据源控件编辑、插入和删除数据的能力。您可以为每个场景定义单独的模板。
数据列表控件
数据列表控件的工作方式类似于Repeater控件。它为数据集中的每一行重复数据,并根据定义的模板显示这些数据。 然而,它将模板中定义的数据布局到各种HTML结构中。这包括水平或垂直布局的选项,它还允许您设置数据如何重复,如流式或表格布局。
DataList控件不会自动使用数据源控件来编辑数据。相反,它提供了命令事件,您可以在这些场景下编写自己的代码。为了启用这些事件,您需要将Button控件添加到其中一个模板,并设置按钮的CommandName属性为edit、delete、update或cancel关键字。然后DataList控件将引发相应的事件。确实如此!我已经在博客中介绍了ASP.NET 4.0数据工具之间的差异。基本上,Gridview是呈现表格信息最强大的方式,而ListView控件适用于显示重复数据的更复杂的显示。如果我要给一个ASP.NET新手建议,我会告诉他们先彻底学习Gridview并忽略其他控件。