2017-10-07 47 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