0
我有一个primefaces菜单,其中的项目在来自backing bean的条件中被禁用。 问题是,更新后处理条件。显示之前的处理primefaces菜单
如果我选择了一个节点,每个节点都启用并切换到禁用所有节点的节点, 菜单将被重新加载,但在禁用项目之前显示所有启用了一秒的所有内容。
有没有办法在显示菜单之前处理禁用条件?
<h:form id="form">
<p:tree id="tree" ...>
<p:ajax event="select" update=":form:tree:menu" listener...>
<p:treeNode id="treenode">
<p:commandButton id="btn" type="button" />
<p:overlayPanel for="btn">
<p:menu id=menu">
<p:menuitem .... disabled="#{bean.condition1}" />
<p:menuitem .... disabled="#{bean.condition2}" />
...
</p:menu>
</p:overlayPanel>
</p:treenode>
</p:tree>
的'类型=“按钮”'使得它死客户端的按钮,而不是提交按钮,这与AJAX魔术和所有服务器进行交互。也许你没有意识到这一点? – BalusC
@BalusC你是对的,我从按钮中删除了ajax的东西。在Primefaces Showcase之后,type =按钮对于overlayPanel魔术来说是必需的。据我所知,更新是由select事件触发的,而不是按钮。顺便说一句:使用类型=提交按钮没有解决问题。 – sinclair