I have a button which when clicks sends exam_id to server. The method queries results of all the students who has appeared in this exam (No. of student > 30). I want to now print this data at client side. I am confused how do I achieve this? I dont want to display this data at client side… instead, I just want to show a progress bar that printing in progress and once I get all the data from server, I need to print it.
You don't tell the client to "print" something, you may write
javascript code to print the current page, but you can not print
something without sending it to the client (and asking the browser to
print it).
What you may do is try to hide the content in the page until a "print"
button is clicked, but the data has to be visible somewhere on the
page to be printed.
The javascript code to tell the browser to print is "window.print()".
Maybe what you could do is to generate the data to be printed in a
document that the user could download, then you send a page with a
button to download it as a file that then they could print, but I
guess this defeats the purpose of 'automating' the printing of the
data.
Here is what I did - something similar to what Mauricio said. I made a link_to_remote and when user clicks on it, it updates a div (display:none) with the data from the server. Using :complete attribute of link_to_remote, I call a javascript function which then creates a window taking data from the hidden div and then print the window via window.print() command.
It is working fine and giving me exactly what I wanted. Thanks for your help.