Die Aufrechterhaltung der viewstate einer repeater

Ich habe ein problem, dass der viewstate der repeater, D. H. die Kontrollen innerhalb der repeater sind nicht maintaing Ihre viewstate.

Habe ich Folgendes:

Repeater 1:

<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
    <asp:LinkButton Text="Add" CommandName="Add" CommandArgument=<%# Eval("ID") %> runat="server" />
</ItemTemplate>
</asp:Repeater>

Wenn der link geklickt wird der Wert der CommandArgument gespeichert wird in einem versteckten Feld auf der Seite.

Beim postback die ich nicht bekommen kann den Wert des versteckten Feldes, bis das prerender-Ereignis-handler geladen hat. Also in meinem prerender-Ereignis schnappe ich mir den Wert des versteckten Feldes und speichern Sie es in einem List-Eigenschaft, etwa so:

if (!string.IsNullOrEmpty(this.SelectedImageIDsInput.Text)) {
        this.ImageList.Add(this.SelectedImageIDsInput.Text);
    }

Und die List-Eigenschaft sieht so aus:

public List<string> ImageList {
    get {
        if (this.ViewState["ImageList"] == null) {
            this.ViewState["ImageList"] = new List<string>();
        }
        return (List<string>)(this.ViewState["ImageList"]);
    }
    set { this.ViewState["ImageString"] = value; }
}

Sobald ich gespeichert habe den Wert in meiner Liste Eigenschaft, die ich bind meine zweite repeater (wieder in der prerender-Ereignis):

this.rptSelectedImages.DataSource = this.LightBoxControl.ImageList;
this.rptSelectedImages.DataBind();

Den zweiten repeater hat eine dropdownlist und eine textbox innerhalb es. Das problem ist, dass der viewstate der untergeordneten Elemente ist nicht gepflegt. Ich vermute, es ist, weil mit jedem postback ich bin rebinding den repeater, deshalb ist er wieder aufgebaut. Was ich nicht weiß ist, wie kann ich möglicherweise um diese? Die ImageList-Eigenschaft wird nur aktualisiert, nach einem postback, also habe ich offensichtlich binden die repeater mit jedem postback - wie sonst kann es getan werden?

Jegliche Hilfe würde sehr geschätzt werden.

Dank
Al

InformationsquelleAutor higgsy | 2011-09-14
Schreibe einen Kommentar