选中checkboxSelectionModel中的复选框

时间:2011-04-01 12:27:42

标签: java eclipse gwt gwt-ext

所以..我有一个checkboxSelectionGrid,就像这个链接中的那个:http://gwt-ext.com/demo/#checkboxSelectionGrid
我想选择同一家公司的多个邮政文件。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

嗯,关于你是否想要预先选择具有相同公司名称的几个,或者事后对它们做些什么,有点不清楚,但这就是我去做的方式。也许它会对某些人有用。

注意我使用的是可逆费用,而不是链接代码的公司,但概念是相同的。     私人GridEx费用;

private GridEx<BeanModel> fees;
.
.
.
fees.getStore().add(feeItems); // this finishes adding all the items.
List<BeanModel> preselectedItems = new ArrayList<BeanModel>();
for (BeanModel feeItem : (fees.getStore() != null && fees.getStore().getModels() != null) ? fees.getStore().getModels() : Collections.<BeanModel>emptyList()) {
    if (feeItem.<ReversibleFee>getBean().isSelected()) {
        preselectedItems.add(feeItem);
    }
}
fees.getSelectionModel().select(preselectedItems, false);

如果您想在每次选中复选框时对数据执行某些操作,您可以这样做:

fees.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<BeanModel>() {
    @Override
    public void selectionChanged(SelectionChangedEvent<BeanModel> beanModelSelectionChangedEvent) {
        feeTotal.setValue(0);
        for (BeanModel anItem : fees.getStore().getModels()) {
            if (beanModelSelectionChangedEvent.getSelection().contains(anItem)) {
                anItem.<ReversibleFee>getBean().setSelected(true);
                feeTotal.setValue(feeTotal.nullSafeGetValue() + Math.abs(anItem.<ReversibleFee>getBean().getAmount()));
            } else {
                anItem.<ReversibleFee>getBean().setSelected(false);
            }

        }
    }
});

最后,如果你想在提交后对数据做些什么,你可以这样做:

for (BeanModel beanModel : fees.getSelectionModel().getSelectedItems()) {
    beanModel.<ReversibleFee>getBean().setAmount(788);    
}