Search code examples
javagwtgridgxt

How to get values of grid in GXT?


List<ColumnConfig<Vo, ?>> l = new ArrayList<ColumnConfig<Vo, ?>>();
    l.add(numColumn);
    l.add(subjectColumn);
    l.add(nameColumn);
    l.add(dateColumn);

    ColumnModel<Vo> cm = new ColumnModel<Vo>(l);
    Grid<Vo> grid = new Grid<Vo>(store, cm) {
        @Override
        protected void onAfterFirstAttach() {
            super.onAfterFirstAttach();
            Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                @Override
                public void execute() {
                    loader.load();

                }
            });
        }
    };

    grid.addCellClickHandler(new CellClickHandler() {

        @Override
        public void onCellClick(CellClickEvent event) {
            // TODO Auto-generated method stub

            contentPanel.clear();
            contentPanel.add(readPanel(contentPanel));

        }
    });`

When I click on cell, I want to get the data in the cell corresponding. The current state, When you click on of the cell, switch to a different view of the structure. And I succeeded to connect to the database. However, I want to get the data of cell or row. How to get values of grid in GXT? (example Site:http://www.sencha.com/examples/#ExamplePlace:paginggrid)


Solution

  • GXT Grid works with data stores, more precisely it is a ListStore I think. So that, to get Values of the grid either use that store by grid.getStore(), and after that you basically have a collection of the objects in your grid (grid.getStore().getAll() return List), or you can use Grid's SelectionModel to deal with the grid selected item like this:

    grid.getSelectionModel().addSelectionChangedHandler(new SelectionChangedHandler<Vo>() {
    
            @Override
            public void onSelectionChanged(SelectionChangedEvent<Vo> event) {
                if (grid.getSelectionModel().getSelectedItem() != null) {
                    // Do whatever you want
                } else {
    
                }
            }
        });
    

    I hope it will help.