2010-09-29 38 views
0

我在Web用戶控件中動態地渲染一些標記,我可以在設計模式下獲得它,而不僅僅是運行時?Asp Net Web用戶控件在設計時渲染

public override void RenderControl(HtmlTextWriter writer) 
{ 
if (this.DesignMode) 
    writer.Write("<p>In design mode</p>"); 
else 
    base.RenderControl(writer); 
} 

...當我檢查控件的設計視圖時沒有任何反應。不,如果我刪除if(this.DesignMode)條件。

我需要使用服務器控制嗎?

+1

是的。 Web Control =已編譯,沒有設計器 - 手動呈現。服務器控制=在運行時編譯的設計器,標記,標記。 – RPM1984 2010-09-29 08:48:18

回答

1

您將需要爲您的控件創建一個自定義設計器。從MSDN開始閱讀

0

Visual Studio不支持此操作。當你指定「用戶控制」這個詞的時候,事情就會變成beserk並渲染你放在它上面的所有東西。顯然這是自2008年以來的情況...

您可以將您的用戶控件轉換爲服務器控件,這是一個主要的痛苦。或...

幸運的是,您可以影響服務器控件的呈現方式。換句話說,你可以通過使用它來欺騙Visual Studio設計器。您需要的代碼可以在這裏找到:http://www.codeproject.com/Tips/773145/Hiding-contents-in-ASP-Net-user-control-designer