1

DotNetNuke(DNN)のPDFでGridviewデータをエクスポートする方法は?

コード ビハインド コードは次のとおりです。

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=PurchaseOrderDetails.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView gridview1 = new GridView();

gridview1.AllowPaging = false;
//DataSet ds = objOrderRegistratonController.GetOrders();                
grddisplay.DataBind();
grddisplay.RenderControl(hw);
grddisplay.HeaderRow.Style.Add("width", "15%");
grddisplay.HeaderRow.Style.Add("font-size", "10px");
grddisplay.Style.Add("text-decoration", "none");
grddisplay.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
grddisplay.Style.Add("font-size", "8px");
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

エラーが発生します:-「gridview」タイプのコントロールは、runat=server のフォーム タグ内に配置する必要があります

また、多くの人が解決策を提供するため、このメソッドを使用しようとしました。グリッドビューのレンダリングの問題 public override void VerifyRenderingInServerForm(Control control) { //base.VerifyRenderingInServerForm(control); }

しかし、このメソッドは DNN 'MPPR.mpprcms_OrderRegistraton.ViewPurchaseOrder.VerifyRenderingInServerForm(System.Web.UI.Control)' でエラーを返します: オーバーライドする適切なメソッドが見つかりません

適切な解決策を教えてください

4

2 に答える 2

0

さまざまな形式へのエクスポートをサポートする Telerik グリッド用の DotNetNuke ラッパー コントロールを使用しようとしましたか。私はラッパーを使用しませんが、達成しようとしていることに役立つかもしれません。

ラッパーの使用方法に関するリンク

簡単すぎる - DNNGrid (別名 Telerik RadGrid) の実装

エクスポート用の telerik radgrid コントロールに関するリンク。

Telerik RadGrid - PDF へのエクスポート

于 2013-03-15T05:40:08.487 に答える
0
public override void VerifyRenderingInServerForm(Control control)

{
    /* Verifies that the control is rendered */ 
}

protected void GeneratePDF_Click(object sender, EventArgs e) {

    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    GridView1.AllowPaging = false;
    GridView1.DataBind();
    GridView1.RenderControl(hw);
    GridView1.HeaderRow.Style.Add("width", "15%");
    GridView1.HeaderRow.Style.Add("font-size", "10px");
    GridView1.Style.Add("text-decoration", "none");
    GridView1.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
    GridView1.Style.Add("font-size", "8px");
    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();     
}
于 2015-04-21T08:10:16.503 に答える