Динамическое добавление пользовательского элемента управления на страницу - PullRequest
1 голос
/ 03 ноября 2010

У меня есть usercontrol (ascx), который я хочу динамически добавить на страницу.

Ни у элемента управления, ни у страницы нет пространства имен (спасибо дрянному продавцу).

Когда я используюниже он говорит мне, что не может найти «тип или пространство имен»

StayTunedControl = (UserControler_StayTuned)LoadControl("~/UserControler/StayTuned.ascx");           
Page.Controls.Add(StayTunedControl);
StayTunedControl.StayTunedID = Convert.ToInt32(IncludesStayTunedMeta.Value);

После некоторой настройки пространств имен и т. д., я сейчас нахожусь в точке, где 3-я строка выше генерирует следующую ошибку:

'System.Web.UI.UserControl' не содержит определения для 'StayTunedID'

Я надеялся, что приведение StayTunedControl к типу (UserControler_StayTuned) исправит это.

HELP

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Прежде чем получить доступ к любому свойству пользовательского элемента управления, вам нужно создать экземпляр пользовательского элемента управления при загрузке его на страницу.

Dim tc As New Page
Dim c As Control = tc .LoadControl("~/usercontrols/tasks.ascx")
Dim uc As usercontrols_tasks = DirectCast(c, usercontrols_tasks)

Сначала я загрузил свой пользовательский элемент управления в качестве общего элемента управления. Затем создал новый экземпляр пользовательского элемента управления и передал общий загруженный элемент управления в мой экземпляр uc.

После создания экземпляра вашего пользовательского элемента управления его свойства будут доступны.

0 голосов
/ 03 ноября 2010

По существу, имелись проблемы с пространствами имен и остатками, оставленными в атрибуте наследования элемента управления - что приводило к сбою компилятора с кодом ошибки 1. сообщение.

Для разрешения приведены следующие сведения, совпадающие с некоторыми из приведенных выше комментариев:

http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...