简体   繁体   English

PrimeFaces PickList组件,如何将所有目标值转换为一个InputText组件?

[英]PrimeFaces PickList component, how to get all target values to one InputText component?

I created xhtml page with one inputText and one commandButton component. 我用一个inputText和一个commandButton组件创建了xhtml页面。 When I clicked on button is displaying overlayPanel with pickList and one commandButton under list. 当我点击按钮显示overlayPanelpickList和一个commandButton下单。 I want to get all target values and put it into inputText (this component must be only one). 我想获取所有目标值并将其放入inputText (此组件必须只有一个)。 Can you help me how to do it? 你能帮我怎么做吗?

Below is xhtml code that I wrote for now: 以下是我现在编写的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>

I will be grateful for help. 我将不胜感激。

In your case it should be something like that, you only have to follow the showcase example : 就您而言,应该是这样,您只需要遵循示例示例

XHTML 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>

BACKING BEAN 支持豆

String selectedPlayerNames;

//GETTER

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

Just call the event when transfer happens, and save the targeted values into the String. 只要在传输发生时调用事件,然后将目标值保存到String中即可。 Then bind this String property to a p:inputText . 然后将此String属性绑定到p:inputText

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM