جستجو و نمایش اطلاعات در GridView و تبدیل خروجی به فایل PDF در ASP.NET

در این پست خواهیم دید که در ASP.Net چگونه داده ها را از یک بانک اطلاعاتی جستجو کرده و آن را در GridView نمایش دهیم و چگونه آن GridView را به فرمت PDF تبدیل کنیم.

جستجو و نمایش اطلاعات در GridView و تبدیل خروجی به فایل PDF  در ASP.NET

برای شروع کار، ابتدا بانک اطلاعاتی را ایجاد می کنیم.

در این جدول ما پنج ستون داریم. حالا باید درون جدول داده وارد کنیم.

VS را باز کنید و یک پروژه ASP.Net Empty Web Aplication ایجاد کنید.

پس از ایجاد پروژه، روی نام آن راست کلیک کرده و یک web form به برنامه اضافه کنید.

کد HTML

<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title></title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
    <table>  
    <tr>  
    <td>   
       Search  
        </td>  
        <td>  
        <asp:TextBox ID="textinput" runat="server"></asp:TextBox>  
        </td>  
        <td>   
        <asp:Button ID="Button1" runat="server" Text="Go" onclick="Button1_Click" />  
        </td>  
          
        </tr>  
   
</table>  
<table><tr><td><p><asp:Label ID="Label2" runat="server"></asp:Label>  </p></td></tr>  
  
</table>  
  
    </div>  
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>  
        <p>  
             </p>  
        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Export in PDF" />  
    </form>  
</body>  
</html>  

 

خروجی کدهای بالا به صورت زیر خواهد شد.

 

کدهای webform1.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

 using System.IO;


namespace SearchExort
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        SqlConnection cons=new SqlConnection("Data Source=.;Initial Catalog=Employees;User ID=sa;Password=123");  
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public  DataSet Bind()  
        {  
  
            SqlCommand cmd = new SqlCommand("select * from Employe where Empname like N'%" + textinput.Text + "%'", cons);  
            SqlDataAdapter da = new SqlDataAdapter(cmd);  
            DataSet ds = new DataSet();  
            da.Fill(ds);  
            if (!object.Equals(ds, null))  
            {  
                if (ds.Tables[0].Rows.Count>0)  
                {  
                    GridView1.DataSource = ds.Tables[0];  
                    GridView1.DataBind();  
                }  
  
            }  
  
              
            return ds;  
        }  
  
        protected void Button1_Click(object sender, EventArgs e)  
  
        {  
            
             DataSet ds=  Bind();  
  
             if (!object.Equals(ds, null))  
             {  
                 if (ds.Tables[0].Rows.Count>0)  
                 {  
                     GridView1.Visible = true;  
                     textinput.Text = " ";  
                     Label2.Text = " ";  
                 }  
  
  
                 else  
                 {  
                     GridView1.Visible = false;  
                     Label2.Visible = true;  
                     Label2.Text = "متن موردنظر یافت نشد";  
  
                 }  
             }  
        }

اکنون برنامه را اجرا کنید. برنامه مانند تصویر زیر خواهد بود:

کاراکترهایی رادر TextBox وارد کنید که با داده های درون جدول مطابقت نداشته باشد. دراینصورت پیغام در صفحه نمایش داده می شود.

اگر هیچ کاراکتری هم در Textox وارد نکنید نیز، همین پیغام نمایش داده خواهد شد.

اکنون درون TextBox یک نام معین وارد کرده و روی دکمه "جستجو" کلیک کنید تا رکوردهای جدول جستجو شوند.

اگر نام درون جدول وجود داشته باشد، داده ها درون GridView نمایش داده می شوند. مانند تصویر زیر:

 

 

حالا می خواهیم داده های درون GridView را به PDF تبدیل کنیم. برای اینکار نیاز داریم که iTextsharp را نصب کنیم. بنابراین، دستور زیر را در کنسول Package Manager اجرا کنید.

pm> Install-Package iTextSharp

 

در صفحه code behind فضای نام های (namespace) زیر را اضافه کنید.

using iTextSharp.text;  
using iTextSharp.text.pdf;  
using iTextSharp.text.html.simpleparser;

روی Button2 دابل کلیک کرده و کدهای زیر را برای رویداد آن اضافه کنید.

protected void Button2_Click(object sender, EventArgs e)    
{    
    GetPdf();    
        
        
}    
  
public void GetPdf()    
{    
  
    Response.ContentType = "application/DOC";    
    Response.AddHeader("content-disposition", "attachment;filename=AtulRawat.pdf");    
    Response.Cache.SetCacheability(HttpCacheability.NoCache);    
    StringWriter s_w = new StringWriter();    
    HtmlTextWriter h_w = new HtmlTextWriter(s_w);    
  
    GridView1.RenderControl(h_w);    
    StringReader sr = new StringReader(s_w.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();    
    GridView1.AllowPaging = true;    
    GridView1.DataBind();    
  
    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");    
  
    
}    
public override void VerifyRenderingInServerForm(Control control)    
{    
    /* Verifies that the control is rendered */    
}   

یکبار دیگر برنامه را اجرا کرده و جستجو را انجام دهید.

اگر روی دکمه "تبدیل به pdf" کلیک کنید، فایل pdf نتیجه جستجو، ایجاد خواهد شد.

          

 

جدول زیر در فایل pdf ایجاد شده است.

فایل های ضمیمه