2015-06-23 57 views
0

Frineds所有記錄,GWT-在celltable列checkboxcell選擇我要選擇顯示記錄

我使用celltable他們是我把表頭中選擇所有記錄選項一列,還我使用尋呼機在一頁中顯示最多15條記錄。當我點擊selectall選項時,它將選擇所有記錄當前頁面2,3,4,....簡而言之,所有記錄被選中(如果總記錄是100,則選擇100記錄)。所以我只想選擇顯示網頁記錄並不是所有的... 參考代碼 -

 final SelectionModel <GenericFirewallRule> selectionModel = 
new MultiSelectionModel <GenericFirewallRule>(); 
      deleteRuleCellTable.setSelectionModel(selectionModel,DefaultSelectionEventManager. <GenericFirewallRule> createCheckboxManager()); 
    //  CheckboxCell cbForHeader = new CheckboxCell(); 

    Column < GenericFirewallRule, Boolean > checkColumn = new Column < GenericFirewallRule, Boolean > (
    new CheckboxCell()) {@Override 
     public Boolean getValue(GenericFirewallRule object) { 

      if(object == null || object.getRuleNumber() == null){ 
        return null; 
      }else{ 
      if (selectionModel.isSelected(object)) { 
       if (!ruleListForDelete.contains(object)) { 
        ruleListForDelete.add(object); 
       } 
      } else { 
       if (ruleListForDelete.contains(object)) { 
        ruleListForDelete.remove(object); 
       } 
      } 

      System.out.println("ruleListForDelete : " + ruleListForDelete); 
      return selectionModel.isSelected(object); 
      } 
     } 
    }; 

請給我建議的解決方案....

+0

請幫我... –

回答

0

你可以做這樣的事情:

selectAllHeader = new Header<Boolean>(new HeaderCheckbox()) { 

    @Override 
    public Boolean getValue() { 
     for (T item : getVisibleItems()) { 
      if (!getSelectionModel().isSelected(item)) { 
       return false; 
      } 
     } 
     return getVisibleItems().size() > 0; 
    } 
}; 

selectAllHeader.setUpdater(new ValueUpdater<Boolean>() { 

    @Override 
    public void update(Boolean value) { 
     for (T object : getVisibleItems()) { 
      getSelectionModel().setSelected(object, value); 
     } 
    } 

}); 

public class HeaderCheckbox extends CheckboxCell { 

    private final SafeHtml INPUT_CHECKED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\" checked/>"); 
    private final SafeHtml INPUT_UNCHECKED = SafeHtmlUtils.fromSafeConstant("<input type=\"checkbox\" tabindex=\"-1\"/>"); 

    public HeaderCheckbox() { 
    } 

    @Override 
    public void render(Context context, Boolean value, SafeHtmlBuilder sb) { 
     if (value != null && value) { 
     sb.append(INPUT_CHECKED); 
     } else { 
     sb.append(INPUT_UNCHECKED); 
     } 
    } 
} 
+0

謝謝我會盡力回覆.. –

+0

不能正常工作n新的HeaderCheckbox()沒有定義 –

+0

我只是想表明你可以使用'getVisibleItems()'來解決你的問題。如果您想按原樣使用它,我爲您添加了HeaderCheckbox類代碼。 –