如何在过滤 Extjs 树面板父节点时显示父项及其子项



如果父节点被过滤,如何在extjs树面板中显示子节点

在这里摆弄

如您所见,您可以过滤任何父节点,但子节点将被隐藏,但是当您搜索子父级时,将可见。

我想在这两种情况下看到父母。过滤子项/父项始终应存在父项。如果子过滤各自的父级留在那里,这已经在 extjs 中存在

您需要向筛选器函数添加代码,以便它还检查父节点。

在过滤器Fn中,if (!visible) {添加:

var parent = node.parentNode;
var testVisible = false;
while(parent){
    testVisible = v.test(parent.get('text'))
    if(testVisible){
        visible = testVisible;
        break;
    }
    parent = parent.parentNode;
}

小提琴 https://fiddle.sencha.com/#view/editor&fiddle/1oso

您可以在检查节点的子节点是否验证后立即添加以下内容来检查当前节点父节点是否有效:

if (!visible) {
    var current = node;
    while (current.parentNode) {
        current = current.parentNode;
        if (v.test(current.get('text'))) {
            visible = true;
            break;
        }
    }
}

这是更新的小提琴。

最新更新