2016-04-18 10 views
5

Ich habe ein Webformular, auf dem ich AJAX Toolkit HtmlEditorExtender1 verwendet habe. Es funktioniert gut. Jetzt versuche ich das gesamte Webformular mit iTextSharp per Knopfdruck in PDF zu konvertieren. Aber ich diese Störung erhalte:Extender-Steuerelement 'HtmlEditorExtender1' ist kein registriertes Extender-Steuerelement

Extender control 'HtmlEditorExtender1' is not a registered extender control. Extender controls must be registered using RegisterExtenderControl() before calling RegisterScriptDescriptors(). 
Parameter name: extenderControl 

Ich glaube, es hat etwas mit dem HtmlEditorExtender1 zu tun hat

<ajaxToolkit:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" TargetControlID="txtkeyresultforyear" EnableSanitization="false" /> 

oben auf meiner Web-Formular sieht wie folgt aus:

<%@ Page Title="" Language="C#" MasterPageFile="~/ModuleMain.master" AutoEventWireup="true" 
    ValidateRequest="false" CodeBehind="xyz.aspx.cs" EnableEventValidation = "false" Inherits="abc.xyz" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> 

Dies ist mein Code auf Knopfdruck:

protected void btntopdf_Click(object sender, EventArgs e) 
{ 
    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); 
    this.Page.RenderControl(hw); 
    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(); 
} 

EDIT:

Ich erhalte diesen Fehler an:

this.Page.RenderControl(hw); 

enter image description here

+0

Haben Sie ' ' in asp.net Webformular –

+0

@syedmhamudulhasanakash in der Masterseite, ja. – Arbaaz

+0

@syedmhamudulhasanakash Ich habe gerade überprüft .. Ich kann Skriptmanager weder auf der Masterseite noch auf der Kindseite finden. Ich habe versucht, Skriptmanager zur Kindseite hinzuzufügen, aber dann habe ich Fehler, dass nur eine Instanz von scriptmanager hinzugefügt werden kann. Es ist komisch. – Arbaaz

Antwort

0

Wenn Sie pdf Correclty

erzeugt wird

dann versuchen, diesen Code

 pdfWriter.CloseStream = false; 
     pdfDoc.Close(); 
     HttpContext.Current.Response.Buffer = true; 
     HttpContext.Current.Response.ContentType = "application/pdf"; 
     HttpContext.Current.Response.AddHeader("content-disposition:", "attachment;filename=" + _fileName + ".pdf"); 
     // HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.Write(pdfDoc); 

in pdf speichern.