这对我不起作用:
<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>
我得到的错误是:
Cannot find component with identifier "editWatchfolderButtonId"
。当我使用 Firebug 查找 ID 时,我发现每一行都有不同的 ID:
wfMgtForm:wfTable:0:editWatchfolderButtonId
wfMgtForm:wfTable:1:editWatchfolderButtonId
wfMgtForm:wfTable:2:editWatchfolderButtonId
wfMgtForm:wfTable:3:editWatchfolderButtonId
等等。我应该如何从我的
<p:blockUI>
引用这个自动创建的 ID? 最佳答案
<p:dataTable>
也是 NamingContainer
。还包括其 ID。
<p:blockUI ... trigger="wfTable:editWatchfolderButtonId">
行索引仅存在于客户端,而不存在于服务器端,因此无关紧要。
更新:只是在本地对其进行了测试,它确实解决了异常,但它根本没有触发块UI(PrimeFaces 3.5)。看起来像 PrimeFaces 中的一个错误。
与此同时,你最好的办法是按照 Aksel 的建议手动触发它,但又有些不同:
<p:commandLink ... onclick="bui.show()" oncomplete="bui.hide()">
...
<p:blockUI widgetVar="bui" />
关于jsf - 如何引用 p :commandLink in p:dataTable from p:blockUI trigger?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14893751/