【问题标题】:checkbox not getting unchecked in wicket复选框没有在检票口中被取消选中
【发布时间】:2014-07-07 07:23:27
【问题描述】:

我有一个检查组,在选择组中的一个复选框时,我想获取选中/选中复选框的数量。
通过下面的代码,我可以获得选定数量的复选框,但是在取消选中或删除选择时,我看到它仍然被选中。
示例:我选择了 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);

【问题讨论】:

  • 我正在使用 wicket 1.4.19
  • onSelectionChanged 中没有您的代码。它应该做什么?
  • 我想获取 selectedOrders 的数量,但现在不需要。
  • 你的愿景是正确的,但你的方法是错误的。使用ajax实现onSelectionChanged方法。

标签: wicket wicketstuff


【解决方案1】:

为你的组件添加一个行为

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

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

编辑:

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

AjaxFormChoiceComponentUpdatingBehavior 是与CheckGroups 和RadioGroups 一起使用的行为。如果你在onchange 事件中使用AjaxFormComponentUpdatingBehavior,你会在IE 中遇到this bug . AjaxFormChoiceComponentUpdatingBehavior 正确处理此问题,adding onclick event handlersCheckGroup 中的每个 Checks。

作为旁注,伊戈尔在那封邮件中说,CheckBox 可以替换为AjaxCheckBox,而不是CheckAjaxCheckBox 只不过是CheckBox 的便利子类,带有AjaxFormComponentUpdatingBehavior("onclick"),如the sources 所示。

【讨论】:

  • 我没用过checkbox,我只用过CheckGroupSelector、CheckGroup
  • 请原谅;你有什么疑问?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多