2011-08-01 1 views
1

Voici ce que j'essaie d'accomplir. J'ai une grille avec des entrées qu'un utilisateur peut "mettre à jour par lots", c'est-à-dire un utilisateur peut sélectionner une ou plusieurs entrées de la grille, sélectionner des valeurs d'un formulaire au-dessus de la grille qu'il veut appliquer à toutes les entrées .ExtJS - Récupère un tableau sur les nœuds DOM dans la grille, surligne()?

Ce que je voudrais accomplir est un highlight() fait sur toutes les lignes de changements. Le problème que je rencontre est que je ne sais pas comment lancer un highlight() sur toutes les valeurs de changements à la fois, donc je l'ai fait individuellement. Je pourrais juste courir à travers la boucle mal. Voici ce que je fais pour mettre à jour les valeurs.

// for every property we have in our batchUpdateValues 
for (var propertyName in batchUpdateValues) { 

    // change the selected banners attributes to match 
    for (var i = 0 ; i < bannersToUpdate.length ; i++) 
    { 
     // if they've selected "Name", we only want to append, not replace" 
     var oldName = bannersToUpdate[i].get('bannerName'); 
     if (propertyName == 'bannerName') { 
      bannersToUpdate[i].set(propertyName, oldName + ' ' + batchUpdateValues['bannerName']); 
     } else { 
      bannersToUpdate[i].set(propertyName, batchUpdateValues[propertyName]); 
     } 

     var changedRowId = this.getStore().indexOf(updatedBanners[i]); 
     var changedRow = this.getView().getRow(changedRowId); 
     Ext.get(changedRow).highlight();     

    }        
} 

Ce qui se passe est maintenant si l'utilisateur sélectionne 4 « attributs » pour mettre à jour former la forme le point culminant se courir 4 fois, donc je besoin de mettre ce code en dehors de la boucle. Comment est-ce que je saisirais tous les attributs de DOM pour chaque rangée et puis courriez une évidence sur eux()?

Répondre

0

Ma première suggestion est de vous assurer que vous comprenez le SelectionModel. C'est décrit dans la documentation. Je vous lierais mais je ne suis pas sûr de la version que vous utilisez. En fait, quelle version de Ext JS utilisez-vous? La réponse à cette question peut être différente dans 3.x vs 4.x.

Je serais heureux de répondre plus en détail, mais je vais avoir besoin de clarifier avec un exemple. Pourriez-vous créer une petite table avec des données factices et expliquer quand vous parlez de lignes/colonnes dans le modèle?

Questions connexes