I need to print current row of gridview, in template field i had added print button to call javascript, but it print extra one line of with the same row values.
In grid view im using dropdownlist in another template field, while printing it prints with unselected dropdown value and repeates the selected row second time after the gridview.
<script type="text/javascript">
function Print(a) {
var row = $(a).closest("tr").clone(true);
var printWin = window.open('', '', 'left=0", ",top=0,width=1000,height=600,status=0');
var table = $("[id*=GridView12]").clone(true);
$("tr", table).not($("tr:first-child", table)).remove();
table.append(row);
$("tr td:last,tr th:last", table).remove();
var dv = $("<div />");
dv.append(table);
printWin.document.write(dv.html());
printWin.document.close();
printWin.focus();
printWin.print();
printWin.close();
}
</script>
<asp:GridView ID="GridView12" runat="server" CellPadding="4" EnableModelValidation="True" ForeColor="#333333"
GridLines="Both" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" DataSourceID="SqlDataSource2" Width="100%"
DataKeyNames="leave_id" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="leave_type" HeaderText="Leave Type" SortExpression="leave_type" ReadOnly="True" />
<asp:BoundField DataField="From_date" DataFormatString="{0:d}" HeaderText="From date" SortExpression="From_date" ReadOnly="True" />
<asp:BoundField DataField="From_session" HeaderText="Session" SortExpression="From_session" ReadOnly="True" />
<asp:BoundField DataField="To_date" DataFormatString="{0:d}" HeaderText="To date" SortExpression="To_date" ReadOnly="True" />
<asp:BoundField DataField="To_session" HeaderText="Session" SortExpression="To_session" ReadOnly="True" />
<asp:BoundField DataField="od_date" HeaderText="OD Date" SortExpression="od_date" ReadOnly="True" />
<asp:BoundField DataField="Reason" HeaderText="Reason" SortExpression="Reason" ReadOnly="True" />
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblstatus" runat="server" Text='<%# Eval("Status") %>' />
<%--<%# Eval("Status")%>--%>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblstatus" runat="server" Text='<%# Eval("Status") %>' Visible="false" />
<asp:DropDownList ID="ddl_status" runat="server" SelectedItem='<%# Eval("Status") %>'>
<%--<asp:ListItem Value="0">Submitted</asp:ListItem>--%>
<%--<asp:ListItem Value="1">Approved</asp:ListItem>
<asp:ListItem Value="2">Rejected</asp:ListItem>--%>
<asp:ListItem Value="3">Cancel</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Action"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<a href="javascript:;" onclick="Print(this)">Print</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>