2010-12-10 2 views
0

Мне нравится создавать проект коллекции компонентов, чтобы впоследствии использовать эти компоненты для других проектов. Например, я создал UserControl под названием MyDataGrid.ascxПрограммно загрузить UserControl из другого проекта

Итак, пусть макет проекты являются чем-то вроде этого:

->IPGostarProject - Под пространством имен IPGostar - содержит компоненты и Лота пользовательских элементов управления

->SampleProject - здесь я хочу использовать MyDataGrid.ascx UserControl из IPGostar имен.

Но, как вы знаете, функция LoadControl принимает только виртуальный каталог в качестве его параметра. Таким образом, вы не можете загружать ничего из каталога SampleProject!

Так как я могу это сделать?

ответ

0

Один из способов был бы для события post-build (или любого другого скрипта сборки) проекта SampleProject для копирования фактических пользовательских элементов управления в подпапку SampleProject, чтобы они были доступны во время выполнения.

0

До тех пор, пока вы имеете дело с частичными классами, нет отличного способа сделать это за пределами обмана файловой системы. Лучше всего реализовать общие UserControls как WebControls. Если у вас обширная разметка, она, вероятно, не очень хорошо подходит для совместного управления, так или иначе ... например. вы также разделите таблицу стилей?

Отделите большую часть разметки, которая не является частью основных функций вашего элемента управления, и реализуйте только ядро ​​как WebControl, генерируя любую разметку и элементы управления в коде. Фактический проект, который его реализует, должен отвечать за макет, форматирование и т. Д. Использовать события для предоставления кликов клиенту (например, для сетки данных, событий для CreateRow, CreateCell и т. Д.)

Смежные вопросы