Мне трудно изменить страницу, на которой был пользовательский элемент управления, прямо на страницу ASPX, и теперь мне требуется, чтобы она динамически загружалась только при необходимости. Пользовательский элемент управления имеет HTML и другие элементы управления через файл ASCX и имеет код в коде позади.
Я прочитал несколько страниц и обнаружил, что не могу напрямую создать экземпляр пользовательского элемента управления, но должен использовать Page.LoadControl(...)
. Проблема не в компиляции, а в том, что когда страница загружает элемент управления, случается так, что все элементы управления в ASCX обнуляются, а затем происходит сбой.
Как я могу использовать пользовательский элемент управления, который имеет код в ASCX и в коде позади динамически?
Edit:
Пример того, что я делаю в (PageLoad или PagePreRender или PagePreInit)
Control c = LoadControl(typeof(MyControl), null);
myControl= (MyControl)c;
myControl.ID = "123";
myControl.Visible = false;
Controls.Add(myControl);
MyControl имеет, например, <div id="whatever" runat="server">
... и внутри MyControl он устанавливает видимость в True или False ... но когда он это делает, теперь происходит сбой, потому что div "независимо от того" равен NULL.