I am making a gridview which uses scrolling as the column are a more than the page width of my webpage .
The issue is when i want to print it only prints the shown data. How can i print everything in a div or panel ?
MY CODE FOR GRIDVIEW:
<a href="#" onclick="printPartOfPage('content-middle')" >PRINT ME </a>
<asp:Panel ID="gridPanel" runat="server" Height="500px" Width="980px" ScrollBars="Auto">
<asp:GridView EnableSortingAndPagingCallbacks="true" Width="450px"
OnRowCreated="GridView1_RowCreated" runat="server" ID="GridView2"
CellPadding="4" ForeColor="#333333" GridLines="None"
>
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="updateAppointmentOperations.aspx?showID={0}" Text="Update "
Target="_blank" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
</asp:Panel>
And the javascript print i got of the internet and it is:
<script type="text/javascript">
function printPartOfPage(elementId) {
var printContent = document.getElementById(elementId);
var windowUrl = 'about:blank';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');
printWindow.document.write('<link rel="stylesheet" type="text/css" href="style/additional.css" /><link rel="stylesheet" type="text/css" href="style/default.css" /><link rel="stylesheet" type="text/css" href="style/hi-res.css" />' + printContent.innerHTML);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
The gridview is in a div with id content middle.
Thank you
You can include another GridView on the page, which will only be used for printing.
The way to toggle which one is shown is to decorate the two with CSS classes, as appropriate.
For example: