Asp.net 如何在CompositeDataBoundControl中保留子控件

Asp.net 如何在CompositeDataBoundControl中保留子控件,asp.net,viewstate,createchildcontrols,Asp.net,Viewstate,Createchildcontrols,CompositeDataBoundControl类()的文档说明了以下内容: 这是扩展DataBoundControl类的基类,提供以下功能: 实现复合控件所需的典型代码,包括在回发后从视图状态恢复控件的子控件层次结构的代码。 绑定到IEnumerable数据源并枚举数据以构建控制树 用作数据绑定控件(如GridView和DetailsView)的基础 有人能解释或演示如何创建一个CompositeDataBoundControl,该控件在回发后将保留其控件,而无需手动调用DataBind

CompositeDataBoundControl类()的文档说明了以下内容:

这是扩展DataBoundControl类的基类,提供以下功能:

  • 实现复合控件所需的典型代码,包括在回发后从视图状态恢复控件的子控件层次结构的代码。
  • 绑定到IEnumerable数据源并枚举数据以构建控制树
  • 用作数据绑定控件(如GridView和DetailsView)的基础
有人能解释或演示如何创建一个CompositeDataBoundControl,该控件在回发后将保留其控件,而无需手动调用DataBind吗?我的示例太复杂,无法发布,但例如,如果绑定ListView,每个项目都将在回发后呈现。这个文档似乎表明,从这个类继承时会自动处理这个问题,但我还没能做到这一点

我可以看到每次回发后都会调用CreateChildControls,即使我没有调用DataBind,但数据源是一个由null对象组成的IEnumerable(一个DummyDataSource,其数量与回发前在原始数据源中传递的数量相同)。似乎我应该对这个集合做些什么,但我不确定要创建什么,因为要创建的控件类型取决于该项的类型(在本例中,我绑定到PropertyInfo列表,并根据属性上的属性创建特定类)

谢谢你能提供的任何帮助