如何在启用多项选择的情况下限制取消选择 smartgwt SelectItem 中的所有项目?
How to Restrict deselecting all items in smartgwt SelectItem with multiple selection enabled?
我正在使用带有配置的 SelectItem 组件:
SelectItem selectItem = new SelectItem("SelectItem");
selectItem.setShowTitle(false);
selectItem.setMultiple(true);
selectItem.setMultipleValueSeparator(",");
selectItem.setDefaultValue("1");
现在我想限制用户取消选择所有项目,至少必须选择一个项目。
谁能帮我看看怎么限制?
海苏雷什,
这里是快速修复!
在我的示例中,您需要使用第二个 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());
}
}
});
因此用户将能够 un/select 所有值,但值将设置为在 SelectItem 字段中最后选择的值。
希望 int 有所帮助。
问候 Jakov A.
我正在使用带有配置的 SelectItem 组件:
SelectItem selectItem = new SelectItem("SelectItem");
selectItem.setShowTitle(false);
selectItem.setMultiple(true);
selectItem.setMultipleValueSeparator(",");
selectItem.setDefaultValue("1");
现在我想限制用户取消选择所有项目,至少必须选择一个项目。
谁能帮我看看怎么限制?
海苏雷什,
这里是快速修复!
在我的示例中,您需要使用第二个 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());
}
}
});
因此用户将能够 un/select 所有值,但值将设置为在 SelectItem 字段中最后选择的值。
希望 int 有所帮助。
问候 Jakov A.