How to reference p:commandLink in p:dataTable from p:blockUI trigger?

blockui, jsf, jsf-2, primefaces

Solution

The `<p:dataTable>` is also a `NamingContainer`. Include its ID as well.

<p:blockUI ... trigger="wfTable:editWatchfolderButtonId">

The row index is only present in client side, not in server side, so that's not relevant.

Update: just tested it locally, it indeed fixes the exception, but it didn't trigger the block UI at all (PrimeFaces 3.5). Look like a bug in PrimeFaces.

In the meanwhile, your best bet is to manually trigger it as suggested by Aksel, but then somewhat different:

<p:commandLink ... onclick="bui.show()" oncomplete="bui.hide()">
...
<p:blockUI widgetVar="bui" />

Problem

This is not working for me: ``` <h:form id="wfMgtForm"> . . . <p:dataTable id="wfTable" ..." var="item"> <p:column> . . . </p:column> <p:column> <p:commandLink id="editWatchfolderButtonId" oncomplete="dlgEditWF.show()" update=":editWFForm" process="@none"> <f:param value="#{item.value.ID}" name="editId"/> <h:graphicImage alt="Edit Image" style="border: none" value="./images/edit.png" /> </p:commandLink> </p:column> . . . <p:blockUI block=":wfMgtForm" trigger="editWatchfolderButtonId"> Loading...<br/> <p:graphicImage alt="Loader Image" value="/images/loader.gif"/> </p:blockUI> </h:form> ``` The error that I am getting is: `Cannot find component with identifier "editWatchfolderButtonId"`. When I used Firebug to look for the ID, I discovered that every row has a different ID: `wfMgtForm:wfTable:0:editWatchfolderButtonId` `wfMgtForm:wfTable:1:editWatchfolderButtonId` `wfMgtForm:wfTable:2:editWatchfolderButtonId` `wfMgtForm:wfTable:3:editWatchfolderButtonId` etc. How should I reference this auto created IDs from my `<p:blockUI>`?

Original source