문제

SharePoint 2007에서 작업하고 있습니다. XSLT로 DVWP를 수정하려고합니다.

웹 파트는 목록에서 데이터를 가져옵니다. 내가하고 싶은 것은 데이터를 정렬하고 결과를 표시하는 것입니다. - Choice 필드 인 필드로 정렬 / 그룹을 정렬해야하기 때문에 데이터를 직접 정렬 할 수 없으므로 수 없습니다.

Me의 유일한 실행 가능한 솔루션은 XSLT를 수정하는 것이 었습니다. 모든 것이 잘되었고 문제가 생길 때 까지이 문제는 종류가 이상합니다.

정렬을 사용할 때 테이블에서 첫 번째 값을 표시하지 않습니다! 내가 정렬을 제거하면 내가 가지고 있어야하는 4 개의 (고유 한) 값이 있지만 Orderd가 아닙니다. 즉, 첫 번째 내부에서 정렬을 얻 자마자 3 가지 고유 한 값을 얻으십시오. 그리고 나는 그토리가 어떻게 될지 이해하지 못합니다.

나는 당신에게 내가 사용하는 XSLT를 제공 할 것입니다. 내게 내가 무엇을 잘못하고 있는지 이해하는 데 도움이되는 자산이 될 것입니다.

이 사용하는 고유 값을 구별하십시오.

<xsl:key name="ByCategory" match="/dsQueryResponse/Rows/Row" use="@Category" />
.

이 하위 그룹 (하위 템플리트)에서는이 wierd 동작을 얻습니다.

<xsl:call-template name="dvt_2.body">
<xsl:with-param name="Rows" select="$Rows" />
</xsl:call-template>


 <xsl:template name="dvt_2.body">
 <xsl:param name="Rows" />
     <td>
   <xsl:for-each select="$Rows[generate-id()=generate-id(key('ByCategory',@Category)[1])]"> 
           <xsl:sort select="@Category"/>
                     <xsl:call-template name="dvt_2.rowview">
           </xsl:call-template>
           </xsl:for-each>
 </td>
</xsl:template>
.

내가 말했듯이, 정렬을 제거하면 괜찮을 것입니다.하지만 정렬이 안되지만 정렬이 필요합니다.

어떤 생각?

미리 감사드립니다

추신 : 전체 XSLT 코드가 필요한 경우, 내가 제공 할 것이고,

도움이 되었습니까?

해결책

나는 그 솔루션을 발견하고 나머지와 공유하고 싶을 것입니다, 어쩌면 그것은 그들이 미래에 도움이 될 것입니다 아니면 동일한 문제를 해결할 수 있습니다.

실제 문제는 첫 번째 노드가 통과하지 못했던 테스트가 다음과 같습니다.

<xsl:template name="dvt_2.rowview"> 
    <xsl:if test="(position()=1)or(@Category!= (preceding-sibling::*[1]/@Category))">   
    //xslt
    </xsl:if>   
</xsl:template>
.

라고 불렀을 때마다 정렬 된 목록 (또는 정렬되지 않은 목록의 첫 번째 카테고리)이 IF를 통과하지 못했습니다.

테스트를 해제하면이 문제를 해결했습니다.

다른 사람들을 위해 유용 할 것입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top