如何防止用户更改EditorGrid中的选定行

时间:2012-03-27 13:45:46

标签: gxt

有没有办法阻止用户更改所选行?我正在寻找类似selectedRowChanging事件的东西,它会阻止或允许用户选择新行。

2 个答案:

答案 0 :(得分:1)

有点取决于你如何设置......

我有一个Grid,我已经添加了一个CheckColumnConfig和RowEditor它实际上是一个进入某些DataBase表的窗口。用户可以修改“除”键列之外的任何列。用户还可以添加新行。我定义了2个ColumConfigs。 EditColumnConfig禁用了各种文件(即if(column = keyColumn){textField.disabled();} AddColumnConfig已启用所有列。

现在,如果用户单击行上的复选框并单击“添加”按钮,则使用addColumnModel重新配置网格:rowDataGrid.reconfigure(listStore,addStateColumnModel);当用户单击RowEditor“保存”按钮时,我将网格配置为:rowDataGrid.reconfigure(listStore,editStateColumnModel);

我想你可以定义一个不可编辑的ColumnConfig并将其交换进去。 (或者......捕获RowEditor的'BeforeEdit'事件并禁用行)。

无论如何,这是一个想法...希望这会有所帮助。

答案 1 :(得分:0)

grid.addListener(Events.BeforeEdit, new Listener<GridEvent<MyModel>>(){

    @Override
        public void handleEvent(GridEvent<MyModel> be) {
            //This retrieves the model being edited.
            MyModel model = be.getModel();
            if (I do not want to edit this model){
               be.setCancelled(true);
            }
        }           
});