2017-08-15 2 views
0

ich eine Vorlage Eigenschaft in meiner Kontrolle haben wie folgt erklärt:ASP.NET pflegen Viewstate für Steuerelemente in einem benutzerdefinierten Steuerelement Vorlage

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

In meiner Kontrolle Init Ereignis habe ich folgendes:

If Me.CustomTemplate IsNot Nothing Then 
    Dim TemplateContainer As New GenericTemplateContainer 
    Me.CustomTemplate.InstantiateIn(TemplateContainer) 

    PlaceHolder.Controls.Add(TemplateContainer) 
End If 

Dies ermöglicht es mir, Steuerelemente in Markup innerhalb meiner Vorlage zu platzieren, aber auf einem Post zurück halten die Steuerelemente in der Vorlage ihren ViewState nicht.

Ich habe versucht, PersistChildren(True) Attribut CustomTemplate-Eigenschaft hinzuzufügen, aber ich kann nicht, weil es nicht gültig ist.

Antwort

0

Setzen Sie die Werte in ViewState? Von dem, was ich verstehe, müssen Sie das tun. Entweder das oder binden Sie die Daten bei jedem Postback neu.

Hier ist, was ich gerne in User Controls tun würde. Ich entschuldige mich für diese C# Befindens und nicht VB, aber ich weiß nicht, VB:

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

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

+0

Dank für die Antwort, ja, ich habe Viewstate versucht, aber es ist kein geschafft haben Unterschied. – kaiyaq

Verwandte Themen