Предположим, что у меня есть дерево, где каждый treenode содержит идентификатор для другого набора пользовательских элементов управления. Когда пользователь нажимает на узел, эти элементы управления должны быть загружены на страницу. Насколько я понимаю, жизненный цикл страницы ASP, динамические элементы управления должны быть добавлены на этапе инициализации, а позже будут происходить события обратной передачи.динамические элементы управления на основе обратной обратной связи пользователя
Так что, если событие щелчка treeview происходит после того, как мне нужно добавить элементы управления, как мне динамически добавлять элементы управления на основе событий обратной связи пользователя?
Edit: Я попытался предложение от ArronLS:
Что я сделал добавить значение узла в массив сессии, и использовать его, когда я делаю инициализации, чтобы выбрать, какие формы элементов для загрузки в контроля контроля за заполнителем. В событии кликов treeview я обновляю узел в массиве сеансов, очищаю старые элементы формы в заполнителе и добавляю новые элементы формы в элементы управления. Когда страница загружается снова, она должна теперь найти узел во время init, поэтому проблемы с представлением в представлении будут обходить.
Теперь я еще не полностью протестировал это, но был еще один similar post, который рассказывает о проблемах, которые могут возникнуть в представлении viewstate. Они предлагают решение, которое опросает часть запроса [] контекста (в их случае dropbox) в элементе управления Init, вручную обрабатывая некоторые функции обратной передачи.
Мой новый вопрос: Как получить доступ к выбранному узлу в древовидной структуре с помощью массива Request?
Спасибо, я попробую. Подводя итог тому, что я думаю, вы говорите: первый раз, когда узел щелкнут, загрузите его через событие postback и каким-то образом сохраните конфигурацию. Затем в последующих загрузках postbacks/page загрузите сохраненный узел в функцию init. – tbischel