2017-08-15 2 views
0

カスタムコントロールテンプレート内のコントロールのViewStateを維持する:私のコントロールのInitイベントでASP.NETは、私は次のように私のコントロールでテンプレートのプロパティを宣言してい

<TemplateContainer(GetType(GenericTemplateContainer)), 
    PersistenceMode(PersistenceMode.InnerProperty), 
    TemplateInstance(TemplateInstance.Single)> 
Property CustomTemplate As ITemplate 

を、私は、次のしている:

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

あなたはViewStateに値を入れていますか?私が理解していることから、あなたはそれを行う必要があります。いずれか、またはすべてのポストバックのデータに再バインドします。

ここでは、ユーザーコントロールの中でやりたいことがあります。私はこれがC#とないVBをお詫び申し上げますが、私はVBを知らない:

public string Text { 
      get { return (string)ViewState["Text"]; } 
      set { ViewState["Text"] = value; } 
    } 

参考:https://weblogs.asp.net/infinitiesloop/Truly-Understanding-Viewstate

+0

感謝の答えのために、はい、私はViewStateのを試してみたが、それはしませんでした差。 – kaiyaq

関連する問題