在我的页面中,我有以下内容:
<aspe:UpdatePanel runat="server" ID="updatePanel"> <ContentTemplate> <local:KeywordSelector runat="server" ID="ksKeywords" /> </ContentTemplate> </aspe:UpdatePanel>
KeywordSelector控件是我在同一个程序集中定义的控件,局部映射到其命名空间.
控制由其他几个控件组成,其定义如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="KeywordSelector.ascx.cs" Inherits="Keywords.KeywordSelector" %>
并拥有自己的很多服务器控件,它们都定义为.designer.cs文件中的成员.
但是,在控件的生命周期的任何部分,它都有任何子控件对象,也不会产生HTML:
> .designer.cs文件中定义的所有成员都为空.
>对HasControls的调用返回false.
>调用EnsureChildControls什么也不做.
>控件集合为空.
删除UpdatePanel没有什么好处.我试图用一个新的UserControl在一个干净的页面中重现它,同样的事情发生.
我使用.NET Framework 3.5 SP1上的ASP.NET与集成的Web服务器.
我在这里缺少什么?
更新#1:在Rob的评论之后,我调查了OnInit,发现UserControl没有检测到它有任何子控件.此外,CreateControlCollection从不被调用!