0

ページに 2 つの Primefacep:dialogsがあり、それらを表示するためのボタンが 2 つあります (1 つは削除ボタン、もう 1 つは編集ボタンです)。

ダイアログの visible 属性を次のように設定します:visible="#{fn:length(bean.selectedItems) gt 0}削除ボタン とvisible="#{fn:length(bean.selectedItems) eq 1}に対して、複数の要素を削除できますが、同時に編集できるのは 1 つだけです。

現在、Bean は ViewScoped になっているため、アイテムが 1 つだけ選択されていて、ajax 送信が押されていない commandButton がある場合、両方のダイアログが表示されますが、これは明らかに私が望んでいるものではありません。

必要なときにのみ適切なダイアログを表示する最も簡単な方法は何ですか?

そのために余分な Bean 属性を設定したくないので、それを簡単な解決策と考えてみましょう。別の方法はありますか?アクションの名前をビュースコープのパラメーターに設定することはありますか? または、レンダリングされた属性を使用して、javascript コールバックから表示/非表示を管理しますか?

4

1 に答える 1

1

正しい方法は

<p:commandButton value="DELETE" 
                 onclick="deleteDialog.show()" 
                 disabled="#{fn:length(bean.selectedItems) eq 0}" />

<p:commandButton value="EDIT" 
                 onclick="editDialog.show()" 
                 disabled="#{fn:length(bean.selectedItems) ne 1}" />
于 2012-10-08T13:17:22.073 に答える