Here I have created sample that will help you out.
HTML
<div>
<div id="dvGrid" runat="server">
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="30" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
</Columns>
</asp:GridView>
</div>
<div>
Welcome to AspSnippets.
</div>
<table id="tbl1" runat="server">
<tr>
<td>
Sale No :
<asp:Label Text="1" runat="server" />
</td>
</tr>
<tr>
<td>
Date:
<asp:Label Text="23/09/2015" runat="server" />
</td>
</tr>
</table>
<br />
<asp:Button Text="Print" runat="server" OnClick="Print" />
</div>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
GridView1.DataSource = GetData();
GridView1.DataBind();
}
}
protected void Print(object sender, EventArgs e)
{
HtmlTable tbl = new HtmlTable();
StringWriter sw1 = new StringWriter();
HtmlTextWriter hw1 = new HtmlTextWriter(sw1);
HtmlTableCell td2 = new HtmlTableCell();
HtmlTableRow tr2 = new HtmlTableRow();
tbl1.RenderControl(hw1);
string tbHTML = sw1.ToString().Replace("\"", "'").Replace(System.Environment.NewLine, "");
td2.InnerHtml = tbHTML;
tr2.Cells.Add(td2);
DataTable dt = GetData();
dt.Columns.RemoveAt(0);
GridView1.HeaderRow.Cells[0].Visible = false;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
GridViewRow row = GridView1.Rows[i];
row.Cells[0].Visible = false;
}
StringWriter sw2 = new StringWriter();
HtmlTextWriter hw2 = new HtmlTextWriter(sw2);
GridView1.RenderControl(hw2);
string gridHTML = sw2.ToString().Replace("\"", "'").Replace(System.Environment.NewLine, "");
HtmlTableRow tr1 = new HtmlTableRow();
HtmlTableCell td1 = new HtmlTableCell();
td1.InnerHtml = gridHTML;
tr1.Cells.Add(td1);
tbl.Rows.Add(tr1);
tbl.Rows.Add(tr2);
StringWriter sw3 = new StringWriter();
HtmlTextWriter hw3 = new HtmlTextWriter(sw3);
tbl.RenderControl(hw3);
string tblHTML = sw3.ToString().Replace("\"", "'").Replace(System.Environment.NewLine, "");
StringBuilder sb = new StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("window.onload = new function(){");
sb.Append("var printWin = window.open('', '', 'left=0");
sb.Append(",top=0,width=1000,height=600,status=0');");
sb.Append("printWin.document.write(\"");
sb.Append(tblHTML);
sb.Append("\");");
sb.Append("printWin.document.close();");
sb.Append("printWin.focus();");
sb.Append("printWin.print();");
sb.Append("printWin.close();};");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());
GridView1.DataSource = GetData();
GridView1.DataBind();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
return dt;
}
Screenshot
1)

2)
