简体   繁体   English

在ui:repeat中动态创建的p:pickList不调用ajax传输事件

[英]Dyamically created p:pickList inside ui:repeat doesn't call ajax transfer event

Here is the code that creates p:pickList s inside ui:repeat according to Analysis object: 以下是根据Analysis对象在ui:repeat中创建p:pickList的代码:

<ui:repeat value="#{section.questions}" var="question" varStatus="qStatus">
    <h:form id="questionForm#{qStatus.index+1}">

    <p:fieldset style="border:none; " rendered="#{question.questionType.titleId eq 'OrderList'}">
        <div class="ui-grid-row">
            <div class="ui-grid-col-12 questionText">
                <strong>#{qStatus.index+1}.</strong>
                <h:outputText value="#{ question.questionText}" />
            </div>
        </div>
        <div class="ui-grid-row">
            <div class="ui-grid-col-12">

                <p:pickList id="orderQuestionPickList#{qStatus.index+1}" styleClass="dutyPickList" responsive="true" showTargetControls="true"
                            value="#{analysisBean.sampleDualList}" var="option" itemLabel="#{option.text}" itemValue="#{option}" converter="#{itemConverter}"  >
                    <f:facet name="sourceCaption">Tüm Şıklar</f:facet>
                    <f:facet name="targetCaption">Seçilen Şıklar</f:facet>

                    <p:ajax event="transfer" listener="#{analysisBean.onPickListTransfer}" />

                </p:pickList>
            </div>
        </div>
    </p:fieldset>

    </h:form>
</ui:repeat>

And the Bean: 和豆:

public void onPickListTransfer(TransferEvent event) {
    System.out.println("asd");
    int totalItemsNumber = 0;

    DualListModel<Option> dualListModel = (DualListModel<Option>) getDualListOfOptions(new ArrayList<Option>());
    if (dualListModel != null) {
        totalItemsNumber = dualListModel.getTarget().size();
    }

}

When I add picklist outside the ui:repeat it calls onPickListTransfer successfully, however the picklist inside ui:repeater does not call. 当我在ui:repeat之外添加选择列表时,它onPickListTransfer成功调用onPickListTransfer ,但是不会调用ui:repeater内部的选择列表。

How can I solve this issue? 我该如何解决这个问题? Primefaces 5.3, Seam 2.3.1 Primefaces 5.3,接缝2.3.1

The solution is to use <f:param name="skipValidation" value="true"/> 解决方案是使用<f:param name="skipValidation" value="true"/>

<p:pickList id="orderQuestionPickList#{qStatus.index+1}" styleClass="dutyPickList" responsive="true" showTargetControls="true"
                        value="#{analysisBean.sampleDualList}" var="option" itemLabel="#{option.text}" itemValue="#{option}" converter="#{itemConverter}"  >
                <f:facet name="sourceCaption">Tüm Şıklar</f:facet>
                <f:facet name="targetCaption">Seçilen Şıklar</f:facet>

                <f:param name="skipValidation" value="true"/>

                <p:ajax event="transfer" listener="#{analysisBean.onPickListTransfer}" />

            </p:pickList>

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

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