Как собрать выбранные значения dijit / form / combobox в Repeat Control - PullRequest
0 голосов
/ 20 ноября 2018

XPage используется для отображения количества набранных человеком баллов и количества оставшихся баллов (см. Ниже).

У меня есть повторный элемент управления, который получает коллекцию документов, соответствующих определенным критериям.,Последний столбец в элементе управления содержит 5 цифр / форму / комбинированные списки, которые отображаются или скрываются в соответствии с количеством полей в каждом документе, содержащем данные.

Макет содержит подарочные карты на определенное количество баллов., и человек может выбрать, сколько из каждой подарочной карты они хотят.например.Компания доступна в значениях очков Требуемое количество Запрашиваемое количество

В столбце Запрашиваемое количество содержится цифра / форма / выпадающие списки.Поскольку человек выбирает значения в флажке, я хочу, чтобы количество оставшихся точек было пересчитано.

Событие onChange для функции digit / form / comboboxes вызывает функцию в сценарии вывода, которая вызывает RPC, который вTurn вызывает функцию SSJS.Функция SSJS циклически просматривает документы, отображаемые при повторном управлении, собирая информацию о точках, требуемых.Я тогда хотел, чтобы это также захватило Запрашиваемое количество.Из предыдущего сообщения я понимаю, что из-за способа отображения цифры / формы / поля я могу получить значение только с помощью CSJS с dijit.byId и, возможно, поместив значение в скрытое поле и получив его оттуда.

Кажется, я не могу обернуться вокруг того, как я это сделаю, когда повторный контроль позволит создать множество combobox1, combobox2 и т. Д.

XPage не привязан кформа, потому что все предметы просто рассчитываются на лету, а затем отбрасываются.

Каков наилучший способ сделать это?

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Прошло много времени с тех пор, как я работал с серверным Java-скриптом, я делал это управляемым образом с помощью ActionListeners.Если у вас есть данные в пользовательском интерфейсе, то можете ли вы избежать обработки на стороне сервера и сделать это на стороне клиента?

Вы также можете использовать объект DOM XSP, такой как XSP.setSubmittedValue, чтобы пара ключей и значений отправлялась вместе с вашим запросом на отправку на серверную сторону, вы можете иметь только одно ... это может быть JSON или любое другое значениеВы устанавливаете его со стороны клиента на JavaScript.

0 голосов
/ 07 декабря 2018

Я понял, как это сделать.Если кому-то понадобится код, дайте мне знать, и я предоставлю его.

0 голосов
/ 20 ноября 2018

Служба JSON RPC не может взаимодействовать с любыми изменениями, внесенными в браузер, см. https://www.intec.co.uk/json-rpc-service-component-tree-manipulation-openlog/. Это может быть причиной ваших проблем.

Вы можете обойти это, запустив частичное обновление (POST) перед вызовом JSON RPC.Теоретически это может сработать, потому что дерево компонентов (серверная карта XPage) будет обновляться с помощьюpartalRefreshPost, а обновления - с помощью JSON RPC.Впрочем, вполне возможно, что Restore View подберет версию XPage, отличную от версии для браузера, я не знаю.Я никогда не исследовал это.

...