Gxt:如何禁用CheckBoxSelectionModel的复选框

时间:2016-11-11 08:00:27

标签: javascript extjs checkbox gwt gxt

我们一直在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>&#160;</div>";
        } else { // others case
            return "<div class=\"x-grid3-row-checker\">&#160;</div>";
        }
    }
});
columnConfigs.add(checkBoxColumn);

我们已尝试使用此link建议的上述代码,但这会隐藏不是我们需要的复选框。

不知道是否还有其他更正确的方法来禁用CheckBoxSelectionModel的复选框?

感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

CheckBoxSelectionModel sm具有布尔锁定属性,该属性采用一个参数。因此,在渲染器中设置您想要的值;

DOC: 如果为True,则锁定选择模型。锁定后,将禁用所有选择更改。 @param锁定为true以锁定

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