2016-11-11 38 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)