在CompositeDataBoundControl中跟踪ViewState

本文关键字:ViewState 跟踪 CompositeDataBoundControl | 更新日期: 2023-09-27 17:49:33

我创建一个CustomDataBoundControl。我实现了CreateChildControls(),但我没有积极地做任何事情来支持viewstate,因此,回发后我丢失了数据。我正在查找这篇文章:http://msdn.microsoft.com/en-us/library/aa479016.aspx

我的问题是,该示例与ViewState的工作方式是使用Pair对象,它保存键值对,并在项目IStateManager '实现的集合中重新创建已知的数据类型。

我的控制更一般。我不知道进入datasource属性的对象的类型,我通过反射到Table对象创建子控件。我创建了一个TableRow控件,并用TableCell控件填充它,并用CC_9控件填充它。

我似乎无法弥合Dino的示例和我的实际实现之间的差距。

在CompositeDataBoundControl中跟踪ViewState

当涉及到数据源控件时,您不使用ViewState来保留数据。只要您构建控件树,. net框架就会在控件状态中重新加载控件的视图状态。您只需要存储控件的核心属性的视图状态,以及呈现的项的数量。这样,您就可以呈现相同的控件树。

在init上创建控件树来维护ViewState,您不需要在控件中填充数据,而只需创建控件。根据页面流程,ViewState对于在OnInit中创建的控件是启用的。