L'ajout de clickHandler à la ligne dans CellTable dans GWT?
J'ai créé une base de CellTable et remplie avec quelques données. Maintenant, je veux ajouter un clickHandler à chaque ligne, mais je ne suis pas sûr de la façon de le faire. J'ai créé un clickEvent pour l'ensemble de la table, mais j'en veux un pour chaque ligne.
table.sinkEvents(Event.ONCLICK);
table.setTitle("Click me");
table.setSize("600px", "600px");
table.addDomHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
Window.alert("You clicked!" +);
}
}, ClickEvent.getType());
Puis-je faire quelque chose de similaire pour ajouter clickEvent pour chaque ligne?
OriginalL'auteur gusper | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Un CellTable a un support intégré pour le traitement des événements de clic. Vous pouvez ajouter un
CellPreviewHandler
qui sera appelé, entre autres, lorsqu'une ligne est cliqué. Il va recevoir un certain nombre d'éléments de l'événement comme le natif de l'événement, de la cellule, et la ligne de données de la valeur. Parce qu'il déclenche non seulement les événements click, vous devez vérifier si le clic événement a été déclenché. Tout simplement tester le passé:boolean isClick = "click".equals(event.getNativeEvent().getType())
.Une autre option est d'étendre la méthode protégée
doSelection
, mais il est obsolète et vous avez besoin de la sla assurez-vous que vous avez le droitKeyboardSelectionPolicy
ensemble pour s'assurer qu'il est appelé lorsqu'un clic est effectué. Voir pour ce dernier dans la JavaDoc de l'interfaceKeyboardSelectionPolicy
.Je pense que vous devriez envisager d'utiliser BrowserEvents.CLIQUEZ au lieu de "clic".
BrowserEvents
est disponible depuis GWT 2.5.0Est-il une solution pour en faire de même si nous utilisons la grille de données au lieu de CellTable.
addCellPreviewHandler
fait partie deAbstractHasData
qui est un parent de la classe de deuxDataGrid
etCellTable
donc il devrait fonctionner de la même.OriginalL'auteur