单击时增加XML参数

时间:2015-03-20 15:46:06

标签: javascript xml loops parameters parameter-passing

我有一个RSS Feed,其FeedLimit参数为5

我想在底部放一个按钮,说明"查看下一个"

为了做到这一点,我想我需要一个嵌入了一些javascript的href,它将设置FeedLimit = FeedLimit + 5

虽然从我的研究中看来,增加XML参数的唯一方法似乎是循环。

我的代码段落在下面,您会注意到有一个ToggleItemDescription,它显示/隐藏了每个项目的描述..这是我的灵感,但它是由SharePoint生成的代码

<xsl:param name="rss_FeedLimit">5</xsl:param>
  <xsl:template name="RSSMainTemplate.body" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="Rows"/>
<xsl:param name="RowCount"/>
<xsl:for-each select="$Rows">
  <xsl:variable name="CurPosition" select="position()" />
  <xsl:variable name="RssFeedLink" select="$rss_WebPartID" />
  <xsl:variable name="CurrentElement" select="concat($RssFeedLink,$CurPosition)" />
  <xsl:if test="($CurPosition &lt;= $rss_FeedLimit)">
    <div class="item link-item" >
      <a href="{concat(&quot;javascript:ToggleItemDescription('&quot;,$CurrentElement,&quot;')&quot;)}" >
        <xsl:variable name="SafeHtml">
          <xsl:call-template name="GetSafeHtml">
            <xsl:with-param name="Html" select="title"/>
          </xsl:call-template>
        </xsl:variable>
        <xsl:value-of select="$SafeHtml" disable-output-escaping="yes"/>
      </a>
      <xsl:if test="$rss_ExpandFeed = true()">
        <xsl:call-template name="RSSMainTemplate.description">
          <xsl:with-param name="DescriptionStyle" select="string('display:block;')"/>
          <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
        </xsl:call-template>
      </xsl:if>
      <xsl:if test="$rss_ExpandFeed = false()">
        <xsl:call-template name="RSSMainTemplate.description">
          <xsl:with-param name="DescriptionStyle" select="string('display:none;')"/>
          <xsl:with-param name="CurrentElement" select="$CurrentElement"/>
        </xsl:call-template>
      </xsl:if>
    </div>
  </xsl:if>
</xsl:for-each>
<div class="description">
  <h4 class="ms-rteElement-H4B">
    <span class="ms-rteStyle-Emphasis">
      <br></br>View More Articles&#160;<img alt="more-icon-1.png" src="/BHiveImageGallery/Stock-Images/more-icon-1.png"/>
    </span>
    <span class="ms-rteStyle-Emphasis"> </span>
  </h4>
</div>
</xsl:template>

1 个答案:

答案 0 :(得分:0)

经过研究,似乎XML / XSL不允许在写入参数/变量值后覆盖它。

我不确定我要求的功能是否可行..你可以迭代5的倍数并将每个存储为自己的参数..但最后决定显示一个完整列表而不是增加当前值显示所以不需要这个答案。

无法覆盖参数值会使这个问题变得非常棘手