Bonjour,
J'ai actuellement un comboBox extJs sur ma page qui load une liste de user en ajax ( résultat JSON) et ca fonctionne très bien.
J'ai voulu ensuite modifié le display pour que dans la liste déroulante de la combo box je vois afficher " pseudo : firstName lastName" puis quand je sélectionne, c'est bien le pseudo qui est pris en compte et ca fonctionne aussi !
Mon problème est que actuellement le filtre se fait sur le pseudo et je voudrais le faire sur plusieurs champ (pseudo firstname lastname).
Donc si dans ma liste j'ai "Toto : Pierre Durant" et bien je serai apte à le trouver aussi bien en commencant à taper toto, que pierre que durant. Sauf que actuellement il ne le trouve que si je tape toto...
Voici mon code actuel qui fonctionne :
Comme vous avez vu, j'ai essayé dans mon Store de rajouter les filters
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 Ext.require([ 'Ext.form.field.ComboBox', 'Ext.form.FieldSet', 'Ext.tip.QuickTipManager', 'Ext.data.*' ]); Ext.onReady(function() { Ext.tip.QuickTipManager.init(); // Define the model for a State Ext.define('User', { extend: 'Ext.data.Model', fields: [ {type: 'string', name: 'id'}, {type: 'string', name: 'firstName'}, {type: 'string', name: 'lastName'}, {type: 'string', name: 'matchingField'} ] }); // ComboBox with a custom item template var customTplCombo = Ext.create('Ext.form.field.ComboBox', { renderTo: 'intranetUserName', typeAhead: true, displayField: 'id', width: 250, store: { autoLoad: true, fields: ['id', 'firstName','lastName', 'matchingField'], proxy: { type: 'ajax', url: '/admin/autocompleteUser.do' }, filters:{ {property: "firstName"}, {property: "lastName"} } }, queryMode: 'local', listConfig: { getInnerTpl: function() { return '<div>{id} : {firstName} {lastName}</div>'; } }, listeners:{ 'blur': checkValidUser, 'select': checkValidUser } }); });
Mais ca n'a pas l'air d'être pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 filters:{ {property: "id"}, {property: "firstName"}, {property: "lastName"} }
Après les multiples posts que j'ai visité je n'ai pas trouvé quelqu'un cherchant le même comportement.
Merci pour l'aide.
Partager