Existe una necesidad empresarial de categorizar los artículos. La mejor idea parece ser arrastrar los elementos de una lista a la lista de categorías. El número de categorías puede variar, por lo que se usa p: dataTable. Se envía la solicitud de Ajax pero no se llama al método onDrop desde dentro de la tabla de datos. Cuando se elimina la tabla de datos y la columna y se tienen paneles de salida estáticos, entonces se llama a onDrop?Cómo usar PrimeFaces p: droppable dentro de datatable?
¿Cuál es la mejor manera de arrastrar y soltar elementos en categorías dinámicamente cambiantes?
<h:form prependId="false">
<h:panelGrid columns="2">
<p:dataTable id="itemstable" value="#{categoryBean.items}" var="item">
<p:column>
<p:outputPanel id="itemrow">
<h:outputText value="#{item}"></h:outputText>
</p:outputPanel>
<p:draggable for="itemrow"></p:draggable>
</p:column>
</p:dataTable>
<p:dataTable value="#{categoryBean.categories}" var="cat">
<p:column>
<p:outputPanel id="cats1">
<h:outputText value="category1"></h:outputText>
</p:outputPanel>
<p:droppable for="cats1"
dropListener="#{categoryBean.onDrop}"
tolerance="pointer"
activeStyleClass="slotActive"
datasource="itemstable">
</p:droppable>
</p:column>
</p:dataTable>
</h:panelGrid>
</h:form>
Ya no es el caso. Lo conseguí trabajando con arrastrar y soltar de una celda a otra. – Thomas
@ Thomas6767 ¡Genial! ¿Puedes poner la versión de PrimeFaces que está arreglada para referencia? – Mark
Funciona en Primefaces 5.1 – Thomas