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