Asp.net Iframe RenderControl

时间:2011-10-20 19:03:14

标签: c# excel iframe asp.net-2.0

尝试在Asp.Net应用程序中呈现IFrame的内容。 这就是我现在所拥有的。


private void ExportToExcel(Control control)
{
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment;filename=IT Status "+ReportType.Text+".xls");
    Response.Charset = "";
    this.EnableViewState = false;

    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    control.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}

我的IFrame看起来像这样

<iframe id="ReportBody" runat="server" src="ITTasksByComponent.aspx" scrolling="auto" visible="true" width="1000" height="1000" />

当方法运行时,我得到一个带有
的excel doc <iframe id="ReportBody" src="ITTaskByAssignment" ></iframe>

我怀疑这是我必须使用ajax在另一个页面中运行客户端才能正常工作但是如果有另一个.NET Serverside解决方案可以免费...

1 个答案:

答案 0 :(得分:1)

我猜你期望在服务器端评估src属性。要做到这一点,您需要使用WebClient并自己获取。这样的事可能适合你。

byte[] data = new WebClient.DownloadData(ResolveUrl("~/ITTasksByComponent.aspx");     
Response.OutputStream.Write(data, 0, data.Length);