如何参考号码:commandLink在号码:dataTable中从号码:blockUI触发?(How

2019-07-19 23:23发布

这不是为我工作:

<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"

当我用萤火虫来查找ID,我发现每一行都有不同的ID:

wfMgtForm:wfTable:0:editWatchfolderButtonId wfMgtForm:wfTable:1:editWatchfolderButtonId wfMgtForm:wfTable:2:editWatchfolderButtonId wfMgtForm:wfTable:3:editWatchfolderButtonId
等等

我应该如何引用此自动生成的ID从我的<p:blockUI>

Answer 1:

所述<p:dataTable>也是NamingContainer 。 包括其ID为好。

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

行指数只有在客户端的存在,而不是在服务器端,所以这是不相关的。


更新 :只是测试它在本地,它的确修复了异常,但它并没有引起在所有(PrimeFaces 3.5)块UI。 看起来像PrimeFaces的错误。

在此期间,你最好的赌注是手动触发它通过斯文的建议,但随后有所不同:

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


Answer 2:

下面是一个使用commandLink阻止事情的一个简单的例子。 修改从陈列柜例子在这里

<h:form>
    <p:commandButton value="blockMe" id="someId" />
    <br />
    <p:commandLink id="pnlBtn" value="Block" type="button"
        onclick="bui.show()" />
    <br />
    <p:commandLink id="pnlBtn2" value="Unblock" type="button"
        onclick="bui.hide()" />

    <p:blockUI block="someId" widgetVar="bui" />
</h:form>


Answer 3:

对于那些因为作为无能自己,如果BlockUI不点火,检查“触发”的目标已启用Ajax。 我花了差不多一天试图找出为什么BlockUI没有开枪,我发现我有它的目标配置为“阿贾克斯=‘假’”。



Answer 4:

您可以使用jQuery选择。

<p:commandLink styleClass="mybutton-class">
<p:blockUI ... trigger="@(.mybutton-class)">


文章来源: How to reference p:commandLink in p:dataTable from p:blockUI trigger?