En algunas ocasiones necesitamos desplegar varias opciones en un datatable, para evitar tener que definir muchas columnas, podemos utilizar un splitButton , que invoca un dialogo en base a cada opción seleccionada.
Al seleccionar la opción detalle, muestra un dialogo con el detalle de la fila seleccionada.
<p:column style="width:40px;">
<p:fragment autoUpdate="true">
<p:splitButton title="#{msg.opciones}" icon="fa fa-align-left">
<p:menuitem value="#{msg.detalle}" title="#{msg.detalle}" update=":form:growl,:form:datatableImpuestos ,:form:panelcomentario" oncomplete= "PF('detalleDialogVar').show()" icon="fa fa-file-text-o" >
<f:setPropertyActionListener value="#{item}" target="#{impuestoscontribuyentesController.selected}" />
</p:menuitem>
<p:menuitem value="#{msg.pagos}" title="#{msg.pagos}" update=":form:growl,:form:datatableImpuestos ,:form:panelpagos" oncomplete= "PF('pagosDialogVar').show()" icon="fa fa-pinterest-p" >
<f:setPropertyActionListener value="#{item}" target="#{impuestoscontribuyentesController.selected}" />
</p:menuitem>
<p:separator />
<p:menuitem value="#{msg.morosidad}" title="#{msg.morosidad}" update=":form:growl,:form:datatableImpuestos ,:form:panelmorosidad" oncomplete= "PF('morosidadDialogVar').show()" icon="fa fa-medium" >
<f:setPropertyActionListener value="#{item}" target="#{impuestoscontribuyentesController.selected}" />
</p:menuitem>
<p:menuitem value="#{msg.recargo}" title="#{msg.recargo}" update=":form:growl,:form:datatableImpuestos ,:form:panelrecargo" oncomplete= "PF('recargoDialogVar').show()" icon="fa fa-bell" >
<f:setPropertyActionListener value="#{item}" target="#{impuestoscontribuyentesController.selected}" />
</p:menuitem>
</p:splitButton>
</p:fragment>
</p:column>
El dialogo
<p:dialog modal="false"
height="220" width="510" draggable="true"
id="pagarDialogVar"
widgetVar="detalleDialogVar">
<b:panel id="panelcomentario2" look="primary" title="#{msg.detalle}">
<!--<p:panelGrid columns="2" id="panelcomentario">-->
<b:panelGrid id="paneldetalle" colSpans="2,10">
<p:outputLabel value="#{msg.idnivel6}"/>
<p:outputLabel value="#{impuestoscontribuyentesController.selected.idnivel6.idnivel6}"/>
<p:outputLabel value="#{msg.nombre}"/>
<p:outputLabel value="#{impuestoscontribuyentesController.selected.idnivel6.nombre}"/>
<h:outputText value="#{msg.rango}"/>
<h:outputText value="( #{impuestoscontribuyentesController.selected.idnivel6.minimo} a #{impuestoscontribuyentesController.selected.idnivel6.maximo} )"/>
<p:commandButton
icon="ui-icon-close"
update=":form:datatableImpuestos ,:form:growl"
onclick="PF('comentarioDialogVar').hide();"
type="button" />
</b:panelGrid>
</b:panel>
</p:dialog>
Comments