How to print a scrollview gridview?

I am doing a gridview that uses scrolling as the column is larger than the page width of my webpage. The problem is that when I want to print it, it prints only the specified data. How can I print everything in a div or panel?

MY GRID CODE:

<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 from the Internet, and this:

 <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 grid view is in a div with the middle of the id content.

thanks

+4
source share
3 answers

You can enable another GridView on the page, which will be used only for printing. A.

The switching method that is shown is to decorate two CSS classes if necessary.

For instance:

 <style> @media print { .PrintOnly { display:block; } .ScreenOnly { display:none; } } @media screen { .PrintOnly { display:none; } .ScreenOnly { display:block; } } </style> 
+3
source

There are several ways to do this. Probably the most user-friendly way is to use css to set various styles for display and printing using the @media directive. Instead of setting the height and width properties of the dridPanel, use css to set the height and width to 500 and 980 when the media is a β€œscreen,” and just set the width to 100% when printing media. (Let hdieght just be, and it should show everything)

More information on the @media css directive can be found here: http://www.w3schools.com/CSS/css_mediatypes.asp

There's a good article on using css to make your pages printable here: http://www.envisionic.com/webtips/user_experience/printer_friendly.php

+1
source

Well - it is possible, but I would really dissuade you from this. Use Crystal Reports or something else. There are even a couple of open source reports that use RDL.

What you can do in 30 minutes at Crystal takes a lot more time. I did obscene research to find out if this is possible. There is an article on MSDN that works.

http://msdn.microsoft.com/en-us/library/aa479018.aspx

It launches and defines an alternative to system.web.ui.page, and I must admit that it does a very good job. I had to do a little tweaking because users need a page line counter.

Again, I can testify that it works - paging, column headers, control breaks can contain full columns. If you want to control your fields, consider the javascript MEADCO library (I think). In addition, it includes logic, so that the user can view the pages, but I could not get it to work. But considering that I only have 3 months of ASP experience - perhaps an easy solution.

Welcome to the VS VS DLL solution. Let me know if I can help.

0
source

Source: https://habr.com/ru/post/1402300/


All Articles