如何在启用了多个选择的情况下限制取消选择smartgwt SelectItem中的所有项目?

时间:2015-03-31 10:31:33

标签: gwt smartgwt

我正在使用带有配置的SelectItem组件:

SelectItem selectItem = new SelectItem("SelectItem");
selectItem.setShowTitle(false);
selectItem.setMultiple(true);
selectItem.setMultipleValueSeparator(",");
selectItem.setDefaultValue("1");

现在我想限制用户取消选择所有项目,必须至少选择一个项目。

有人可以帮我限制吗?

1 个答案:

答案 0 :(得分:0)

Hy Suresh,

这是快速修复!

在我的示例中,您需要使用第二个SelectItem来保存并FocusHandler

我的例子:

LinkedHashMap<String, String> valueMap = new LinkedHashMap<>();
    valueMap.put("a", "a");
    valueMap.put("b", "b");
    valueMap.put("c", "c");
    valueMap.put("d", "d");
    valueMap.put("e", "e");
    valueMap.put("f", "f");

    final SelectItem saveSelectedItem = new SelectItem();
    saveSelectedItem.setMultiple(true);
    saveSelectedItem.setValueMap(valueMap);

    final SelectItem selectedItem = new SelectItem();
    selectedItem.setDefaultValue("Default");
    selectedItem.setMultiple(true);
    selectedItem.setTitle("Select: ");
    selectedItem.setValueMap(valueMap);
    selectedItem.addFocusHandler(new FocusHandler() {

        @Override
        public void onFocus(FocusEvent event) {
            if(selectedItem.getValue() == null){
                selectedItem.setValue(saveSelectedItem.getValue());
            }else {
                saveSelectedItem.setValue(selectedItem.getValue());
            }               
        }
    });

因此用户可以取消/选择所有值,但是值将设置为SelectItem字段中的最后一个选定值。

希望int有帮助。

关注Jakov A.