我们一直在GXT网格中使用CheckBoxSelectionModel。我们想要检查和禁用某行的特定复选框,也就是说,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> </div>";
} else { // others case
return "<div class=\"x-grid3-row-checker\"> </div>";
}
}
});
columnConfigs.add(checkBoxColumn);
我们已尝试使用此link建议的上述代码,但这会隐藏不是我们需要的复选框。
不知道是否还有其他更正确的方法来禁用CheckBoxSelectionModel的复选框?
感谢任何帮助。
答案 0 :(得分:-1)
CheckBoxSelectionModel sm具有布尔锁定属性,该属性采用一个参数。因此,在渲染器中设置您想要的值;
DOC: 如果为True,则锁定选择模型。锁定后,将禁用所有选择更改。 @param锁定为true以锁定
sm.setLocked(true)
或sm.setLocked(false)