Использовать viewScope например viewScope.selectItems
переменная.
- Используйте этот viewScope как список selectItems.
- Добавьте к нему начальные значения.
- Позже, добавить дополнительный новый элемент в этой viewScope, а затем он появится в списке пункт выбора COMBOBOX в.
Это рабочий пример:
<xp:comboBox
id="comboBox1"
value="#{sessionScope.test}">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:
if (!viewScope.selectItems) {
viewScope.selectItems = ["your","initial","values"];
}
return viewScope.selectItems;}]]></xp:this.value>
</xp:selectItems>
</xp:comboBox>
<xp:inputText
id="inputText1"
value="#{viewScope.newItem}">
</xp:inputText>
<xp:button
value="Add to selectItems"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:
viewScope.selectItems.add(viewScope.newItem);
viewScope.newItem = "";
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
Если я использую applicationScope значения будут оставаться там навсегда? Я хочу сохранить эти значения. Спасибо. –
Не совсем надолго. До тех пор, пока длится applicationScope. Если вы перезапустите http-задачу или сервер или вы измените код, приложение applicationScope будет сброшено. Если вы хотите сохранить значения навсегда, вам необходимо сохранить их, например. Документ Notes. –
@ Flopet17 Если у вас есть вид со столбцом, содержащим все сохраненные значения для этого поля, можно использовать формулу DbColumn для создания списка selectItems. В качестве альтернативы вы можете подумать о создании конфигурационных документов для хранения возможных значений, а не для привязки переменных. –