web-dev-qa-db-ja.com

別のフォームからのパネルのprimefacesajaxアップデート

私はここにいくつかのコードを持っています:

<f:view>
    <h:form id="formA">
        <p:treeTable id="tree">
            <p:ajax event="select" listener="..." update="mustRefresh" />  
            ...
        </p:treeTable>
    </h:form>
    <h:form id="formB">
        <p:panel id="mustRefresh"> ... </p:panel>

    </h:form>   
</f:view>

ユーザーがtreeTable(formA)でレコードを選択すると、その詳細がformBに表示され、編集できるようになります。私の問題はupdate = "mustRefresh"が機能しないことです、それは次のような例外をスローします:

javax.faces.FacesException: Cannot find component with identifier "mustRefresh" referenced from "A4578:formA:tree". 

@ form、formB、:formB、:mustRefreshで試しましたが、機能しません。

6
user1487380

コンポーネント階層のmustRefreshformB内にあるため、次のように参照する必要があります。

<p:ajax event="select" listener="..." update=":formB:mustRefresh" />

IComponentBase.findComponent のしくみをご覧ください。

23
Akos K

update="@([id$=mustRefresh])"を使用します-これはdisplayPostを直接取得します。それを何かにマッピングする必要はありません。

15
Mahendra