Asp.net Iframe RenderControl - PullRequest
       8

Asp.net Iframe RenderControl

1 голос
/ 20 октября 2011

пытается отобразить содержимое IFrame в приложении Asp.Net. Это то, что у меня сейчас есть.


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 с
<iframe id="ReportBody" src="ITTaskByAssignment" ></iframe>

Я подозреваю, что мне придется запустить клиентскую часть на другой странице, используя ajax для правильной работы, но если есть другое решение .NET Serverside, не стесняйтесь ...

1 Ответ

1 голос
/ 28 марта 2012

Полагаю, вы ожидали, что атрибут src будет оценен на стороне сервера.Для этого вам нужно использовать WebClient и получить его самостоятельно.Нечто подобное может сработать для вас.

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