在后面的代码中获取由ASP.NET控件呈现的HTML

时间:2010-11-12 06:10:02

标签: c# asp.net

您好我想在代码后面的Panel中调用相应的html。我怎么能这样做?

我有这个

<asp:Panel ID="MyPanel" runat="server">
    // other asp.net controls and html stuffs here.
</asp:Panel>

我希望获得与MyPanel等效的HTML及其代码中的所有内容,请参阅PageLoad或某些方法。

感谢。

2 个答案:

答案 0 :(得分:35)

RenderControl()不起作用吗?

创建一个控件实例,然后在其上调用RenderControl()。当然这意味着您的面板位于UserControl

中 来自评论的

示例:

StringBuilder sb = new StringBuilder(); 
StringWriter tw = new StringWriter(sb); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
ctrl.RenderControl(hw); 
var html = sb.ToString(); 

答案 1 :(得分:2)

@Shiv Kumar的回答是正确的。但是,您不需要StringBuilder

StringWriter tw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
ctrl.RenderControl(hw); 
var html = tw.ToString();

这也有效