Пользовательские элементы управления в репитере - PullRequest
4 голосов
/ 22 февраля 2009

У меня есть usercontrol, который предоставляет кнопки голосования (для модели голосования типа SO) - он содержит приватный элемент int, который сохраняет идентификатор записи. За пределами ретранслятора он работает просто отлично - обратные передачи работают, а правильный идентификатор сохраняется в пользовательском элементе управления.

Внутри повторителя обработчик события, связанный с данными, связывает правильный идентификатор с usercontrol, и он работает правильно - отображает правильное количество голосов из базы данных. Однако, когда нажата одна из кнопок голосования, она запускает обратную передачу в usercontrol, и элемент управления теряет содержимое своего личного элемента int, поэтому он больше не функционирует.

Я пробовал как переназначить привязку usercontrol при обратной передаче, так и привязать его только при начальной загрузке - проблема одинакова в обоих случаях.

Как мне заставить usercontrol сохранять значение этого int в постбэках?

1 Ответ

5 голосов
/ 22 февраля 2009

Вы пытались поместить значение в viewstate?

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