In this article i am explaining you how to display report using aspx page.Exporting Gridview to excel and PDF report is one of the most common requirement in real world.So i have written this code,you can customize ConvertDataInPdf method according to your requirement.
aspx code.
<asp:GridView ID="GridView1" runat="server" EnableTheming="False" OnRowDataBound="GridView1_RowDataBound"
Width="100%">
 <HeaderStyle CssClass="ReportHeader" Width="80px" /
 <RowStyle CssClass="ReportText" />
 <PagerStyle CssClass="ReportHeader" />
 <AlternatingRowStyle CssClass="ReportText" />
 <EmptyDataRowStyle CssClass="ReportText" />
 <EmptyDataTemplate>
     <span style="font-size: 11pt; color: #ff0033"><strong>No Records ........!!</strong></span>
 </EmptyDataTemplate>
<Columns>
    <asp:BoundField HeaderText="Sr. No." />
</Columns>
</asp:GridView>
  
  .cs code
string conStr = FetchConnection.FetchConnectionString().ToString();
void GridViewEmp()
{
 DataSet Ds = new DataSet();
 SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
 string str = "SELECT * from EmployeeTbl"
 Ds = SqlHelper.ExecuteDataset(conStr, CommandType.Text, str);
 GridView1.DataSource = Ds;
 GridView1.DataBind();
}  
protected void lbExportInExcel_Click1(object sender, ImageClickEventArgs e)
    {      
 string attachment = "attachment; filename=" + "Emp Report" + ".xls";
 Response.Clear();
 HttpContext.Current.Response.AddHeader("content-disposition", attachment);
 Response.Charset = "";
 Response.ContentType = "application/vnd.xls";
 System.IO.StringWriter stringWrite = new System.IO.StringWriter();
 System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
 reportName.RenderControl(htmlWrite);       
 rowInfo.RenderControl(htmlWrite);
 rowGridView.RenderControl(htmlWrite);       
 Response.Write(stringWrite.ToString());
 Response.End();     
}
protected void btnPdf_Click(object sender, ImageClickEventArgs e)
{
 PrintAndExport exportDataInPdf = new PrintAndExport();
 string reportName = "Employee Loan Report" + " ( " +lbl.Text+ " ) ";
 string OtherInfo = "Company Name: " + ddlCompany.SelectedItem.Text + "\t\t\t" + "Emp Status: " + ddlStatus.SelectedItem.Text;        
 DataTable dt = ExportData();
 exportDataInPdf.ConvertDataInPdf(dt, reportName, OtherInfo);
}  
public void ConvertDataInPdf(DataTable dtExportInPdf, string reportName, string OtherInfo)
{
    try
    {
 float CompanyNameSize = 11;
 float ReportNameSize = 9;
 float HeaderTextSize = 7;
 float ReportTextSize = 6;
 int totalWidth = 0;
 int tableWidthPercent = 100;
 int[] widths = new int[dtExportInPdf.Columns.Count];
 for (int h = 0; h < dtExportInPdf.Columns.Count; h++)   //Data table header column width
 {
     string strWidth = dtExportInPdf.Columns[h].ToString();
     widths[h] = strWidth.Length;
 }
 foreach (DataRow dr in dtExportInPdf.Rows) //Data table column width
 {
     int[] colItemWidth = new int[dtExportInPdf.Columns.Count];
     for (int i = 0; i < dtExportInPdf.Columns.Count; i++) //Data table max item width
     {
  if (dr[i].ToString().Length > 20)
  {
      colItemWidth[i] = 20;
  }
  else if (dr[i].ToString().Length < 3)
  {
      colItemWidth[i] = 3;
  }
  else
  {
      colItemWidth[i] = dr[i].ToString().Length;
  }
  if (colItemWidth[i] > widths[i])
  {
      widths[i] = colItemWidth[i];
  }
     }
 }
 for (int h = 0; h < dtExportInPdf.Columns.Count; h++)
 {
     totalWidth += widths[h];
 }
 Document pdfDoc = null;
 if (totalWidth > 0 && totalWidth <= 110)
 {
     pdfDoc = new Document(PageSize.A4, 20, 20, 20, 20);
 }
 else if (totalWidth > 110 && totalWidth <= 160)
 {
     pdfDoc = new Document(PageSize.A4.Rotate(), 20, 20, 20, 20);
 }
 else if (totalWidth > 160 && totalWidth <= 250)
 {
     HeaderTextSize = 6;
     ReportTextSize = 5;
     pdfDoc = new Document(PageSize.LEGAL.Rotate(), 20, 20, 20, 20);
 }
 else if (totalWidth > 250 && totalWidth <= 300)
 {
     CompanyNameSize = 9;
     ReportNameSize = 7;
     HeaderTextSize = 6;
     ReportTextSize = 5;
     pdfDoc = new Document(PageSize.B1, 20, 20, 20, 20);
 }
 else if (totalWidth > 300)
 {
     CompanyNameSize = 9;
     ReportNameSize = 7;
     HeaderTextSize = 6;
     ReportTextSize = 5;
     pdfDoc = new Document(PageSize.B1.Rotate(), 20, 20, 20, 20);
 }
 // Creates a PdfPTable with column count of the table equal to no of columns of the datatable or gridview or gridview datasource.
 PdfPTable pdfTable = new PdfPTable(dtExportInPdf.Columns.Count);
 pdfTable.WidthPercentage = tableWidthPercent;
 pdfTable.HeaderRows = 4; // Sets the first 4 rows of the table as the header rows which will be repeated in all the pages.
 #region PDFHeader
 PdfPTable headerTable = new PdfPTable(3); // Creates a PdfPTable with 3 columns to hold the header in the exported PDF.
 byte[] logo = (byte[])System.Web.HttpContext.Current.Session["Logo"];
 iTextSharp.text.Image imgLogo = iTextSharp.text.Image.GetInstance(logo);
 imgLogo.ScaleToFit(80f, 40f);//Resize image depend upon your need  
 imgLogo.SpacingBefore = 0f;//Give space before image            
 imgLogo.SpacingAfter = 1f;//Give some space after the image             
 PdfPCell clLogo = new PdfPCell(imgLogo);// Creates a PdfPCell which accepts a phrase as a parameter.
 clLogo.Border = PdfPCell.NO_BORDER;// Sets the border of the cell to zero.
 clLogo.HorizontalAlignment = Element.ALIGN_LEFT;// Sets the Horizontal Alignment of the PdfPCell to left.
 clLogo.VerticalAlignment = Element.ALIGN_MIDDLE;
 // Creates a phrase to hold the application name at the left hand side of the header.
 Phrase phApplicationName = new Phrase("" + System.Web.HttpContext.Current.Session["CompanyName"] + "", FontFactory.GetFont("Arial", CompanyNameSize, iTextSharp.text.Font.NORMAL));
 PdfPCell clApplicationName = new PdfPCell(phApplicationName);// Creates a PdfPCell which accepts a phrase as a parameter.
 clApplicationName.Border = PdfPCell.NO_BORDER;// Sets the border of the cell to zero.
 clApplicationName.HorizontalAlignment = Element.ALIGN_CENTER;// Sets the Horizontal Alignment of the PdfPCell to left.
 clApplicationName.VerticalAlignment = Element.ALIGN_MIDDLE;
 // Creates a phrase to show the current date at the right hand side of the header.
 Phrase phDate = new Phrase(DateTime.Now.Date.ToString("dd/MM/yyyy"), FontFactory.GetFont("Arial", 7, iTextSharp.text.Font.NORMAL));
 PdfPCell clDate = new PdfPCell(phDate);// Creates a PdfPCell which accepts the date phrase as a parameter.
 clDate.HorizontalAlignment = Element.ALIGN_RIGHT;// Sets the Horizontal Alignment of the PdfPCell to right.
 clDate.Border = PdfPCell.NO_BORDER;// Sets the border of the cell to zero.
 clDate.VerticalAlignment = Element.ALIGN_MIDDLE;
 headerTable.AddCell(clLogo);
 headerTable.AddCell(clApplicationName);// Adds the cell which holds the application name to the headerTable.
 headerTable.AddCell(clDate);// Adds the cell which holds the date to the headerTable.
 headerTable.DefaultCell.Border = PdfPCell.NO_BORDER;// Sets the border of the headerTable to zero.  
 // Creates a PdfPCell that accepts the headerTable as a parameter and then adds that cell to the main PdfPTable.
 PdfPCell cellHeader = new PdfPCell(headerTable);
 cellHeader.VerticalAlignment = Element.ALIGN_TOP;
 cellHeader.Border = PdfPCell.NO_BORDER;
 cellHeader.Colspan = dtExportInPdf.Columns.Count;// Sets the column span of the header cell to noOfColumns.
 pdfTable.AddCell(cellHeader);// Adds the above header cell to the table.
 #endregion PDFHeader
 //Creates a phrase for a new line.
 Phrase phSpace1 = new Phrase("\n");
 PdfPCell clSpace1 = new PdfPCell(phSpace1);
 clSpace1.Border = PdfPCell.BOTTOM_BORDER;
 clSpace1.BorderWidth = 1;
 clSpace1.BorderColor = iTextSharp.text.Color.DARK_GRAY;
 clSpace1.Colspan = dtExportInPdf.Columns.Count;
 pdfTable.AddCell(clSpace1);
 // Creates a phrase to hold the report name.
 Phrase phHeader = new Phrase("" + reportName + "", FontFactory.GetFont("Arial", ReportNameSize, iTextSharp.text.Font.NORMAL));
 PdfPCell clHeader = new PdfPCell(phHeader);
 clHeader.Colspan = dtExportInPdf.Columns.Count;
 clHeader.Border = PdfPCell.NO_BORDER;
 clHeader.HorizontalAlignment = Element.ALIGN_CENTER;
 clHeader.VerticalAlignment = Element.ALIGN_MIDDLE;
 clHeader.PaddingTop = 5;
 clHeader.PaddingBottom = 2;
 pdfTable.AddCell(clHeader);
 //Create Phrage to hold other informations
 Phrase phOtherInfo = new Phrase(OtherInfo, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL));
 PdfPCell cellOtherInfo = new PdfPCell(phOtherInfo);
 cellOtherInfo.Colspan = dtExportInPdf.Columns.Count;
 cellOtherInfo.Border = Element.ALIGN_LEFT;
 cellOtherInfo.PaddingBottom = 10;
 pdfTable.AddCell(cellOtherInfo);
 PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
 string strFooter = "Copyright © 2010 By Cnergee. Page:";
 Phrase phCopyright = new Phrase(strFooter, FontFactory.GetFont(FontFactory.TIMES_ROMAN, 8, iTextSharp.text.Font.NORMAL));
 Phrase phPageNo = new Phrase("", FontFactory.GetFont(FontFactory.TIMES_ROMAN, 8, iTextSharp.text.Font.NORMAL));
 HeaderFooter footer = new HeaderFooter(phCopyright, phPageNo);
 //footer.Alignment = Element.ALIGN_LEFT;
 footer.Alignment = Element.ALIGN_RIGHT;
 footer.Border = iTextSharp.text.Rectangle.TOP_BORDER;
 footer.GrayFill = 10;
 pdfDoc.Footer = footer;
 pdfDoc.Open();
 Font font8 = FontFactory.GetFont("ARIAL Narrow", 7);
 if (dtExportInPdf != null)
 {
     pdfDoc.Header = null;
     //Create header for pdf table
     string cloName = null;
     Phrase ph = null;
     for (int i = 0; i < dtExportInPdf.Columns.Count; i++)
     {
  cloName = dtExportInPdf.Columns[i].ColumnName;
  if (dtExportInPdf.Columns.Count > 0)
  {
      ph = new Phrase(cloName, FontFactory.GetFont("Arial", HeaderTextSize, iTextSharp.text.Font.BOLD));
  }
  else
  {
      ph = new Phrase(cloName, FontFactory.GetFont("Arial", HeaderTextSize, iTextSharp.text.Font.BOLD));
  }
  pdfTable.AddCell(ph);
     }
     //Add data into the pdf table               
     for (int rows = 0; rows < dtExportInPdf.Rows.Count; rows++)
     {
  ph = null;
  PdfPCell pCell = null;
  for (int column = 0; column < dtExportInPdf.Columns.Count; column++)
  {
      ph = new Phrase(dtExportInPdf.Rows[rows][column].ToString(), FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL));
      pCell = new PdfPCell(ph);
      if (dtExportInPdf.Columns[column].ColumnName == "SrNo" || dtExportInPdf.Columns[column].ColumnName == "Sr.No." || dtExportInPdf.Columns[column].ColumnName == "Sr. No." || dtExportInPdf.Columns[column].ColumnName == "Code" || dtExportInPdf.Columns[column].ColumnName == "EmpCode" || dtExportInPdf.Columns[column].ColumnName == "EmployeeCode")
      {
   pCell.HorizontalAlignment = Element.ALIGN_CENTER;
      }
      else if (dtExportInPdf.Columns[column].ColumnName == "Amount")
      {
   pCell.HorizontalAlignment = Element.ALIGN_RIGHT;
      }
      else if (dtExportInPdf.Columns[column].ColumnName == "Date" || dtExportInPdf.Columns[column].ColumnName == "From" || dtExportInPdf.Columns[column].ColumnName == "To")
      {
   pCell.HorizontalAlignment = Element.ALIGN_CENTER;
      }
      else
      {
   pCell.HorizontalAlignment = Element.ALIGN_LEFT;
      }
      pdfTable.AddCell(pCell);
  }
  pdfTable.SetWidths(widths);
     }
     pdfTable.SpacingBefore = 15f; // Give some space after the text or it may overlap the table   
     pdfDoc.Add(pdfTable); // add pdf table to the document                 
 }
 pdfDoc.Close();
 string pdfFileName = reportName;
 reportName = reportName.Replace(" ", "");
 System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
 System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename= " + pdfFileName + ".pdf");
 System.Web.HttpContext.Current.Response.Write(pdfDoc);
 System.Web.HttpContext.Current.Response.Flush();
 System.Web.HttpContext.Current.Response.End();
    }
    catch (DocumentException de)
    {
 System.Web.HttpContext.Current.Response.Write(de.Message);
    }
    catch (IOException ioEx)
    {
 System.Web.HttpContext.Current.Response.Write(ioEx.Message);
    }
    catch (Exception ex)
    {
 System.Web.HttpContext.Current.Response.Write(ex.Message);
    }
}
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for the
//specified ASP.NET server control at run time.
}
Thanks & Regards
Santosh