1

要素のリストと削除ボタンのある列を含む JSF MyFaces dataTable があります。私がしたいのは、ユーザーが操作を確認またはキャンセルできるようにする削除ボタンをクリックしたときにダイアログをポップアップすることだけです。

私はすでにダイアログを持っています(<a>HTML5サポートがないため、簡単にするために縮小し、使用しています):

<div id="myModal">
    <h:form>
        <a data-dismiss="modal">Close</a>
        <h:commandLink action="#{somethingMagicInHere?}">Confirm</h:commandLink>
    </h:form>
</div>

dataTable には、次のようなものがあります (これも単純化されています)。

<h:dataTable id="myDataTable" value="#{bean.elementList}" var="element">
    <h:column>
        <f:facet name="header">Actions</f:facet>
        <a class="call-modal">Delete</a>
    </h:column>
</h:dataTable>

最後に、私の ManagedBean は次のようになります。

@ManagedBean(name = "bean")
@RequestScoped
public class ElementClassBean {
    ...

    public String actionToPerform(ElementClass e) {
        MyBusinessLogicModel.getInstance().deleteElement(e);
    }
}

要するに、jQuery はページをロードするときに実行され、class を持つすべての要素を取得し、それらにcall-modalan を設定して、idを持つコンポーネントを表示します。これはもちろんモーダル ウィンドウです。私はこの作業をこのように継承し、変更しないことを好みますが、解決策やアイデアが役立ちます。onclickmyModal

commandLinkビューからアクセスする dataTable で直接使用できますactionToPerform(element)が、もちろんモーダルは起動しません。この構造を考えると、私が見る主な問題は、ボタンがクリックされたときにモーダルelementに反復されるものをどのように送信できるかということです。(ソリューションが Ajax を使用しているかどうかは気にしません)。dataTableDelete

どんな入力も役に立ちます。ありがとう。

4

1 に答える 1