Внутри моей страницы у меня есть следующее:
<aspe:UpdatePanel runat="server" ID="updatePanel">
<ContentTemplate>
<local:KeywordSelector runat="server" ID="ksKeywords" />
</ContentTemplate>
</aspe:UpdatePanel>
Элемент KeywordSelector
- это элемент управления, который я определяю в той же сборке, и local
отображается в его пространство имен.
Элемент управления состоит из нескольких других элементов управления и определяется как таковой:
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="KeywordSelector.ascx.cs"
Inherits="Keywords.KeywordSelector" %>
и имеет довольно много собственных элементов управления сервером, все они определены как члены в файле .designer.cs
.
Однако в течение какой-либо части жизненного цикла элемента управления не имеет никаких дочерних элементов управления и не создает HTML:
- Все члены, определенные в файле
.designer.cs
,null
. - Вызов
HasControls
returnfalse
. - Вызов
EnsureChildControls
ничего не делает. - Коллекция
Controls
пуста.
Удаление UpdatePanel
не принесло пользы. Я попытался воспроизвести его на чистой странице с помощью нового UserControl
, и произойдет то же самое.
Я использую ASP.NET поверх .NET Framework 3.5 с пакетом обновления 1 (SP1) со встроенным веб-сервером.
Что мне здесь не хватает?
Обновление # 1: Следуя комментарию Rob, я просмотрел OnInit
и обнаружил, что UserControl
не обнаруживает, что у него есть дочерние элементы управления. Более того, CreateControlCollection
никогда не вызывается!