Как удалить selectitems из selectonemenu в ap: datatable? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть p:dataTable, динамически генерируемый для элементов, выбранных в p:picklist.Я пытаюсь удалить selectitems из p:selectonemenu в таблице данных.

Я попытался использовать ajax updatecolumn Omnifaces, но он обновляет весь столбец, сбрасывая выбранное значение.Кроме того, мне нужно обновить p:selectonemenu еще раз, если после выбора элемента выбран пустой элемент.Нужна помощь по этому вопросу

<p:dataTable binding="#{table2}" id="addTyreDetailsDT"
                             value="#{tyreTruckRecordController.itemsTyreTruck}"
                             var="tyreTruck"  style="width: fit-content;">
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Tyre No"/>
                        </f:facet>
                        <h:outputText id="tyreno" value="#{tyreTruck.tyreId.tyreNo}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Start KM"/>
                        </f:facet>
                        <b:inputText id="km"  value="#{tyreTruck.startKm}" placeholder="Enter Start KM"/>
                    </p:column>
                    <p:column id="columnList">
                        <f:facet name="header">
                            <h:outputText value="Position"></h:outputText>
                        </f:facet>
                            <p:selectOneMenu value="#{tyreTruck.position}" id="selectPosiiton">
                                <f:selectItem itemLabel="(Position)" itemValue="" />
                                <f:selectItems  value="#{tyreTruckRecordController.positionList}"
                               var="position" itemValue="#{position}" itemLabel="#{position}"/>
                                <f:ajax  listener="#{tyreTruckRecordController.updateColumn(table2, 3)}"  />
                            </p:selectOneMenu>
                        </p:column>
                </p:dataTable>  
public void updateColumn(UIData table, int index){

        TyreTruckRecord test=(TyreTruckRecord)table.getRowData();


        Iterator<String> it = positionList.iterator();
        while (it.hasNext()) {
            String user = it.next();
                if (user.equals(test.getPosition())) {
            it.remove();
                }
        }

        Ajax.updateColumn(table, index);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...