为SharePoint创建自定义ItemStyle模板

时间:2011-08-08 08:56:18

标签: xslt sharepoint-2010

我为SharePoint 2010内容查询Web部件创建了一个自定义ItemStyle_ContactDetails.xsl,它通过ItemXslLink属性指向此自定义文件。将过滤Web部件以仅显示该部门的联系信息的一条记录。它正在阅读的列表包含以下列:

  • @Title - 内置SharePoint列
  • / dsQueryResponse / Rows / Row / @ WorkAddress - 内置SharePoint列
  • / dsQueryResponse / Rows / Row / @ 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 个答案:

答案 0 :(得分: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部件时,您都希望这样做;可以在SPDesigner中编辑和保存XSL文件,并且更改会立即反映在浏览器中。

希望这可以帮助像我一样陷入困境的人:)