2010-12-15 98 views
5

J'essaie d'ajouter un écouteur de sélection à ma grille GXT (Ext GWT), mais je n'arrive pas à l'obtenir. J'ai essayé plusieurs variantes de ce sans chance:Ajouter un écouteur de sélection à GXT Grid?

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

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

Répondre

1

Essayez:

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

Remplacement ModelData avec votre type de modèle si nécessaire.

+0

Non, cela ne déclenchera pas non plus. – thedude19

+0

Il se peut que votre grille ne capture pas l'événement select. Lorsque vous remplacez Events.Select avec Events.DoubleClick et double-cliquez sur une ligne, cela fonctionne-t-il? –

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

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

     } 
    }); 

Essayez ce code

+1

Réponse très utile. _Note: _ ce gestionnaire est déclenché même si la désélection se produit ('Grid.getSelectionModel(). AddSelectionChangedHandler') – Serg

1

semble avoir trouvé une solution pour cela:

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

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

On dirait que vous avez juste à être générique à ce sujet, alors vous pouvez vérifier et jeter votre ComponentEvent à un GridEvent.

2

Pour mettre à jour cette réponse à GXT v3

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

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

Utilisez-vous GXT version 2.x? Avez-vous vérifié si les événements requis sont perdus? par exemple, comme grid.sinkEvents (Event.ONCLICK | Event.ONDBLCLICK | Event.MOUSEEVENTS);