ASP.net Page объект null при вызове его из шаблонного элемента управления - PullRequest
3 голосов
/ 22 июня 2009

Я создал элемент управления, который использует ITemplate внутри, чтобы позволить пользователю добавлять свои собственные вещи.

<my:MyControl id="myControl" runat="server">
   <Content>
         //some stuff in here
   </Content>
</my:MyControl>

Свойство «Содержимое» является шаблоном. (Это просто упрощено. Эта конструкция находится под большим контролем).

Теперь у меня проблема с тем, что мой пользователь помещает свой собственный UserControl в <Content>..</Content>. Это не должно быть проблемой, но UserControl выполняет вызов QueryString страницы в событии PageLoad. И теперь я понял, что объект Page является нулевым, когда UserControl находится в шаблоне, в то время как он работает, если он размещен снаружи, обычно на странице.

У кого-нибудь есть идеи, в чем может быть проблема?

Ответы [ 2 ]

9 голосов
/ 22 июня 2009

Я видел случай, когда this.Page вернул ноль из вложенного пользовательского элемента управления.

В этом случае использование конструкции (Page)HttpContext.Current.Handler для получения объекта страницы работало нормально.

1 голос
/ 05 сентября 2009

Я не знаю, пригодится ли он больше, но, может быть, все-таки пригодится ...

Когда вы создаете экземпляр шаблона (с InstantiateIn), действительно ли получающаяся иерархия элементов управления фактически добавляется в коллекцию Controls вашего MyControl? AFAIK, это способ убедиться, что у вас есть ненулевое свойство Page.

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