How to get the row index of selected checkbox on grid GXT

僤鯓⒐⒋嵵緔 提交于 2019-12-12 03:41:59

问题


I am working with GXT (2.2.5) and need to get the row index of chenged checkbox on the grid. What i am doing is to create a grid and apply a GridCellRender to show a checkBox in first column, then when any checkBox change their value (listener at the OnChange event), the row index of changed checkbox must be taken. This is a part of my code by the moment:

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

Thanks.


回答1:


You can get it like this:

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

(note that you must convert to final your store and model variables)

Or maybe this:

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

I hope this helps



来源:https://stackoverflow.com/questions/17317460/how-to-get-the-row-index-of-selected-checkbox-on-grid-gxt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!