ASP.NET维持ViewState中的控件自定义控制模板
问题描述:
我在我的控制模板属性声明如下内:ASP.NET维持ViewState中的控件自定义控制模板
<TemplateContainer(GetType(GenericTemplateContainer)),
PersistenceMode(PersistenceMode.InnerProperty),
TemplateInstance(TemplateInstance.Single)>
Property CustomTemplate As ITemplate
在我的控制的Init
事件我有以下几点:
If Me.CustomTemplate IsNot Nothing Then
Dim TemplateContainer As New GenericTemplateContainer
Me.CustomTemplate.InstantiateIn(TemplateContainer)
PlaceHolder.Controls.Add(TemplateContainer)
End If
这允许我将控件放置在模板中的标记中,但是在回发模板中的控件没有保持它们的ViewState。
我已经尝试将PersistChildren(True)
属性添加到CustomTemplate属性,但我不能,因为它无效。
答
您是否将值放入ViewState中?据我所知,你需要这样做。要么是这样,要么在每次回发时重新绑定数据。
以下是我喜欢在用户控件中执行的操作。我这个是C#和VB不道歉,但我不知道VB:
public string Text {
get { return (string)ViewState["Text"]; }
set { ViewState["Text"] = value; }
}
参考:https://weblogs.asp.net/infinitiesloop/Truly-Understanding-Viewstate
感谢回答,是的,我已经试过ViewState的,但它并没有一个区别。 – kaiyaq