【发布时间】:2016-07-20 02:55:07
【问题描述】:
我正在尝试打印一个 gridview 。为此,我给了一个按钮,然后单击按钮,我调用 javascript 来打印网格。
function doPrint() {
var prtContent = document.getElementById('<%= grdHistoricalData.ClientID %>');
prtContent.border = 0; //set no border here
var WinPrint = window.open('', '', 'left=50,top=100,border=1px,width=1000,textAlign=center,height=1000,toolbar=0,scrollbars=1,status=0,resizable=1');
WinPrint.document.write(prtContent.outerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
此代码工作正常,但唯一的问题是gridview 数据的打印预览显示左对齐。通常,Girdview 数据显示居中对齐,但当我们打印数据时显示左对齐。 Gridview 正常外观
Gridview的打印预览
请帮助在 Gridview 的打印预览中进行居中对齐。
【问题讨论】:
-
css 样式表在
prtContent之外。您可以在 GridView 中包含内联样式(丑陋的解决方案)或open一个带有所需样式表的小文档并在其中插入(不是document.write)。 -
另一种解决方案是添加
media=printcss 其中display:none任何你不想要的。事实上,我在不同的页面上都使用了这两种方法。 -
@AlexKudryashev 如何在 Gridview 中包含内联样式。我尝试在 gridview 中使用 HeaderStyle-HorizontalAlign="Right" 但它不起作用。
-
第二种方法更可取。不要打开窗户。只需将
<style media="print"添加到页面并将display:none或/ 和border:none;margin:0添加到不应打印的所有内容。这需要一些工作。 -
@vim: 在幕后,如果你查看源代码你可以看到它会将内联 css 注入到表格中。