1

ページを PDF に変換するコントロールを作成しようとしています。

protected void ConvertPageToPDF_click(object sender, EventArgs e)
{
    string pageHtml;
    byte[] pdfBytes;

    string url = HttpContext.Current.Request.Url.AbsoluteUri;

    // get the HTML for the entire page into pageHtml
    HtmlTextWriter hw = new HtmlTextWriter(new StringWriter());
    this.Page.RenderControl(hw);
    pageHtml = hw.InnerWriter.ToString();

    // send pageHtml to a library for conversion
    // send the PDF to the user
}

これは部分的に機能します。私のページにはいくつかのリピーターがいます。それらのコンテンツは に表示されませんpageHtml。その理由について何か考えはありますか?これを修正するにはどうすればよいですか?

4

1 に答える 1

2

データがバインドされた後、コントロールをレンダリングする必要があったことがわかりました。私のクリック メソッドは、イベント ハンドラーを追加するだけです。

protected void ConvertRepeaterToPDF_click(object sender, EventArgs e)
{
    // handle the PreRender complete method
    Page.PreRenderComplete += new EventHandler(Page_OnPreRenderComplete);
}

次に、Page_OnPreRenderComplete で、上記のように RenderControl を使用できます。

于 2012-06-14T13:50:33.147 に答える