2016-11-11 64 views
0

我們一直在GXT的網格中使用CheckBoxSelectionModel。我們希望有一個特別的複選框被選中和禁用,也就是CheckBoxSelectionModel的複選框將被選中並變灰,用戶不能選擇或取消選擇它。Gxt:如何禁用CheckBoxSelectionModel複選框

CheckBoxSelectionModel sm = new CheckBoxSelectionModel<ModelData>(); 
ColumnConfig checkBoxColumn = sm.getColumn(); 
checkBoxColumn.setStyle("vertical-align: middle;"); 
checkBoxColumn.setRenderer(new GridCellRenderer<ModelData>() 
{ 
    @Override 
    public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) 
    { 
     // if the code property of model is 1 then select and disable it 
     if (model.get("code").equals(1)) 
     { 
      sm.select((BaseModel) model, true); 
      return "<div>&#160;</div>"; 
     } else { // others case 
      return "<div class=\"x-grid3-row-checker\">&#160;</div>"; 
     } 
    } 
}); 
columnConfigs.add(checkBoxColumn); 

我們已經嘗試了上面的代碼從這個link建議,但是這將隱藏複選框,這不是我們所需要的。

不知道是否有其他更正確的方法來禁用CheckBoxSelectionModel的複選框?

任何幫助表示讚賞。

回答

-1

CheckBoxSelectionModel sm具有帶一個參數的布爾鎖定屬性。所以在渲染器中設置你想要的任何值;

DOC: 正確鎖定選擇模型。鎖定時,所有選擇更改均被禁用。 @參數鎖定真正鎖定

sm.setLocked(true)sm.setLocked(false)