0

inputText1つと1つのcommandButtonコンポーネントでxhtmlページを作成しました。ボタンをクリックすると、リストの下に と が表示さoverlayPanelpickListますcommandButton。すべての目標値を取得して入れたいinputText(このコンポーネントは 1 つだけである必要があります)。どうすればいいですか?

以下は、私が今のところ書いた xhtml コードです。

<h:panelGrid id="displayPlayers" columns="3">
        <ui:repeat value="#{pickListBean.players.target}" var="player"> 
            <p:inputText id="input2" value="#{player.name}" />
        </ui:repeat> 
        <p:commandButton id="overPanBtn2" value="overPanBtn2" type="button" />
    </h:panelGrid>

    <p:overlayPanel id="chartPanel2" for="overPanBtn2" hideEffect="fade">
        <p:pickList id="pickList4" value="#{pickListBean.players}" var="player" itemLabel="#{player}" itemValue="#{player}" converter="playerConverter">
            <p:column style="width:75%;">  
                #{player.name}  
            </p:column>
            <p:column style="width:75%;">  
                #{player.number}  
            </p:column>
        </p:pickList>
        <p:commandButton id="playerSubmit4" value="Ok" update="displayPlayers" style="margin-top:5px" />
    </p:overlayPanel>

私は助けに感謝します。

4

1 に答える 1

3

あなたの場合、それはそのようなものでなければなりません。ショーケースの例に従うだけです:

XHTML

<p:pickList id="pickList4" value="#{pickListBean.players}" var="player" itemLabel="#{player}" itemValue="#{player}" converter="playerConverter">
    <p:ajax event="transfer" listener="#{pickListBean.onTransfer}" update="msg" />
    <p:column style="width:75%;">  
            #{player.name}  
    </p:column>
    <p:column style="width:75%;">  
            #{player.number}  
    </p:column>
</p:pickList>

バッキングビーン

String selectedPlayerNames;

//GETTER

public void onTransfer(TransferEvent event) {
    selectedPlayerNames = "";
    for (Player p : players.getTarget()){
        selectedPlayerNames += p.getName() + " ";
        }
}

転送が発生したときにイベントを呼び出し、対象の値を文字列に保存するだけです。次に、この String プロパティを にバインドしますp:inputText

于 2013-01-21T21:34:43.123 に答える