如何在重复控件中收集dijit / form / combobox选定的值

时间:2018-11-20 19:36:30

标签: dojo xpages xpages-ssjs

XPage用于显示一个人收集的点数以及剩余的点数(见下文)。

我有一个重复控件,该控件可以获取满足特定条件的文档集合。控件的最后一列包含5位数字/表单/组合框,根据每个包含数据的文档上的字段数显示或隐藏。

布局中包含价值一定数量的礼品卡,此人可以选择所需的每种礼品卡中的多少。例如。 公司可提供的积分值所需的数量

“请求的数量”列包含数字/表格/组合框。当人员在复选框中选择值时,我希望重新计算剩余的点数。

digit / form / comboboxes的onChange事件在输出脚本中调用一个函数,该函数调用RPC,而后者又调用SSJS函数。 SSJS函数循环显示在重复控件中显示的文档,收集点所需的信息。然后,我希望它也可以获取“请求的数量”。从上一篇文章中我了解到,由于数字/表单/组合框的呈现方式,我只能使用带有dijit.byId的CSJS来获取值,并且可能将值放在隐藏字段中并从那里获取。

当重复控制使很多combobox1和combobox2等成为可能时,我似乎无法全力以赴。

XPage未绑定到表单,因为所有项目都是即时计算的,然后丢弃。

做到这一点的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

JSON RPC服务无法与浏览器中进行的任何更改交互,请参阅https://www.intec.co.uk/json-rpc-service-component-tree-manipulation-openlog/。这可能是造成您问题的原因。

您可以通过在调用JSON RPC之前触发部分刷新(POST)来解决此问题。从理论上讲这可能行得通,因为组件树(XPage的服务器端映射)将由partialRefreshPost更新,而更新将由JSON RPC获取。我不知道,Restore View可能会选择XPage的版本而不是浏览器的版本。我从来没有调查过。

答案 1 :(得分:0)

自从我使用服务器Java脚本以来已经有一段时间了,我一直在用ActionListeners进行托管bean方式。如果用户界面中有数据,那么可以避免服务器端处理,而是在客户端进行处理吗?

您还可以使用XSP.setSubmittedValue之类的DOM XSP对象将一个键值对与您的发布请求一起发送到服务器端,您只能有一个...可以是JSON或您设置的任何其他值到客户端javascript。

答案 2 :(得分:0)

我想出了办法。如果有人想要该代码,请告诉我,我会提供。