0

以下の 2 つの質問があります。

ページの左側にメニューとサブメニューがあり、ページの中央にタブビューがあります。menuItem をクリックすると、javascript を使用して tabview にタブを動的に追加します
が、バッキング Bean から tabview のタブを取得できません。JavaScriptで追加する前に、最初のタブしか読めません。サーバー側とクライアント側でタブビューを同期的に一致させたいと思います。

これどうやってするの ?

そして2番目。タブを閉じると、onTabClos​​e メソッドで TabClos​​eEvent を使用しますが、イベントは常に null です。タブビューをサーバー側とクライアント側に一致させることで解決されるかもしれません。

コードは以下の通りです。

教えてください。

ありがとう..

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>

ビーンコード:

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";
}
4

1 に答える 1

0

javascriptでtabviewにタブを動的に追加します

これはそもそもアプローチが完全に間違っていました。

JS を使用する代わりに、JSF を使用してタブを追加する必要があります。現在、JSF は変更されたクライアント側の状態をまったく認識しておらず、新しいタブについても認識していません。回避策は、JS の代わりに JSF で実行する場合よりも、醜く維持するのが難しくなるだけです。

以下も参照してください。

于 2012-11-14T11:47:06.410 に答える