Mr.*_*mes 1 java jsf tabs primefaces
在我的应用中,当用户点击某个项目时,我会使用<p:tabView>
内部<p:dialog>
来显示该项目的详细信息.根据项目类型,有些会有额外的标签.它类似于以下内容:
<p:dataTable value="#{mrBean.items}" var="item" >
<p:ajax event="rowSelect" listener="#{mrBean.showItemDetails}" update="itemDetails" oncomplete="eventDialog.show();" />
...
</p:schedule>
<p:dialog id="detailsDlg" onHide="detailsTab.select(0);">
<p:tabView effect="fade" widgetVar="detailsTab" id="itemDetails">
<tab title="General details">
...
</tab>
<tab rendered="#{mrBean.item.type == 'Book'}" title="Author">
...
</tab>
</p:tabView>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
当我单击Book
并导航到Author
选项卡以查看作者的详细信息时,请考虑这种情况.现在,如果我关闭对话框而不切换回General details
选项卡,我点击除了之外的一些项目Book
(这意味着它们没有Author
标签),我的对话框似乎仍然在隐形 Author
标签上.即使我试图点击General tab
它,它也不会再渲染了.
更新:
我尝试使用和的客户端API,<p:tabView>
并在属性中<p:dialog>
调用.情况好一点.但是,我单击一个后单击的第一个项目(不是a)会遇到与上面相同的情况.从第2项开始,一切都还可以.有没有办法让它立即运作?detailsTab.select(0)
onHide
<p:dialog>
Book
Book
如果你能告诉我如何解决这个问题,我将非常感激.
我终于找到了解决方案.在<p:tabView>
标签中,我尝试通过设置产生一些效果effect="fade"
.我认为这种效果可能会导致代码执行中的一些延迟,因此,在下一个请求之前,我看不到切换结果.
关闭效果并detailsTab.select(0);
输入oncomplete
我的<p:ajax>
事件的属性后,它现在正在工作.
<p:dataTable value="#{mrBean.items}" var="item" >
<p:ajax event="rowSelect" listener="#{mrBean.showItemDetails}"
update="itemDetails" oncomplete="eventDialog.show();detailsTab.select(0);" />
...
</p:schedule>
<p:dialog>
<p:tabView widgetVar="detailsTab" id="itemDetails">
<tab title="General details">
...
</tab>
<tab rendered="#{mrBean.item.type == 'Book'}" title="Author">
...
</tab>
</p:tabView>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
需要注意的一点是,当我关闭而effect
没有detailsTab.select(0);
输入事件的oncomplete
属性时<p:ajax>
,仍然会出现此问题.换句话说,对话框仍然显示隐形标签.但是,当我单击General
选项卡时,此选项卡的内容完美呈现.问题显然只发生在我使用的时候effect
.这可能是一个错误<p:tabView>
.
我认为我的解决方案不是很优雅,因为我不得不关闭效果:P.如果您能提供任何可以使用的解决方案effect
,我将非常乐意接受您的答案:).
归档时间: |
|
查看次数: |
8919 次 |
最近记录: |