2014-12-23 3 views
2

뉴스 항목이있는 SharePoint 목록이 있습니다. 그로부터 기사를 선택하고 선택한 항목의 순서를 변경하여 일종의 뉴스 레터를 만들 수 있기를 바랍니다.맞춤 주문 및 필터

나는 아이템 ID 및 순서, 같은 것을 지정하는 쿼리 문자열을 사용하여 시도

:

SortFilter.aspx?selection='i13o1,i5o2,i27o3,' 
(i is for Item, o is for Order) 

필터링이 작품을 좋아하지만, 나는 $ elementLookup

을 사용하여 정렬하는 방법을 알아낼 수 없습니다
<xsl:param name="QUERY_STRING" /> 
<xsl:variable name="string" select= 'substring-before(substring-after($QUERY_STRING, "&apos;"), "&apos;")'/> 
<xsl:key name="myKey" match="Row" use="@ID" /> 
    <xsl:template match="/">     
     <xsl:for-each select="/dsQueryResponse/Rows/Row[generate-id(.)=generate-id(key('myKey',@ID))]"> 
     <xsl:variable name="articleNumber"> 
      <xsl:text>i</xsl:text><xsl:value-of select="@ID" /><xsl:text>o</xsl:text> 
      </xsl:variable> 
      <xsl:variable name="elementLookUp" select= 'substring-before(substring-after($string, $articleNumber), ",")'/> 
      <xsl:if test="$elementLookUp"> 
       <xsl:value-of select="@ID" /> 
       <xsl:text>&#160;</xsl:text> 
       <xsl:value-of select="@Title" /> 
       <xsl:text>&#160;</xsl:text> 
       <xsl:value-of select="$elementLookUp"/> 
      </xsl:if> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

답변

2

당신은 이런 식으로 그렇게 할 수 있어야한다 :

<xsl:sort 
    select="substring-before(substring-after($string, concat('i', @ID, 'o')), ',')" 
    data-type="number" /> 

이 표현은 t을 선택합니다 그는 i<id>o 이후에 오는 번호이며, 그런 다음이를 정렬 할 수 있습니다. 정리 조금 후

는 스타일 시트가된다 : 예, 작동

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:param name="QUERY_STRING" /> 
    <xsl:variable 
     name="selection" 
     select='substring-before(substring-after($QUERY_STRING, "selection=&apos;"), "&apos;")'/> 
    <xsl:key name="myKey" match="Row" use="@ID" /> 
    <xsl:template match="/"> 
     <xsl:for-each 
      select="/dsQueryResponse/Rows/Row[generate-id(.)=generate-id(key('myKey',@ID)[1])]"> 
      <xsl:sort 
       select="substring-before(substring-after($selection, concat('i', @ID, 'o')), ',')" 
       data-type="number" 
      /> 
      <xsl:variable name="articleNumber" select="concat('i', @ID, 'o')" /> 
      <xsl:variable name="elementLookUp" 
       select='substring-before(substring-after($selection, $articleNumber), ",")'/> 
      <xsl:if test="$elementLookUp"> 
       <xsl:value-of select="@ID" /> 
       <xsl:text>&#160;</xsl:text> 
       <xsl:value-of select="@Title" /> 
       <xsl:text>&#160;</xsl:text> 
       <xsl:value-of select="$elementLookUp"/> 
      </xsl:if> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 
+0

! 정말 고마워! – JJD