I have have a panel on my webform, within this panel i have lots of stuff along with
Button Click
protected void btntopdf_Click(object sender, EventArgs e)
{
AjaxControlToolkit.HtmlEditorExtender extender = (AjaxControlToolkit.HtmlEditorExtender)Panel1.FindControl("HtmlEditorExtender1");
Panel1.Controls.Remove(extender);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Panel1.RenderControl(hw); // error over here
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
ERROR:
Control 'ContentPlaceHolder1_ContentPlaceHolder1_HtmlEditorExtender1' of
type 'HtmlEditorExtender' must be placed inside a form tag with runat=server.
Webform:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:Panel ID="Panel1" runat="server">
//lot of stuff in between
<ajaxToolkit:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" TargetControlID="txtkeyresultforyear"
EnableSanitization="false">
</ajaxToolkit:HtmlEditorExtender>
//lot of stuff in between
</asp:Panel>
</asp:Content>
Then, you need to use the ScriptManagerProxy
on any nested master pages or content pages.
ScriptManagerProxy class enables nested components such as content pages and user controls to add script and service references to pages when a ScriptManager control is already defined in a parent element.
https://msdn.microsoft.com/en-us/library/cc295370.aspx
Check this link for ScriptmanagerProxy class reference
UPDATE
In addition to that, you need to override VerifyRenderingInServerForm
https://msdn.microsoft.com/en-us/library/system.web.ui.page.verifyrenderinginserverform.aspx
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.