1

orderListから選択したアイテムを取得したい。この機能が欠けているように私には思えます。PF に機能はありますか? または、可能な回避策はありますか?

あなたの答えに本当に感謝します!

私の技術スタック:

  • 休止状態: 4.0.1.Final
  • 春: 3.1.1.RELEASE
  • プライムフェイス: 3.5
  • jsf バージョン: 2.2.0-m08
  • PrimefacesMobile バージョン: 0.9.3
  • アパッチ トムキャット/7.0.12
4

3 に答える 3

1

の各アイテムの編集アクションを作成しようとして、同じ問題に遭遇しましたorderList。アクションにmy を渡してvar、属性と組み合わせてアクションリスナーを作成し、リスナーを選択してみましたが、すべて成功しませんでした。

私は(ショーケースでデータテーブルの並べ替えdataTable ... draggableRows="true"を参照)を使用することになりました。データ テーブルでは、 myをパラメータとしてアクションに渡すだけでよいので、考えました。再注文後、編集ボタンをクリックすると間違った商品が表示されるという問題に遭遇しました。再注文時にモデルを更新してテーブルを再描画するという回避策を作成しました。動作しますが、気分が良くありません。var

<p:dataTable id="myTable"
             value="#{myBean.myItems}"
             var="item"
             sortBy="#{item.orderNumber}" sortOrder="ascending"
             draggableRows="true">
    ...
    <p:column headerText="Actions">
        <p:commandButton title="Edit"
                         action="#{myBean.edit(item)}"
                         process="@this">
    </p:column>
    <p:ajax event="rowReorder"
            listener="#{myBean.onSlotContentReorder}"
            update="myTable"/>
</p:dataTable>
于 2016-08-05T14:49:05.193 に答える
1

削除用のボタンを使用してこれを解決しました。コード スニペットは次のとおりです。

<p:orderList id="layersList" value="#{mappingLayerController.layers}" 
             converter="layerConverter" var="layer" itemValue="#{layer}" 
             controlsLocation="left">
 <p:column>
  <h:outputText value="#{layer.layerName}"/>
 </p:column>
 <p:column style="width: 4%">
  <p:commandButton icon="ui-icon-close" actionListener="#{controller.deleteLayer()}">
   <f:param name="layerName" value="#{layer.layerName}" />
  </p:commandButton>
 </p:column>
</p:orderList>

また、バッキング Bean では、次のように f:param タグを介して提供されたパラメーターを取得できます。

String layerName = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("layerName");

これが役立つことを願っています。

于 2014-03-28T16:00:47.843 に答える