Невозможно заполнить значения, полученные при вызове ajax, используя PrimeFaces - PullRequest
0 голосов
/ 16 мая 2011

Привет
Я сделал вызов ajax с использованием простых лиц [p: ajax]. Вызов слушателя был успешным, и он вернул требуемые значения. Чтобы обновить эти свойства в xhtml, я проверил источник DOM, чтобы узнать точный идентификатор столбца, с помощью которого будет обновляться столбец или свойство. Но в этом случае поля не получают значения.

Код, который я использовал в этом случае:

        <p:dataTable id="table1" var="recepit" rowIndexVar="rowIndex"   value="#{ReceiptDetailsBean.iterativeList}" scrollable="true"  height="120px" styleClass="leftTable">

            <p:column style="background-color: #EFF2F9">
                <f:facet name="header">
                    <h:outputText value="SL NO" />
            </f:facet>
                    <h:outputText value="#{rowIndex+1}" />

            </p:column>

            <p:column >
                <f:facet name="header">
                    <h:outputText value="Buss." />
                </f:facet>

                        <h:selectOneMenu id="selectOneCb" value="#{ReceiptDetailsBean.bussCode}" >
                            <f:selectItem itemLabel="V_BUSS_CODE" itemValue=""/>
                            <f:selectItems value="#{ReceiptDetailsBean.rdetails}" var="model" itemLabel="#{model.buss}" itemValue="#{model.buss}"/>
                             <p:ajax update="mainForm:table1:#{rowIndex}:receiptCode, mainForm:table1:#{rowIndex}:referenceType"  actionListener="#{ReceiptDetailsBean.obtainReceiptDatabasedOnBussCode}" event="change"/>  
                        </h:selectOneMenu>

            </p:column>

            <p:column id="receiptCodeCol">
                <f:facet name="header">
                    <h:outputText value="Receipt Code" />
                </f:facet>

                        <h:inputText value="#{ReceiptDetailsBean.receiptCode}" id="receiptCode" style="font-family: verdana;font-size: 10px;width:80px;height:15px" />


            </p:column>

            <p:column id="receiptTypeCol">
                <f:facet name="header">
                    <h:outputText value="Ref Type" />
                </f:facet>

                        <h:inputText value="#{ReceiptDetailsBean.receiptType}" id="referenceType" style="font-family: verdana;font-size: 10px;width:80px;height:15px"/>


            </p:column>


        </p:dataTable>

                    </div>


        </p:tab>

        <p:tab title="Print">

        </p:tab>



</p:tabView>
</h:form>

Идентификатор из источника представления DOM был table1: 0: receiveCodeHotKey: receiveCode

В чем может быть проблема, если данные не будут заполнены в поле.

1 Ответ

1 голос
/ 16 мая 2011

Я думаю, что источником проблемы является использование h:form. Вам не нужно помещать его вокруг каждого элемента ввода. Поместите one h:form вокруг таблицы данных, а затем проверьте снова сгенерированные идентификаторы.

Тогда это должно быть что-то вроде (пример для первой строки с rowindex 0):

formId:table1:0:receiptCode
...