2010-06-30 2 views
3

У меня есть некоторые элементы управления в моей сборке GeneralControls (классическая DLL), состоящие из файла .ascx (и кода для них).ASP.NET Элементы управления из разных сборок

Я ссылающийся на этот DLL, и с помощью элементов управления, как:

<%@ Register Tagprefix="g" Assembly="GeneralControls" Namespace="GeneralControls.UI" %> 


<g:FooterControl ID="Footer" runat="server" /> 

но FooterControl содержит некоторые другие элементы управления (ярлыки, и так далее), а также те, используемые в коде, бросками NullArgumentException. Каков правильный способ совместного использования элементов управления ascx? Заранее спасибо.

ответ

3

Элементы управления пользователя (.ascx) должны существовать в веб-проекте, из которого они обслуживаются. Вы не можете переместить их в другую сборку для совместного использования.

Если вы хотите иметь общие элементы управления, вам необходимо специализированный серверный элемент управления, который не имеет декларативный шаблон, все дочерние элементы управления должны быть созданы в коде Переопределелив CreateChildControls и т.д.

http://support.microsoft.com/kb/893667 (см раздел под названием «В чем основные отличия между пользовательскими элементами управления и настраиваемыми элементами управления?»)

+0

О, я надеялся, что это неверно, и есть обходной путь или любой способ, как скомпилировать ascx .. Спасибо. – nothrow