У меня есть основной XSLT-фильтр для 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 ($ Ряды) < -
В конечном счете, я пытаюсь добиться чего-то подобное:
<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, ?
Дубликат http://stackoverflow.com/questions/3834812/copy-an-xslt-variable – Marko
Спасибо, я загляну в него и посмотрю, ответил ли уже на мой вопрос. – Indrek
Попробуйте обернуть значение 'select' с помощью node-set(), если не использовать ответ по моему вопросу выше. – Marko