Проблема: Я загружаю один из нескольких элементов управления пользователя на основе выбранной вкладки в элементе управления RadTabstrip, который находится на родительской странице. Я захватил выбранную вкладку и назначил ее переменной сеанса в событии OnTabClick для использования в каждом элементе управления пользователя, чтобы определить, должен ли этот конкретный элемент управления быть визуализирован.Можете ли вы принудительно выполнить рендеринг страницы после ее загрузки
Причина этого в том, что каждый пользовательский элемент управления запрашивает базу данных для визуализации различных диаграмм, и я не хочу, чтобы ненужная обработка происходила на каждом посту на сервере. Я хотел бы добавить, что каждый пользовательский элемент управления имеет несколько ярлыков в своей разметке, которые получают только значения текста, назначенные во время выполнения, на основе содержимого, полученного из базы данных.
Когда я загружаю главную страницу, выбранная переменная табуляции проверяется каждым пользовательским элементом управления, и все работает отлично от этой области. (Первая вкладка в индексе 0 не имеет диаграмм)
Проблема заключается в том, что я выбираю вкладку с пользовательским контролем, соответствующий код для получения данных из базы данных и построения диаграммы отлично работает, но значение ТЕКСТ Элементы управления ярлыками в разделе «Разметка» не отображаются на странице, хотя значения «ТЕКСТ» устанавливаются в «Код-за», в то же время данные восстанавливаются.
Если я выполняю Post Back на той же странице, отображаются значения TEXT элементов управления Label.
Я считаю, что это связано с тем, что первые этапы жизненного цикла страницы, включающие рендеринг разметки, не срабатывают при начальной загрузке пользовательского элемента управления, а срабатывают при последующих перезагрузках или обновлениях страницы.
Есть ли способ обойти это? Я рассчитываю на вызов события Render после того, как работа с базой данных будет работать, но я могу быть в стороне от своих мыслей.
Может ли кто-нибудь дать совет или потенциальное решение ???
Благодаря
это определенно звучит так, как если бы ваши пользовательские данные управления сопоставлялись с ярлыками управления пользователя до конца. Когда и как вы создаете пользовательский элемент управления? Похоже, что вы делаете это во время метода OnTabClick, который не должен быть проблемой, поскольку пользовательские события срабатывают перед Page_PreRender(), который является последним случайным событием для изменения страницы до ее отправки клиенту. –
Элементы UserControl являются статическими и уже созданы на сайте. Иерархией является: страница мастера, страница субмастера, страница ASPX, а затем пользовательские элементы управления, зарегистрированные с именем тега и префиксом на странице ASPX и добавленные в теги div на эту страницу. Когда сайт загружает страницу ASPX, загружается, и Markup также отображается для каждого из UserControls. Если я удалю условную проверку и просто позволю всем элементам управления построить, проблема не возникает; НО тогда у меня есть другая проблема постоянно запрашивать БД для каждого UserControl при обратной передаче. Убийца для исполнения. – Mark