0

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

    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;
        }
    });

谢谢。

4

1 回答 1

0

你可以像这样得到它:

 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(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;
        }
    });

我希望这有帮助

于 2013-06-26T17:41:39.520 回答