是否有一个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);