Advertisement
export gridview data to
send mail as pdf with attachment in asp.net
In this article I will
explain export gridview to send mail as pdf with attachment in
asp.net
I created a table in Sql
server as shown
USE
[chinnu]
GO
/******
Object: Table [dbo].[EmployeeInfo] Script Date: 10/29/2013
02:35:17 ******/
SET
ANSI_NULLS
ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
CREATE
TABLE
[dbo].[EmployeeInfo](
[EmpId]
[nvarchar](50)
NOT
NULL,
[EmpName]
[nvarchar](50)
NOT
NULL,
[EmpAddress]
[nvarchar](50)
NOT
NULL,
[EmpDesignation]
[nvarchar](50)
NOT
NULL
)
ON
[PRIMARY]
GO
I
Created a Empty solution with name GridViewMail and For that solution
I am creating a webform MailData.aspx
I
am designing the UI in MailData.aspx
<%@
Page
Language="C#"
AutoEventWireup="true"
CodeBehind="MailData.aspx.cs"
Inherits="GridViewMail.MailData"
%>
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head
runat="server">
<title></title>
</head>
<body>
<form
id="form1"
runat="server">
<div>
<asp:GridView
ID="gridview"
runat="server"
AutoGenerateColumns="False"
>
<Columns>
<asp:BoundField
DataField="EmpId"
HeaderText="EmployeeId"
InsertVisible="False"
/>
<asp:BoundField
DataField="EmpName"
HeaderText="EmployeeName"
InsertVisible="False"
/>
<asp:BoundField
DataField="EmpAddress"
HeaderText="EmployeeAddress"
/>
<asp:BoundField
DataField="EmpDesignation"
HeaderText="EmployeeDesignation"
/>
</Columns>
</asp:GridView>
<asp:ImageButton
runat
=
"server"
ImageUrl
="~/pdfmail.gif"
ToolTip
=
"Click
Here to Send Mail with PDF Format"
Width
=
"70"
Height
=
"55"
onclick="Emailbtn"
/>
</div>
</form>
</body>
</html>
Now
I am writing the logic for sending mail with pdf format with gridview
data.
In
References we have to add itextsharp DLL
In
MailData.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.SqlClient;
using
System.Configuration;
using
System.Data;
using
System.Net.Mail;
using
System.IO;
using
System.Text;
using
System.Web.UI.HtmlControls;
using
iTextSharp.text;
using
iTextSharp.text.html.simpleparser;
using
iTextSharp.text.pdf;
namespace
GridViewMail
{
public
partial
class
MailData
: System.Web.UI.Page
{
protected
void
Page_Load(object
sender, EventArgs
e)
{
if
(!IsPostBack)
{
BindGridData();
}
}
private
void
BindGridData()
{
try
{
using
(SqlConnection
con = new
SqlConnection(ConfigurationManager.ConnectionStrings["Connstring"].ConnectionString))
{
SqlCommand
command = new
SqlCommand("SELECT
* from EmployeeInfo",
con);
SqlDataAdapter
da = new
SqlDataAdapter(command);
DataTable
dt = new
DataTable();
da.Fill(dt);
gridview.DataSource
= dt;
gridview.DataBind();
}
}
catch
(Exception
ex)
{
}
}
protected
void
Emailbtn(object
sender, ImageClickEventArgs
e)
{
StringWriter
sw = new
StringWriter();
HtmlTextWriter
htw = new
HtmlTextWriter(sw);
gridview.RenderControl(htw);
StringReader
sr = new
StringReader(sw.ToString());
Document
pdfDoc = new
Document(PageSize.A4,
10f, 10f, 10f, 0f);
HTMLWorker
htmlparser = new
HTMLWorker(pdfDoc);
MemoryStream
ms = new
MemoryStream();
PdfWriter.GetInstance(pdfDoc,
ms);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
byte[]
bytes = ms.ToArray();
MailMessage
mailmess = new
MailMessage();
mailmess.From
= new
MailAddress("jlakshmitulasi@gmail.com");
mailmess.To.Add(new
MailAddress("jlakshmitulasi@gmail.com"));
mailmess.Subject
= "Employee
Information";
mailmess.Body
= "Please
find the attached pdf document ";
mailmess.Attachments.Add(new
Attachment(new
MemoryStream(bytes),"EmployeeInformation.PDF"));
mailmess.IsBodyHtml
= true;
SmtpClient
sc = new
SmtpClient();
sc.Host
= "smtp.gmail.com";
sc.Port
= 587;
sc.Credentials
= new
System.Net.NetworkCredential("username",
"password");
sc.EnableSsl
= true;
sc.Send(mailmess);
}
In
web.config I am adding the ConnectionString
<connectionStrings>
<add
name="Connstring"
connectionString="Data
Source=DotNetSharePoint;Database=Chinnu;User
Id=sa;Password=password123;"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
public
override
void
VerifyRenderingInServerForm(Control
control)
{
/*
Verifies that the control is rendered */
}
}
}
Now
Press F5,We can see Out Put:
Looking for reliable local garage door repairs services? Our local team specializes in prompt, efficient solutions to keep your garage door operating smoothly. From broken springs and faulty openers to off-track doors and panel replacements, we handle all types of repairs with precision. With years of experience, we guarantee quality workmanship and customer satisfaction.
ReplyDeleteWe use only top-grade parts to ensure lasting repairs and provide same-day service for emergencies. Whether residential or commercial, no job is too big or small. Contact us today for affordable and trustworthy garage door repairs. Your safety and convenience are our priority! Call now for a free quote or schedule a service appointment.