【发布时间】:2010-10-12 09:30:46
【问题描述】:
我在 SharePoint 2007 DataFormWebPart 上有一个基本的 XSLT 过滤器:
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>
$MyParameter 来自 ASP.NET 控件。但是尝试以任何其他方式设置变量值会导致错误:
<xsl:variable name="Rows">
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>
</xsl:variable>
或
<xsl:variable name="Rows">
/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]
</xsl:variable>
我得到的错误是:参数 1 必须返回一个节点集。 -->count($Rows)
最终,我正在尝试实现类似的目标:
<xsl:variable name="Rows">
<xsl:choose>
<xsl:when test="($MyParameter2 = '1')">
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$MyParameter)]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/dsQueryResponse/Rows/Row[((ddwrt:FormatDateTime(string(@MyDate) ,1061 ,'MM'))=$otherParameter)]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
使用 XSLT 是否可以实现这样的事情,还是应该在 SharePoint Designer 中寻找其他可能性?
【问题讨论】:
-
谢谢,我会调查一下,看看是否已经回答了我的问题。
-
尝试使用 node-set() 包装
select值,如果不使用上面我的问题的答案。
标签: sharepoint xslt variables filter