2011-08-08 98 views
0

我已为SharePoint 2010内容查询Web部件创建了自定义ItemStyle_ContactDetails.xsl,该部件通过ItemXslLink属性指向此自定义文件。网页部分将被过滤,只显示该部门联系信息的一条记录。它的阅读列表中有这些列:为SharePoint创建自定义ItemStyle模板

  • @Title - 内置的SharePoint列
  • /dsQueryResponse /行/行/ @招聘人数 - 内置的SharePoint列
  • /dsQueryResponse /行/行/ @ PrimaryNumber - 内置的SharePoint列
  • @email - 内置的SharePoint列
  • @ Opening_x0020_Hours - 自定义多线丰富文本列

上述名称是他们在另一个站点的数据视图Web部件中调用的名称。我曾在DVWP,对于本地站点的工作如下:

<td colspan="2" class="ms-vb" style="text-align:center"> 
    <b><xsl:value-of select="@Title"/></b><br></br> 
    <div style="margin-top:10px;"><xsl:value-of 
     select="/dsQueryResponse/Rows/Row/@WorkAddress"/> 
     (<a href="{@Map}">MAP</a>) 
    </div> 
    Tel: <xsl:value-of select="/dsQueryResponse/Rows/Row/@PrimaryNumber"/><br></br> 
    <a href="mailto:{@EMail}"><xsl:value-of select="@EMail"/></a> 
    <p><b>Opening Hours:</b></p> 
    <div style="position:relative; top:0; margin:0"> 
     <xsl:value-of select="@Opening_x0020_Hours" 
     disable-output-escaping="yes"/> 
    </div> 
</td> 

如何翻译这对自定义模板ItemStyle_ContactDetails.xsl?用户需要查看信息,而无需单击链接即可查看信息 - 该部门总是只有一条记录。谢谢。

回答

1

一些严重的试验和错误产生的结果,与这个伟大的文章一起:http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx

也许别人想同样的事情可以找到这个有用:您可以通过SPDesigner在服务器上编辑自定义XSL文件,但是你不能对Web部件做同样的事情,并希望立即反映这些变化。您必须导出内容查询Web部件,然后编辑该文件在记事本等,使您的更改以下3个项目:

  • 更改ItemXslLink指向您的自定义XSL文件:

    <property name="ItemXslLink" type="string">/Style Library/XSL Style Sheets/ItemStyle_ContactDetails.xsl</property>

  • 更改Web部件中的ItemStyle项目以引用您的模板名称;在XSL文件模板名称是ContactDetails

    <xsl:template name="ContactDetails" match="Row[@Style='ContactDetails']" mode="itemstyle">

    所以在你的网络的一部分,你有这样的:

    <property name="ItemStyle" type="string">ContactDetails</property>

  • 更新CommonViewFields列出您的自定义列其类型:

    <property name="CommonViewFields" type="string">WorkAddress, Text; EMail,Text; Contact_x0020_Department,Choice; Map,URL; Opening_x0020_Hours,Text; PrimaryNumber, Text</property>

保存Web部件文件并通过浏览器将其导入(上载)到您的Web部件库。每次您对Web部件进行更改时,都会想要这样做;可以编辑XSL文件并将其保存在SPDesigner中,并且这些更改会立即在浏览器中反映出来。

希望这可以帮助像我一样卡住的人:)

相关问题