制作了一个asp.net表,在运行时会填充标签,文字,数据,格式等。
form1.innerhtml说页面只有文字。
我需要提取在运行时生成的这个asptable,作为html代码,以便它可以被移植到一个word文件..(因为word很容易支持html),浏览器也显示html所以如何获取html?< / p>
答案 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();
}
}
输出为
<span style="color:Red;">This is sample text</span>
,浏览器显示为<span style="color:Red;">This is sample text</span>
。
请注意,您也可以删除StringBuilder,使用new StringWriter();
并返回tw.ToString();
。无论如何,StringWriter使用StringBuilder作为其底层数据结构。
答案 1 :(得分:0)
查看HttpResponse.Filter属性。