Привязать значение к пользовательскому элементу управления внутри повторителя

1

Я не вижу, где я поступил неправильно, поэтому я ищу какую-то помощь.

Я пытаюсь использовать свой настраиваемый элемент управления с параметрами в ретрансляторе. Параметр всегда равен нулю, когда я его отлаживаю, хотя одно и то же выражение возвращает данные в предыдущей строке кода.

Внутри моего контроля у меня есть:

public string paddockName { get; set; }

И я назначаю его на моей странице asp.net как:

<mp:Historical runat="server" paddockName='<%# Eval("Name") %>' />

Я сделал предыдущую строку кода в соответствии с приведенным ниже, и она отлично работала, поэтому выражение верное.

<asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>

Я видел предыдущий вопрос ASP.NET: привязать значение к пользовательскому элементу управления внутри ретранслятора, что почти точно так же, как и моя проблема, но ответ просто говорит: "Я сделал небольшой тест, и я получил его, если ProductID - это строка. " и это не помогает мне понять, как они заставили его перестать быть нулевым при отладке.

  • 0
    Я не вижу ничего явно неправильного в коде, который вы разместили. В какой момент вы проверяете значение свойства?
  • 0
    Я проверяю значение свойства одним нажатием кнопки на элементе управления. Я проверил, что это не засоряется при загрузке страницы или что-то в этом роде - если я передаю строку как свойство вместо привязки данных, он работает нормально.
Теги:
repeater
ascx

1 ответ

0
Лучший ответ

Проблема в том, что значение привязки данных теряется, когда происходит обратная передача кнопки. Значение свойства задается только для продолжительности запроса страницы с вызовом DataBind(). Щелчок кнопки - это новый запрос страницы. Элементы управления.NET хранят связанное значение в ViewState, чтобы они были доступны на почте. Вы можете сделать то же самое, изменив способ хранения свойства.

public string paddockName {
    get { return Convert.ToString(ViewState("paddockName")); }
    set { ViewState("paddockName") = value; }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню