2013-03-07 2 views
0

SharePoint 웹 파트 솔루션의 ascx 페이지에서 Excel 그리드를 내보내기 위해 노력하고 있습니다. 이 오류 다음 발생 방법하지만 다음 내가 사용해야합니다이 오류를 방지하려면SharePoint 2010의 ascx 페이지에서 엑셀로 내보내기 표

Control 'ctl00_ctl24_g_20574c20_e209_4887_ab02_83ee55a79fc5_ctl00_gdReport' of type 'GridView' must be placed inside a form tag with runat=server. 

다음 컴파일러는

public override void VerifyRenderingInServerForm(Control control) { } 

전체 코드를 찾을 수 없습니다 "라는 적절한 방법이 무시 없습니다"라는 오류가 발생합니다 :

protected void btnExcelExport_Click(object sender, EventArgs e) 
{ 
    PrepareForExport(gdSharedReport); 
    ExportToExcel(); 
} 

private void ExportToExcel() 
{ 
    Response.Clear(); 
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls"); 
    Response.Charset = String.Empty; 
    Response.ContentType = "application/ms-excel"; 
    StringWriter stringWriter = new StringWriter(); 
    HtmlTextWriter HtmlTextWriter = new HtmlTextWriter(stringWriter); 
    gdSharedReport.RenderControl(HtmlTextWriter); 
    Response.Write(stringWriter.ToString()); 
    Response.End(); 
} 

private void PrepareForExport(Control ctrl) 
{ 
    //iterate through all the grid controls 
    foreach (Control childControl in ctrl.Controls) 
    { 
     //if the control type is link button, remove it 
     //from the collection 
     if (childControl.GetType() == typeof(LinkButton)) 
     { 
     ctrl.Controls.Remove(childControl); 
     } 
     //if the child control is not empty, repeat the process 
     // for all its controls 
     else if (childControl.HasControls()) 
     { 
     PrepareForExport(childControl); 
     } 
    } 
} 
+0

첫 번째 오류는'.aspx' 페이지에'runat = "Server"'속성이 없습니다. 두 번째로 관련 코드를 더 게시해야합니다. 메소드가 재정의 될 수 있는지 확인해야합니까? – Brian

+0

@Brian, 전체 코드가 추가되었습니다. Form에 VerifyRenderingInServerForm()을 사용하지 않았습니다. 또한, 내 눈금은 ascx 페이지에 배치됩니다. – Rishi

+0

아마도 필요할 것입니다. – jp2code

답변

0

귀하의 게시물 :

나는 다음과 같은 메타를 사용해야합니다 OD하지만 컴파일러는 그래서, 내 생각 엔 당신이 VerifyRenderingInServerForm 방법에 대한 재정의를 추가 할 필요가 있다는 것입니다

public override void VerifyRenderingInServerForm(Control control) { } 

을 "더 적절한 방법 재정의를 찾을 수 없습니다"라는 오류가 발생합니다.

+0

ascx 페이지에 VerifyRenderingInServerForm()을 추가 할 수 없습니다. aspx 페이지에만 추가 할 수 있습니다. 문제는 여기에 있습니다. – Rishi

+0

[MSDN] (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.deltapage.verifyrenderinginserverform.aspx) 도움이되지 않았습니다 (큰 놀라움). [Sharepoint (ascx)에서 Excel로 내보내기 Gridview] (http://forums.asp.net/t/1461411.aspx/1)는 필요한 작업을 수행합니까? – jp2code

+0

이 스레드를 보았지만 언급 된 솔루션이 없습니다. 정확히 같은 문제가 있습니다. – Rishi