如何使用带有对象的selectonemenu使用Primefaces incell编辑

时间:2013-03-01 18:41:01

标签: jsf primefaces

我有一个selectOneMenu,其中包含SelectItem类型的对象列表, 如何将selectOneMenu与其中的对象列表一起使用 一个单元格编辑。 当渲染页面加载数据但是要更改Sucursalesin时,单元格编辑会显示以下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(一个数字),不要显示标签......

0 个答案:

没有答案