У меня есть 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);
}