CompositeDataBoundControl类(http://msdn.microsoft.com/en-us/library/ms366539(v=vs.100).aspx)的文档说明如下:
这是扩展DataBoundControl类的基类,提供以下功能:
- 实现复合控件所需的典型代码,包括在回发后从视图状态恢复控件的子控件层次结构的代码。
- 绑定到IEnumerable数据源并枚举数据以构建控制树。
- 用作数据绑定控件的基础,例如GridView和DetailsView。
任何人都可以解释或展示如何创建一个在PostBack之后保留其控件而无需手动调用DataBind的CompositeDataBoundControl的示例吗?我的示例太复杂而无法发布,但是例如,如果绑定ListView,则每个项目将在PostBack之后呈现。这个文档似乎表明这将在从这个类继承时自动处理,但是我无法做到这一点。
我可以看到,即使我没有调用DataBind,也会在每次回发后调用CreateChildControls,但是数据源是一个IEnumerable的null对象(与原始数据源中传递的数量相同的DummyDataSource)回发)。看来我应该对这个集合做一些事情,但我不确定是什么,因为要创建的控件类型取决于该项的类型(在这种情况下,我绑定到PropertyInfo的List并创建一个class取决于属性的属性。)
感谢您提供的任何帮助!