我的控件中有一个模板属性,声明如下:
<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属性,但我不能,因为它无效。
答案 0 :(得分:0)
您是否将值放入ViewState?据我所知,你需要这样做。要么是这样,要么在每次回发时重新绑定数据。
这是我喜欢在用户控件中做的事情。我为这是C#而不是VB道歉,但我不知道VB:
public string Text {
get { return (string)ViewState["Text"]; }
set { ViewState["Text"] = value; }
}
参考:https://weblogs.asp.net/infinitiesloop/Truly-Understanding-Viewstate