C# 如何检查Itemplate属性在调用InstanceEIN()之前或之后是否具有文本

C# 如何检查Itemplate属性在调用InstanceEIN()之前或之后是否具有文本,c#,asp.net,C#,Asp.net,我有一个ASP.NET控件MyControl,具有Itemplate属性: 公共项目模板MyTemplate{get;set;} 这允许我将HTML放在标记中的MyTemplate标记之间,在呈现过程中会像这样实例化: if (MyTemplate!= null) { Control MyTemplateContainer = new Control(); MyTemplate.InstantiateIn(MyTemplateContainer); Controls.Ad

我有一个ASP.NET控件MyControl,具有Itemplate属性:

公共项目模板MyTemplate{get;set;}

这允许我将HTML放在标记中的MyTemplate标记之间,在呈现过程中会像这样实例化:

if (MyTemplate!= null) {
    Control MyTemplateContainer = new Control();
    MyTemplate.InstantiateIn(MyTemplateContainer);
    Controls.Add(MyTemplateContainer);
}
正在检查
MyTemplate=null
告诉我标记中的控件中是否存在MyTemplate标记,但不告诉标记中是否有任何内容


这个问题的解决方案是,我们调用RenderControl,然后访问StringWriter将标记转换为字符串,需要首先初始化页面,我不希望这样做。有没有其他方法可以判断MyTemplate标记中是否包含文本?

服务器控件内的aspx模板中的所有内联文本在处理页面时会被aspx引擎转换为文本控件。
if (MyTemplate != null && MyTemplate.ChildControls != null && MyTemplate.ChildControls[0] != null && MyTemplate.ChildControls[0].GetType() == typeof (Literal))
{
  //Template has a control, and it's a literal
}