Xslt 为SharePoint创建自定义ItemStyle模板

Xslt 为SharePoint创建自定义ItemStyle模板,xslt,sharepoint-2010,Xslt,Sharepoint 2010,我已经为SharePoint 2010内容查询web部件创建了一个自定义ItemStyle\u ContactDetails.xsl,它通过ItemXslLink属性指向此自定义文件。该web部件将被过滤以仅显示该部门联系信息的一条记录。它正在读取的列表包含以下列: @标题--内置SharePoint列 /dsQueryResponse/Rows/Row/@WorkAddress--内置SharePoint列 /dsQueryResponse/Rows/Row/@PrimaryNumber--

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

  • @标题--内置SharePoint列
  • /dsQueryResponse/Rows/Row/@WorkAddress--内置SharePoint列
  • /dsQueryResponse/Rows/Row/@PrimaryNumber--内置SharePoint列
  • @电子邮件--内置SharePoint列
  • @开放时间\u x0020\u小时--自定义多行富文本列
上述名称在另一个站点的数据视图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\u ContactDetails.xsl模板?用户需要查看信息,而无需单击链接即可访问该信息——对于该部门来说,它始终只是一条记录。谢谢。

一些严重的尝试和错误产生了结果,还有这篇伟大的文章:

也许其他尝试同样方法的人会发现这一点很有用:您可以通过SPDesigner在服务器上编辑自定义XSL文件,但您不能对web部件执行同样的操作,希望立即反映更改。您必须导出内容查询web部件,然后在记事本等中编辑文件,才能对以下3项进行更改:

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

    /Style Library/XSL样式表/ItemStyle\u ContactDetails.XSL

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

    因此,在您的web部件中,您将有:

    ContactDetails

  • 更新
    CommonViewFields
    以列出自定义列及其类型:

    工作地址,文本;电子邮件、文本;联系Choice的x0020部门;地图、网址;营业时间,文本;PrimaryNumber,文本

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

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