Как сохранить динамически созданные элементы управления на MasterPage после обратной передачи - PullRequest
1 голос
/ 30 января 2012

Я создал сайт ASP.net с главной страницей и несколькими страницами с контентом. Недавно я добавил новый элемент управления меню на главную страницу, чтобы я мог динамически создавать меню (на основе уровня доступа пользователя) из кода, и все работает, вплоть до обратной передачи, в результате чего меню полностью исчезает.

В настоящее время у меня есть функция построения меню внутри (! Page.IsPostback), потому что при обратной передаче я получаю следующую ошибку.

"Имя не может начинаться с символа '2', шестнадцатеричное значение 0x32. Строка 1, позиция 1538."

Что я хочу сделать, так это найти способ сохранить новые элементы динамической сборки на главной странице после обратной передачи (или устранить ошибку, в любом случае, я буду счастлив).

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 30 января 2012

Вы должны инициализировать (и добавлять в дерево элементов управления) элементы управления всегда, а не только выборочно на основе состояния обратной передачи.Поэтому поместите этот код dyn-init в page-init (OnInit), чтобы он выполнялся всегда, и он должен работать.

Этот подход эквивалентен определению встроенного элемента управления asp.net в файлах aspx / ascxвся эта разметка интерпретируется во время OnInit страницы, когда эти элементы управления добавляются в дерево элементов управления страницы.

0 голосов
/ 02 марта 2012

Мне нравится закрывать открытые вопросы.

После очень долгого исследования и диалога с поставщиком элемента управления меню мне удалось найти и доказать ошибку в исходном элементе управления. По-видимому, начальная цифра (в данном случае 2) в некоторых данных, которые я предоставил для построения меню, вызвала срабатывание элемента управления. Я не знаю, что было причиной или почему это не помогло, но поставщик установил контроль и поставил новую версию кода, и теперь все работает хорошо.

Спасибо тем, кто думал об этом.

...