简体   繁体   English

VerifyRenderingInServerForm(System.Web.UI.Control) 同时将网格视图导出到 pdf

[英]VerifyRenderingInServerForm(System.Web.UI.Control) while export grid view to pdf

I have try to export data from gridview to pdf in normal.aspx it is working but when i try this in webusercontrl.ascx form it shownig error like我尝试在 normal.aspx 中将数据从 gridview 导出到 pdf 它正在工作,但是当我在 webusercontrl.ascx 中尝试此操作时,它显示错误,例如

    VerifyRenderingInServerForm(System.Web.UI.Control)': no suitable method found to override....

how can i export the data in webusercontrol.ascx please help me... Here is my code我如何导出 webusercontrol.ascx 中的数据请帮助我...这是我的代码

     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     using System.IO;
     using iTextSharp.text;
   using iTextSharp.text.html.simpleparser;
   using iTextSharp.text.pdf;

  namespace MortgageSaver
  {
      public partial class Paymentreportsviewcontrl : System.Web.UI.UserControl
       {
          MortgagesaverEntities mortgageentity = new MortgagesaverEntities();
          protected void Page_Load(object sender, EventArgs e)
          {
        if (!Page.IsPostBack)
        {
            if (Session["Username"] != null)
            {

                if (Session["Loanid"] != null)
                {
                    txtloanid.Text = Session["Loanid"].ToString();
                    grdviewPayments.Attributes.Add("bordercolor ", "#A4C2CE");
                   GetPaymentReport();
                }
            }
            else
            {
                Response.Redirect("AdminLogin.aspx");
            }



        }

    }
    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 { }

    }
   protected string Getammount(object MonthPayAmt)
    {
        if (MonthPayAmt != "")
        {
            return "$" + MonthPayAmt;
        }
        else
            return null;
    }
   protected void btnviewreport_Click(object sender, EventArgs e)
   {
       grdviewPayments.Attributes.Add("bordercolor ", "#A4C2CE");
       GetPaymentReport();

   }
   public override void VerifyRenderingInServerForm(grdviewPayments)
   {
       /* Verifies that the control is rendered */
   }
   protected void btnemail_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);
       grdviewPayments.AllowPaging = true;
       grdviewPayments.DataBind();
       grdviewPayments.RenderControl(hw);
       grdviewPayments.HeaderRow.Style.Add("width", "15%");
       grdviewPayments.HeaderRow.Style.Add("font-size", "10px");
       grdviewPayments.Style.Add("text-decoration", "none");
       grdviewPayments.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
       grdviewPayments.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();
  }


}

} }

If you are using ascx file, add this code to your page Default.aspx.cs.如果您使用的是 ascx 文件,请将此代码添加到您的页面 Default.aspx.cs。

example.ascx.cs page on that code does not work.该代码上的 example.ascx.cs 页面不起作用。

Just add this function to your code;只需将此 function 添加到您的代码中即可;

public override void VerifyRenderingInServerForm(Control control)
  {
    /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
       server control at run time. */
  }

Also make sure using System.Web.UI also added还要确保using System.Web.UI也添加

you just need to add the following code in.aspx.cs您只需在.aspx.cs 中添加以下代码

public override void VerifyRenderingInServerForm(Control control){
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET
   server control at run time. */}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么MailDefinition类需要System.Web.UI.Control? - Why does the MailDefinition class require a System.Web.UI.Control? 无法将类型&#39;System.Web.UI.Control&#39;隐式转换为&#39;System.Web.UI.UserControl - Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.UserControl 控件是Textboxes的System.Web.UI.Control和System.Windows.Forms.Control错误之间的模棱两可引用 - Control is an ambigious reference between System.Web.UI.Control and System.Windows.Forms.Control error for Textboxes 无法从“ System.Web.UI.ControlCollection”转换为“ System.Collections.Generic.IEnumerable” <System.Web.UI.Control> &#39; - cannot convert from 'System.Web.UI.ControlCollection' to 'System.Collections.Generic.IEnumerable<System.Web.UI.Control>' 通用 function 问题 - 无法将类型“System.Web.UI.Control”转换为“T” - Generic function issue - Cannot convert type 'System.Web.UI.Control' to 'T' 出现错误:“错误CS0117:“ System.Web.UI.Control”不包含“ ItemIndex”的定义 - Getting Error: "error CS0117: 'System.Web.UI.Control' does not contain a definition for 'ItemIndex' 在ASP.NET WebForms项目中可以找到“System.Web.UI.Control”命名空间? - Where in an ASP.NET WebForms project can “System.Web.UI.Control” namespace found? 使用Custom System.Web.UI.Control时如何使XHTML验证更快乐? - How to make XHTML validation happy when using Custom System.Web.UI.Control? 无法将源类型“ System.Web.UI.Control”转换为目标类型“ System.Web.UI.WebControls.TextBox” - Cannot convert source type 'System.Web.UI.Control' to target type 'System.Web.UI.WebControls.TextBox' C#—无法将类型&#39;System.Web.UI.Control&#39;隐式转换为&#39;System.Web.UI.WebControls.CheckBox&#39; - C# — Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.WebControls.CheckBox'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM