1

私はこのコマンドボタンを持っています

<p:commandButton onclick="confirmation1.show()"
                                                                 id="delFriend" title="Delete #{userFriend.profileFullname}" icon="ui-icon ui-icon-trash" >

                                                </p:commandButton>

そして、これが確認ダイアログです

<p:confirmDialog id="confirmDialog" message="Are you sure you want to delete this friend ?"
                                                             header="Deleting friend" severity="alert" widgetVar="confirmation1">


                                                <p:commandButton id="confirm" value="Yes Sure" oncomplete="confirmation1.hide()"
                                                                 action="#{messagesManagedBean.deleteFriend}">
                                                    <f:param value="#{profileId}" name="profileId" />
                                                </p:commandButton>
                                                <p:commandButton id="decline" value="Not Yet" onclick="confirmation1.hide()" type="button" />
                                            </p:confirmDialog>

どちらも ui:repeat 内にあります。確認ダイアログで [はい] ボタンをクリックすると、ui:repeat リストにある最後の要素の profileId が取得されます。

f:param メソッドを試してから、Bean で要求パラメーターを取得しようとしましたが、無駄でした。それは同じことをします。

助けが必要です。ありがとう

編集

ページの内容を次のように変更しました

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui" 
      xmlns:c="http://java.sun.com/jsp/jstl/core">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="../Styles/homepage-style.css" />
        <link rel="stylesheet" type="text/css" href="../Styles/profile.css" />
        <title>Shadi Bandhan | We find the best match for you</title>
    </h:head>

    <h:body>

        <div id="header">
            <ui:insert name="header" >
                <ui:include src="header.xhtml" />
            </ui:insert>
        </div>
        <div id="main-content">
            <p:growl autoUpdate="true" />
            <div id="left-pane">

                <div id="profile-info-area">
                    <ui:insert name="profile_info_area" >
                        <ui:include src="profileInfoArea.xhtml" />
                    </ui:insert>
                </div>

                <div id="home-main-area">
                    <div id="interests-expressions-wrapper">

                        <div id="interests-expressions-header">

                            <div id="ie-heading">
                                Friends
                            </div>

                        </div>
                        <div id="interests-expressions">

                            <h:form id="interestExpressionsForm">

                                <p:confirmDialog id="confirmDialog" message="Are you sure you want to delete this friend ?"
                                                 header="Deleting friend" severity="alert" widgetVar="confirmation1">


                                    <p:commandButton id="confirm" value="Yes Sure" oncomplete="confirmation1.hide()"
                                                     action="#{messagesManagedBean.deleteFriend(userFriend.profileId)}">
                                    </p:commandButton>
                                    <p:commandButton id="decline" value="Not Yet" onclick="confirmation1.hide()" type="button" />
                                </p:confirmDialog>

                                <ui:repeat id="interestsRepeator" var="userFriend" value="#{messagesManagedBean.userFriends}">

                                    <center><img class="h-diff" src="../images/differentiator-profile.jpg" width="437" height="1" /></center>
                                    <div class="intExpression">
                                        <div id="senderImg">
                                            <img class="senderImg" src="../images/profile-pic.jpg" width="50" height="50" />
                                        </div>

                                        <div id="intExpression-area">

                                            <div id="senderName">
                                                <p:commandLink id="senderNameLink" styleClass="senderName" value="#{userFriend.profileFullname}"  action="#{myProfileManagedBean.loadProfileFrontInformation(userFriend.profileId)}"></p:commandLink>
                                            </div>
                                            <div id="intExpression-body">
                                                #{userFriend.profileAge} <br />
                                                #{userFriend.profileReligion} <br />
                                                #{userFriend.profileLocation} <br />

                                            </div>

                                            <div id="interest-response-area">

                                                <p:commandButton onclick="confirmation1.show()" update=":interestExpressionsForm:confirmDialog"
                                                                 id="delFriend" title="Delete #{userFriend.profileFullname}" icon="ui-icon ui-icon-trash" >
                                                    <f:param value="#{userFriend}" name="userFriend" />
                                                </p:commandButton>
                                            </div>

                                        </div>
                                    </div>
                                </ui:repeat>

                            </h:form>

                        </div>



                    </div>
                </div>
            </div>

            <div id="right-pane">
                <ui:insert name="right-pane" >
                    <ui:include src="right-pane.xhtml" />
                </ui:insert>
            </div>
        </div>

        <div id="footer">
            <ui:insert name="footer" >
                <ui:include src="footer.xhtml" />
            </ui:insert>
        </div>

    </h:body>
</html>

BalusCの返信後。update=":interestExpressionsForm:confirmDialog" を使用すると、確認ダイアログが開き、すぐに閉じます。

4

1 に答える 1

2

<p:confirmDialog>の外側に置き<ui:repeat>ます。複数ではなく、1 つだけ必要です。押されたボタンに基づいて、ダイアログのコンテンツを ajax 更新するだけです。

于 2012-06-18T20:04:22.023 に答える