2011-04-01 35 views

回答

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);  
}