2015-01-14 61 views
0

我有一個ASP.NET控件,MyControl,用了Itemplate財產後有文字文本:如何檢查的ITemplate屬性之前或調用InstantiateIn()

公開了Itemplate MyTemplate的{獲得;組; }

這讓我把在標記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
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 
} 
+0

服務器控件中的aspx模板中的所有內聯文本在處理頁面時被aspx引擎轉換爲文字控件。 –

相關問題