На моей странице есть следующее:
<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
возврат false
.
- Звонки на
EnsureChildControls
ничего не делают.
- Коллекция
Controls
пуста.
Удаление UpdatePanel
не принесло пользы. Я попытался воспроизвести его на чистой странице с новым UserControl
, и произошло то же самое.
Я использую ASP.NET поверх .NET Framework 3.5 SP1 со встроенным веб-сервером.
Что мне здесь не хватает?
Обновление № 1: После комментария Роба я посмотрел на OnInit
и обнаружил, что UserControl
не обнаруживает, что у него есть дочерние элементы управления. Более того, CreateControlCollection
никогда не вызывается!