5

Primefaces3.4とJSF2.0を使用しています。私はap:commandLinkを持っています:

<p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
    <span class="ui-icon ui-icon-close"></span>
    <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
</p:commandLink> 

目的は、p:dataTableの食品のリストから行を削除することであり、通常の状況で機能します。問題は、ap:rowEditorも同じ位置に配置したいという事実にあります。primefacesrowEditorに精通している方は、編集中にチェックとxアイコン(編集モードを終了するため)が表示されます。編集モードをキャンセルする意味と現在の行を削除する意味の2つの閉じるアイコンは必要ありません。

そこで、編集中に行を削除するための「x」が非表示になるように、ap:cellEditorに埋め込むことにしました。

<p:cellEditor>   
    <f:facet name="output">  
        <p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
            <span class="ui-icon ui-icon-close"></span>
            <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
        </p:commandLink> 
    </f:facet>  
    <f:facet name="input"><h:outputText value="" /></f:facet>                       
</p:cellEditor> 

これは奇妙なことにajaxリクエストを送信し、更新応答を受け取ります(明らかな検証エラーはありません)が、p:cellEditorタグ内にない場合のようにアクションメソッドonRemoveFoodItemを呼び出しません。p:cellEditorが実際にはこのように使用されることを意図していないことは理解していますが、表示されている場合は、p:cellEditorが周囲にないかのように動作すると思います。

誰かがここで明らかに間違っているものを見ることができますか、それともこれはプライムフェイスの問題ですか?助けていただければ幸いです。

4

1 に答える 1

7

同様の問題が発生し、process = "@ this"属性をp:commandLinkに追加することで解決しました。

于 2013-04-04T10:37:09.103 に答える