Here I have created sample that full fills your requirement. In this i have just put the DataList in Panel and then printed that panel.
HTML
<div>
<script type="text/javascript">
function GridData() {
var panel = document.getElementById("<%=pnlContents.ClientID %>");
panel.border = 0;
var prtwin = window.open('', 'PrintGridViewData', 'left=100,top=100,width=1000,height=1000,tollbar=0,scrollbars=1,status=0,resizable=1');
prtwin.document.write(panel.outerHTML);
prtwin.document.close();
prtwin.focus();
prtwin.print();
prtwin.close();
return false;
}
</script>
<asp:Panel ID="pnlContents" runat="server">
<asp:DataList ID="dlData" runat="server" RepeatColumns="4" CellPadding="4" OnItemDataBound="dlData_ItemDataBound">
<ItemTemplate>
<table cellpadding="2" cellspacing="0" border="1" style="width: 20px; height: 33px;
background-color: White" id="Tabl">
<tr align="center">
<td align="center">
<b>Bramandam<u><span> </span></u></b>
</td>
</tr>
<tr align="center">
<td align="center">
<asp:Label ID="secionname" runat="server" Text='<%#Eval("sectionname") %>'></asp:Label>
</td>
</tr>
<tr align="center">
<td align="center">
<asp:Label ID="lotno" runat="server" Text='<%#Eval("lotno") %>' Visible="false"></asp:Label><asp:PlaceHolder
ID="plBarCode" runat="server" />
</td>
</tr>
<tr align="center">
<td align="center">
<asp:Label ID="lonoo" runat="server" Text='<%#Eval("lotno") %>' Visible="false"></asp:Label>
</td>
</tr>
<tr align="center">
<td align="center">
<asp:Label ID="rate" runat="server" Text='<%#Eval("rate") %>'></asp:Label>
</td>
</tr>
</td>
</table>
</ItemTemplate>
</asp:DataList>
</asp:Panel>
<asp:Button ID="Button1" runat="server" Text="Print" OnClientClick="return GridData()" />
</div>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)),
new DataColumn("sectionname", typeof(string)),
new DataColumn("rate",typeof(decimal)),
new DataColumn("lotno",typeof(int))});
dt.Rows.Add(1, "Plastic", 25.00, 123);
dt.Rows.Add(2, "Elastic", 30.00, 126);
dt.Rows.Add(3, "Plastic", 50.00, 130);
dt.Rows.Add(4, "Elastic", 60.00, 150);
dt.Rows.Add(5, "Elastic", 40.00, 160);
dt.Rows.Add(6, "Plastic", 100.00, 170);
dt.Rows.Add(7, "Elastic", 120.00, 180);
dt.Rows.Add(8, "Plastic", 130.00, 190);
// string qre = "select sectionname,rate,lotno from purchasedummy";
dlData.DataSource = dt;
dlData.DataBind();
}
}
protected void dlData_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string barCode = (e.Item.FindControl("lotno") as Label).Text;
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
using (Bitmap bitMap = new Bitmap(barCode.Length * 40, 80))
{
using (Graphics graphics = Graphics.FromImage(bitMap))
{
Font oFont = new Font("Elfring Bar Code 39 d Hb", 28);
PointF point = new PointF(2f, 2f);
SolidBrush blackBrush = new SolidBrush(Color.Black);
SolidBrush whiteBrush = new SolidBrush(Color.White);
graphics.FillRectangle(whiteBrush, 0, 0, bitMap.Width, bitMap.Height);
graphics.DrawString("*" + barCode + "*", oFont, blackBrush, point);
}
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
Convert.ToBase64String(byteImage);
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
(e.Item.FindControl("plBarCode") as PlaceHolder).Controls.Add(imgBarCode);
}
}
}
Screenshot

I hope this will help you out.