1

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

我的问题是示例与 ViewState 一起使用的方式是使用一个Pair对象,该对象包含键值对并在IStateManager 实现的项目集合中重新创建已知数据类型。

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

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

4

2 回答 2

1

当涉及到数据源控件时,您不会使用 ViewState 来保留数据。只要你构建了一个控件树,.NET框架就会重新加载控件状态下的控件的viewstate。您只需要存储控件核心属性的视图状态,以及呈现的项目数。这样,您可以重新渲染相同的控制树。

于 2012-12-26T04:22:02.783 回答
0

在初始化时创建控件树以维护 ViewState,您无需在控件中填充数据,只需创建控件即可。根据页面流,为在 OnInit 中创建的控件启用了 ViewState。希望这可以帮助。

于 2013-04-22T15:54:33.543 回答