所以,这个问题可能有点含糊,但我经常讨论它:Asp.Net GridView:好还是坏/用于绑定的数据类型?
当设计一个Asp.Net页面时,很多时候你可能只想在页面上抛出一个快速而脏的GridView 。当你走这条路线时,你有各种数据源选项(我通常使用ObjectDataSource绑定到一个业务对象),你也可以手动绑定。
我已经看到很多数据类型可以自动提供网格内的排序功能的变化。我已经看到人们将他们的自定义POCO集合转化为其业务对象中的DataTables,以便GridViews可以更轻松地支持这些类型的行为。
通过自己处理所有可用事件(OnSorting,OnUpdating等),您可以真正从GridView中获得很多不同的行为,并且最终可以长期高度自定义。即使情况如此,您可能会遇到其他一些小问题,例如无法使用“Enter”键自动执行给定行的更新操作。这是因为页面上的默认按钮可能不在GridView中,并且ASP.Net只允许您为给定面板指定默认按钮,并且不会为GridView模板中的按钮提供此行为。这只是一个例子,介意你。当然,还有一个问题,就是在每次过滤操作时页面是否应该返回到数据源,或者整个数据源是否应该缓存在页面上的ViewState中,以允许在不访问数据库的情况下进行过滤/排序...
因此,这里是最终的问题:是否有理由在您想要基本的CRUD操作的页面上使用GridView,即使这意味着将您的自定义集合转换为某种DataTable? GridViews应该完全抛弃,以支持其他类似DataList,ListView或Repeater的东西吗?后面的选项当然可能更灵活,但这是否意味着应该为每个场景重建GridView的默认行选择,编辑,排序等功能?
关于这个问题的任何合理的想法赞赏!