我有一个带有Itemplate属性的ASP.NET控件MyControl:
public Itemplate MyTemplate {get;组; }
这允许我在标记中将MyTemplate标记放在HTML中,这将在渲染过程中实例化:
if (MyTemplate!= null) {
Control MyTemplateContainer = new Control();
MyTemplate.InstantiateIn(MyTemplateContainer);
Controls.Add(MyTemplateContainer);
}
检查MyTemplate!=null
告诉我标记中的控件中是否存在MyTemplate标记,但不知道标记内是否有任何内容。
来自这个问题的解决方案Render Control Without Page,我们调用RenderControl,然后访问StringWriter将标记转换为字符串,需要首先初始化页面,我不想这样做。有没有其他方法可以判断MyTemplate标签中是否包含文字文本?
答案 0 :(得分:0)
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
}