Есть ли способ использовать класс в качестве фабрики классов для пользовательских элементов управления? - PullRequest
0 голосов
/ 23 июня 2009

Есть ли в .NET 2.0 способ использовать класс в качестве фабрики классов для пользовательских элементов управления? Другими словами, 1 супер, который сидит там, и когда я хочу пользовательский элемент управления, он создает его и возвращает мне. Кажется, ему нужно пространство имен ASP, которое я не могу найти для ссылки.

У меня есть мастер-страница с заполнителем. В зависимости от аутентификации пользователя, я хочу динамически загрузить пользовательский элемент управления. Например, это может быть элемент управления поиском, если они аутентифицированы, или реклама, если они не вошли в систему. Я могу их динамически загружать. Но я планировал использовать один класс, чтобы контролировать это. Прямо сейчас я должен загрузить их прямо на код главной страницы позади. В классе нет кода для показа, потому что он не позволит мне ссылаться на пользовательские элементы управления, поэтому я не уйду далеко.

Ответы [ 3 ]

1 голос
/ 23 июня 2009

Пользовательские элементы управления должны быть простыми кусками содержимого страницы. Они не предназначены для фантазии. Вы можете столкнуться с большими трудностями при использовании пользовательских элементов управления, чем стоит делать.

0 голосов
/ 23 июня 2009

Несколько вещей, может быть, что-то полезно:) ...

  1. Я думаю, что вы, возможно, ищете Класс LoginView . Он будет отображать отдельный элемент управления или любой HTML-код в зависимости от статуса аутентификации или даже роли. Извиняюсь, если я говорю вам кое-что, что вы уже знаете.

  2. Тоже замените функциональность LoginView, которая, как мне кажется, вы описываете, серверный элемент управления был бы гораздо более уместным. В частности, Составной серверный элемент управления .

  3. Функциональность динамической загрузки может быть достигнута путем добавления ASP.Net AJAX к смеси. Например, ваш составной элемент управления может быть основан на ASP.Net AJAX UpdatePanel. Вы также можете использовать серверный элемент управления на ScriptControl базовый класс.

  4. Даже если вы можете загружать динамически с помощью AJAX, я бы порекомендовал использовать что-то, что уже сделано для вас. То есть создайте серверный веб-элемент управления

0 голосов
/ 23 июня 2009

Вы можете динамически создавать элементы управления (я в основном делал это для сайтов Sharepoint и иногда перегружая CreateChildControls на странице), но вы получаете от этого кучу головных болей жизненного цикла страницы.

Возможно, вы найдете лучшее решение - использовать отдельные страницы (используя мастер для макета), а также обрезку URL.

Так что \ search ограничен проверенными пользователями в web.config. Таким образом, немытые массы перенаправляются в \ Login (который содержит рекламу), если они пытаются перейти к поиску.

...