1

4 つのタブと 3 つのコマンド ボタン (カウント、テーブルに追加、Word にエクスポート) を含むタブ ビューがあります。

最初のタブにテキスト データを入力し、2 番目のタブに数値データを入力し、最初の commandButton(count) を押すと、プログラムはいくつかのカウントを行いますが、カウントの結果を表示する 3 番目のタブにアクティブ インデックスを設定できません。 .

<h:form id="dataForm1" prependId="false">
   <div>
      <p:commandButton id="count" update="tbv" process="tbv:tab1 tbv:tab2" />
      <p:commandButton id="addToWord" .... />
      <p:commandButton id="exportToWord" ... />
   </div
   <div>
      <p:growl id="growlm" showDetail="true" /> 
    <p:tabView activeIndex="#{disableTag.activeTabIndex}" id="tbv" tabChangeListener="#{disableTag.onTabChange}">
        <p:ajax event="tabChange" listener="#{disableTag.onTabChange}" update=":dataForm1:growlm" />
          <p:tab id="tab1">some text data </p:tab>
          <p:tab id="tab2">some numeric data</p:tab>
          <p:tab id="tab3">result of counting from tab2</p:tab>
          <p:tab id="tab4">table</p:tab>
     </p:tabView>

バッキング Bean public int getActiveTabIndex() { return activeTabIndex; }

public void setActiveTabIndex(int activeTabIndex) {
    this.activeTabIndex = activeTabIndex;
}

public void onTabChange(TabChangeEvent event) {
    TabView tv = (TabView) event.getComponent();
    this.setActiveTabIndex(tv.getActiveIndex());
    System.out.println("###### ACtive tab: "+activeTabIndex);
}

しかし、それは私にとってはうまくいきません。

4

1 に答える 1

2

これはそれを取得する方法です:

// 意見

    <h:form id="yourForm">
        ...
        <p:commandButton value="Go to tab 3" action="#{yourBackingBean.doSomeCounting('2')}"
                         update="tabView"/>
        ...
    </h:form>


次に、カウント方法の中で:

// BackingBean

public void doSomeCounting(String tabIndex){
    // your counting logic
    try {
        activeTabIndex = Integer.parseInt(tabIndex);
        System.out.println("showing tab: "+activeTabIndex);
    } catch (NumberFormatException e) {}
}


あなたの意図が正しく理解できれば。

于 2013-08-15T04:44:17.640 に答える