Здравствуйте. Делаю фильтрацию дерева на ExtJs 3.4, но не получается что-то. Из примеров нашел только для ExtJs.Net
http://examples.ext.net/#/TreePanel/Advanced/Filter/
var triggerField = new Ext.form.TriggerField({
fieldLabel: 'Поиск',
triggerClass: 'x-form-search-trigger',
enableKeyEvents: true
});
// toolbar дерева, оно большое, поэтому только часть
tbar: {
items: [
{
xtype: 'tbtext',
text: 'Поиск'
},
{
xtype: 'tbspacer'
},
triggerField
]
}
triggerField.on('keyUp',
function(element, event) {
var text = element.getRawValue();
if (Ext.isEmpty(text, false)) {
return;
}
if (event.getKey() === Ext.EventObject.ESC) {
element.onTriggerClick();
} else {
var regExp = new RegExp(".*" + text + ".*", "i");
var treeFilter = new Ext.tree.TreeFilter(tree);
// Если название отдела
if (isNaN(parseInt(text))) {
treeFilter.filterBy(function (node) {
return regExp.test(node.text);
});
} else {
treeFilter.filterBy(function (node) {
return regExp.test(node.id);
});
}
}
},
triggerField,
{ buffer: 100 }
);
triggerField.onTriggerClick = function(event) {
this.setValue("");
//tree.collapseAll();
tree.getRootNode().expand();
tree.expandAll();
// tree.getRootNode().ensureVisible();
};
фильтрацию делаю по тексту узлов, так и по id.
Подскажите, пожалуйста