PrimeFaces lazydatamodel加载方法没有从第二次onwords

时间:2018-05-17 12:18:04

标签: jsf primefaces

我有动态标签... 由于大多数列都相同,我编写了自定义组件以在选项卡中显示表。

当我点击每个标签时,它尊重lazy datamodel加载方法被调用..多次切换标签后,如果我点击选项卡,则不会调用加载方法...所以显示旧数据...不从数据库获取

我希望每次调用load()方法。我的意思是如果我点击tab它应该调用数据模型load()方法..

怎么做?

这是我的代码:

<p:tabView id="vzTabView" styleClass="vzTabView" dynamic="true"  >

        <p:ajax event="tabChange" listener="#{bean1.onTabChange}" process="@this"  />

        <c:forEach items="#{bean1.values}" var="tab">

                <p:tab id="#{tab.uniqueTabId}s" title="#{tab.label}" rendered="#{bean1.isSteeringListRendered(tab)}">
                    <h:form id="#{tab.uniqueTabId}s-Form" onkeyup="avoidEnter(event)">  
                            // custom component         
                        <pc:pcData id="id1" gridId="grid1" bean="#{bean2}" isCostumer ="false"/>                    
                    </h:form>
                </p:tab>

                <p:tab id="#{tab.uniqueTabId}c" title="#{tab.label}" rendered="#{bean1.isCostumerListRendered(tab)}">
                    <h:form id="#{tab.uniqueTabId}c-Form" onkeyup="avoidEnter(event)" > 

                        <pc:pcData id="id2" gridId="grid2" bean="#{bean3}" isCostumer ="true"/>                 
                    </h:form>
                </p:tab>

        </c:forEach>
    </p:tabView>

//自定义组件

<cc:interface>
    <cc:attribute name="id" required="true" />
    <cc:attribute name="bean" />
    <cc:attribute name="gridId" />
    <cc:attribute name="isCostumer" />
</cc:interface>

<cc:implementation>

        <p:dataTable id="${cc.attrs.gridId}" editMode="cell" var="row" 
            selectionMode="single" paginator="true"
            rowsPerPageTemplate="20,50,100,150,200"
            paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
            currentPageReportTemplate="({currentPage} #{msgs.of} {totalPages})"
            value="#{cc.attrs.bean.lazyDataModel}" lazy="true"
            rowKey="#{row.id}" editable="true" rows="20" styleClass="pst-grid">
                ....
                .....
                </p:datatable>

我在点击标签后尝试使用remoteCommand技巧,通过更新表仍然没有运气。

0 个答案:

没有答案