如何在调用InstantiateIn()之前或之后检查Itemplate属性是否有文字文本

时间:2015-01-14 17:22:39

标签: c# asp.net

我有一个带有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标签中是否包含文字文本?

1 个答案:

答案 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
}