У меня подключен плагин Select2-to-tree https://github.com/clivezhg/select2-to-tree для моего списка xp: *: 1004 *
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[$(document).ready(function(){
$.ajax({
url: "api.xsp/application?method=clientExecutives",
method: "GET",
success: function(response){
x$("#{id:lbTest}").select2ToTree({treeData: {dataArr: eval(response)}});
}, error : function(req, err) {
console.log(err);
}
});
});
]]></xp:this.value>
</xp:scriptBlock>
Вот как я настраиваю список:
<xp:listBox
id="lbTest"
value="#{sessionScope.clients}"
multiple="true">
</xp:listBox>
Когда я пытаюсь прочитать значения через SS JS, изначально все идет хорошо:
<xp:button
value="Label"
id="button2">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="norefresh">
<xp:this.action><![CDATA[#{javascript:print("clients: " + sessionScope.get("clients"))}]]></xp:this.action>
</xp:eventHandler></xp:button>
Но как только я выбираю значение, кажется, что код зависает, и я не получаю оператор печати в консоли. Примечание. Я не получаю никаких сообщений об ошибках или предупреждений.
Однако, когда я читаю выбранные значения в списке через cs js, я получаю их:
<xp:button
value="Label"
id="button3">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[alert("Selected value is: "+x$("#{id:lbTest}").select2("val"));]]></xp:this.script>
</xp:eventHandler></xp:button>
Что такое Я делаю неправильно?
или, возможно, я могу установить сессионную область с помощью cs js, когда выбор изменился для списка, но это потребовало бы дополнительного кодирования, которого я хотел бы избежать
$(document).ready(
function(){
x$("#{id:lbTest}").on("change", function(e) {
//ToDO set sessionscope from csjs
})
}
)