7

これは私にとってはうまくいきません:

<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

この自動作成された ID を自分の から参照するにはどうすればよい<p:blockUI>ですか?

4

4 に答える 4

10

<p:dataTable>NamingContainerです。そのIDも含めてください。

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

行インデックスはサーバー側ではなくクライアント側にのみ存在するため、関係ありません。


更新:ローカルでテストしただけで、実際に例外が修正されましたが、ブロックUIはまったくトリガーされませんでした(PrimeFaces3.5)。PrimeFacesのバグのように見えます。

その間、あなたの最善の策は、Akselによって提案されたように手動でトリガーすることですが、それから多少異なります:

<p:commandLink ... onclick="bui.show()" oncomplete="bui.hide()">
...
<p:blockUI widgetVar="bui" />
于 2013-02-15T14:05:43.160 に答える
4

これは、何かをブロックするために 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>
于 2013-02-15T11:50:52.607 に答える
0

私のように無知な人のために、BlockUI が起動しない場合は、「トリガー」ターゲットで Ajax が有効になっていることを確認してください。BlockUI が起動しない理由を突き止めるのにほぼ 1 日を費やしたところ、そのターゲットが「ajax="false"」として構成されていることがわかりました。

于 2014-04-02T15:32:30.183 に答える