2011-08-04 8 views
1

コード1:選択したgridview deatailsをpdfに変換する方法は?エラーが発生しましたか?

private void GetPaymentReport() 
     { 
      try 
      { 
       string todate = txttodate.Text; 
       string[] todatesplt = todate.Split('-'); 
       int todatemnth = Convert.ToInt32(todatesplt[0]); 
       int todatedate = Convert.ToInt32(todatesplt[1]); 
       int todateyr = Convert.ToInt32(todatesplt[2]); 

       string fromdate = txtfromdate.Text; 
       string[] frmdatesplt = fromdate.Split('-'); 
       int frmdatemnth = Convert.ToInt32(frmdatesplt[0]); 
       int frmdatedate = Convert.ToInt32(frmdatesplt[1]); 
       int frmdateyr = Convert.ToInt32(frmdatesplt[2]); 
       DateTime start = new DateTime(frmdateyr, frmdatemnth, frmdatedate); 
       DateTime end = new DateTime(todateyr, todatemnth, todatedate); 
       int loanpaymentid = Convert.ToInt32(Session["Loanid"].ToString()); 
       var query = from p in mortgageentity.Payments 
          join D in mortgageentity.Debit_Method on p.Debit_Method_ID equals D.Debit_Method_ID 
          join pt in mortgageentity.Payment_Type on p.Payment_Type_ID equals pt.Payment_Type_ID 
          where (p.Client_Pmt_Date >= start) && (p.Client_Pmt_Date <= end) && (p.Loan_ID == loanpaymentid)orderby p.Client_Pmt_Date descending 
          select new 
          { 
           p.Pmt_ID, 
           p.Loan_ID, 
           p.Client_Pmt_Date, 
           p.MtgSvr_Pmt_Start_Date2, 
           D.Debit_Method_Desc, 
           p.Total_Debit_Amt, 
           p.CreditAmt, 
           p.LenderAmt, 
           pt.Payment_Type_Desc, 
           p.Return_Code, 
           p.Returned_Date 
          }; 
       grdviewPayments.DataSource = query.ToList(); 
       grdviewPayments.DataBind(); 
      } 
      catch { } 

     } 

コード2:

protected void btnemail_Click(object sender, EventArgs e) 
     { 
    Response.ContentType = "application/pdf"; 
      Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf"); 
      Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter hw = new HtmlTextWriter(sw); 
      grdviewPayments.AllowPaging = false; 
      grdviewPayments.DataBind(); 
      grdviewPayments.RenderControl(hw); 
      StringReader sr = new StringReader(sw.ToString()); 
      Document pdfDoc = new Document(PageSize.A4,10f,10f,10f,0f); 
      HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
      PdfWriter.GetInstance(pdfDoc,Response.OutputStream); 
      pdfDoc.Open(); 
      htmlparser.Parse(sr); 
      pdfDoc.Close(); 
      Response.Write(pdfDoc); 
      Response.End(); 

     } 

私はGridViewのfromatでデータベースからデータを取得するCODE1持っており、私のprolem format.but PDFにGridViewのデータをCONVERするCODE2上記のように"Control 'のようなエラーが発生しています。' GridView 'タイプのctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_Paymentreport_grdviewPaymentsは、runat = serverのフォームタグ内に配置する必要があります。コード2の位置で:grdviewPayments.RenderControl(hw);

私を助けてください。 はお待ちしております。

+0

あなたが.aspxのからグリッドマークアップをコピーできますか? – SuneelK

+0

はい、私はそれを行うことができます。 – tiru

+0

http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.htmlブログを確認するようおすすめします。コードをダウンロードして、GridViewExportUtilクラスを見てください。 – SuneelK

答えて

0

多分StringBuilderも組み込む必要がありますか?

StringBuilder sb = new StringBuilder(); 
StringWriter tw = new StringWriter(sb); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
grdviewPayments.RenderControl(hw); 
StringReader sr = new StringReader(hw.ToString()); 

私はので、私はこのページに読んだの推測:
http://blogs.x2line.com/al/articles/859.aspx

+0

あなたのお返事ありがとうございますこれは私にとってより有用でした。 – tiru

関連する問題