2011-10-20 11 views
1

Asp.NetアプリケーションでIFrameの内容をレンダリングしようとしています。 これは私が現在持っているものです。Asp.net Iframe RenderControl


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

のExcelドキュメントを取得し実行すると、この

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

のように見えます正しく動作するようにajaxを使用して別のページでクライアント側を実行する必要がありますが、別の.NET Serversideソリューションがある場合は、フリーで感じる...

答えて

1

src属性がサーバー側で評価されると予想していたと思います。これを行うには、WebClientを使用して自分で取得する必要があります。このような何かがあなたのために働くかもしれません。

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

私はajaxを使って別のページからの引き抜きをやりましたが、バイトレベルでデータを引き出すことになった場合、おそらくそれを渡してしまいました。しかし、IFrameをdivに変更することができなかったため、使用可能な実行可能なソリューションを試してみました(管理者に説明するのがどれほど簡単か)。 – Terrance

関連する問題