1

タイプ 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(数値)を表示するときに、ラベルを表示しないことです...

4

0 に答える 0