Est-il possible de créer une requête dgrid qui recherchera une chaîne regex sur plusieurs colonnes? Habituellement, la syntaxe spécifie {column1: "foo", column2: "foo"} mais cela recherchera les lignes où column1 et column2 sont "foo". Mais je veux utiliser la même chaîne de recherche contre les deux colonnes ... est-ce possible et comment le ferais-je? J'ai besoin de quelque chose comme {column1 || colonne2: "foo"}.Comment interroger un dgrid sur plusieurs colonnes
Répondre
Vous pouvez écrire votre propre fonction comme je l'ai mentionné dans ma réponse à votre question précédente Is it possible to filter data in a dgrid like you can in a datagrid?
Ou vous pouvez utiliser Resource Query Language (RQL).
dgrid
interroge son magasin, par ex. dojo/store/Memory
, qui utilise dojo/store/util/SimpleQueryEngine
par défaut. Tout ce que vous devez faire est de nourrir la propriété store.queryEngine
avec QueryEngine de votre choix. Dans le cas de RQL, il ressemble à ceci (source):
require(["dojo/store/Memory", "rql/js-array", "dgrid/OnDemandGrid"], function(Memory, rql, Grid) {
var store = new Memory({ data: { /* some data here */}});
store.queryEngine = rql.query;
var grid = new Grid({
store: store,
columns: { /* some columns here */}
}, "grid")
});
Maintenant, vous pouvez interroger dgrid avec la syntaxe RQL. La question pour répondre à votre question: (column1=foo|column2=foo)
.
S'il vous plaît jeter un oeil à mon jsFiddle (http://jsfiddle.net/phusick/VjJBT). Ne hésitez pas à la fourche et expérimenter soit avec dgrid lui-même (il y a des requêtes prédéfinies) ou avec des tests unitaires DOH (console JS ouverte pour voir une sortie):
- 1. Comment interroger plusieurs colonnes contre un seul tableau de ids
- 2. dgrid avec défilement horizontal
- 3. Comment puis-je interroger 2 tables et plusieurs colonnes?
- 4. Comment faire pour interroger plusieurs colonnes dans plusieurs colonnes dans Oracle 10g
- 5. Comment trier un tableau sur plusieurs colonnes?
- 6. Dgrid mettre l'accent sur la cellule
- 7. Comment interroger plusieurs tables?
- 8. Courant NHibernate: Interroger un plusieurs à plusieurs
- 9. Comment interroger plusieurs lignes impliquant un MAX?
- 10. Comment interroger un à plusieurs dans LINQ
- 11. Sélection de plusieurs colonnes à interroger en sql
- 12. JXTable: comment interroger l'état sur les modèles de colonnes?
- 13. Créer rails index pour interroger plusieurs colonnes avec daterange
- 14. Comment interroger un datable avec des colonnes dynamiques
- 15. comment interroger une relation plusieurs à plusieurs?
- 16. Comment interroger une plage de colonnes MYSQL
- 17. postgresql interroger sur plusieurs tables identiques
- 18. 100% Hauteur dans dGrid
- 19. COUNTIFS sur plusieurs colonnes
- 20. joindre sur plusieurs colonnes
- 21. Contrainte sur plusieurs colonnes
- 22. Regroupement sur plusieurs colonnes
- 23. Comment interroger un Zend_Db_Table_Row
- 24. Trier un DataGridView sur plusieurs colonnes?
- 25. Dojo dStore Rest dGrid
- 26. technique de colonnes distinctes sur plusieurs colonnes
- 27. Comment effectuer pivot sur plusieurs colonnes
- 28. Comment compter DISTINCT sur plusieurs colonnes
- 29. lignes disctinct basées sur plusieurs colonnes
- 30. Comment trouver des doublons sur plusieurs colonnes?
Merci pour vos suggestions et votre aide! Je constate que mon dgrid affiche un sous-ensemble du jeu d'enregistrements total de 122 recs. C'est avant que tout soit tapé dans l'entrée filterString. Dans mon cas, je reste avec le moteur de recherche simple par défaut plutôt qu'avec le moteur rql. Initialement, au chargement de la page, la poignée de la barre de défilement est minuscule indicative d'environ 122 rec set. Mais dès que je commence à le faire défiler, il se développe en longueur et le jeu d'enregistrements change et finit par être environ 45 recs. Je n'ai pas encore de requête appliquée, donc je ne suis pas sûr de ce qui expliquerait cela. – teaman
Je suppose que c'est OnDemandGrid qui fait une charge paresseuse, mais quelle requête est-il appliquer et pourquoi? À part ce problème, mon mécanisme de filtre/requête fonctionne bien sur plusieurs colonnes. J'ai fondamentalement appliqué ce que vous aviez dans cet autre post (auquel vous avez répondu) en utilisant le ~ (item.Name + "") .toLowerCase(). IndexOf (filterString.toLowerCase()) pour chaque nom de colonne en utilisant "|| " entre chaque. – teaman