【问题标题】:ZKoss issue with selectedItem of listbox列表框的 selectedItem 的 ZKoss 问题
【发布时间】:2015-03-07 02:33:30
【问题描述】:

这是我的代码:

    <listbox id="boxFirma" multiple="true"
        visible="@load(vm.opzioneSelezionata eq 'firma' ? 'true' : 'false')"
        checkmark="true" width="400px" height="200px"
        model="@bind(vm.opzioniFirma)" 
        selectedItems="@bind(vm.pickedItemSet)">
        <template name="model" var="item"
            status="s">
            <listitem selected="@bind(item.preSelected)">
                <listcell label="@bind(item.valore)" />
            </listitem>

        </template>
    </listbox> <button label="Salva" style="margin-top:10px" disabled="@load(empty vm.pickedUser)"
onClick="@command('salvaPersonalizzazioneUtente')" />

问题是当我按下按钮 Salva 时,我只进入了 vm.pickedItemSet 用户刚刚选择的项目,但没有关于预选项目 -> 'listitem selected="@bind(item.preSelected)" ' 。因此,如果在视图模型上预先选择了 2 个项目并且用户单击了一个,我只会单击一个,而我想要所有三个。我该如何解决这个问题?

【问题讨论】:

  • 改进了格式、缩进。改进措辞。

标签: mvvm listbox zk


【解决方案1】:

我认为您的问题在于使用域对象的“预选”属性。没有您的视图模型,很难理解您想要实现的目标。

不过,让我试着对你说:

作为一个例子,试试这个视图模型(“SignOption”是一个具有单个成员 valore 的 bean)。 “Salva”按钮将打印出一组选定的列表项。

 // a bunch of imports

public class MultiSelectionVM {

    private String  opzioneSelezionata = "firma";
    private Set<SignOption> opzioniFirma = new HashSet<SignOption>();
    private Set<SignOption> pickedItemSet = new HashSet<SignOption>();
    private boolean pickedUser = true;

    @Init
    public void init(){
        SignOption opt1 = new SignOption();
        opt1.setValore("opt1");
        SignOption opt2 = new SignOption();
        opt2.setValore("opt2");
        SignOption opt3 = new SignOption();
        opt3.setValore("opt3");

        //Init list model
        opzioniFirma.add(opt1);
        opzioniFirma.add(opt2);
        opzioniFirma.add(opt3);

        //Init selected Items 
        pickedItemSet.add(opt2);

    }

    @Command
    public void salvaPersonalizzazioneUtente(){
        System.out.println(pickedItemSet);
    }


    //Getters and setter for all members
}

希望这会有所帮助!

【讨论】:

  • 这完美!非常感谢您。不幸的是,由于我的声誉低下,我不能给你投票。无论如何,对于管理员来说,这可以标记为已解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
相关资源
最近更新 更多