我在我的应用程序中创建了一个打印按钮,打开一个新窗口,打印设备布局,方法是在打印设备的QueryString附加当前URL(在我的例子中是?p = 1),并在onload上调用window.print( )功能。但这没用,因为用户输入的所有数据在打开包含当前页面打印设备布局的新窗口时都会丢失。
我无法想出一种方法,可以使用打印设备布局并使用用户输入的数据预先填充页面。任何人都可以帮我这个吗?
提前致谢。
答案 0 :(得分:2)
打印设备能够使用一组不同的演示组件进行显示或打印。有时只使用打印样式表就足够了(也更容易),它会隐藏/重新设置某些元素:https://stackoverflow.com/a/12773239/19112
显然,设备适用于非表单页面,或已发布的表单以及显示的确认页面(没有输入框,只有文本)。
另一种方法是使用渲染参数在每个控件上设置,这可以添加.print
或.do-not-print
类,然后由打印样式表使用。然后,您必须在样式表中设置适当的样式以隐藏这些元素。但请注意,您无法为父级设置iframe内容的样式,如果要在打印时设置样式,则必须将单独的样式表链接到iframe src页面。
答案 1 :(得分:0)
您可以使用javascript将用户输入附加到打印URL查询字符串,例如:
var url = 'Current-Page-URL' + '?p=1' + '&input1=[INPUT1]'+ '&input2=[INPUT2]' etc..
然后在Page load事件中,您可以在相应的文本/下拉元素中设置这些输入
答案 2 :(得分:0)
如上所述,设备是一组不同的表示,可用于多种用途。早年没有响应式设计时,我使用设备渲染不同的移动设备。您可以使用设备渲染rss feed或任何您想要具有不同渲染集的位置。 另一个例子,如果您有多个站点并希望以不同方式呈现它们,您也可以使用设备。
Sitecore非常灵活,这就是我非常喜欢它的原因。总有其他方法可以获得相同或相似的结果。从你的背景来看,我不知道你想要实现什么。如果我想要有不同的演示文稿 这里是我将要研究的一些方法,Lavage渲染规则,点击请求管道,在代码中交换渲染控件,在项目级别指定样式表......
如果您能告诉我们您想要实现的目标,我相信有人会为您提供自己的解决方案。然后,您将有更多选项可供选择,并最适合您的项目。 希望这有帮助。