タイプ SelectItem のオブジェクトのリストを持つ selectOneMenu があります。1 つのセル編集内のオブジェクトのリストで selectOneMenu を使用する方法です。ページをレンダリングするとデータがロードされますが、セル編集で Sucursales を変更すると、次の util.SucursalUtil @ 52d68a が表示されます。適切な値を表示するにはどうすればよいですか。
<p:column headerText="Sucursal" style="width:25%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.nombreSucursal}" />
</f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{car.nombreSucursal}" style="width:100%">
<f:selectItems value="#{clientesMB.itemsSucursal}" var="man" itemLabel="#{man}"
itemValue="#{man}" />
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
private List<SelectItem> itemsSucursal = new LinkedList<SelectItem>();
コードは次のようになります
<p:column headerText="Sucursal" style="width:25%">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{car.nombreSucursal}" /></f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{car.sucBanc}" style="width:100%" converter="sucursalConverter">
<f:selectItems value="#{clientesMB.itemsSucursal}"/>
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:ajax event="cellEdit" listener="#{clientesMB.modiCell}" update=":form2:formgen" />
public void modiCell(CellEditEvent event) throws Exception {
try {
Object oldValue = event.getOldValue();
Object newValue = event.getNewValue();
//SucursalUtnewValueil c = (SucursalUtil) event.getNewValue();
int row = event.getRowIndex();
this.empClienteEditar.getCuentasBancarias().get(row).setNombreSucursal(newValue.toString());
if (newValue != null && !newValue.equals(oldValue)) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + row + ", New:" + newValue);
FacesContext.getCurrentInstance().addMessage(null, msg);
}
} catch (Exception e) {
JsfUtil.addErrorMessage(e, "Error: modiCliente() " + e.getMessage());
}
}
問題は、最初に値を変更してテーブルにオブジェクトのID(数値)を表示するときに、ラベルを表示しないことです...