Checkbox 如何在网格GXT上获取选中复选框的行索引

Checkbox 如何在网格GXT上获取选中复选框的行索引,checkbox,grid,onchange,gxt,Checkbox,Grid,Onchange,Gxt,我正在使用GXT(2.2.5),需要在网格上获取chenged复选框的行索引。我要做的是创建一个网格并应用GridCellRender在第一列中显示一个复选框,然后当任何复选框更改其值时(OnChange事件的侦听器),必须采用changed复选框的行索引。这是我目前代码的一部分: checkColumn.setRenderer(new GridCellRenderer() { @Override public Object render(ModelDat

我正在使用GXT(2.2.5),需要在网格上获取chenged复选框的行索引。我要做的是创建一个网格并应用GridCellRender在第一列中显示一个复选框,然后当任何复选框更改其值时(OnChange事件的侦听器),必须采用changed复选框的行索引。这是我目前代码的一部分:

    checkColumn.setRenderer(new GridCellRenderer() {
        @Override
        public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid gri) {
            final CheckBox check = new CheckBox();
            check.addListener(Events.OnChange, new Listener<BaseEvent>() {
                @Override
                public void handleEvent(BaseEvent be) {
                    //Here we get the row index
                }
            });
            return check;
        }
    });
checkColumn.setRenderer(新的GridCellRenderer(){
@凌驾
公共对象呈现(ModelData模型、字符串属性、ColumnData配置、int-rowIndex、int-colIndex、ListStore存储、网格gri){
最终复选框检查=新复选框();
check.addListener(Events.OnChange,new Listener()){
@凌驾
公共无效handleEvent(BaseEvent be){
//这里我们得到了行索引
}
});
退货检查;
}
});

谢谢。

您可以这样得到:

 checkColumn.setRenderer(new GridCellRenderer() {
        @Override
        public Object render(final ModelData model, String property, ColumnData config, int rowIndex, int colIndex, final ListStore store, Grid gri) {
            final CheckBox check = new CheckBox();
            check.addListener(Events.OnChange, new Listener<BaseEvent>() {
                @Override
                public void handleEvent(BaseEvent be) {
                    //////////
                    int indx = store.indexOf(model);
                    //////////

                }
            });
            return check;
        }
    });
checkColumn.setRenderer(新的GridCellRenderer(){
@凌驾
公共对象呈现(最终模型数据模型、字符串属性、ColumnData配置、int-rowIndex、int-colIndex、最终列表存储、网格gri){
最终复选框检查=新复选框();
check.addListener(Events.OnChange,new Listener()){
@凌驾
公共无效handleEvent(BaseEvent be){
//////////
int indx=store.indexOf(model);
//////////
}
});
退货检查;
}
});
(请注意,必须将存储和模型变量转换为最终变量)

或者可能是这样:

checkColumn.setRenderer(new GridCellRenderer() {
        @Override
        public Object render(final ModelData model, String property, ColumnData config, int rowIndex, int colIndex, final ListStore store, Grid gri) {

            final CheckBox check = new CheckBox();
            check.setData("indx", store.indexOf(model));

            check.addListener(Events.OnChange, new Listener<BaseEvent>() {
                @Override
                public void handleEvent(BaseEvent be) {
                    //////////
                    int indx = ((CheckBox) be.getSource()).getData("indx");
                    //////////

                }
            });
            return check;
        }
    });
checkColumn.setRenderer(新的GridCellRenderer(){
@凌驾
公共对象呈现(最终模型数据模型、字符串属性、ColumnData配置、int-rowIndex、int-colIndex、最终列表存储、网格gri){
最终复选框检查=新复选框();
check.setData(“indx”,store.indexOf(model));
check.addListener(Events.OnChange,new Listener()){
@凌驾
公共无效handleEvent(BaseEvent be){
//////////
int indx=((复选框)be.getSource()).getData(“indx”);
//////////
}
});
退货检查;
}
});

我希望这有帮助

它不起作用:\n我不知道它是什么,但我只是使用gridCellRenderer为每一行添加复选框。我的网格使用一个名为Facultad(我创建的)的对象。请注意,由于变量类型的原因,在调试时您可能会看到存储和模型变量为null。。。但是该方法必须返回indexDoes类似的内容对您有帮助吗?:grid.getSelectionModel().getSelectedItem();该行与选择一起工作,但当我激活或取消激活复选框时,该行未被选中,只有复选框。这就是我不能得到索引的原因。