CSJS 不更新计算字段
CSJS Not Updating Computed Field
我很少使用 CSJS,但在这种情况下,我试图让它更新计算字段。虽然该字段已更新值以便我可以通过警报访问它,但我无法让它显示在 XPage 上。我试过使用选中只读的 editable 字段,但数据也没有出现在 XPage 上。
我正在调用一个 CSJS 脚本块,我知道您需要刷新才能显示更改,但我在该字段周围放置了一个面板并尝试了它和 div。既不产生错误消息,也不显示值。
我正在使用 XSP.partialRefreshGet("#{id:remaining}");在我设置值之后。我用 .partialRefreshPost 试过了,它什么也没做,但后来我在 Stephan Wissel 的 post "Meet the XSP object" 中读到“...对于 POST,refreshId 必须指向一个表单...”并且此 XPage 未附加到表单。我也试过使用参数 immediate:true。
我已经阅读了 Teresa Monahan 的文章 "Client Side JavaScript Libraries in XPages"、Serdar Basegmez 的“您和每个 XPages 开发人员都会犯的 10 个错误”,以及我在 Web 上可以找到的任何内容,以及 "Mastering XPages" 书。我知道这不应该那么困难,所以我相信我只是错过了一些东西(可能是愚蠢的)。
根据以上内容,XPage 和特定字段都未绑定到任何表单。这是在 table 选项卡的第一个选项卡上,仅显示计算值。该值不需要保存在任何地方。
我在 dijit/form/ComboBox 选择中使用 onChange="Testing()" 调用我的代理中的函数,因为我想要小框,而且在选择之后我不需要字段值已制作。
这是脚本块中的简单文本:
function Testing(){
XSP.getElementById("#{id:remainingPts}").value = "100";
var rewards = XSP.getElementById("#{id:numOfRewards1}").value;
alert("rewards: " + rewards);
XSP.partialRefreshGet("#{id:remaining}");
}
字段如下所示:
<xp:panel id="remaining">
<xp:text escape="true" id="remainingPts" value="0">
</xp:text>
</xp:panel>
我做错了什么?
我认为 xp:text
呈现为 <span>
标签,在这种情况下您需要设置 .innerHtml()
而不是 .value()
。参见 How do I change the text of a span element in JavaScript。您无需刷新即可看到更改。
我很少使用 CSJS,但在这种情况下,我试图让它更新计算字段。虽然该字段已更新值以便我可以通过警报访问它,但我无法让它显示在 XPage 上。我试过使用选中只读的 editable 字段,但数据也没有出现在 XPage 上。
我正在调用一个 CSJS 脚本块,我知道您需要刷新才能显示更改,但我在该字段周围放置了一个面板并尝试了它和 div。既不产生错误消息,也不显示值。
我正在使用 XSP.partialRefreshGet("#{id:remaining}");在我设置值之后。我用 .partialRefreshPost 试过了,它什么也没做,但后来我在 Stephan Wissel 的 post "Meet the XSP object" 中读到“...对于 POST,refreshId 必须指向一个表单...”并且此 XPage 未附加到表单。我也试过使用参数 immediate:true。
我已经阅读了 Teresa Monahan 的文章 "Client Side JavaScript Libraries in XPages"、Serdar Basegmez 的“您和每个 XPages 开发人员都会犯的 10 个错误”,以及我在 Web 上可以找到的任何内容,以及 "Mastering XPages" 书。我知道这不应该那么困难,所以我相信我只是错过了一些东西(可能是愚蠢的)。
根据以上内容,XPage 和特定字段都未绑定到任何表单。这是在 table 选项卡的第一个选项卡上,仅显示计算值。该值不需要保存在任何地方。
我在 dijit/form/ComboBox 选择中使用 onChange="Testing()" 调用我的代理中的函数,因为我想要小框,而且在选择之后我不需要字段值已制作。
这是脚本块中的简单文本:
function Testing(){
XSP.getElementById("#{id:remainingPts}").value = "100";
var rewards = XSP.getElementById("#{id:numOfRewards1}").value;
alert("rewards: " + rewards);
XSP.partialRefreshGet("#{id:remaining}");
}
字段如下所示:
<xp:panel id="remaining">
<xp:text escape="true" id="remainingPts" value="0">
</xp:text>
</xp:panel>
我做错了什么?
我认为 xp:text
呈现为 <span>
标签,在这种情况下您需要设置 .innerHtml()
而不是 .value()
。参见 How do I change the text of a span element in JavaScript。您无需刷新即可看到更改。