ASP.NET элементы управления из разных сборок - PullRequest
3 голосов
/ 30 июня 2010

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

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

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


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

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

1 Ответ

3 голосов
/ 30 июня 2010

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

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

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

...