/ / Контроль за динамікою втрачено після зворотного зв'язку - c #, asp.net, постбека, ретранслятора, сторінки-циклу

Управління динамікою втрачається на зворотній зв'язок - c #, asp.net, postback, repeater, lifecycle сторінок

Цей старий каштан знову.

Моя сторінка будується наступним чином; У мене є dropdownlist, який є databound на першому завантаженні. Коли користувач вибирає значення з цього, виконується зворотний виклик, який потім визначає управління ретранслятором.

Елемент ItemTemplate цього ретрансляторамістить елемент керування заповнювачами. У коді, що стоїть у події ItemDataBound ретранслятора, я додаю два динамічно керованих до цього заповнювача, приховане поле і прапорець.

Коли користувач натискає кнопку "Зберегти", я захочуперебирати всі динамічно створені приховані поля та прапорці та визначати їх значення. Однак, коли користувач натискає кнопку "Зберегти", ці елементи керування більше не існують, як показано на трасі сторінки.

Я знаю, що це питання життєвого циклу та статтіЯ бачив у цьому пропозицію використовувати методи Init для динамічного створення елементів керування, але я не можу зважати на те, як моя сторінка працює, наприклад управління повторювачем з'являється і зв'язується тільки після вибору значення зі списку.

Що потрібно зробити, щоб підтримувати динамічні елементи керування через зворотній зв'язок, викликаний натисканням кнопки збереження?

Відповіді:

0 для відповіді № 1

Проблема полягає в тому, що ви натискаєте кнопку збереженняймовірно, ви не будете повторно зв'язувати ретранслятор і елементи керування, які ви додавали під час виконання, з подією ItemDataBound більше не доступні (тому що вони більше не існують) Чому ви не додаєте ці контролі на час розробки, використовуючи функцію Eval, що встановлює значення прихованого поля?


0 для відповіді № 2

Ви просто не створюєте їх динамічнопри виборі зміни випадаючого набору візуалізації true або false для ретранслятора, який вирішить вашу проблему. поштою назад вам доведеться знову створити ті контролі, як вони створені динамічно.