代码之家  ›  专栏  ›  技术社区  ›  rob waminal

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

  •  17
  • rob waminal  · 技术社区  · 14 年前

    嗨,我想在后面的代码中调用面板内相应的HTML。我该怎么做?

    我有这个

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

    我想得到相当于 MyPanel 它在我的代码后面的所有内容,比如在页面加载或某些方法中。

    谢谢。

    2 回复  |  直到 7 年前
        1
  •  35
  •   TheAlbear    11 年前

    renderControl()不工作吗?

    创建控件的实例,然后对其调用renderControl()。当然,这意味着面板在用户控件中

    注释示例:

    StringBuilder sb = new StringBuilder(); 
    StringWriter tw = new StringWriter(sb); 
    HtmlTextWriter hw = new HtmlTextWriter(tw); 
    ctrl.RenderControl(hw); 
    var html = sb.ToString(); 
    
        2
  •  2
  •   Beingnin    7 年前

    @Shiv Kumar的回答是正确的。但是你不需要 StringBuilder 为了这个。

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

    这也有效