0

2 つのカレンダー コントロールと 1 つのコマンド ボタンがあります。基本的に、データベースからデータを選択する日付の範囲を指定したいのですが、コマンド ボタンを押すと、ダイアログ ボックスにデータ テーブルが表示されます。問題は、Java Bean クラスが機能しており、必要な正確なデータをロードしていることです。 、しかし、コマンドボタンをクリックしてもデータテーブルが更新されません。コードが表示されます。

<h:form id="form" >        
    <p:calendar value="#{calendarBean.dateFrom}" id="calFrom" pattern="yyyy-mm-dd">  
        <p:ajax event="dateSelect" listener="#{calendarBean.handleDateSelectFrom}" />  
    </p:calendar>  
    <p:calendar value="#{calendarBean.dateTo}"  id="calTo" pattern="yyyy-mm-dd">  
        <p:ajax event="dateSelect"  listener="#{calendarBean.handleDateSelectTo}" />  
    </p:calendar>  
    <p:commandButton value="Submit" action="#{calendarBean.submit()}" update="fTable" onclick="aDlg.show()">
        <f:ajax render=":form:fTable" execute="@form"></f:ajax>
    </p:commandButton>

    <p:dialog id="aDialog" header="Filter List" widgetVar="aDlg"
                            modal="true" showEffect="explode"
                            hideEffect="explode" >                                      
    <p:panel id="pnl">
        <p:dataTable id="fTable" value="#{calenderBean.list}" var="row" >
            <p:column headerText="ID">
                <h:outputText value="#{row.ID}"/>
            </p:column>
            <p:column headerText="Name">
                <h:outputText value="#{row.Name}"/>
            </p:column>
            <p:column headerText="Time">
                <h:outputText value="#{row.Time}"/>
            </p:column>
            <p:column headerText="User">
                <h:outputText value="#{row.userName}"/>
            </p:column>
        </p:dataTable>
        </p:panel>                  
    </p:dialog>
</h:form>

この問題について親切に案内してください

4

2 に答える 2

0

代わりにダイアログを更新してみてください。update="fTable"

于 2013-07-02T16:08:30.953 に答える
0

最初に行うことは、を削除することですf:ajax。Primefaces ではうまく機能しません。また、update属性はすべてを行う必要があります。
これは言った、私はあなたのものとまったく同じコードを持っていますが、それはうまく機能しています。
削除f:ajaxが機能しない場合は、マネージド Bean スコープを確認してみてください (リクエスト スコープであり、リクエストごとにデータが再初期化される可能性があります)。

于 2013-07-02T16:11:25.083 に答える