Вы можете использовать setSelectedValues()
метод компонента ListBox, и передать в массив, содержащий все значения списка, например, [ "Value1", "значение2", "value3"]. Поместите это в событие onChange этого флажка, с частичным обновлением списка, и это должно делать то, что вы хотите.
Если вы не хотите жестко кодировать значения списка в своем SSJS, а скорее вытащите доступные значения из списка, проверьте это XSnippet by Sven Hasselbach. Используя этот фрагмент, я привел пример ниже:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:checkBox text="Select All" id="checkBox1">
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="listBox1">
<xp:this.action>
<![CDATA[#{javascript:
//Get the listbox component
var listbox = getComponent('listBox1');
if (getComponent('checkBox1').getValue() == "true") {
//Checkbox is checked
//Get an iterator for the items in the listbox
var childrenList:java.util.ListIterator;
childrenList = listbox.getChildren().listIterator();
//Generate the array of items
var itemList = [];
while (childrenList.hasNext()) {
var child = childrenList.next();
itemList.push(child.getItemValue());
}
//Set the selectedValues of the listbox
listbox.setSelectedValues(itemList);
}else if(getComponent('checkBox1').getValue() == "false") {
//Checkbox is unchecked
//Set listbox to have no selections, empty array
listbox.setSelectedValues([]);
}
}]]>
</xp:this.action>
</xp:eventHandler>
</xp:checkBox>
<xp:br />
<xp:listBox id="listBox1" multiple="true" style="height:200px;width:150px">
<xp:selectItem itemLabel="value1" itemValue="value1"></xp:selectItem>
<xp:selectItem itemLabel="value2" itemValue="value2"></xp:selectItem>
<xp:selectItem itemLabel="value3" itemValue="value3"></xp:selectItem>
<xp:selectItem itemLabel="value4" itemValue="value4"></xp:selectItem>
<xp:selectItem itemLabel="value5" itemValue="value5"></xp:selectItem>
</xp:listBox>
</xp:view>
Это именно то, что я искал. Я делаю это для конечного пользователя. Скорее установите флажок, чтобы выбрать все элементы списка, а не вручную выбирать их (если их у вас их много) –