0

次の状況があります。

JSFページがあります:

<h:form id="form">

            <!-- MENU SHOULD GOES HERE -->
            <p:commandButton action="#{bean.sched.addWeek}" value="Add week" update="weeksTab" />

            <p:tabView id="weeksTab" value="#{bean.sched.weekList}" var="week" >

                <p:tab title="#{week.name}" >

                    <!-- THIS BUTTONS SHOULD BE IN MENU -->
                    <p:commandButton action="#{week.addDay}" value="Add day" update="weeksTab" />
                    <p:commandButton action="#{bean.sched.removeWeek(week)}" value="Remove week" update="weeksTab" />

                    <p:tabView id="daysTab" value="#{week.dayList}" var="day" >
                        <p:tab title="#{day.name}">

                        <!-- THIS BUTTON SHOULD BE IN MENU -->
                        <p:commandButton action="#{week.removeDay(day)}" value="Remove day" update="weeksTab" />

                        <!-- PROCESSING DAY : ADDING MEETINGS, ROUTINES ETC.
                            THOSE FUNCTIONS SHOULD BE ALSO AVAILABLE
                            IN MENU -->

                        </p:tab>
                    </p:tabView>
                </p:tab>
            </p:tabView>

ページ上部のメニューに、週、日、ユーザーの毎日の活動ボタンの追加/削除/編集など、すべてのアクション コントロールを配置したいと考えています。問題は、内部で管理されている外部タグ変数に渡す方法です p:tabView ? とにかくそれは可能ですか?h:form 内に次のように sth を追加します。

<p:toolbar>
                <p:toolbarGroup align="left">
                    <p:commandButton
                        onclick="jQuery('#hiddenAddWeekButton').click();return false;"
                        value="Add week" icon="ui-icon-circle-plus" ajax="false" />

                </p:toolbarGroup>
            </p:toolbar>

            <p:commandButton id="hiddenAddWeekButton"
                action="#{bean.sched.addWeek}" value="add week"
                update="weeksTab" style="display:none" />

しかし、それはまだ機能していません..

4

1 に答える 1

1

このようなことを試してください

内側のボタンを非表示にする

<p:commandButton id="myHiddenButton" action="#{week.removeDay(day)}" value="Remove day" update="weeksTab" style="display:none"/>

タブの上に新しいボタンを配置するよりも

<p:commandButton value="Remove day" onclick="jQuery('#weeksTab\\:myHiddenButton').click();return false;" />

隠しボタン用に生成されている正しいIDを確認するには、ブラウザでソースを表示するだけです.weekTab:myHiddenButton(\:を使用)のようにしてエスケープする必要があると思います:


アップデート

タブにあるので、次のように、セレクターで終了を使用してみてください

<p:commandButton value="Remove day" onclick="myJsFunctionThatSitsInMyJsFile();return false;" />

どこmyJsFunctionThatSitsInMyJsFile

以下のとおりであります

function myJsFunctionThatSitsInMyJsFile(){
    jQuery('input[id$="hiddenAddDayButton"]:visible').click(); //added visible selector , so the only button that being visible , should be clicked
}
于 2012-08-15T18:07:13.567 に答える