0

SharePoint に 2 つのリスト、クイズ、およびクイズの質問があります。クイズの質問には、クイズを指すルックアップ列があり、元のリストの行 ID (クイズ ID) の列が含まれています。カスタム XSLT を使用してデータ ビューアー パーツを作成したいと考えており、ほぼ完成していますが、最終的なクエリを正しく動作させることができないため、クイズ ID のすべてのクイズの質問を取得したいと考えています。

まず、SPD でデータソースを作成し、両方のリスト (リンク) を含めました。次に、ページに新しいデータ ビューを挿入し、データ ソースを含めました。フィールドの階層は SPD で正しく表示されます。

/dsQueryResponse/QuizQuestions/Rows/Row/@Quiz_x003a_ID

私の XSLT では、フィルターを次のように記述しています。

<xsl:variable name="Rows" select="/dsQueryResponse/QuizQuestions/Rows/Row[@Quiz_x003a_ID=10]"/> 

この場合の 10 は単なるテスト データであり、一覧にあることを確認しました。ただし、このクエリを実行すると、次のように結果が返されません。

Count: <xsl:value-of select="count($Rows)"/>

フィルターを外すと、リスト内のすべての行が取得されます。ここで、関連する場合と関連しない場合がある 2 つの考慮事項があります。

  1. SPD では、現在の DataSource 階層を見るたびに、この ID フィールドの整数値が表示されません (SP UI では表示されますが)。代わりに、「

  2. 行の値をループするループでは、@Title フィールドの変数を取得して表示できますが、@Quiz_x003a_ID フィールドの変数を取得して表示することはできません。予期しないエラーと関連付け ID (これは SharePoint Online 2013 にあります) が表示されるため、これ以上簡単にトラブルシューティングすることはできません。このフィールドは明確に表示され、SPD の階層ナビゲーションから同じように XPATH をコピーできます。

前もって感謝します!

4

2 に答える 2

0

これを試してみてください.xmlがこれに似ていると仮定します:

<dsQueryResponse>
 <QuizQuestions>
    <Rows>
        <Row Quiz_x003a_ID="10">1</Row>
        <Row Quiz_x003a_ID="10">11</Row>
        <Row Quiz_x003a_ID="10">12</Row>
        <Row Quiz_x003a_ID="12">13</Row>
        <Row Quiz_x003a_ID="10">14</Row>
        <Row Quiz_x003a_ID="11">15</Row>
    </Rows>
 </QuizQuestions>
</dsQueryResponse>

XSL は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="html"/>

  <xsl:variable name="Rows" select="count(/dsQueryResponse/QuizQuestions/Rows/Row[@Quiz_x003a_ID=10])"/>
   <xsl:template match="/">
   <div>
   Count: <xsl:value-of select="$Rows"/>
   </div>
   </xsl:template>
  </xsl:stylesheet>
于 2014-01-03T02:52:28.007 に答える