SAPUI5: Comment filtrer les données avec 2 ou plusieurs valeurs
Je suis en train d'essayer des trucs avec/dans SAPUI5 et j'ai mis en place un système très simple de recherche comme ceci:
var filters = [];
var query = evt.getParameter("query");
if (query && query.length > 0) {
var nameFilter = new sap.ui.model.Filter("name", sap.ui.model.FilterOperator.Contains, query);
filters.push(nameFilter);
}
var list = this.getView().byId("list");
var binding = list.getBinding("items");
binding.filter(filters);
Maintenant j'ai le problème suivant: avec cette logique, je peux juste la recherche, ou plutôt de filtre, par le nom d'une personne. J'ai aussi quelques champs supplémentaires comme l'âge, le sexe, etc, et je veux effectuer une recherche pour l'âge ou le sexe.
J'ai donc essayé de créer un 2ème filtre, comme "genderFilter", qui consiste à utiliser le "genre" sur le terrain. Après cela, l'ajout de cette 2ème filtre avec de l' .méthode push() pour les filtres[]..mais ce n'est pas de travail.
J'ai déjà essayé de regarder la documentation, regardé les différents exemples, essayé différentes manières - mais je suis impuissant. Qui peut plaire à quelqu'un de m'aider avec ce problème?
OriginalL'auteur user3544563 | 2014-04-17
Vous devez vous connecter pour publier un commentaire.
L'exigence de ce code fonctionne.
$batch requests must be POST
erreur, une idée?allez-vous expliquer le scénario complet comment vous obtenez cette erreur. C'est au cours d'une oData appel ou uniquement lors de la configuration du filtre.
Merci ~ je l'ai résolu ! c'est parce que j'ai utilisé dans un type datetime de données, comment stupide ! J'ai décrit ici: stackoverflow.com/questions/41736210/...
OriginalL'auteur Saddamhussain
Selon l'API
Si vous modifiez votre code pour
il devrait fonctionner.
Voir aussi https://openui5.hana.ondemand.com/docs/guide/BindingAggregations.html au bas de l'écran.
Oh putain...je ne peux pas "poser" la question pour 8 heures pour avoir des blocs de code et les commentaires sont très mal formaté..
Salut, pouvez-vous essayer avec
.bindAggregation("items", { path : "/", filters : [oFilter1, oFilter2] });
Salut, je pense que la liste.getBinding("articles").filtre([ oFilter1, oFilter2 ]); fonctionne maintenant, MAIS dans ce cas la requête doivent être dans les deux valeurs (nom et prénom). Est-il un moyen de fournir de l'une OU de la relation et non et ? Merci, Alex
Vous ne savez pas si c'est possible, et c'est probablement même pas ce que l'utilisateur attend; le fait d'avoir plusieurs filtres plus résultats que d'avoir un seul filtre à fournir...
OriginalL'auteur Qualiture
J'ai réalisé ceci avec le code ci-dessous:-
OriginalL'auteur Deepak Sharma
Ont un seul filtre dans le
filters
tableau pour chacun des critères et cela devrait fonctionner,qu'est-ce exactement est-il dans cette "requête" de la variable et comment en êtes-vous?
la "requête" de la variable est la valeur de la searchfield - ou plutôt la searchquery texte
pourquoi ne pas vous utiliser un searchfield à la place? utiliser quelque chose de similaire à ce qui est donné ici, openui5.hana.ondemand.com/#test-resources/sap/ui/commons/...
Merci de point d'arrêt, je vais essayer ça 🙂
OriginalL'auteur Breakpoint
J'espère que j'ai tout à droite:
Voici comment le filtrage plus d'une colonne lors de la liaison de données en un tableau:
OriginalL'auteur Frank Provost
de combiner plusieurs filtres que vous avez à écrire le filtre de cette façon:
Source: https://sapui5.hana.ondemand.com/docs/api/symbols/sap.ui.model.Filter.html#constructor
Ensuite, vous pouvez filtrer sur plusieurs colonnes avec OU.
OriginalL'auteur isumi
J'ai eu à utiliser les deux. Ainsi, à la fin cela a fonctionné pour moi.
Merci pour l'aide!
OriginalL'auteur Fulop Laszlo
Comment est-ce répondre diffèrent des autres réponses, ce qui suggère la même chose?
OriginalL'auteur tmdiwakara
Moyen Simple de lier deux ou plusieurs filtres.
OriginalL'auteur Caio Melzer