Bonjour,
je suis débutant en EXTJS, J'essaye d'appliquer un filtre à un TreePanel
Voici mon code
et
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 function filterTree(tree, txt, evt){ var text = txt.getValue(); Ext.each(this.hiddenPkgs, function(n){ n.ui.show(); }); if(!text){ tree.filter.clear(); return; } tree.expandAll(); var re = new RegExp('^' + Ext.escapeRe(text), 'i'); tree.filter.filterBy(function(n){ return !n.attributes.isClass || re.test(n.text); }); // hide empty packages that weren't filtered tree.hiddenPkgs = []; var me = tree; tree.root.cascade(function(n){ if(!n.attributes.isClass && n.ui.ctNode.offsetHeight < 3){ n.ui.hide(); me.hiddenPkgs.push(n); } }, tree); }
Quand je fais tourner mon code, j'ai une erreur javascript qui est :
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 items: [new Tree.TreePanel({ id: 'subjectTreeView', name: 'subjectTreeView', useArrows: true, autoScroll: true, containerScroll: true, animate: true, enableDD: true, ddScroll: true, border: false, filter: new Ext.tree.TreeFilter(this, { clearBlank: true, autoClear: true }), loader: new Ext.tree.TreeLoader({ dataUrl: './getSubjectsTreeNodes.htm' }), root: { nodeType: 'async', text: '<spring:message code="application.tree.Subjects"/>', draggable: false, id: 'subjectRoot', expand: true, subEntityName: 'subject', iconCls: 'subjectNode', create: true, allowedActions: { "create": true } }, tbar:[ ' ', new Ext.form.TextField({ id: 'findASubject', name: 'findASubject', width: 140, emptyText:'<spring:message code="dataEntryMgmt.subjectEmptyText"/>', enableKeyEvents: true, listeners: { keydown: function(txt, evt){ filterTree(Ext.getCmp("subjectTreeView"), txt, evt); } } })] })],
Il y a queque chose qui m'échappe. La variable "filter" est-elle bien définie ? Ou y a t-il autre chose ? Je suis perdu. Merci pour vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 this.tree is undefined [Break On This Error] startNode = startNode || this.tree.root; ( in the method filterBy )
Partager