2017-10-07 53 views
0

我对XSLT非常陌生。我试图在SharePoint 2010中构建自定义列表视图。XSLT以'E'或'Z'开始

取决于用户希望看到的内容,将取决于返回的项目。 如果说他们想看到视图1:它会得到所有以E开头的参考。 如果视图2:所有参考以Z开头 如果视图3:所有ref都以其他字母开头。

我有以下代码:

<xsl:variable name="dvt_StyleName">Table</xsl:variable> 
    <xsl:variable name="RowLimit" select="30" /> 
    <xsl:variable name="query_string" select="substring-after($current_url,'sheet=')"/> 
    <xsl:variable name="query_sheet" select="substring-before($query_string,'&amp;acYear=')"/> 
    <xsl:variable name="query_year" select="substring-after($query_string,'acYear=')"/> 
    <!--sheet query assignment--> 
    <xsl:variable name="qOptions"> 
     <xsl:choose> 
      <xsl:when test="$query_sheet = '2'">E</xsl:when> 
      <xsl:when test="$query_sheet = '3'">Z</xsl:when> 
      <xsl:otherwise>A|B|C|D|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y</xsl:otherwise>        
     </xsl:choose> 
    </xsl:variable> 
<!--debugging---> 
    <xsl:value-of select="$qOptions"/> 
<!-- end of debugging---> 
    <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[starts-with(@Title, $qOptions)]"/> 

的oitherwise声明目前没有工作,因为我想获得多个条件进入启动-with语句。我知道我这样做是非常错误的,所以任何帮助将不胜感激。如果你可以尝试和我握手一点,那将是很好的原因,这种语言的语法真让我困惑!

在此先感谢

回答

0

当你处理单个字母,你可以定义你的“否则”像这样...

<xsl:otherwise>ABCDFGHIJKLMNOPQRSTUVWXY</xsl:otherwise> 

然后你Rows变量可以被重新编写,像这样

<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[contains($qOptions, substring(@Title, 1, 1))]"/> 

ie $qOptions变量是否包含Title属性的第一个字母

编辑:如果你想匹配“一切”,而不是“其他字母”,然后再考虑它重新写这个,稍微长篇大论方式....

<xsl:variable name="qOptions"> 
    <xsl:choose> 
     <xsl:when test="$query_sheet = '2'">E</xsl:when> 
     <xsl:when test="$query_sheet = '3'">Z</xsl:when> 
     <xsl:otherwise>!EZ</xsl:otherwise>        
    </xsl:choose> 
</xsl:variable> 
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[(not(starts-with($qOptions, '!')) and contains($qOptions, substring(@Title, 1, 1))) or (starts-with($qOptions, '!') and not(contains($qOptions, substring(@Title, 1, 1))))]"/> 
+0

的qOptions包含要搜索的字母。无论是E,Z还是其他一切。 – UncountedBrute

+0

这绝对有用!从来没有考虑过反过来写它! – UncountedBrute