【发布时间】:2011-03-14 16:19:30
【问题描述】:
我有一个使用 Web 表单创建的 asp.net 网页。它上面有许多网格视图,通过单击按钮从数据库中填充。
我希望通过单击不同的按钮来打印此页面的版本。我正在寻找自定义打印页面,指定一些文本,然后是 gridview 内容(用户友好版本),然后是更多文本等
非常感谢任何帮助
马克
【问题讨论】:
标签: asp.net vb.net printing webforms
我有一个使用 Web 表单创建的 asp.net 网页。它上面有许多网格视图,通过单击按钮从数据库中填充。
我希望通过单击不同的按钮来打印此页面的版本。我正在寻找自定义打印页面,指定一些文本,然后是 gridview 内容(用户友好版本),然后是更多文本等
非常感谢任何帮助
马克
【问题讨论】:
标签: asp.net vb.net printing webforms
最简单的解决方案是使用CSS 来显示和隐藏不同的元素,具体取决于它们是用于屏幕还是打印。在页面输出中包含所有元素(打印和屏幕)并使用CSS 来控制它们。
这是一个非常简单的示例 - 假设您有一个只应包含在打印版本中的摘要文本,以及一些只应包含在屏幕版本中的按钮。
标记:
<p class="printOnly">
Here is my summary text.
</p>
<asp:button ID="btnSomeButton" runat="server" Text="Some Server Button" CssClass="screenOnly" />
CSS:
@media print {
.screenOnly { display: none; }
}
@media screen {
.printOnly { display: none; }
}
最后,任何标有CSS class screenOnly 的元素都将从打印内容中隐藏,任何标有CSS class printOnly 的元素都将从屏幕版本中隐藏。
从那里只需在页面某处有一个打印按钮或链接:
<a href="#" onclick="window.print();" class="screenOnly">Print Page</a>
【讨论】:
您可能正在使用window.print() 打印网络表单。
创建一些div,并在其中包含您想要的文本,并最初隐藏div。
按下打印按钮时,调用 javascript 函数以取消隐藏 div 并调用 window.print()。在window.print() 之后,再次隐藏div。
【讨论】:
打印网页内容的简单方法是使用 Javascript。
<script language="JavaScript" type="text/JavaScript">
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
【讨论】: