2010-09-23 5 views
1

Je ne connais pas le dojo. J'ai cette application que j'utilise qui a une grille de données dojo.dojox.grid.DataGrid sélectionner une ligne par la valeur d'une colonne

<table jsid="grid" id="grid" dojoType="dojox.grid.DataGrid" store="store" 
    clientSort="true" style="height: 400px;" rowsPerPage="10" 
    postrender="setTableCount(store,'count');" 
    > 
<thead> 
<tr> 
    <th field="enabled" width="24px" styles='text-align: center;' 
     celltype="dojox.grid.cells.Bool" formatter="formatterEnabled" 
     dojoType="dijit.form.CheckBox"><img src='../common/images/check-16.png' title='Enabled'/></th> 
    <th field="number" width="100px" >Number</th> 

    <th field="name" width="100px" >Name</th> 
    <th field="extension" width="100px" >Extension</th> 
    <th field="type" width="100px" >Type</th> 
    <th field="deleted" width="20px" 
     formatter="formatterZombieSkill"> 
     <img src='../common/images/blocks-delete-16.png' title='Marked for deletion'/></th> 
</tr> 
</thead> 

Le tableau généré est grande, et je veux mettre en évidence 10 lignes qui sont réparties dans la grille. Par exemple, si la colonne d'extension est triée et qu'elle s'exécute à partir de 1..10000, je souhaite mettre en surbrillance les lignes 1, 32, 435 et 980. Je peux le faire en cliquant sur la souris tout en maintenant le bouton ctrl enfoncé J'ai 40 valeurs à sélectionner, cela devient fastidieux.

Je n'ai pas d'accès côté serveur au code, donc je veux simplement utiliser le moteur de script de mon navigateur.

Je voudrais taper juste javascript rapide comme:

javascript: var x = [1, 2, 3]; for(i in x) { /*SELECT/HIGHLIGHT/SIMULATE-CLICK THE ROW WHERE THE VALUE IN THE COLUMN NAMED EXTENSION = x[i]*/} 

Peut-on vous aider dojo gourous me avec l'instruction select manquante?

+0

Hmmm ... Je me demande si la grille contient une référence aux lignes quelque part dans un tableau que vous pourriez interroger ... Je ne suis pas familier avec ça. Si non ... pouvez-vous inclure les lignes qu'il génère également? On dirait que vous venez de coller le titre ci-dessus. – JasonStoltz

+0

@JasonStoltz - merci de commenter! Je n'ai pas vérifié récemment. Je vais essayer votre suggestion la semaine prochaine - week-end occupé :) – ericp

Répondre

2

Je ne suis pas un gourou de dojo, mais cela peut faire ce que vous avez besoin, si vous essayez simplement de sélectionner des lignes par programmation ... Je pense que DataGrid contient une instance de dojox.grid.Selection.

http://api.dojotoolkit.org/jsdoc/1.3.2/dojox.grid.Selection

Le dijit de sélection a une méthode appelée setSelected, que je crois prend un index et une valeur booléenne pour sélectionné/non sélectionné. Donc, je pense que vous pouvez faire:

dijit.byId("grid").selection.setSelected(i, true); 

Je ne l'ai pas testé, mais je pense que cela va faire le bouton Select/Highlight que vous avez besoin. Essayez-le et faites-moi savoir si cela fonctionne.

+0

J'ai installé firebug dans Firefox et j'ai réalisé qu'il n'était pas possible de le faire uniquement dans l'interface utilisateur, car le contenu de la grille change lorsque je bouge le curseur. Je vais devoir creuser quand j'ai un peu de temps libre. – ericp

Questions connexes