2010-12-15 10 views
5

Estoy tratando de agregar un oyente de selección a mi cuadrícula GXT (Ext GWT), pero parece que no puedo disparar. He intentado muchas variaciones de este sin suerte:¿Agregar escucha de selección a GXT Grid?

myGrid.addListener(Events.Select, new SelectionListener<ComponentEvent>() { 

    @Override 
    public void componentSelected(ComponentEvent ce) { 
     System.out.println("selected"); 
    } 
}); 

Respuesta

1

Probar:

myGrid.addListener(Events.Select, new Listener<GridEvent<ModelData>>() { 
    @Override public void handleEvent(GridEvent<ModelData> be) { 
     System.out.println("selected"); 
    } 
}); 

Sustitución ModelData con el tipo de modelo si es necesario.

+0

No, eso tampoco se disparará. – thedude19

+0

Es posible que su cuadrícula no esté capturando el evento seleccionado. Cuando reemplaza eventos. Seleccione con Events.DoubleClick y haga doble clic en una fila ¿funciona? –

11
 myGrid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<ModelData>() { 

     @Override 
     public void selectionChanged(SelectionChangedEvent<ModelData> se) { 
      ... 

     } 
    }); 

Prueba este código

+1

Muy útil respuesta. _Nota: _ este manejador se dispara incluso si sucede la suselección ('Grid.getSelectionModel(). AddSelectionChangedHandler') – Serg

1

parecía haber encontrado una solución para esto:

myGrid.addListener(Events.OnClick, new Listener<ComponentEvent>() { 

    @Override 
    public void handleEvent(ComponentEvent ce) { 
     // Handle the grid event 
    } 
}); 

Parece que sólo hay que ser genéricos respecto, entonces se puede comprobar y emitir su ComponentEvent a un GridEvent.

2

Para actualizar esta respuesta a GXT v3

grid.getSelectionModel().addSelectionChangedHandler(
    new SelectionChangedHandler<ModelData>(){ 

@Override 
public void onSelectionChanged(SelectionChangedEvent<ModelData> event) { 
    } 
}); 
0

¿Utiliza la versión 2.x GXT? ¿Verificaste si los eventos requeridos se hundieron? por ejemplo, como grid.sinkEvents (Event.ONCLICK | Event.ONDBLCLICK | Event.MOUSEEVENTS);