我正在使用PrimeFaces 4。
我不想使用p:ajaxStatus
,因为我只想显示一些组件的加载。
所以我有一个p:blockUI
组件,我通常在ajax事件中通过这样做来显示:
onstart="loading.show();" oncomplete="loading.hide();"
但对于p:wizard
组件,我不知道当用户更改标签(单击下一个/后退按钮或单击标签标题)时,我该怎么做。我在向导中尝试了以下内容:
<p:wizard id="wizard" flowListener="#{myBean.onFlowProcess}" style="display: inline-block;" backLabel="Prev" nextLabel="Next" showNavBar="true" widgetVar="wizardWV">
<p:ajax event="tabChange" onstart="loading.show();" oncomplete="loading.hide();" />
<p:tab id="tab1" title="My tab 1">
<p:panel>
<h:outputLabel value="test" />
</p:panel>
</p:tab>
<p:tab id="tab2" title="My tab 2">
<p:panel>
<h:outputLabel value="test2" />
</p:panel>
</p:tab>
</p:wizard>
然后我收到了错误:
<p:ajax> Unable to attach <p:ajax> to non-ClientBehaviorHolder parent
有什么方法可以实现这个目标吗?
由于
答案 0 :(得分:0)
这是因为向导不是客户端行为容器。
向导的标准流程是标签仅用于标题中的显示目的。您应该使用向导流的下一个/后退触发器。
请参阅:http://www.primefaces.org/showcase/ui/panel/wizard.xhtml 有基本功能/流程,但有一些更多的链接 http://www.primefaces.org/docs/vdl/3.5/primefaces-p/wizard.html
如果你试图让你的标签可以点击,那么这是一个不同的故事,你需要设置你的流量监听器,让他们都选择与下一个相同的方法/动作 - 但是将参数传递给辅助bean并手动确定流程。您可以在PF中设置一个远程呼叫,并附带一个onclick,以访问您等待负载的意图。
我会看一下用例场景,也许Wizard是你正在寻找的错误组件?
查看提供的代码,您当前的标签不可点击,我看不到您的后退/下一个操作按钮。