【问题标题】:Xpages dojo charting breaking csjsXpages dojo 图表打破 csjs
【发布时间】:2020-07-02 13:20:49
【问题描述】:

我刚开始使用 Xpages 中的 Dojo 图表功能。在 Andrew Champion 关注 this tutorial 之后。我发现创建饼图的简单csjs脚本不起作用。它打破了在 CSJS 中创建饼图的过程。使用最基本的代码以获得更好的可读性。

makeCharts = function() 
{
alert("test");
var pieChart = new dojox.charting.Chart2D("#{id:panel1}");
};

当我在 Xpage 中调用该函数时,上面代码中的警报不会运行。我完全按照教程进行操作,但没有结果。任何帮助将不胜感激。

Xpage源码如下:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoParseOnLoad="true"
    dojoTheme="true">
    <xp:this.resources>
        <xp:dojoModule name="dojox.charting.Chart2D"></xp:dojoModule>
        <xp:script src="/scriptsChartDojo.jss" clientSide="false"></xp:script>
        <xp:script src="/scriptsChartDojoCSJS.js" clientSide="true"></xp:script>
    </xp:this.resources>
    <xp:scriptBlock id="scriptBlock1"
        value="XSP.addOnLoad(makeCharts);">
    </xp:scriptBlock>
    <xp:panel style="height:450px;width:450px" id="panel1">
        </xp:panel>
    </xp:view>

【问题讨论】:

  • makeCharts函数定义在哪里?
  • 上面的代码是我在 scriptsChartDojoCSJS.js 文件中的定义。@PerHenrikLausten
  • 我认为您不能在 js 文件中包含服务器生成的代码。如果您在浏览器中打开 scriptsChartDojoCSJS.js 文件,您将看到 #{id:panel1} 没有被更改。相反,您可以将 makeCharts 函数添加到您的 xp:scriptBlock
  • 谢谢。那行得通。我还想知道是否可以在 sessionScope 变量中从 ssjs 向 csjs 发送 json 对象数组。当我尝试在我的脚本块中使用 sessionScope.get 时。它不运行? @PerHenrikLausten
  • 我建议您添加一个关于该问题的新问题。我将添加我对结合csjs和ssjs的评论作为您可以接受的答案

标签: javascript dojo xpages dojox.charting


【解决方案1】:

我认为您不能在 js 文件中包含服务器生成的代码。如果您在浏览器中打开 scriptsChartDojoCSJS.js 文件,您会看到 #{id:panel1} 没有被更改。

相反,您可以将 makeCharts 函数添加到您的 xp:scriptBlock。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多