是否有一个JSF或PrimeFaces控件,它是“可搜索”的树状视图?我在想类似于Eclipse的“选项”,在其中您可以在搜索框中键入一些文本,并且Treeview会自动更新。



我知道我可以使用某些jQuery很容易地做到这一点,但是从高处来看,这种格言不是内联JS / jQuery。我们必须使用所有JSF。有人有什么想法吗?

最佳答案

PrimeFaces当前没有为此内置的机制,但是树组件是基于Java Bean输出动态构建的。因此,可能的解决方案是:

1)使用p:inputText侦听器创建p:ajax,通知Bean有关过滤器更改的信息

2)根据过滤器重建TreeNode

3)更新树组件

但是,我建议不要在按键后立即调用bean方法,而应使用可引用的超时:

var filterTimeout;
var filterEvent = function() {
    if (filterTimeout) {
        clearTimeout(filterTimeout);
    }
    filterTimeout = setTimeout(function(){
        doFilterOnServer();
        filterTimeout = null;
    }, 300);
};
$('[id$=\\:myTree]').find('input').keyup(filterEvent);

10-04 10:14