2011-10-04 38 views
5

我正在添加一些支持,以便以良好的打印机友好格式打印我网站的特定页面。所以我做的第一件事是创建一个或多或少的空白布局,我可以放入内容。然后,我转到内容页面,并将此布局分配给“演示文稿详细信息”中的“打印”设备。如何让Sitecore(和我的浏览器)使用打印布局?

这似乎没有做任何事情。在我定义任何打印设置之前,我仍然看到“打印预览”中完全相同的输出。说实话,我不完全确定这应该如何工作。据推测,我的浏览器必须用新的用户代理(???)再次请求该页面以让Sitecore返回页面的不同呈现......但我已经尝试过Firefox,Chrome和IE,并得到相同的不受欢迎的从我的“默认”设备输出。

必须缺少明显的东西?

回答

5

默认情况下,打印设备将在您要打印的页面上存在?p=1查询字符串值时使用。浏览器中的打印预览只是使用默认设备预览页面。

尝试将该查询字符串放在地址中,看看你是否得到你期望的布局。

正如您所指出的那样,您可以通过浏览器代理切换设备,但这在此不会有用。这主要用于移动设备检测。

+0

AAAAH ......是的,缺少的东西好简单。谢谢肖恩。 – Bryan

+0

基本上,你可以找出是什么使它使用设备上的某种布局,它可以在以下位置找到: /sitecore/content/layout/devices/ Det default printlayout被称为Print并具有查询字符串“肖恩写道,“p = 1”,但你可以改变这一点。 – Holger

0

要访问动态锚点击打印设备,就以下

的Default.aspx

<asp:HyperLink ID="hlPrintLink" runat="server"> 
</asp:hyperlink> 

//default.aspx.cs

HospitalDirectionsPageItem objHospital = Sitecore.Context.Item; 
     string deviceName = "print"; 
      DeviceItem deviceItem = Sitecore.Context.Database.Resources.Devices.GetAll().Where(d => d.Name.ToLower() == deviceName.ToLower()).First(); 

      if (deviceItem != null) 
      { 
       hlPrintLink.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(objHospital) + "?" + deviceItem.QueryString; 

      } 
相关问题