我的JSF页面上有 dataTable :
<p:dataTable id="dataCabecera" value="#{cargaHorariaController.listaActivDoc}" var="listaActDoc"
rowKey="#{listaActDoc.pzptcabperjactPK.pzptcabperjactActividad}" selectionMode="single"
selection="#{cargaHorariaController.listaActivSelected}">
<p:column headerText="Actividad" style="width: 35%">
<p:outputLabel value="#{listaActDoc.pzptcabperjactPK.pzptcabperjactActividad} - #{cargaHorariaController.descActiv(listaActDoc.pzptcabperjactPK.pzptcabperjactActividad)}"/>
</p:column>
<p:column headerText="Horas" style="width: 15%">
<p:outputLabel value="#{listaActDoc.pzptcabperjactHoras}" />
</p:column>
<p:column headerText="" style="width: 20%">
<p:commandLink id="cmdSubacti" process="dataCabecera"
style="margin:0px" title="subactividad" value="Ver Subactividad"
action="#{cargaHorariaController.consultarSubactividadesDoc()}" update=":formPrincipal:formPrincipal1:pnlDet">
<f:setPropertyActionListener value="#{listaActDoc}" target="#{cargaHorariaController.activSelected}"/>
</p:commandLink>
</p:column>
<p:column headerText="" style="width: 30%">
<p:commandButton value="Actualizar" type="button" id="actiActu" action="#{cargaHorariaController.actualizar()}" onclick="PF('wdlgActualizar').show()" />
<p:spacer width="15px" height="0px"> </p:spacer>
<p:commandButton value="Eliminar" id="actiEli" ajax="false">
<p:confirm header="Eliminar actividad" message="Está seguro que desea eliminar esta actividad?" icon="ui-icon-alert" />
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade" style="font-size: 11px; text-height: font-size; text-align: left; font-weight: bold">
<div align="center">
<p:commandButton value="Sí" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Cancelar" type="button" styleClass="ui-confirmdialog-no CyanButton" icon="ui-icon-close" />
</div>
</p:confirmDialog>
</p:column>
<p:summaryRow>
<p:column colspan="1" style="text-align: right">
<p:outputLabel value="Total:" />
</p:column>
<p:column colspan="2" style="text-align: left">
<p:outputLabel value="#{cargaHorariaController.horasAct}" />
</p:column>
</p:summaryRow>
</p:dataTable>
我想要列的总和&#34; Horas &#34;在表格的底部,但 summaryRow 不会出现:
我的按钮中的图标也存在同样的问题(jQueryUI图标和Font Awesome图标)。 我该如何解决?
编辑:我使用了h:outputText并且我更改了colspan属性,所以现在它们加起来为4,但结果相同:没有p:summaryRow。我调用了horasAct,因为该变量具有总和的结果。
答案 0 :(得分:0)
首先,对于显示信息,最好使用h:outputText
组件。因为p:outputLabel
组件需要将标签与输入字段绑定。
它具有一些优势,例如:
关于你的p:summaryRow
。在p:dataTable
中,您有四列但在p:summaryRow
colSpan属性中的列中总共不会给出4(仅3)。
你也说过想要从“Horas”栏中加总值。但是打电话
#{cargaHorariaController.horasAct}
代替#{listaActDoc.pzptcabperjactHoras}
<强>更新强>
您需要添加sortBy
属性,然后才会显示summaryRow
。但是此组件计算相同行的列值的总和。您可以查看更多示例here,只是尝试按不同列对表进行排序。
我认为您应该使用columnGroup
组件并为您的表添加页脚。此组件只在表格的底部添加一行,您可以输出horas列的总和。