Reputation: 561
I am updating my datatable when a user clicks the menu. So I want to show some loading image while ajax fetches the data and updates my datatable. I am using p:blockUI for this purpose. My menu is :
<h:form id="leftMenu">
<p:menu id="privilegeItem">
<p:menuitem id="objectItem"
actionListener="#{selectSignMethodView.changeSignMethods('object')}"
value="Object Signing Services"
update=":signMethodForm:signMethodTable"/>
<p:menuitem id="mobileItem"
actionListener="#{selectSignMethodView.changeSignMethods('mobile')}"
value="Mobile Signing Services"
update=":signMethodForm:signMethodTable"/>
<p:menuitem id="macItem"
actionListener="#{selectSignMethodView.changeSignMethods('mac')}"
value="Mac Signing Services"
update=":signMethodForm:signMethodTable"/>
<p:menuitem id="solarisItem"
actionListener="#{selectSignMethodView.changeSignMethods('solaris')}"
value="solaris Signing Services"
update=":signMethodForm:signMethodTable"/>
</p:menu>
</h:form>
And my datatable is like this :
<h:form prependId="false" id="signMethodForm">
<p:dataTable id="signMethodTable"
value="#{selectSignMethodView.signMethodList}"
var="signMethods">
<p:column>
<h:outputText value="${signMethods.name}"/>
</p:column>
<p:column>
<h:outputText value="#{signMethods.fileTypes}" />
</p:column>
<p:column>
<h:outputText value="#{signMethods.servers}"/>
</p:column>
</p:dataTable>
<p:blockUI trigger=":leftMenu:privilegeItem" block="signMethodTable">
LOADING<br />
<p:graphicImage library="images" name="ajax-loader.gif"/>
</p:blockUI>
</h:form>
But blockUI is not blocking my datatable . Is something wrong with my trigger attribute.
Upvotes: 3
Views: 4638
Reputation: 3164
In the case of Primefaces 5.0, Try to use
<p:menuitem id="objectItem"
actionListener="#{selectSignMethodView.changeSignMethods('object')}"
value="Object Signing Services"
update=":signMethodForm:signMethodTable"
onclick="PF('block').show()"
oncomplete="PF('block').hide()"/>
, and also add widgetVar to
<p:blockUI block="signMethodTable" widgetVar="block">
LOADING<br />
<p:graphicImage library="images" name="ajax-loader.gif"/>
</p:blockUI>
it works for me.
Upvotes: 6