2014-02-10 53 views
0

我想將我的頁面導出到sharepoint custm web部件中的pdf。我正在使用下面的代碼導出爲pdf。當我點擊導出按鈕,我越來越低於錯誤。如何解決這個錯誤?請幫幫我。在 '/' 應用在Sharepoint中導出到PDF自定義Web部件

代碼

protected void ExporttoPDF_Click(object sender, EventArgs e) 
{ 
     Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=ExporttoPDF.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(); 
} 

錯誤

服務器錯誤。 RegisterForEventValidation只能在Render(); 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

Exception Details: System.InvalidOperationException: 
RegisterForEventValidation can only be called during Render(); 

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

堆棧跟蹤:

[InvalidOperationException: RegisterForEventValidation can only be called during Render();] 
    System.Web.UI.ClientScriptManager.RegisterForEventValidation(String uniqueId, String argument) +11081278 
    System.Web.UI.WebControls.TextBox.AddAttributesToRender(HtmlTextWriter writer) +455 
    System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +27 
    System.Web.UI.WebControls.TextBox.Render(HtmlTextWriter writer) +27 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +42 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +411 
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +87 
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +53 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +42 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240 
    System.Web.UI.Page.Render(HtmlTextWriter writer) +38 
    Microsoft.SharePoint.WebPartPages.WikiEditPage.Render(HtmlTextWriter writer) +207 
    PayrollProject.PaySlip4Employee.PaySlip4EmployeeUserControl.btnPDF_Click(Object sender, EventArgs e) +425 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981 

版本信息:Microsoft .NET Framework版本:2.0.50727.5472; ASP.NET版本:2.0.50727.5474

回答

0

在@ Page指令

EnableEventValidation ="false" 

添加這就像

<%@ Page Language="C#" AutoEventWireup="true" Debug ="true" EnableEventValidation ="false" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
+0

我想這一個,但我收到以下錯誤。解析器錯誤消息:解析屬性'enableeventvalidation'時出錯:輸入'PayrollProject.PaySlip4Employee.PaySlip4EmployeeUserControl'沒有名爲'enableeventvalidation'的公共屬性。 – Ramadurai

+0

我認爲你的{System.InvalidOperationException}問題已解決。如果我幫助你將我的答案標記爲有用 –

+0

@Ramadurai你有輸出嗎? –

相關問題