Каков наилучший способ не загружать пользовательские элементы управления при загрузке страницы? - PullRequest
3 голосов
/ 31 января 2012

У меня есть общий вопрос. На моей странице есть несколько тихих «тяжелых» пользовательских элементов управления, каждый из которых размещен в представлении MultiView. В PageLoad каждый из этих элементов управления инициализируется, вызывая ненужные вызовы базы данных. То, что я хочу, это загрузить только тот элемент управления, чье представление установлено на «Активный». Теперь я использую общедоступные логические свойства в каждом из этих пользовательских элементов управления, чтобы указать, следует ли связывать данные или нет, но есть ли общий способ сделать это?

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Если вы действительно не хотите, чтобы UserControls включался в ASP.NET Page Life Cycle при каждой загрузке / обратной передаче, тогда динамически загружайте их при необходимости.

Динамическая загрузкаПользовательские элементы управления ASP.NET

0 голосов
/ 31 января 2012

Вот как я это делаю (похоже на ваше решение)

Каждый элемент управления реализует метод для привязки данных. Этот метод следует вызывать только в том случае, если представление, в котором он отображается, является «Активным». (Как вы уже делаете на стороне сервера). Каждый из этих элементов управления содержит только литерал, в который я отображаю свой HTML-код из кода.

Я также хотел бы иметь более чистый способ, но элементы управления имеют свои методы OnLoad и так далее, даже если они невидимы. Насколько мне известно, вы должны выполнить такую ​​операцию привязки данных или установить значение свойства вручную.

Не следует переопределять метод DataBind, поскольку он будет вызываться, даже если для самого элемента управления свойство Visible имеет значение false. (Вот как я помню, но вы можете проверить, чтобы убедиться). Более простым способом, вероятно, будет проверка вашего свойства в переопределенном методе DataBind и выполнение привязки данных только в том случае, если для него установлено значение true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...