在TreeGrid上使用`setCriteria`并包含子项

时间:2016-04-26 20:53:59

标签: smartclient

我们的TreeGrid有一个调用此方法的搜索过滤器

var aCriteria = {
    _constructor: "AdvancedCriteria",
    operator: "and",
    criteria: [
        { fieldName: "EntityName", value:entityFilterFindForm.getValue("find"), operator: "iContains" }
    ]
};
this.creator.entityFilterTree.setCriteria(aCriteria);

这非常适合显示目标节点和目标节点的所有父节点。不幸的是,这给出了目标节点没有子节点的错觉,是否仍然可以扩展目标节点的子节点?

更新

我们的解决方案是包含一个来自SQL的管道分隔的祖先值,并在我们的搜索条件中包含该参数。这样我们的搜索结果的子项就会被包括在内,因为搜索字符串是在他们的祖先字符串中找到的。

1 个答案:

答案 0 :(得分:1)

我从未尝试过,但是在阅读Tree.getFilteredTree的文档时,我看到了一个参数' filterMode',它有两个有效值:

  

"严格"仅显示实际匹配条件的节点。如果父母与标准不匹配,即使其子项符合条件

,也不会显示      

" keepParents"如果父节点具有符合条件的子节点,则保留父节点;如果父节点尚未加载子节点,则保存在具有loadDataOnDemand的树中:true。

也许keepParents可以为您的用例工作?

抱歉,我刚刚意识到你已经有了父母,但是你想要孩子。 您是否已经尝试过调用Tree.loadChildren或reloadChildren?