C# 使用数据绑定控件获取当前页面的HTML内容

C# 使用数据绑定控件获取当前页面的HTML内容,c#,asp.net,repeater,C#,Asp.net,Repeater,我试图创建一个控件,将其所在的页面转换为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 pageH

我试图创建一个控件,将其所在的页面转换为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
中。你有没有想过为什么会这样?如何修复此问题?

事实证明,在数据绑定到控件后,我必须呈现该控件。我的click方法只添加了一个事件处理程序:

protected void ConvertRepeaterToPDF_click(object sender, EventArgs e)
{
    // handle the PreRender complete method
    Page.PreRenderComplete += new EventHandler(Page_OnPreRenderComplete);
}
然后,在PreRenderComplete页面中,我可以如上所述使用RenderControl。

也许此链接可以帮助您: