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

How to Collect dijit/form/combobox Selected Values in Repeat Control

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

我有一个重复控件,它获取满足特定条件的文档集合。控件中的最后一列包含 5 digit/form/comboboxes,根据每个文档上包含数据的字段数显示或隐藏。

布局包含价值一定点数的礼品卡,用户可以select每张礼品卡想要多少张。例如。 公司可用点数要求数量

请求数量列包含 digit/form/comboboxes。作为复选框中人 select 的值,我希望重新计算剩余的点数。

digit/form/comboboxes 的 onChange 事件调用输出脚本中的函数,该函数调用 RPC,而 RPC 又调用 SSJS 函数。 SSJS 函数循环显示在重复控件中的文档,收集点所需的信息。然后我希望它也能获取请求的数量。我从之前的帖子中了解到,由于 digit/form/combox 的呈现方式,我只能使用带有 dijit.byId 的 CSJS 获取值,并且可能将值放在隐藏字段中并从那里检索它。

当 repeat 控件使可能有许多 combobox1 和 combobox2 等时,我似乎无法理解我将如何执行此操作

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

最好的方法是什么?

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

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

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

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

我知道怎么做了。如果有人想要代码,请告诉我,我会提供。