关于asp.net:在Repeater中嵌套GridView

关于asp.net:在Repeater中嵌套GridView

Nesting a GridView within Repeater

我有一种情况,例如,我需要重复美国各州的清单,并在每个州的名称后显示一个城市和城市人口的表格。设计要求规定,每个外部重复都必须是一个州的名称,后跟一个城市表,并且此要求此时不能更改。将一个GridView嵌套在一个Repeater中,然后在Repeater的ItemDataBound事件期间绑定每个重复的GridView是否有缺点?有哪些替代解决方案?


如果是我,我将这个问题反过来,问我为什么要使用GridView。如果您需要一堆诸如分页和排序之类的内置功能,那么GridView可能很合适。如果您只需要表格数据,我会重新考虑。为什么?因为有了GridView,您可以获得一堆您不会使用的东西,所以ViewState可能很大,并且页面性能会变慢。

在GridView方面,我并不是一个顽固的人,但是我只在有该死的充分理由时才使用它们。


我能想到的最好的解决方案是将GridView嵌套在Repeater中。然后,我在Repeater的ItemDataBound事件期间绑定了每个重复的GridView。当然,由于它们不是必需的,因此我关闭了它们的ViewStates。


至少,希望您可以关闭GridViews上的ViewState。


在上述情况下,最好使用主从样式GridView,这将为您节省所有已创建的GridView对象的开销。

它有多种实现方式(对主菜单使用下拉菜单,对详细信息使用模式弹出窗口等),但是要点是有可用的实现。


推荐阅读