【问题标题】:Filtering XSLT in a dataviewer with lookup column使用查找列在数据查看器中过滤 XSLT
【发布时间】:2023-03-15 08:49:01
【问题描述】:

我在 SharePoint 中有两个列表、测验和测验问题。测验问题有一个指向测验的查找列,并包括一个用于原始列表的行 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)"/>

如果我去掉过滤器,我会得到列表中的每一行。现在,有两个考虑因素可能相关,也可能不相关:

  1. 在 SPD 中,每当我查看当前数据源层次结构时,它不会显示此 ID 字段的整数值(即使它在 SP UI 中显示)。相反,它显示为“

  2. 在循环遍历 Rows 值的循环中,我可以获取并显示 @Title 字段的变量,但不能用于 @Quiz_x003a_ID 字段。我收到了一个意外错误和相关 ID(这是在 SharePoint Online 2013 中),因此我无法进一步轻松地对其进行故障排除。这个字段清楚地显示,我可以从 SPD 的层次导航中复制 XPATH。

提前致谢!

【问题讨论】:

  • 我回答你的问题了吗?

标签: xml sharepoint xsl-stylesheet


【解决方案1】:

我认为问题更多在于 SP 中的查找字段以及呈现为锚字段而不是整数。有什么设置吗?我看到了一些似乎表明获取 ID 应该有效的示例。但是,一旦我通过 select 语句从以下位置更改:

/Rows/Row[@Quiz_x003a_ID=$currentQuizId]

到:

/Rows/Row[contains(@Quiz_x003a_ID,concat('&amp;ID=',$currentQuizId,'&amp;'))]

它按预期工作。

【讨论】:

    【解决方案2】:

    试试这个,我假设你的 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>
    

    【讨论】:

    • 我试过了,但相关 ID 出现错误。我希望我可以向您提供有关该错误的更多详细信息,但在 SPO 中是不可能的。
    猜你喜欢
    • 2012-11-02
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2020-10-21
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多