Hello,
I try to upgrade to primefaces 6.2 from primefaces 6.1, but I had some problem.
My xhtml page, with primefaces 6.1, works fine.
I have a dataTable in an outputPanel with an ajax event:
<p:ajax event="rowSelect"
onstart="PF('waitMask').show();"
listener="#{myTable.onRowSelect}"
update=":form1:setValue"
oncomplete="PF('waitMask').hide();"
/>
The element setValue shows the row id of the row selected and works fine.
When I click on one row of the dataTable, 'waitMask' (a gif for loading) is showed, the listener fires, but then 'waitMask' doesn't hide.
If I click on another row the 'waitMask' hides, If I click on another row 'waitMask' is showed, if I click on another row the 'waitMask' hides and so on.
If I add a breakpoint on my source code, and slow down the process, then the 'waitMask' hides. This is what the page suppost to do.
Can anyone help me?
Oncomplete seems to run before listener end with p:ajax
Hello kukeltje,
I tried to find a solution by google and I don't found any. Then I decided to write here. This is the code of my datatable
<p:dataTable id="tableDatiLegenda"
var="legendaRow" widgetVar="clientTableDatiLegenda"
value="#{legendaInputBean.model}"
selection="#{legendaInputBean.legendaRowSelected}"
sortMode="single"
scrollable="true"
resizableColumns="false"
liveResize="false"
lazy="true"
emptyMessage="#{msgs.legenda_table_empty_message}"
paginator="true"
rows="10"
paginatorPosition="bottom"
paginatorAlwaysVisible="true"
rowsPerPageTemplate="10, 15, 20"
currentPageReportTemplate="(#{msgs.generale_table_pratiche_info_pagine} {currentPage} #{msgs.generale_table_pratiche_info_di} {totalPages})"
pageLinks="6"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
styleClass="tableNoSelectAll"
selectionMode="single" >
<p:ajax event="page" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:ajax event="filter" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:ajax event="sort" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:column sortBy="#{legendaRow.legendaRowKey}"
headerText="#{legendaInputBean.model.headers.legendaHeaderKey}"
filterBy="#{legendaRow.legendaRowKey}"
filterMatchMode="contains"
style="text-align: center;" >
<h:outputText value="#{legendaRow.legendaRowKey}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue1}"
rendered="#{legendaInputBean.model.headers.legendaHeader1Value != null}"
headerText="#{legendaInputBean.model.headers.legendaHeader1Value}"
filterBy="#{legendaRow.legendaRowValue1}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue1}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue2}"
rendered="#{legendaInputBean.model.headers.legendaHeader2Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader2Value}"
filterBy="#{legendaRow.legendaRowValue2}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue2}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue2}"
rendered="#{legendaInputBean.model.headers.legendaHeader3Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader3Value}"
filterBy="#{legendaRow.legendaRowValue3}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue3}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue4}"
rendered="#{legendaInputBean.model.headers.legendaHeader4Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader4Value}"
filterBy="#{legendaRow.legendaRowValue4}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue4}" />
</p:column>
<p:ajax event="rowSelect" onstart="PF('waitMask').show();" listener="#{myTable.onRowSelect}" update=":form1:setValue" oncomplete="PF('waitMask').hide();" />
</p:dataTable>
I tried to find a solution by google and I don't found any. Then I decided to write here. This is the code of my datatable
<p:dataTable id="tableDatiLegenda"
var="legendaRow" widgetVar="clientTableDatiLegenda"
value="#{legendaInputBean.model}"
selection="#{legendaInputBean.legendaRowSelected}"
sortMode="single"
scrollable="true"
resizableColumns="false"
liveResize="false"
lazy="true"
emptyMessage="#{msgs.legenda_table_empty_message}"
paginator="true"
rows="10"
paginatorPosition="bottom"
paginatorAlwaysVisible="true"
rowsPerPageTemplate="10, 15, 20"
currentPageReportTemplate="(#{msgs.generale_table_pratiche_info_pagine} {currentPage} #{msgs.generale_table_pratiche_info_di} {totalPages})"
pageLinks="6"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
styleClass="tableNoSelectAll"
selectionMode="single" >
<p:ajax event="page" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:ajax event="filter" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:ajax event="sort" onstart="PF('waitMask').show();" oncomplete="PF('waitMask').hide();"></p:ajax>
<p:column sortBy="#{legendaRow.legendaRowKey}"
headerText="#{legendaInputBean.model.headers.legendaHeaderKey}"
filterBy="#{legendaRow.legendaRowKey}"
filterMatchMode="contains"
style="text-align: center;" >
<h:outputText value="#{legendaRow.legendaRowKey}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue1}"
rendered="#{legendaInputBean.model.headers.legendaHeader1Value != null}"
headerText="#{legendaInputBean.model.headers.legendaHeader1Value}"
filterBy="#{legendaRow.legendaRowValue1}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue1}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue2}"
rendered="#{legendaInputBean.model.headers.legendaHeader2Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader2Value}"
filterBy="#{legendaRow.legendaRowValue2}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue2}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue2}"
rendered="#{legendaInputBean.model.headers.legendaHeader3Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader3Value}"
filterBy="#{legendaRow.legendaRowValue3}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue3}" />
</p:column>
<p:column sortBy="#{legendaRow.legendaRowValue4}"
rendered="#{legendaInputBean.model.headers.legendaHeader4Value != null}" headerText="#{legendaInputBean.model.headers.legendaHeader4Value}"
filterBy="#{legendaRow.legendaRowValue4}"
filterMatchMode="contains">
<h:outputText value="#{legendaRow.legendaRowValue4}" />
</p:column>
<p:ajax event="rowSelect" onstart="PF('waitMask').show();" listener="#{myTable.onRowSelect}" update=":form1:setValue" oncomplete="PF('waitMask').hide();" />
</p:dataTable>
-
- Information
-
Who is online
Users browsing this forum: No registered users and 45 guests