如何获取asp.net控件的html代码,以便进一步使用该代码

时间:2010-08-29 06:16:04

标签: c# asp.net

制作了一个asp.net表,在运行时会填充标签,文字,数据,格式等。

form1.innerhtml说页面只有文字。

我需要提取在运行时生成的这个asptable,作为html代码,以便它可以被移植到一个word文件..(因为word很容易支持html),浏览器也显示html所以如何获取html?< / p>

2 个答案:

答案 0 :(得分:2)

您可以将控件渲染为字符串。

public string RenderControl(Control ctrl) 
{
    StringBuilder sb = new StringBuilder();
    StringWriter tw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(tw);

    ctrl.RenderControl(hw);
    return sb.ToString();
}

已修改:这是一个完整的.aspx页面。 我所做的就是创建一个新网站,输入以下代码并点击F5。

using System;
using System.IO;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Label lbl = new Label();
        lbl.Text = "This is sample text";
        lbl.ForeColor = System.Drawing.Color.Red;
        string html = RenderControl(lbl);
        Response.Clear();
        Response.Write(HttpUtility.HtmlEncode(html));
        Response.End();
    }
    public string RenderControl(Control ctrl)
    {
        StringBuilder sb = new StringBuilder();
        StringWriter tw = new StringWriter(sb);
        HtmlTextWriter hw = new HtmlTextWriter(tw);

        ctrl.RenderControl(hw);
        return sb.ToString();
    }
}

输出为 &lt;span style=&quot;color:Red;&quot;&gt;This is sample text&lt;/span&gt;,浏览器显示为<span style="color:Red;">This is sample text</span>

请注意,您也可以删除StringBuilder,使用new StringWriter();并返回tw.ToString();。无论如何,StringWriter使用StringBuilder作为其底层数据结构。

答案 1 :(得分:0)

查看HttpResponse.Filter属性。