Auswählen von Zeilen in JSF mit primefaces

Ich habe einige Schwierigkeiten beim Versuch, wählen Sie einzelne Zeilen in einer datatable (ich kann nicht herausfinden, was Los ist, denn mein code basiert auf der primefaces-showcase).

Dem Tisch ist gefüllt, die erste mit dem Ergebnis übereinstimmt, dann versuche ich, um eine Zeile zu wählen, und schließlich zu versuchen zu tun, einige Prozess. Das problem erscheint, wenn ich versuche zu verarbeiten, dass eine einzige Zeile, keine der aktuellen Methoden seines Wesens genannt.

   <h:form id="form2">
        <p:dialog header="Agregar Producto" widgetVar="dlgAgregarProducto" modal="true" width="800" height="300">  
            <h:outputText value="Código"/>   
            <h:inputText value="#{promocionController.strIdProducto}"/>
            <h:outputText value="Nombre"/>     
            <h:inputText value="#{promocionController.strNombre}"/>   
            <p:commandButton id="btnBuscarProducto" value="Buscar" action="#{promocionController.buscarProductosIdNombre}" update="tableBusqueda"/>  
            <p:commandButton id="btnAgregarProducto" value="Agregar" action="#{promocionController.agregarProductos}" />  

            <p:dataTable id="tableBusqueda" var="prod" value="#{promocionController.obtenerProductos()}" 
                         rowKey="#{prod.idProducto}" selection="#{promocionController.arrProductosSeleccionados}" selectionMode="single">

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Código"/>
                    </f:facet>
                    <h:outputText value="#{prod.idProducto}"/>
                </p:column>

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Foto"/>
                    </f:facet>
                    <h:outputText value="foto"/>
                </p:column>                

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Descripción"/>
                    </f:facet>
                    <h:outputText value="#{prod.descripcion}"/>
                </p:column>

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Marca"/>
                    </f:facet>
                    <h:outputText value=""/>
                </p:column>

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Modelo"/>
                    </f:facet>
                    <h:outputText value="#{prod.modelo}"/>
                </p:column>

                <p:column style="width:24%">
                    <f:facet name="header">
                        <h:outputText value="Precio"/>
                    </f:facet>
                    <h:outputText value="#{prod.precio}"/>
                </p:column> 

            </p:dataTable>                            
        </p:dialog> 
    </h:form>

Backing-bean:

@ManagedBean(name = "promocionController")
@SessionScoped
public class PromocionCO {
    arrProductosPromocion = new ArrayList<Producto>();
    arrProductosSeleccionados = new ArrayList<Producto>();
}
public void buscarProductosIdNombre() {
    productoDAO = new ProductoDAO();
    arrProductosBusqueda = new ArrayList<Producto>();
    arrProductosSeleccionados = new ArrayList<Producto>();
    //si la búsqueda es por nombre
    if (strIdProducto.compareTo("") == 0) {
        arrProductosBusqueda = productoDAO.obtenerProductosPorNombre(strNombre);
    } //si la búsqueda es por id
    else {
        producto = productoDAO.obtenerProductoPorId(strIdProducto);
        if (producto != null) {
            arrProductosBusqueda.add(producto);
        } else {
            arrProductosBusqueda = null;
        }
    }
}

public void agregarProductos() {
    for (int i = 0; i < arrProductosSeleccionados.size(); i++) {
        arrProductosPromocion.add(arrProductosSeleccionados.get(i));
    }
}
public ArrayList<Producto> obtenerProductos() {
    return arrProductosBusqueda;
}
public ArrayList<Producto> getArrProductosSeleccionados() {
    return arrProductosSeleccionados;
}

public void setArrProductosSeleccionados(ArrayList<Producto> arrProductosSeleccionados) {
    if (arrProductosSeleccionados != null) {
        this.arrProductosSeleccionados = arrProductosSeleccionados;
    }
}
  • Die vollständige xhtml-und auch die backing-bean würde anderen zu helfen, Antworten auf diese
Schreibe einen Kommentar