我有以下两个问题;
我的页面左侧有一个菜单和子菜单,页面中心有一个Tabview。当点击进入menuItem时,我用动态的javascript将tab添加到tabview 但是我无法从支持bean获得tabview的标签。在添加javascript之前,我只能阅读第一个标签。 所以我想同步匹配服务器端和客户端的tabview。
我该怎么做?
和第二; 当我关闭tab时,我在onTabClose方法中使用TabCloseEvent但事件始终为null。也许它将通过与服务器和客户端匹配的tabview来解决 我不知道。
代码如下。
请告诉我。
感谢..
xhtml代码:
<p:menuitem value="#{itemMenu.menuAck}"
action="#{MenuBean.OpenPage(itemMenu.pageName)}"
ajax="true"
oncomplete="handleTabViewEvent(args);" />
<script type="text/javascript">
function handleTabViewEvent(args) {
alert('Add tab here..');
}
</script>
bean代码:
public void OpenPage(String pageName) {
String s = "Divert to handleTabViewEvent function";
}
public void onTabClose(TabCloseEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
TabView tw = (TabView)context.getViewRoot().findComponent("centerForm:tw");
String s = "I must delete tab here from tw which closed.
But event does not give me tab information. It is always null. And tw has old values";
}
答案 0 :(得分:0)
我使用javascript动态地将标签添加到tabview
这首先是完全错误的。
您需要使用JSF而不是使用JS添加选项卡。现在,JSF完全没有意识到已更改的客户端状态,并且永远不会知道新选项卡。任何解决方法最终都会比JSF而不是JS更难以维护和维护。