Select2-to-Tree на lxp: istbox, но не может получить выбранные значения через SS JS? - PullRequest
0 голосов
/ 13 января 2020

У меня подключен плагин 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
        })      
    }
)
...