在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的示例和我的实际实现之间的差距。
当涉及到数据源控件时,您不使用ViewState来保留数据。只要您构建控件树,. net框架就会在控件状态中重新加载控件的视图状态。您只需要存储控件的核心属性的视图状态,以及呈现的项的数量。这样,您就可以呈现相同的控件树。
在init上创建控件树来维护ViewState,您不需要在控件中填充数据,而只需创建控件。根据页面流程,ViewState对于在OnInit中创建的控件是启用的。