0

だから..私はこのリンクのようなcheckboxSelectionGridを持っています: http://gwt-ext.com/demo/#checkboxSelectionGrid
同じ会社で複数のポストテックスをすべて選択したいです。
それ、どうやったら出来るの?

4

1 に答える 1

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);    
}
于 2013-03-27T22:00:27.743 に答える