2013-02-26 3 views
0

В моем простом XPage У меня есть флажок группа с формульными элементами:XPage - Как получить правильное значение группы флажков?

document1.getValue("cHumanNames") + "|" + document1.getValue("cUserID") 

списки cHumanNames и cUserID все в порядке, так что я вижу и проверить John Smith и представить john234. По мере необходимости.

Мне было предложено отобразить в отдельном списке проверенные имена (для управления ...), и, похоже, я не могу вернуться с userID. Там должен быть способ, чтобы выбрать значение, используемое для отображения:

getcomponent("checkBoxGroup1").?????? 

Конечно, если я использую getValue(), я получаю список идентификаторов, но мне нужны имена. Где это значение?

+0

Вы хотите значения на серверном или клиентском JavaScript? – Naveen

ответ

0

На стороне сервера нет простого способа получить отображаемые значения - выбранное значение сохраняется только в качестве псевдонима, а остальное используется, вероятно, только для рендеринга. Вы можете попытаться добавить дополнительный слой абстракции и создать карту, которая будет предоставлять значения для ваших флажков и вашего списка. Список будет просто использовать карту для перевода отмеченных значений в отображаемые значения.

1

Когда смотришь на сгенерированный источник HTML для CheckBox группы вы найдете что-то вроде этого:

<label><input name="view:_id1:checkBoxGroup1" value="john234" type="checkbox"> John Smith</input></label>

В основном этикетка John Smith никогда не отправляется в источник данных. Если вы ищете реализацию SSJS, то ответ Sven Hasselbach будет работать. Если вы ищете на стороне клиента реализации JavaScript, то ниже фрагмент кода должен работать:

function getCheckedValues() { 
    var checkedValues = new Array(); 
    dojo.query("input[name=\"#{id:checkBoxGroup1}\"]").forEach(
     function(node) { 
      if (node.checked) { 
       checkedValues.push(node.parentNode.innerText); 
      } 
     } 
    ); 
    return checkedValues.join(", "); 
} 

выше фрагмент кода написана для CheckBox группы с именем checkBoxGroup1.