0

我有一个检查组,在选择组中的一个复选框时,我想获取选中/选中复选框的数量。
通过下面的代码,我可以获得选定数量的复选框,但是在取消选中或删除选择时,我看到它仍然被选中。
示例:我选择了 2,现在我选择了 2 个字符串。
现在我取消选择一个复选框,即使现在我选择了 2 个字符串。虽然我希望检查一个字符串。

代码如下:

final CheckGroup myGroup = new CheckGroup("group", new ArrayList()) {
    @Override
    protected Collection<String> convertValue(String[] values) throws ConversionException {
        Collection<String> myCollection = super.convertValue(values);
        checkedString.addAll(myCollection);
        HashMap<Integer, String> myTempList = new HashMap<Integer, String>();
        for (String myString : checkedString) {
            myTempList.put(myString.getSystemId(), myString);
        }
        checkedString.clear();
        for (Entry<Integer, String> myEntry : myTempList.entrySet()) {
            checkedString.add(myEntry.getValue());
        }
        return checkedString;
    }

    @Override
    protected void onSelectionChanged(Collection newSelection) {
        newSelection = checkedString;
    }

    @Override
    protected boolean wantOnSelectionChangedNotifications() {
        return true;
    }
};


add(myForm);
myForm.add(myGroup);
4

1 回答 1

0

向组件添加行为

sampleChckbox.add(new AjaxFormComponentUpdatingBehavior("onclick"){
  @Override
  protected void onUpdate(AjaxRequestTarget target) {
 //perform your operation here       
}

此方法将在“onClick”事件上触发 Ajax 请求;这将在运行时更新您的后端逻辑

编辑 :

要非常具体到 CheckGroup 类,请使用 AjaxFormChoiceComponentUpdatingBehavior

AjaxFormChoiceComponentUpdatingBehavior是与CheckGroups 和RadioGroups 一起使用的行为。如果你在事件中使用了 an AjaxFormComponentUpdatingBehavioronchange你会在 IE 中遇到这个错误AjaxFormChoiceComponentUpdatingBehavior正确处理此问题,onclick事件处理程序添加到Check.CheckGroup

作为旁注,伊戈尔在那封邮件中所说的是CheckBox可以替换为AjaxCheckBox,而不是Check。正如消息来源所显示的那样,AjaxCheckBox它只不过是 CheckBoxwith 的一个便利子类。AjaxFormComponentUpdatingBehavior("onclick")

于 2014-07-08T10:30:25.110 回答