使用来自 Sharepoint Designer 中已连接 LVWP 的参数的 xslt 过滤 DVWP

Posted

技术标签:

【中文标题】使用来自 Sharepoint Designer 中已连接 LVWP 的参数的 xslt 过滤 DVWP【英文标题】:Filtering DVWP with xslt with parameter from connected LVWP in Sharepoint Designer 【发布时间】:2012-10-12 00:45:34 【问题描述】:

我的设置如下: Sharepoint 2010 网站上的自定义页面,其中包含列表视图 Web 部件和数据视图 Web 部件。当我在 LVWP 中选择一个项目时,我想使用多查找字段值过滤 DVWP。因此,我连接了两个 Web 部件,以便 DVWP 从 LVWP 获取参数。我使用以下内容过滤 DVWP:

<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[contains($pDataAftaleID,concat(@ID,';#',@ID))]"/>

其中 pDataAftaleID 是来自 LVWP 的参数。

我的问题是:如果 LVWP 中的选定项目在参数字段中有值,则一切正常,但如果没有,Sharepoint 似乎不会将 null/empty 或零值写入参数并且filter 参数将 LVWP 中最后一个选定项目的值保留为一个值,因此 DVWP 会显示某个先前选定项目的项目,而不是“没有要显示的项目”。

是否有某种方法可以强制写入空字段,或者是否可以在每次 DVWP 加载时将参数设置为零?有什么建议吗?

【问题讨论】:

【参考方案1】:
<xsl:variable name="Rows">
  <xsl:choose>
    <xsl:when test="/dsQueryResponse/Rows/Row[contains($pDataAftaleID,concat(@ID,';#',@ID))]">
       <xsl:text>/dsQueryResponse/Rows/Row[contains($pDataAftaleID,concat(@ID,';#',@ID))]</xsl:text>
    </xsl:when>
    <xsl:otherwise>
       <xsl:text>0</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

请检查此功能或此功能的变体是否适合您。

【讨论】:

以上是关于使用来自 Sharepoint Designer 中已连接 LVWP 的参数的 xslt 过滤 DVWP的主要内容,如果未能解决你的问题,请参考以下文章

SharePoint 2013 Designer系列之数据视图

SharePoint - 使用 SP Designer 编辑搜索页面

如何在 SharePoint Online 中自定义 SharePoint Designer 工作流任务表单?

SharePoint 2013 create workflow by SharePoint Designer 2013

SharePoint Designer 2013怎么新建空白网站

Office365 网站上的 Sharepoint Designer