作者:虎仔球妈_459 | 2023-09-04 19:13
这么多不同的控件可供选择!确定用于在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 ..如果你想放入像你的
和 table>标签.
2> John Rudy..:
其他人都打了它:它取决于.
现在进行一些具体的指导(扩展WebDude上面的优秀答案)......
您的设计是否适合数据的自然电子表格或网格视图?GridView.
您是否需要显示列表或其他格式化的数据视图,可能包含页眉和页脚,还可能显示每个数据记录的特定控件和/或格式?(EG,自定义链接,可能是LinkButtons,还是特定的编辑控件?)此显示是否特别不适合电子表格或网格视图?列表显示
如果您满足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控件,以向用户显示绑定数据
一些描述可以更好地澄清
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需要的代码更少.
推荐阅读
-
如何解决《Int.TryParse()始终返回false》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《iOS推送通知生产证书常见名称问题》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《如何在scala中进行内存分配》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《符号显示不正确》经验,为你挑选了3个好方法。 ...
[详细]
-
如何解决《我可以在dma_sync_single_for_cpu之后调用dma_unmap_single吗?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《在Java中随机化一个字符串》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《循环c#wpf中的疯狂行为》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《解析dom元素时,JqueryUI滑块不起作用》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《使用Python在2个组合数组中排列序列》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《形式在angular2》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何在swift中打印数组中的对象值,而不是它的位置》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Swift的异构值类型数组如何工作?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《如何覆盖RecyclerViewAdapter的notifyDataSetChanged,notifyItemChanged方法》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《删除排队的作业在Laravel5》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《什么是SSO(例如SAML)中使用的RelayState参数?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何让git-diff忽略所有的空白变化而忽略一个?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《SinonJS:有没有办法在sinonjs中对对象参数的键值存根方法》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Winston记录器文件名错误未定义》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《PHP7.0.1无法加载ini文件》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《写入BinaryWriter时的类型大小》经验,为你挑选了0个好方法。 ...
[详细]