2012-03-07 3 views
4

Я создал новый элемент управления TestControl. На переднем конце я дал емуПочему мои динамически добавленные пользовательские элементы управления показывают, что их элементы управления ascx равны нулю?

<asp:Label ID="lblTest" runat="server" /> 

На внутреннем интерфейсе:

public partial class TestControl : System.Web.UI.UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     lblTest.Text = "blah"; 
    } 
} 

Когда я загружаю управление через:

 var control1 = LoadControl(typeof(TestControl), null); 
     Controls.Add(control1); 

я получаю исключение, что lblTest является нулевым.

Почему это происходит?

ответ

4

Используйте относительную перегрузку пути метода LoadControl, как указано здесь.

http://msdn.microsoft.com/en-us/library/ewtd66a0.aspx

Edit: изменен ответ после исследования.

+0

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

+0

Его еще нужно зарегистрировать – Evert

+0

Я добавил <% @ Register Src = "Controls/TestControl.ascx" TagPrefix = "test" TagName = "test"%> к моему основному ascx, но он все равно дает ту же ошибку – KallDrexx

Смежные вопросы