Rambler's Top100
Как сделать в ASP C#?
Как программно добавить контрол на страницу
(How to programmatically add control)
Время - деньги!

Time is money!

  Rambler's Top100

   Создадим новый контрол 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");
После этого можно добавить полученный экземпляр контрола на страницу
Controls.Add(tuc1); 


ERP системы с открытыми кодами

OpenSource