【问题标题】:Sharepoint list xsl:merging javascript共享点列表 xsl:合并 javascript
【发布时间】:2011-08-12 02:07:33
【问题描述】:

我的头撞在墙上..... 我有一个 SP 列表,它使用 ajax 脚本在点击时将不同的内容拉入页面。我希望网站所有者能够在列表中输入一个值,以确定页面打开时调用哪些内容。 xsl:

<xsl:for-each select="//Data/Row">
    <a>
        <xsl:attribute name="href">javascript:ajaxpage('<xsl:value-ofselect="./@Target_x0020_page"/>','<xsl:value-of select="./@Target_x0020_div"/>');</xsl:attribute>
        <xsl:value-of select="./@Category"/>
    </a>
</xsl:for-each>

JS打开默认内容:

ajaxpage('2minxcat2.aspx' , 'index')

我尝试了xsl:if,但它被忽略了。 任何帮助表示赞赏。

澄清; @CBono 抱歉-使用链接调用 js 并且工作正常。这是一个 Office Live Small Business 站点 - xml 是从列表中自动生成的,xsl 是通过链接调用的。我正在尝试在 xsl 中包含这个额外的 js sn-p,以便所有者可以通过简单地在列表中进行更改来更改页面打开时调用的 ajax 内容:

<script type="text/javascript"> ajaxpage('contenturlhere' , 'targetdiv') </script>

我试过添加这个:

 <xsl:if test="Opening_x0020_category = 1"><script type="text/javascript">ajaxpage('<xsl:value-of select="./@Target_x0020_page"/>

','')

但是什么都没有输出。当上面的 javascript 插入到 xsl 之外时,它可以按预期工作。 我想要的逻辑是“如果其中一个列表项在指定字段中有'1',则在页面打开时将此内容插入此 div”。

XML: Link

【问题讨论】:

  • 你没有很好地解释这个问题。 Javascript 在哪里运行? XSL 在哪里运行,它是如何调用的?
  • 你的代码有什么问题请解释一下
  • @CBono 抱歉 - js 是通过链接调用的并且工作正常。这是一个 Office Live Small Business 站点 - xml 是从列表中自动生成的,xsl 是通过链接调用的。我正在尝试在 xsl 中包含这个额外的 js sn-p,以便所有者可以通过简单地在列表中进行更改来更改页面打开时调用的 ajax 内容:
  • 你应该阅读如何格式化你的代码;-)
  • 嘿-我把“在此处输入代码”粘贴了,我缩进了4个空格-它仍然看起来像cr*p。

标签: javascript sharepoint xslt


【解决方案1】:

您是否尝试过在对 ajaxpage 的调用中转义单引号?

<script type="text/javascript">ajaxpage(&apos;<xsl:value-of select="./@Target_x0020_page"/>&apos;, &apos;<xsl:value-of select="./@Target_x0020_div"/>&apos;);</script>

更新:查看 XML 源代码,您的 xsl:if 语句似乎正在测试当前节点的属性。我认为它应该是:

<xsl:if test="@Opening_x0020_category = 1">
     <!-- your_output -->
</xsl:if>

【讨论】:

  • 嗨,我在 xsl 内部和外部都试过了,但它仍然忽略了 if 语句。这是一个粗略的页面 - 当页面打开时,作为内容页面之一的想法将在中间列中打开。 link
  • 那么当您不使用xsl:if 语句时,一切正常吗?
  • 代码的其余部分可以使用或不使用 if 语句。如果我添加它,它不会输出任何东西。如果它在指定字段中找到带有“1”的项目,我希望它循环遍历列表项并运行 js,如果没有,则不执行任何操作。那有意义吗?还是我在“纠结”错误?
  • 我只是想缩小问题的确切来源。那么,我认为这可能是您的 if 语法。您可以发布您的 XML 示例吗?
  • 感谢您查看此内容。我在原始问题中发布了它-希望您能看到它(在“输入代码”框中发布后看起来很奇怪)。
【解决方案2】:

我只是逐行重建它,它起作用了。问题是js而不是xsl。 我输入之后,js 不知何故被分解了。当我确定它在一条线上时,它起作用了。 我自己的愚蠢错误。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2018-09-04
    相关资源
    最近更新 更多