ASP.NET维护自定义控件模板内的控件的ViewState

时间:2017-08-15 12:14:42

标签: asp.net vb.net templates custom-controls itemplate

我的控件中有一个模板属性,声明如下:

<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属性,但我不能,因为它无效。

1 个答案:

答案 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