【发布时间】:2016-10-19 10:54:44
【问题描述】:
我的 rowExpansion 中有 selectOneMenu 和 inputText。每当我取消并重新切换特定行或切换到另一行时,我的 selectOneMenu 中的值将重置为我的 noSelectOption 但我的 inputText 值仍然存在。
我在 Primefaces 6.0 上运行。
<p:dataTable id="idTableItemList" value="#{bean.itemList}" var="vo" rowKey="#{row}" rowIndexVar="row" rowExpandMode="single">
<p:ajax event="rowToggle" listener="#{bean.onRowToggle}" global="false"
update=":idForm:idTableItemList:idTablePackage" />
<p:column>
<p:rowToggler></p:rowToggler>
</p:column>
<p:rowExpansion>
<p:dataTable id="idTablePackage" value="#{vo.packageList}" var="voSub" rowKey="#{row}"
rowIndexVar="rowIndex">
<p:column headerText="Package Type" style="width:100px;">
<p:selectOneMenu id="idPackage"
value="#{voSub.packageType}">
<f:selectItem itemLabel="Select One" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{bean.packageUDCList}"
var="udc" itemLabel="#{udc.description}" itemValue="#{udc.code}"/>
<p:ajax update="idPackage" event="change" listener="#{bean.updateItemPackage(vo, voSub)}" global="false"/>
</p:selectOneMenu>
</p:column>
<p:column headerText="Quantity" style="width:40px;">
<p:inputNumber id="idQuantity" value="#{voSub.quantity}"/>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
我将 rowToggle 更新为下面的代码,但仍然没有成功。
<p:ajax event="rowToggle" listener=“#{bean.onRowToggle}" global="false"
disabled=“#{bean.itemList.size() eq 0}"
process=":idForm:idTableItemList:#{bean.rowIndex}:idTablePackage"
update=":idForm:idTableItemList:#{bean.rowIndex}:idTablePackage"/>
【问题讨论】:
标签: jsf primefaces