La bonne utilisation de filtres lors de la liaison des éléments par la XMLView
À l'aide de sap.m.Select
, j'en ai un similaire du code ci-dessous:
<m:Select
selectedKey='{state}'
items="{
path: 'states>/content',
sorter: {
path: 'name'
}
}">
<core:Item key="{states>id}" text="{states>name}" />
</m:Select>
Que voulez être en mesure de filtrer les membres par pays lorsqu'il est sélectionné dans une autre entrée, donc, je vais essayer à l'aide de filters
, qui est défini dans la documentation en:
- https://sapui5.netweaver.ondemand.com/docs/api/symbols/sap.ui.base.ManagedObject.html#bindAggregation
- https://sapui5.netweaver.ondemand.com/#docs/api/symbols/sap.ui.model.Filter.html
Le problème est que je ne pouvais pas trouver n'importe où (docs, google, DONC, le code source, des exemples, des tests) montrant comment bien l'utiliser. J'ai essayé ces 2 façons, sans succès:
<m:Select
selectedKey='{state}'
items="{
path: 'states>/content',
sorter: {
path: 'name'
},
filters: [{
path: 'countryId',
operator: 'EQ',
value1: '10' //just example
]}
}">
<core:Item key="{states>id}" text="{states>name}" />
</m:Select>
et
# View
<m:Select
selectedKey='{state}'
items="{
path: 'states>/content',
sorter: {
path: 'name'
},
filters: ['.filterByCountry'}
}">
<core:Item key="{states>id}" text="{states>name}" />
</m:Select>
# Controller
...
filterByCountry: new sap.ui.model.Filter({
path: 'countryId',
operator: 'EQ',
value1: '10'
}),
...
Tout le monde le sait, la bonne façon de l'utiliser?
Vous devez vous connecter pour publier un commentaire.
Ici est de savoir comment les filtres de travail dans des Vues XML - voir les 2 exemples ci-dessous j'ai codé pour vous (utilisez le jsbin liens si ils ne fonctionnent pas ici sur stackoverflow). Ils utilisent tous les deux les Comptoirs de service OData. Comme vous le verrez c'est assez simple:
Bien sûr, vous pouvez ajouter plusieurs filtres (voir le deuxième exemple ci-dessous).
Cependant, gardez à l'esprit que les filtres sont déclarées dans le XMLView. Malheureusement, UI5 est actuellement pas très dynamique pour permettre le changement de tels filtres définis dans un XMLView dynamiquement en utilisant uniquement la syntaxe de liaison dans le XMLView. Au lieu de cela, vous auriez besoin d'un morceau de code JavaScript. Dans votre cas, vous pouvez écouter l'événement de changement de l'autre champ. Dans le gestionnaire d'événements, vous serait alors simplement de créer un nouveau Filtre et de l'appliquer:
Qui devrait être tout ce que vous devez faire. Les exemples ci-dessous, ne pas utiliser de code JavaScript pour le filtre, mais je suppose que vous avez l'idée.
1. Exemple - boîte de sélection:
Exécuter le code: https://jsbin.com/wamugexeda/edit?html,sortie
HTML:
2. Exemple De Table:
Exécuter le code: https://jsbin.com/yugefovuyi/edit?html,sortie
HTML: