4 Stimmen

Benutzerkontrollen im Repeater

Ich habe eine Benutzerkontrolle, die Abstimmungsschaltflächen (für ein SO-Typ-Abstimmungsmodell) bietet - es enthält ein privates int-Mitglied, das die ID des Datensatzes beibehält. Außerhalb eines Repeaters, es funktioniert ganz gut - Postbacks arbeiten, und die richtige Id wird in der Benutzersteuerung beibehalten.

Innerhalb des Repeaters assoziiert ein Itemdatabound-Eventhandler die korrekte ID mit dem Benutzerkontrollfeld und es funktioniert korrekt - zeigt die korrekte Stimmenzahl aus der Datenbank an. Wenn eine der Abstimmungsschaltflächen gedrückt wird, wird jedoch ein Postback an das Benutzerelement ausgelöst, und das Steuerelement hat den Inhalt seines privaten int-Members verloren, sodass es nicht mehr funktioniert.

Ich habe versucht, sowohl re-databinding die usercontrol auf Postback, und Bindung es nur auf die erste Last - das Problem ist das gleiche beide Möglichkeiten.

Wie bekomme ich die usercontrol, um den Wert dieser int über Postbacks zu behalten?

5voto

mathieu Punkte 30503

Haben Sie versucht, den Wert in viewstate zu setzen?

public string Id{
    get
    {
        return this.ViewState["Value"] == null ?
            0 :
            (int)this.ViewState["Value"];
    }
    set { this.ViewState["Value"] = value; }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X