Повторное использование UserControls в ASP.NET - CodeHelper

Повторное использование UserControls в ASP.NET

2

Вопрос состоит в том как использовать UserControls(*.ascx), находящиеся в другой сборке

Чак Норрис

Ночью нада спать а не контролы повторно использовать))

Sergey

Так олимпиада идёт)))

Новые ответы


2

Есть способ, правда это танец с бубном

Можно сделать ascx embedded, то есть включить его в сборку и серез рефлектор вытаскивать его, в статье ASP.NET: Reusing Web User Controls and Forms описано:

protected void Page_Load(object sender, EventArgs e)
{
    Control ctrl = LoadControl("/App_Resource/WebApplicationControls.dll/"+
      "WebApplicationControls.WebUserControl1.ascx");
    PlaceHolder1.Controls.Add(ctrl);
}

как вытаскивать с помощью виртуального провайдера

2

Есть два типа структурных элементов для композиции, которые может определить пользователь:

  • User Control
  • Custom Control

User Control — это часть разметки, выделенная в отдельный ascx файл. Создание и редактирование такого контрола очень похоже на создание обычных веб-страниц. Рендеринг такого контрола требует наличия ascx файла на диске. Эти контролы как туалетная бумага — не подлежат повторному использованию между проектами. Единственная возможность — скопировать файл в другой проект.

Custom Control — это класс, унаследованный от Control или WebControl. Такой вариант идеально подходит для повторного использования, потому что контрол является обычным классом, который может быть размещен в любой сборке. Но теряется возможность редактирования в редакторе VS.

Выводы. Если нужно повторное использование и расположение контрола в другой сборке, то лучше создать Custom Control. User Control все-таки можно расположить в другой сборке, но это требует долгих танцев с бубном.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.