如何更新其他组件时rowsPerPage或页面变化与< p:dataTable的>化与、组件、页面、rowsPerPage

2023-09-10 13:40:27 作者:无归期

我想更新显示相关的一个primefaces DataTable中当前页面显示的信息数据的组件,但我无法找到有关拦截如AJAX事件的任何信息 onRowsPerPageChange或onPageChanged。

有没有办法做到这一点?

使用primefaces 3.0.M3和Glassfish 3.1

下面是我的表。我想更新的组件是第一个页脚里面的其他DataTable:

 <电话号码:dataTable中的id =timbrature_dt
                                 值=#{timbratureMBean.dataModel}
                                 分页程序=真
                                 行=12
                                 懒惰=真正的
                                 paginatorTemplate ={RowsPerPageDropdown} {Firs​​tPageLink} {previousPageLink} {CurrentPageReport} {NextPageLink} {} LastPageLink
                                 rowsPerPageTemplate =6,12,24
                                 currentPageReportTemplate =#{msgs.pagina} {当前页}#{msgs.of} {}总页数
                                 VAR =tdett
                                 widgetVar =的TTable
                                 选择=#{timbratureMBean.selezione}
                                 的SelectionMode =单一>
                        <电话号码:AJAX事件=rowSelect监听器=#{timbratureMBean.onRowSelect}
                                更新=显示:timbrature_dt:giustificativi_dt
                                的onComplete =timbDialog.show()/>
                        < F:面名=标头>
                            &所述; H:panelGrid的列=1columnClasses =columnClass的-noborders>
                                <电话号码:outputPanel>
                                    < H:的outputText值=#{msgs.dal}:/>
                                    <电话号码:日历值=#{timbratureMBean.daData}
                                                模式=DD / MM / YYYY
                                                区域设置=它
                                                showButtonPanel =真
                                                航海家=真
                                                为MinDate =01/01/2003
                                                的maxDate =#{timbratureMBean.oggi}>
                                        <电话号码:AJAX事件=dateSelect监听器=#{timbratureMBean.dataChangeListener}
                                                更新=timbrature_dt:timbrature_dt:giustificativi_dt/>
                                    < / P:日历>
                                    < H:的outputText值=#{msgs.al}:/>
                                    <电话号码:日历值=#{timbratureMBean.aData}
                                                模式=DD / MM / YYYY
                                                区域设置=它
                                                showButtonPanel =真
                                                航海家=真
                                                为MinDate =01/01/2003
                                                的maxDate =#{timbratureMBean.oggi}>
                                        <电话号码:AJAX事件=dateSelect监听器=#{timbratureMBean.dataChangeListener}
                                                更新=timbrature_dt:timbrature_dt:giustificativi_dt/>
                                    < / P:日历>
                                < / P:outputPanel>
                                < H:的outputText值=#{msgs.timbrature}/>
                            < / H:panelGrid的>

                        < / F:面>
                        <电话号码:柱>
                            < F:面名=标头>
                                #{msgs.data_comp}
                            < / F:面>
                             <功放:outputData值=#{tdett.sDtComp}/>
                        < / P:列>

                        <电话号码:柱>
                            < F:面名=标头>
                                #{msgs.data_reale}
                            < / F:面>
                             <功放:outputData值=#{tdett.sDtTimb}/>
                        < / P:列>

                        <电话号码:柱>
                            < F:面名=标头>
                                #{msgs.terminale}
                            < / F:面>
                            < H:的outputText值=#{tdett.nrTer}/>
                        < / P:列>

                        <电话号码:列filterBy =#{tdett.eU}filterOptions =#{timbratureMBean.euOptionList}>
                            < F:面名=标头>
                                #{msgs.verso}
                            < / F:面>
                            < H:panelGroup中>
                                < H:的outputText值=#{msgs.entrata}呈现=#{tdett.eU =='E'}/>
                                < H:的outputText值=#{msgs.uscita}呈现=#{tdett.eU =='U'}/>
                            < /小时:panelGroup中>
                        < / P:列>

                        <电话号码:柱>
                            < F:面名=标头>
                                #{msgs.ora_valida}
                            < / F:面>
                            < H:的outputText值=#{tdett.oraValida}/>
                        < / P:列>

                        <电话号码:柱>
                            < F:面名=标头>
                                #{msgs.ora_reale}
                            < / F:面>
                            < H:的outputText值=#{tdett.oraReale}/>
                        < / P:列>

                        < F:面NAME =页脚>
                            <电话号码:dataTable中的id =giustificativi_dt
                                         值=#{timbratureMBean.dataList}
                                         VAR =gius
                                         widgetVar =gtable>
                                < F:面名=标头>
                                    &所述; H:panelGrid的列=1columnClasses =columnClass的-noborders>
                                        < H:的outputText值=#{msgs.giustificativi}/>
                                    < / H:panelGrid的>

                                < / F:面>
                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.voce}
                                    < / F:面>
                                    < H:的outputText值=#{gius.voce}/>
                                < / P:列>

                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.dal}
                                    < / F:面>
                                    <功放:outputData值=#{gius.sDtIGius}/>
                                < / P:列>

                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.al}
                                    < / F:面>
                                    <功放:outputData值=#{gius.sDtFGius}/>
                                < / P:列>

                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.nr_giorni}
                                    < / F:面>
                                    < H:的outputText值=#{gius.nrGiorni}/>
                                < / P:列>
                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.ora_inizio}
                                    < / F:面>
                                    <功放:outputNvl值=#{gius.oraIGius}nullval = - />
                                < / P:列>
                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.ora_fine}
                                    < / F:面>
                                    <功放:outputNvl值=#{gius.oraFGius}nullval = - />

                                < / P:列>
                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.nr_ore}
                                    < / F:面>
                                    <功放:outputNvl值=#{gius.nrOre}nullval = - />
                                < / P:列>
                                <电话号码:柱>
                                    < F:面名=标头>
                                        #{msgs.nr_minuti}
                                    < / F:面>
                                    <功放:outputNvl值=#{gius.nrMinuti}nullval = - />
                                < / P:列>
                            < / P:dataTable的>
                        < / F:面>
                    < / P:dataTable的>

                    <电话号码:对话框标题=信息widgetVar =timbDialog可调整大小=假
                              WIDTH =200showEffect =夹子hideEffect =剪贴>

                        < H:panelGrid的ID =显示列=2的cellpadding =4>

                            < H:的outputText值=数据:风格=字体重量:大胆/>
                            <功放:outputData值=#{timbratureMBean.selezione.sDtComp}/>

                            < H:的outputText值=保萨pranzo ridotta:风格=字体重量:大胆/>
                            < H:的outputText值=#{timbratureMBean.gestPausaPranzo}/>

                            < H:的outputText值=Timbratura非allineata:风格=字体重量:大胆/>
                            < H:的outputText值=#{timbratureMBean.timbNonAllineate}/>

                        < / H:panelGrid的>
                    < / P:对话框>
 

解决方案

后,

有一个事件改变一个页面,在这里看到

3分钟带你快速了解,一个数据可视化工具EasyV

HTTP://cagataycivici.word$p$pss .COM / 2011/06/10 / DataTable的钩/

 <电话号码:数据表分页程序=真正的行=10值=#{bean.items}VAR =项>
   <电话号码:AJAX事件=页监听器=#{bean.onPaginate}更新=othercomponents的onComplete =警报('完成')... />
   ...
 

虽然我仍然在寻找一个事件onChangeRows

不过,我现在的问题是只存储用户的选择,其实该页面时解决了这两个对我有什么页面,有多少行存储选择。如果 onPaginate 实现了这种方式:

 公共无效onPaginate(PageEvent事件){
        logger.info(我页:+ event.getPage());
        logger.info:(每页的行集+((org.primefaces.component.datatable.DataTable)event.getSource())GetRows的()。)
    }
 

您可以看到你是在什么页面,有多少行被选中。而这个事件被触发既当您更改页面或改变多少行显示。

I would like to update a component showing data related to the info displayed in the current page of a primefaces dataTable but I couldn't find any info about intercepting ajax events like onRowsPerPageChange or onPageChanged.

Is there any way to do that?

Using primefaces 3.0.M3 and Glassfish 3.1

Here is my table. The component I want to update is another dataTable inside the footer of the first one:

<p:dataTable id="timbrature_dt" 
                                 value="#{timbratureMBean.dataModel}" 
                                 paginator="true"
                                 rows="12" 
                                 lazy="true"
                                 paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"  
                                 rowsPerPageTemplate="6,12,24" 
                                 currentPageReportTemplate="#{msgs.pagina} {currentPage} #{msgs.of} {totalPages}"
                                 var="tdett"
                                 widgetVar="ttable"
                                 selection="#{timbratureMBean.selezione}" 
                                 selectionMode="single">
                        <p:ajax event="rowSelect" listener="#{timbratureMBean.onRowSelect}"   
                                update="display :timbrature_dt:giustificativi_dt" 
                                oncomplete="timbDialog.show()" />  
                        <f:facet name="header">
                            <h:panelGrid columns="1" columnClasses="columnclass-noborders">
                                <p:outputPanel>
                                    <h:outputText value="#{msgs.dal}:  " />
                                    <p:calendar value="#{timbratureMBean.daData}" 
                                                pattern="dd/MM/yyyy" 
                                                locale="it" 
                                                showButtonPanel="true" 
                                                navigator="true"
                                                mindate="01/01/2003" 
                                                maxdate="#{timbratureMBean.oggi}">
                                        <p:ajax event="dateSelect" listener="#{timbratureMBean.dataChangeListener}" 
                                                update="timbrature_dt :timbrature_dt:giustificativi_dt" /> 
                                    </p:calendar>
                                    <h:outputText value="  #{msgs.al}:  " />
                                    <p:calendar value="#{timbratureMBean.aData}" 
                                                pattern="dd/MM/yyyy" 
                                                locale="it" 
                                                showButtonPanel="true" 
                                                navigator="true"
                                                mindate="01/01/2003" 
                                                maxdate="#{timbratureMBean.oggi}">
                                        <p:ajax event="dateSelect" listener="#{timbratureMBean.dataChangeListener}" 
                                                update="timbrature_dt :timbrature_dt:giustificativi_dt" /> 
                                    </p:calendar>
                                </p:outputPanel>
                                <h:outputText value="#{msgs.timbrature}"/>
                            </h:panelGrid>

                        </f:facet>
                        <p:column>
                            <f:facet name="header">  
                                #{msgs.data_comp}  
                            </f:facet>  
                             <amp:outputData value="#{tdett.sDtComp}"/> 
                        </p:column>

                        <p:column>
                            <f:facet name="header">  
                                #{msgs.data_reale}  
                            </f:facet>  
                             <amp:outputData value="#{tdett.sDtTimb}"/> 
                        </p:column>

                        <p:column>
                            <f:facet name="header">  
                                #{msgs.terminale}  
                            </f:facet>  
                            <h:outputText value="#{tdett.nrTer}"/> 
                        </p:column>

                        <p:column filterBy="#{tdett.eU}" filterOptions="#{timbratureMBean.euOptionList}">
                            <f:facet name="header">  
                                #{msgs.verso}  
                            </f:facet>  
                            <h:panelGroup>
                                <h:outputText value="#{msgs.entrata}" rendered="#{tdett.eU == 'E'}"/> 
                                <h:outputText value="#{msgs.uscita}"  rendered="#{tdett.eU == 'U'}"/> 
                            </h:panelGroup>
                        </p:column>

                        <p:column>
                            <f:facet name="header">  
                                #{msgs.ora_valida}  
                            </f:facet>  
                            <h:outputText value="#{tdett.oraValida}"/> 
                        </p:column>

                        <p:column>
                            <f:facet name="header">  
                                #{msgs.ora_reale}  
                            </f:facet>  
                            <h:outputText value="#{tdett.oraReale}"/> 
                        </p:column>

                        <f:facet name="footer">
                            <p:dataTable id="giustificativi_dt" 
                                         value="#{timbratureMBean.dataList}" 
                                         var="gius"
                                         widgetVar="gtable">
                                <f:facet name="header">
                                    <h:panelGrid columns="1" columnClasses="columnclass-noborders">
                                        <h:outputText value="#{msgs.giustificativi}"/>
                                    </h:panelGrid>

                                </f:facet>
                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.voce}  
                                    </f:facet>  
                                    <h:outputText value="#{gius.voce}"/> 
                                </p:column>

                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.dal}  
                                    </f:facet>  
                                    <amp:outputData value="#{gius.sDtIGius}"/> 
                                </p:column>

                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.al}  
                                    </f:facet>  
                                    <amp:outputData value="#{gius.sDtFGius}"/> 
                                </p:column>

                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.nr_giorni}  
                                    </f:facet>  
                                    <h:outputText value="#{gius.nrGiorni}"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.ora_inizio}  
                                    </f:facet>  
                                    <amp:outputNvl value="#{gius.oraIGius}" nullval="-"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.ora_fine}  
                                    </f:facet>  
                                    <amp:outputNvl value="#{gius.oraFGius}" nullval="-"/>

                                </p:column>
                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.nr_ore}  
                                    </f:facet>
                                    <amp:outputNvl value="#{gius.nrOre}" nullval="-"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">  
                                        #{msgs.nr_minuti}  
                                    </f:facet>
                                    <amp:outputNvl value="#{gius.nrMinuti}" nullval="-"/>
                                </p:column>
                            </p:dataTable> 
                        </f:facet>
                    </p:dataTable> 

                    <p:dialog header="Info" widgetVar="timbDialog" resizable="false"  
                              width="200" showEffect="clip" hideEffect="clip">  

                        <h:panelGrid id="display" columns="2" cellpadding="4">  

                            <h:outputText value="Data:" style="font-weight: bold"/>  
                            <amp:outputData value="#{timbratureMBean.selezione.sDtComp}" />  

                            <h:outputText value="Pausa pranzo ridotta: "  style="font-weight: bold"/>  
                            <h:outputText value="#{timbratureMBean.gestPausaPranzo}" />  

                            <h:outputText value="Timbratura non allineata: "  style="font-weight: bold"/>  
                            <h:outputText value="#{timbratureMBean.timbNonAllineate}" />  

                        </h:panelGrid>  
                    </p:dialog>

解决方案

Hou,

there is an event for changing a page, see here

http://cagataycivici.wordpress.com/2011/06/10/datatable-hooks/

<p:datatable paginator="true" rows="10" value="#{bean.items}" var="item">
   <p:ajax event="page" listener="#{bean.onPaginate}" update="othercomponents" oncomplete="alert('done')"... />
   ...

though I am still looking for an event for onChangeRows

but, my current problem is only storing user choices, in fact that page event solves storing both on what page I am and how many rows are selected. If onPaginate implements in this way:

public void onPaginate(PageEvent event){
        logger.info("I am on page:"+event.getPage());
        logger.info("Rows per page set:"+((org.primefaces.component.datatable.DataTable)event.getSource()).getRows());
    }

You can see what page you are on and how many rows are selected. And this event is triggered both when you change a page or change how many rows shown.