在我们的网络应用程序中,我们有多个网页。 Contacts模块是广泛使用的模块之一。整个模块包含3页。
第一页显示多个服务器控件的联系人详细信息,第二页是联系历史记录,其中包含有关联系人的所有历史记录,第三页显示联系人的更多详细信息。
当用户点击任何这些页面上的一个按钮时,有什么办法可以打印所有3个页面。有了这个联系人的内容。请注意,这些不是静态页面。联系人详细信息将根据Oracle DB中的数据显示。
答案 0 :(得分:1)
如果所有这些页面都是动态生成的,那么您需要做的是创建一个第4页,该页面生成所有这3个页面的组合,然后在您拥有的3个页面的每一页上包含该页面的URL,如下所示:
<link rel=alternate media=print href="urlToCombinePage">
这将指示浏览器在任何人想要打印您已有的3个页面之一时使用您的第4页。替换应该自动发生,并且在用户获得打印文档之前不应该引起注意。
只有我能想到的其他方式是重写所有三个页面并将它们合并为一个,然后你可以使用Javascript来显示和隐藏页面的一部分,你可以使用@media = print css样式表在打印文档时显示所有这些样式。
答案 1 :(得分:0)
理想情况下,您将页面转换为用户控件,然后添加包含所有新控件的新页面。
另一种我在截止日期前完成此操作以避免将页面集合重写为用户控件的方法是使用我在新窗口中打开的单独页面。
这是通过参数(或通过会话 - 您的选择)显示页面的URL。
过程就是:
foreach(var page in pages)
Server.Execute(page, Response.Output);
// Inject a window.print() command via a script block
当您解析多个完整的页面显然是无效的HTML时,它有点骇人听闻,但如果您有标准化的样式表,那么合适的打印介质样式和您的页面就不会出现问题。非常复杂,你会逃脱它。
如果您想要更加彻底,请依次处理每个页面,连接正文以便您拥有一个页面。