[英]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.