Bonjour,
Afin d'éviter de recharger des données sur le serveur lors de l'application d'un filtre, je souhaite vérifier que les données souhaitées par le filtre soient déjà chargées
L'idée est de vérifier que mes objets du tableau Filtres, dont une propriété 'loaded' est à true au premier chargement, dont la propriété 'value' est égale au tableau de values qui correspond à mes différents item cochés dans la liste déroulante, ont la propriété 'loaded' à true. Si Oui, je masque les lignes à filtrer, si non je refait un load des datas.
Pour cela j'utilise du linq.js (de codeplex), sur l'évènement 'change' d'une liste déroulante multiple
Le problème est que le test du IF dure une bonne paire de secondes, c'est un peu frustrant....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var etatList = $(this).val(); if (etatList) { //var t = Enumerable.From(objFiltersRestGrf.statuts).Where(function (el) { return Enumerable.From(etatList).Contains(el.value) }).ToArray(); if (Enumerable.From(objFiltersRestGrf.statuts).Where(function (el) { return Enumerable.From(etatList).Contains(el.value) }).Any(function (x) { return x.loaded == true })) restrictionTable1.columns(13).search(etatList.join("|"), true, false).draw(); else ActualiseData(); } else { restrictionTable1.columns(13).search('').draw(); }
Auriez vous une autre solution SVP ?
Par avance je vous remercie.
Cordialement.
Partager