2010-08-02 7 views
3

Je veux créer une telle grille: http://www.sencha.com/deploy/dev/examples/grid/edit-grid.htmlExtJs/Sencha: comment mettre en surbrillance une ligne de la grille après insertion?

En fait, je l'ai déjà fait, mais je tiens à souligner la dernière ligne insérée de ma grille (en ExtJS c'est le point culminant de la fonction(), qui fait un yellowfade sur la élément).

Je n'ai pas vraiment réussi à faire cela ... mon problème est que je ne peux pas obtenir la ligne que je viens d'insérer, et donc évidemment je ne peux pas le mettre en évidence. Des indices?

Merci à l'avance

Répondre

0

Ext.data.store a un écouteur d'ajouter qui est passé un index dans lequel les enregistrements ont été insérés

add : (Store this, Ext.data.Record[] records, Number index)

+0

Oui, cela semble être un bon moyen de trouver l'article. Mais comment puis-je avoir accès à la grille, comme disons grid.GetElement (index)? Je ne peux pas trouver quelque chose comme ça. – Dajeff

+0

Voir Ext.grid.RowSelectionModel – Mchl

1

Le code a

store.insert(0, p); 

Alors Ne mettez-vous pas juste la ligne zéro immédiatement après cette déclaration?

+0

Oui, c'est effectivement le cas dans la grille modifiable. Mais je veux une solution qui fonctionne pour d'autres réseaux. En fait, je veux mettre en œuvre ceci: http://37signals.com/svn/archives/000558.php J'ai trouvé une solution, comme écrit ci-dessous (fonction de mise en surbrillance) – Dajeff

7

Il vous suffit de le faire (ici pour le numéro de la première rangée):

var row = grid.getView().getRow(0); 
Ext.get(row).highlight(); 

Il est facile.

+1

ExtJS 4.x: utilisez 'getNode' au lieu de 'getRow'. –

1

oui désolé pour répondre trop tard, utilisation Ext.grid.RowSelectionModel et que l'utilisation de la fonction selectLastRow u peut facilement se être en mesure de pointer sur :)

+0

+1 J'ai essayé 3 ou 4 autres méthodes postées sur SO et en ligne pour mettre en évidence une ligne, et utiliser les méthodes de 'RowSelectionModel' a été la première à fonctionner. Merci! – Windle

0

Cela irait à l'intérieur de votre add/créer un événement de bouton . Le code this.getSelectionModel().select(0); mettra en évidence la première ligne puisque nous avons inséré dans la position 0, nous sélectionnons la position 0. Ce code fonctionne avec ExtJS 4.2.0.

var rec = Ext.create('App.model.GridModel', { 
     id: '123', 
     name: 'ABC' 
    }); 

    this.store.insert(0, rec); 
    this.getSelectionModel().select(0); 
Questions connexes