ASP.Net Контроль данных не обновляется, возможна проблема с кешем? - PullRequest
1 голос
/ 18 мая 2011

Работа над проектом с такой настройкой:

  • Страница ASPX
    • Управление пользователем 1
      • Кнопки радио 1-12
    • Пользовательский контроль 2
      • Метки значений, рассчитанных по радио-кнопкам 1-12

Оба пользовательских элемента управления являютсяС привязкой к данным оба имеют метод «SaveData», вызываемый со страницы ASPX.

Значения в UserControl2 указаны в метках.Первый - это номер переключаемой кнопки (от 1 до 12), второй - значение, рассчитанное на основе этого номера.

Когда страница сохранена, значения правильно сохраняются и заполняются дляРадио-кнопки.При повторном заполнении UserControl метки остаются прежними значениями.

Если затем поместить курсор в адресную строку и обновить, у вас возникла та же проблема.Но если вы нажмете CTRL + Refresh, все заполнится нормально.

Так что, очевидно, у меня проблема с кэшированием 2-го UserControl.Как я могу обойти это и почему не первый кэш UserControl (с радиокнопками)?

EDIT
Во время тестирования я добавил привязку TextBoxк тому же значению, что и RadioButton и метка.3 Элементы управления, RadioButton с использованием Bind на Field1, TextBox и Label с использованием Eval на Field1 (но пробовал Bind, который также не работал).
Я изменил RadioButton с 1 на 3 и сохранил.
На PostBack, RadioButtonбыло корректно обновлено до 3. TextBox и Label все еще говорили «1».
Затем я изменил RadioButton на 6 и набрал «4» в TextBox (тестирование, если изменение значения приведет к обновлению, даже если оно было на EVAL, а не BIND) и нажмите «Сохранить».
На PostBack RadioButton был верным в 6, но TextBox и Label сказали «3».

Не знаю, что это значит, но кто-то может понять это.

1 Ответ

0 голосов
/ 19 мая 2011

Проблема заключается в том, что нажатие кнопки для вызова методов «SaveData» в 2 пользовательских элементах управления происходит ПОСЛЕ привязки данных.Вызов «Form.DataBind» во втором UserControl внутри метода «Save Data» (или в любое время после сохранения первого UserControl) устраняет проблему.

...