Как ссылаться на тип класса в вызове LoadControl? - PullRequest
0 голосов
/ 19 октября 2011

В этом примере для динамической загрузки пользовательского элемента управления, как я могу объявить «TimeDisplay»? Это можно сделать в коде или на странице ascx? Это пример из книги, я предполагаю, что существуют предположения относительно того, где файлы кода расположены относительно друг друга?

protected void Page_Load(object sender, EventArgs e) 
{ TimeDisplay ctrl = (TimeDisplay)Page.LoadControl("TimeDisplay.ascx"); 
PlaceHolder1.Controls.Add(ctrl); 
}

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Вам необходимо добавить ссылку на элемент управления на странице aspx:

<%@ Reference Control="~/Controls_Path/TimeDisplay.ascx" %>
0 голосов
/ 19 октября 2011

Чтобы объявить элемент управления в разметке, вам необходимо зарегистрировать элемент управления в директиве страницы или в web.config. Регистрация элементов управления в web.config обычно предпочтительнее, поскольку вы можете использовать элемент управления в любом месте приложения.

Метод настройки:

<pages>
    <controls>
        <add tagPrefix="uc1" src="~/controls/myusercontrol.ascx" tagName="myusercontrol" />
    </controls>
</pages>            

Метод директивы страницы:

<%@ Register TagPrefix="uc1" TagName="MyUserControl" Src="~/controls/myusercontrol.ascx" %>
...