0

I create data table with prime faces 5.2 and I use FrozenHaeader and scrollableHeader.

I read it from

lost header datatable use frozen column primeface

Problem

Header column height not sync between FrozenHaeader and scrollableHeader follow picture : Datatable frozen column picture

My code

<p:dataTable var="result"  value="#{reportBRBean.listZone2}" id="dataTb" selectionMode="single" selection="#{reportBRBean.selectedZone}" 
 frozenColumns="3"      scrollable="true" scrollWidth="800"

 rowIndexVar="rowIndex" rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'even' : 'odd'}" rowKey="#{result.zoneCode}"  >

frozenHeader :

<p:columnGroup type="frozenHeader"  >
<p:row>
<p:column  rowspan="4" width="20" style="background-color: #00CCCC !important;"/>
<p:column  rowspan="4" headerText="#{msg['br1.zone.lb.zone']}" width="140" style="background-color: #00CCCC !important;"/>
<p:column rowspan="4" headerText="#{msg['br2.lb.amount.birth.certificate']}" width="110" style="background-color: #00CCCC !important;"/>
</p:row></p:columnGroup>

scrollableHeader :

<p:columnGroup type="scrollableHeader"  >
<p:row>
<p:column colspan="10"  headerText="#{msg['br2.lb.amount.inform.birth']}" width="900" style="background-color: #00CCCC !important;"/>
<p:column rowspan="4" headerText="#{msg['br2.lb.percent.inform.birth.all']}" width="100" style="background-color: #ffcc66 !important;"/>
<p:column colspan="10" headerText="#{msg['br2.lb.amount.noinform.birth']}" width="900" style="background-color: #00CCCC !important;"/>
<p:column rowspan="4" headerText="#{msg['br2.lb.percent.noinform.birth.all']}" width="100" style="background-color: #ffcc66 !important;"/>
</p:row>
<p:row>
<p:column colspan="4"  headerText="#{msg['br2.lb.amount.inform.within15']}" style="background-color: #ff99ff !important;"/>
<p:column rowspan="3"  headerText="#{msg['br2.lb.percent.inform.within15']}" style="background-color: #ffff99 !important;"/>
<p:column colspan="4"  headerText="#{msg['br2.lb.amount.inform.over15']}" style="background-color: #ff99ff !important;"/>
<p:column rowspan="4"  headerText="#{msg['br2.lb.percent.inform.over15']}" style="background-color: #ffff99 !important;"/>
<p:column colspan="4"  headerText="#{msg['br2.lb.amount.noinform.within15']}" style="background-color: #ff99ff !important;"/>
<p:column rowspan="3"  headerText="#{msg['br2.lb.percent.noinform.within15']}" style="background-color: #ffff99 !important;"/>
<p:column colspan="4"  headerText="#{msg['br2.lb.amount.noinform.over15']}" style="background-color: #ff99ff !important;"/>
<p:column rowspan="4"  headerText="#{msg['br2.lb.percent.noinform.over15']}" style="background-color: #ffff99 !important;"/>
</p:row>

Thank you

Believes
  • 17
  • 3

1 Answers1

0

I fixed by use javascript.

I call javascript after(oncomplete) data table generates.

<script type="text/javascript">
         /*<![CDATA[*/

        function synchronizeRowsHeight() {


            var $rows = $(document.getElementById('doctorForm:resultDoctorService_frozenThead')).find('tr');
                        $rows.each(function(index) {
                            var $row = $(this);
                            $row.innerHeight($(document.getElementById('doctorForm:resultDoctorService_scrollableThead')).outerHeight());
                        });
                    }
                    // ]]>
</script>

doctorForm:resultDoctorService_frozenThead

"doctorForm" forms ID

"resultDoctorService" data table ID

"frozenThead" columns group type

Believes
  • 17
  • 3