PrimeFaces метод загрузки lazydatamodel не вызывается со второго раза - PullRequest
0 голосов
/ 17 мая 2018

У меня есть динамические вкладки ... так как большинство столбцов одинаковы, я написал пользовательский компонент для отображения таблицы во вкладках.

Когда я нажимаю на каждую вкладку, вызывается метод загрузки ленивых моделей данных ... после нескольких переключений вкладок, если я нажимаю на вкладку, метод загрузки не вызывается ... поэтому показываются старые данные ... нетвыборка из базы данных.

Я хочу, чтобы метод load () вызывался каждый раз.Я имею в виду, что если я нажму на вкладку, то будет вызван метод 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 после нажатия вкладки, обновляя таблицу до сих пор не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...