Я работаю над большим, всемирным приложением, которое включает в себя доступ из областей с низкой пропускной способностью. Таким образом, я хочу использовать минимум SSJS или частичное обновление для всех сложных операций hide/when. Вот то, что я до сих пор для простого «скрытия/когда»:Как мы можем использовать только клиентский скрипт для «hide/whens»?
- Да/Нет радио кнопки, с CSJS, чтобы показать панель («Да») или скрыть панель («Нет») ,
- Панель имеет форму Table внутри нее, а значения отображаются или скрыты, как показано в примере # 1.
В onClientLoad в XPage, в следующий код запускается:
// "getRadioValue" is a simple script to return the value of a radio button var v_value = getRadioValue("#{id:radioButton}"); v_div = '#{javascript:getClientId("radioButtonPanel")}'; // show or hide div simply use dojo to change the display of the panel if (v_value == 'Yes') { showDiv(v_div); } else { hideDiv(v_div); };
Для нового документа, сценарий onClientLoad скроет "radioButtonPanel" успешно. Изменение переключателя на «Да» покажет radioButtonPanel, так же, как нажатие «Нет» скроет его. Он отлично работает! :-)
После того, как документ сохранен и вновь открыт в режиме чтения, событие onClientLoad CSJS должно прочитать сохраненное значение в документе и принять решение о отображении панели или нет. Когда документ открывается в режиме редактирования, onClientLoad запускается, считывает значение radioButton и успешно показывает или скрывает панель.
Это то, что я пытался до сих пор, чтобы заставить его работать в режиме чтения:
- В CSJS, используя "# {JavaScript: currentDocument.getItemValueString ('RadioButton'}", чтобы получить значение,
- Делая некоторые вычисления в «оказанных» или «видимых» свойствах, но это SSJS и, если скрыто, предотвращает любого из «показать/hideDiv» CSJS изменения видимости стиля.
Добавление старомодного " div ", чтобы вычислить стиль (это то, что я делал до XPages), но поскольку я больше не могу делать pass-thru html, я не могу получить CSJS-calc для стиля. В идеале, я могу сделать что-то вроде этого:
<div id="radioButtonPanel" style="<ComputedValue>">
Где ComputedValue бы прочитать заднюю торцевую ценность документа, и принять решение не добавлять ничего или «отображения: ни один».
Обратите внимание, что я не хочу использовать viewScopes, так как для этой длинной формы потребуется много из них для всех остальных hide/when.
Есть ли способ сделать это 100% CSJS? Я чувствую, что я очень близко, но мне интересно, есть ли что-то, чего я просто пропустил в этом процессе.
Вы упомянули, что вы не можете сделать pass-thru ... почему бы и нет? –