Grid with images and rendered content -> printview

Hey there,

I have following problem:
I have grid with a lot of entries so i decided to use smart rendering. I am using the printview function to be able to print the grid with its content. Everything works fine - sorting, grouping, etc.
My only problem is that images in every row of the grid are only printed, if they are rendered, so if they are in the visible area. The other images are not printed, instead their link is given to the printview.

Does anyone knows a solution for this problem?

Thank you so far :wink:

Only the rendered rows can be exported to the print View. You may render all your rows manually using render_row() method:

for (var i=0; i<grid.getRowsNum(); i++) grid.render_row(i); grid.printView();

Thank you for your answer, i will try this today and give response here.
The only funny thing is, that every not rendered entry is listed in the printView, only the images are replaced by its URL…

But maybe your solution works :wink:

I tried your solution but it did not help :frowning:
Here is my JavaScript code, maybe you find a bug or something else in it…

[code]function showPrintView(grid, HTMLBefore, HTMLAfter)
// get innerHTML (image) if the column type is image
return this.cell.innerHTML;

// if column type is combobox get current text of combobox 
	return this.getText();

// standard value for HTMLBefore and HTMLAfter
if(typeof(HTMLAfter) == 'undefined')
	HTMLAfter = "";
if(typeof(HTMLBefore) == 'undefined')
	HTMLBefore = "";

// hide the second header row if exists
HTMLBefore += '<style>table { font-size: 10px; } tr.header_row_2 { display: none; } tr.header_row_1 { font-weight: bold; font-size: 12px; }</style>';

// generate the print friendly view
for(var i = 0; i < grid.getRowsNum(); i++)
grid.printView(HTMLBefore, HTMLAfter);
return true;


Now I tried the manual rendering of the grid rows in another context and it works fine.
Thank you very much :smiley: