当前位置:  开发笔记 > 后端 > 正文

Repeater,ListView,DataList,DataGrid,GridView ......有哪些选择?

如何解决《Repeater,ListView,DataList,DataGrid,GridView有哪些选择?》经验,为你挑选了5个好方法。

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



1> WebDude..:

这真的是关于你想要实现的目标

Gridview - 设计有限,像html表一样工作.更多内置功能,如编辑/更新,页面,排序.很多开销.

DataGrid - Gridview的旧版本.gridview是一个超级数据网格.

Datalist - Gridview的更多可定制版本.也有一些开销.更多的手动工作,因为你必须自己设计.

ListView - 新的Datalist :).几乎是datalist和gridview的混合体,您可以在其中使用分页和构建Gridview功能,但具有设计自由度.这个家族的新控件之一

中继器 - 重量很轻.没有像Headers,Footers这样的内置功能.开销最小.


它仍然是最新的答案吗?(因为它是从2008年开始的,它是2013年)
@Michel Repeater自.NET 4.5以来变为强类型.我非常喜欢那个.
嗯.."没有内置的功能,如页眉,页脚",嗯,有HeaderTemplate和FooterTemplate ..如果你想放入像你的和标签.

2> John Rudy..:

其他人都打了它:它取决于.

现在进行一些具体的指导(扩展WebDude上面的优秀答案)......

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

您是否需要显示列表或其他格式化的数据视图,可能包含页眉和页脚,还可能显示每个数据记录的特定控件和/或格式?(EG,自定义链接,可能是LinkBut​​tons,还是特定的编辑控件?)此显示是否特别适合电子表格或网格视图?列表显示

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

当我只需要一些基本数据迭代时,我会选择Repeater,这些基本数据与一些自定义设计位,没有标题,没有页脚,漂亮和干净.



3> Iman Abidi..:

标记视图

可以为所有3(ListView,DataList,Repeater)声明以下示例代码


 <%# Eval("Name")%>    

在以下列表中您可以查看每个列表的可用模板和选项,并自行查看差异

ListView(注意编辑,组,插入,布局)

AlternatingltemTemplate

EditltemTemplate

EmptyDataTemplate

EmptyltemTemplate

GroupSeparatorTemplate

GroupTemplate

lnsertltemTemplate

ItemSeparatorTemplate

ItemTemplate中

LayoutTemplate模板

SelectedltemTemplate

DataList(注意Style对)

AlternatingltemStyle

AlternatingltemTemplate

EditltemStyle

EditltemTemplate

FooterStyle

FooterTemplate

HeaderStyle

HeaderTemplate中

ItemStyle

ItemTemplate中

SelectedltemStyle

SelectedltemTemplate

SeparatorStyle

SeparatorTemplate

中继器

AlternatingltemTemplate

FooterTemplate

HeaderTemplate中

ItemTemplate中

SeparatorTemplate

代码视图(高级视图)

CompositeDataBoundControl:

查看以下类层次结构(和相关控件).

这些控件在其模板中托管其他asp.net控件,以向用户显示绑定数据

CompositeDataBoundControl类(和相关控件)

一些描述可以更好地澄清

ListView控件

ListView控件还使用模板显示数据.但是,它支持许多其他模板,这些模板在处理数据时允许更多场景.这些模板包括LayoutTemplate,GroupTemplate,ItemSeparatorTemplate.

ListView控件(与DataList和Repeater不同)也隐式支持使用数据源控件编辑,插入和删除数据的功能.您可以为每个方案定义单独的模板.

DataList控件

DataList控件的工作方式与Repeater控件类似.它会重复数据集中每一行的数据,并根据您定义的模板显示此数据.但是,它会在各种HTML结构中列出模板中定义的数据.这包括水平或垂直布局的选项,它还允许您设置数据应如何重复,如流或表格布局.

DataList控件不会自动使用数据源控件来编辑数据.相反,它提供了命令事件,您可以在其中为这些方案编写自己的代码.要启用这些事件,请将Button控件添加到其中一个模板,并将按钮的CommandName属性设置为edit,delete,update或cancel关键字.然后由DataList控件引发相应的事件.

中继器控制

Repeater控件还使用模板来定义自定义绑定.但是,它不会将数据显示为单个记录.相反,它会重复您在模板中指定的数据行.这允许您创建单行数据并在页面中重复.

Repeater控件是只读模板.也就是说,它只支持ItemTemplate.它不会隐式支持编辑,插入和删除.如果需要此功能,则应考虑其他控件之一,否则您必须自己为Repeater控件编写代码.


以上描述来自MCTS考试70-515 Web应用程序开发与Microsoft.NET Framework 4书.

本书甚至没有提到DataGrid,它被流行的GridView取代,并被其他用户很好地回答



4> Andy Brown..:

确实!我发表了关于ASP.NET 4.0数据工具之间差异的博客.基本上,gridviews是呈现表格信息的最有效方式,而ListView控件则用于更复杂的重复数据显示.如果我向ASP.NET新手提供建议,我会告诉他们从内到外学习网格视图并忽略其他控件开始.



5> Joseph Daigl..:

这一切都取决于您希望如何布局数据.

如果你需要控制布局(比如表格与CSS对比),使用Repeater或ListView时.在这两者之间,ListView为您提供了更多的事件和内置命令,用于编辑,选择和插入.另外还有分页和分组功能.Repeater非常简单,它使用数据重复布局.由于您手动构建布局,因此Listview和Repeater需要更多代码.

GridView是一个更新的DataGrid,因此几乎没有理由使用DataGrid.当连接到标准ASP.NET数据源时,GridView工作得非常好,但是限制为具有大量布局规则的表格布局.由于您使用的是内置布局,因此GridView需要的代码更少.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有