Создадим новый контрол TestUserControl.ascx в папке Controls проекта. Чтобы добавить его на страницу
нужно добавить в начало страницы следующий код:
<%@ Register tagprefix="bxp" Tagname="TUControl"
Src="~/Controls/TestUserControl.ascx" %>
После чего его его можно добавлять на страницу:
<bxp:TUControl ID="tuc1" runat="server" />
Сложности возникают когда мы захотим добавить такой контрол программно в .cs файле. Такая потребность может возникнуть,
например, когда нам заранее не известно какие контролы будут на странице. Суть проблемы возникает в том, что нельзя
получить экземпляр созданного контрола (custom user control) с помощью конструктора.
Т.е. если мы используем следующих код
TestUserControl tuc = new TestUserControl();
Все объекты, объявленные в .ascx файле будут null.
Чтобы получить инстанс контрола нужно воспользоваться методом
LoadControl(string vpath),
который ищет по указанному пути контрол и загружает его. В нашем случае это будет выглядеть так:
TestUserControl tuc1 =
(TestUserControl)LoadControl("~/Controls/TestUserControl.ascx");
После этого можно добавить полученный экземпляр контрола на страницу