Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Chavez I FerenczCanadaIvan Magalhaes UNQUALIFIED
Smith F ChuiJapanIvan Magalhaes RENEWAL
Greenwood D PoquetteUnited KingdomStephen Shaw NEGOTIATION
Juan Y BologniaItalyIoni Bowcher RENEWAL
Emily F OstroskyArgentinaAsiya Javayant RENEWAL
Mayumi U BologniaJapanIoni Bowcher NEGOTIATION
Salvatore J WaycottItalyOnyama Limba QUALIFIED
Adams F MacleadArgentinaOnyama Limba UNQUALIFIED
Jefferson X FlosiArgentinaIoni Bowcher NEGOTIATION
Ashley D CaldareraArgentinaStephen Shaw RENEWAL
Ivar B PoquetteIndiaIvan Magalhaes NEGOTIATION
Smith Y NestleFranceStephen Shaw NEW
Adams A CampainAustraliaBernardo Dominic NEW
Jefferson X OldroydArgentinaXuxue Feng PROPOSAL
Munro U GarufiItalyIvan Magalhaes QUALIFIED
Juan V WhobreyIndiaAmy Elsner RENEWAL
Munro E GlickCanadaAnna Fali NEW
Nicolas Z GlickRussiaBernardo Dominic NEGOTIATION
Tony X VenereJapanBernardo Dominic QUALIFIED
Jeanfrancois G NickaBrazilXuxue Feng UNQUALIFIED
Leon I MarrierFranceAnna Fali NEW
Nicolas Z MarrierGermanyOnyama Limba NEW
Adams I KolmetzBrazilIvan Magalhaes RENEWAL
Jefferson H SchemmerUnited KingdomAnna Fali NEGOTIATION
Emily Q FigeroaGermanyOnyama Limba NEW
Leja P PerinItalyBernardo Dominic NEW
Deepesh J MarrierFranceAsiya Javayant NEW
Cody S StockhamSpainBernardo Dominic PROPOSAL
Aditya J PoquetteCanadaOnyama Limba NEGOTIATION
David U KuskoRussiaIoni Bowcher QUALIFIED
Smith Y SaylorsBrazilXuxue Feng PROPOSAL
Leja Y OldroydItalyBernardo Dominic QUALIFIED
Costa P OstroskyGermanyAnna Fali NEGOTIATION
Jennifer L SaylorsArgentinaOnyama Limba PROPOSAL
Nicolas U VenereBrazilBernardo Dominic PROPOSAL
Antonio R NestleCanadaIoni Bowcher QUALIFIED
Stacey Y MorascaSpainBernardo Dominic QUALIFIED
Francesco Q DoeAustraliaIvan Magalhaes NEGOTIATION
Ricardo J NestleGermanyOnyama Limba NEW
Tony W IturbideAustraliaAmy Elsner QUALIFIED
David S MaletBrazilIvan Magalhaes RENEWAL
Leja M CaudyItalyIoni Bowcher NEGOTIATION
Jeanfrancois L GarufiRussiaStephen Shaw UNQUALIFIED
Izzy S RoysterItalyElwin Sharvill RENEWAL
Johnson O SergiArgentinaAnna Fali NEW
Antonio I CaldareraCanadaAsiya Javayant RENEWAL
Morrow J VocelkaFranceBernardo Dominic UNQUALIFIED
Maisha Q NestleFranceXuxue Feng UNQUALIFIED
Clifford L CaudyCanadaAnna Fali QUALIFIED
Francesco M BriddickFranceAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem Y OstroskyRussiaIoni Bowcher RENEWAL
Wickens S RutaIndiaXuxue Feng PROPOSAL
Juan E NestleUnited KingdomBernardo Dominic NEW
Leon M SchemmerUnited KingdomAmy Elsner RENEWAL
Aruna Q FerenczUnited KingdomIoni Bowcher QUALIFIED
Aditya X OldroydSpainAmy Elsner NEW
Smith K SaylorsUnited KingdomBernardo Dominic PROPOSAL
Salvatore N PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Jones Y GarufiRussiaElwin Sharvill NEGOTIATION
Juan W CampainUnited KingdomAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin S TollnerUnited Kingdom2026-07-26Printing Dimensions NEGOTIATION79Ivan Magalhaes
1001Ivar T ShinkoArgentina2026-08-11King, Christopher A Esq QUALIFIED26Xuxue Feng
1002Octavia V RutaFrance2026-08-12King, Christopher A Esq QUALIFIED89Asiya Javayant
1003Izzy W SergiIndia2026-08-03Feltz Printing Service QUALIFIED0Xuxue Feng
1004Maria V FollerUnited Kingdom2026-07-30Truhlar And Truhlar Attys NEGOTIATION30Stephen Shaw
1005Jones B FigeroaArgentina2026-08-12Truhlar And Truhlar Attys QUALIFIED77Elwin Sharvill
1006Deepesh T ChuiGermany2026-08-06Dorl, James J Esq RENEWAL8Anna Fali
1007Aditya Q OldroydArgentina2026-08-12King, Christopher A Esq NEW18Xuxue Feng
1008Johnson V BowleyArgentina2026-08-04Printing Dimensions UNQUALIFIED79Stephen Shaw
1009Jeanfrancois G StockhamFrance2026-07-25Printing Dimensions PROPOSAL15Elwin Sharvill
1010Aika V ShinkoSpain2026-07-23Feiner Bros RENEWAL39Xuxue Feng
1011Sinclair H SchemmerBrazil2026-07-26Rousseaux, Michael Esq UNQUALIFIED63Xuxue Feng
1012Stacey X StensethBrazil2026-08-05Chapman, Ross E Esq NEGOTIATION87Asiya Javayant
1013Claire Y BologniaJapan2026-08-16Rousseaux, Michael Esq NEW66Bernardo Dominic
1014Smith H GarufiItaly2026-07-26Feltz Printing Service NEW75Ivan Magalhaes
1015Greenwood Z SchemmerIndia2026-08-17Commercial Press PROPOSAL3Elwin Sharvill
1016Darci G OldroydItaly2026-07-26Morlong Associates RENEWAL39Ivan Magalhaes
1017Isabel S PerinSpain2026-07-27Truhlar And Truhlar Attys UNQUALIFIED80Stephen Shaw
1018Izzy H VenereJapan2026-08-20Buckley Miller Wright RENEWAL7Stephen Shaw
1019Rodrigues I PaprockiBrazil2026-08-01Feiner Bros RENEWAL91Onyama Limba
1020Maria R MacleadRussia2026-08-15Feiner Bros RENEWAL0Elwin Sharvill
1021Maisha F MacleadGermany2026-07-23Benton, John B Jr PROPOSAL31Onyama Limba
1022Kaitlin E PoquetteBrazil2026-08-11King, Christopher A Esq QUALIFIED86Asiya Javayant
1023Chavez X OstroskyIndia2026-08-05Rangoni Of Florence PROPOSAL55Xuxue Feng
1024Aruna M KuskoAustralia2026-08-10Benton, John B Jr NEW26Xuxue Feng
1025Jones K WieserGermany2026-08-13Rousseaux, Michael Esq QUALIFIED20Stephen Shaw
1026Aika P FollerRussia2026-08-07Buckley Miller Wright QUALIFIED17Ivan Magalhaes
1027Nicolas D RoysterRussia2026-07-24Rangoni Of Florence NEW67Xuxue Feng
1028Izzy U BowleyArgentina2026-08-11Buckley Miller Wright NEW15Asiya Javayant
1029Aditya L CaldareraItaly2026-07-31Rousseaux, Michael Esq UNQUALIFIED15Bernardo Dominic
1030Chavez A GauchoFrance2026-08-04Truhlar And Truhlar Attys RENEWAL37Onyama Limba
1031Maisha N StockhamItaly2026-08-21Printing Dimensions PROPOSAL90Asiya Javayant
1032Octavia C RulapaughIndia2026-07-29Rousseaux, Michael Esq RENEWAL19Anna Fali
1033Rodrigues S BowleyArgentina2026-08-15Printing Dimensions NEW76Elwin Sharvill
1034Maria Q RutaCanada2026-08-20Benton, John B Jr QUALIFIED31Onyama Limba
1035Faith U PaprockiFrance2026-08-19Rangoni Of Florence NEW39Xuxue Feng
1036Costa H WaycottItaly2026-08-16Benton, John B Jr NEW77Ioni Bowcher
1037Isabel A CaldareraArgentina2026-08-07Chanay, Jeffrey A Esq NEW35Elwin Sharvill
1038Salvatore E FerenczIndia2026-07-25Printing Dimensions NEW74Elwin Sharvill
1039Jefferson W GlickSpain2026-08-05Morlong Associates PROPOSAL7Onyama Limba
1040Salvatore D CampainJapan2026-08-08Feltz Printing Service NEW7Anna Fali
1041Sinclair V NestleAustralia2026-08-15Truhlar And Truhlar Attys UNQUALIFIED56Ivan Magalhaes
1042Sinclair G DoeFrance2026-08-12Dorl, James J Esq NEW72Asiya Javayant
1043Mayumi Q RulapaughBrazil2026-08-18Feiner Bros NEW29Ioni Bowcher
1044Leja Q FlosiJapan2026-08-06Rousseaux, Michael Esq NEGOTIATION60Ioni Bowcher
1045Leja L RutaGermany2026-08-20Printing Dimensions UNQUALIFIED92Anna Fali
1046Munro Q ChuiSpain2026-08-18Commercial Press UNQUALIFIED22Onyama Limba
1047Munro B ShinkoJapan2026-08-07Feltz Printing Service NEW75Anna Fali
1048Jennifer X CaldareraSpain2026-08-16Rangoni Of Florence RENEWAL36Ioni Bowcher
1049Mayumi W BowleyFrance2026-07-30Printing Dimensions NEGOTIATION96Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Julie K KolmetzItalyIvan Magalhaes RENEWAL
Claire O GarufiCanadaIvan Magalhaes QUALIFIED
Costa D GauchoJapanXuxue Feng NEW
Deepesh G AmigonBrazilStephen Shaw NEW
Morrow B SchemmerFranceIvan Magalhaes UNQUALIFIED
Clifford G OstroskyCanadaAmy Elsner PROPOSAL
Julie H AmigonIndiaIoni Bowcher UNQUALIFIED
Leja E RimItalyAmy Elsner RENEWAL
Francesco L WhobreyIndiaStephen Shaw RENEWAL
Misaki X DilliardJapanElwin Sharvill NEGOTIATION
Aruna J VocelkaCanadaStephen Shaw QUALIFIED
Mujtaba F ButtRussiaStephen Shaw PROPOSAL
Mujtaba D GillianIndiaXuxue Feng NEGOTIATION
Adams X ShinkoJapanAsiya Javayant NEW
Costa S VenereCanadaIoni Bowcher NEW
Greenwood X PoquetteRussiaXuxue Feng NEW
Chavez T GarufiFranceAmy Elsner PROPOSAL
Silvio C RimArgentinaBernardo Dominic QUALIFIED
Jennifer Z KuskoItalyAsiya Javayant PROPOSAL
Deepesh D SlusarskiSpainAmy Elsner QUALIFIED
Sinclair F IturbideAustraliaAsiya Javayant UNQUALIFIED
Julie N TollnerIndiaBernardo Dominic PROPOSAL
Johnson H GillianJapanElwin Sharvill QUALIFIED
Chavez U BriddickIndiaStephen Shaw NEGOTIATION
Darci W AlbaresFranceXuxue Feng RENEWAL
Juan O SlusarskiRussiaElwin Sharvill NEW
Stacey Z BriddickUnited KingdomAmy Elsner RENEWAL
Izzy I StensethSpainIoni Bowcher RENEWAL
Aika I VocelkaIndiaElwin Sharvill PROPOSAL
Maria I FigeroaArgentinaBernardo Dominic RENEWAL
Emily X KolmetzCanadaIoni Bowcher NEW
Julie M GillianAustraliaAnna Fali NEGOTIATION
Mayumi L PaprockiIndiaAmy Elsner RENEWAL
Claire A DarakjyFranceIoni Bowcher NEW
Francesco T BriddickItalyAnna Fali NEW
Mayumi Z DilliardRussiaAnna Fali QUALIFIED
Ivar Y GillianUnited KingdomOnyama Limba NEW
Izzy F InouyeJapanAmy Elsner NEW
Deepesh I StockhamItalyXuxue Feng NEGOTIATION
Darci F VenereItalyAmy Elsner NEGOTIATION
Isabel L FlosiCanadaXuxue Feng PROPOSAL
Rodrigues H ChuiIndiaIoni Bowcher NEGOTIATION
Costa O GarufiJapanOnyama Limba NEGOTIATION
Salvatore P RutaRussiaIoni Bowcher NEGOTIATION
Johnson X FollerUnited KingdomStephen Shaw RENEWAL
Ivar P ChuiSpainIoni Bowcher NEGOTIATION
Salvatore H DoeUnited KingdomXuxue Feng NEW
Johnson Z DarakjyUnited KingdomIoni Bowcher NEW
Kadeem H FollerBrazilAnna Fali NEW
Johnson X CampainArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Clifford F Amigon
Morrow S Caudy
Clifford U Waycott
Faith T Flosi
Nicolas I Malet
Juan O Darakjy
Sinclair X Morasca
Rodrigues B Rim
Mayumi N Flosi
Rodrigues I Gillian
Izzy G Figeroa
Chavez S Foller
Clifford S Sergi
Jones N Royster
Maisha Y Gillian
Jones G Amigon
Adams A Rim
Ivar W Campain
Smith E Kusko
Juan U Iturbide
Jennifer I Ferencz
Ashley P Royster
Salvatore S Kusko
Jennifer C Waycott
Cody N Inouye
Costa V Briddick
Ricardo G Kusko
Misaki U Garufi
Ashley O Venere
Morrow H Ruta
Arvin R Darakjy
Jeanfrancois V Caldarera
Leon H Kolmetz
Adams D Figeroa
Stacey M Rim
Darci X Nicka
Murillo H Kolmetz
Jeanfrancois G Nestle
Maria J Venere
Stacey E Ferencz
Antonio I Waycott
Morrow N Chui
Deepesh W Gillian
Johnson I Garufi
Aruna K Rulapaugh
Mujtaba E Marrier
Adams D Amigon
Greenwood W Malet
Leja U Chui
Francesco H Schemmer
IdCountryDate
1000Germany2026-08-01
1001Italy2026-07-25
1002Japan2026-07-23
1003Russia2026-08-13
1004Italy2026-07-27
1005Australia2026-08-13
1006Japan2026-08-04
1007Italy2026-07-24
1008Russia2026-08-09
1009Russia2026-07-27
1010Italy2026-08-21
1011Australia2026-08-21
1012Italy2026-08-04
1013United Kingdom2026-08-19
1014India2026-08-21
1015Germany2026-08-17
1016Brazil2026-08-14
1017France2026-08-17
1018Argentina2026-08-03
1019Japan2026-08-20
1020Brazil2026-08-07
1021Brazil2026-07-24
1022Brazil2026-08-07
1023Italy2026-07-25
1024Brazil2026-08-05
1025France2026-08-20
1026Canada2026-07-29
1027India2026-07-23
1028Australia2026-08-21
1029Italy2026-08-06
1030India2026-08-03
1031France2026-08-05
1032Italy2026-08-10
1033United Kingdom2026-08-12
1034Russia2026-07-27
1035United Kingdom2026-08-01
1036United Kingdom2026-07-25
1037Germany2026-08-05
1038Canada2026-07-31
1039Germany2026-08-13
1040Germany2026-08-06
1041Russia2026-08-21
1042Brazil2026-08-09
1043Spain2026-08-11
1044Russia2026-08-12
1045Australia2026-07-29
1046India2026-08-14
1047Spain2026-08-13
1048Argentina2026-08-21
1049Russia2026-07-27

On-Demand Data

NameIdCountryDate
Ricardo W Royster1000Germany2026-08-07
Morrow O Kolmetz1001Germany2026-08-17
Emily N Caldarera1002Brazil2026-08-14
Leon H Caudy1003Japan2026-08-16
Ivar W Iturbide1004Australia2026-07-31
Arvin L Figeroa1005Brazil2026-07-28
Salvatore R Slusarski1006Japan2026-08-03
Emily H Schemmer1007Germany2026-08-09
Tony M Foller1008France2026-08-17
Maisha C Wieser1009United Kingdom2026-08-07
Isabel L Darakjy1010Italy2026-08-02
Faith K Ruta1011Australia2026-07-24
Antonio E Ostrosky1012India2026-08-15
Greenwood O Nicka1013India2026-07-24
Aditya L Flosi1014Russia2026-08-18
Johnson R Poquette1015France2026-08-18
Deepesh A Amigon1016Canada2026-08-10
Nicolas Q Rim1017Russia2026-08-08
Ricardo V Foller1018Japan2026-07-23
Jones K Sergi1019India2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer D CaudyGermanyXuxue Feng NEGOTIATION
Emily J PaprockiBrazilIvan Magalhaes RENEWAL
Cody H OldroydArgentinaOnyama Limba RENEWAL
Chavez L MorascaGermanyAmy Elsner NEGOTIATION
Maisha O WhobreyBrazilAsiya Javayant QUALIFIED
Mujtaba U MacleadAustraliaIvan Magalhaes NEGOTIATION
Mujtaba L WaycottIndiaAmy Elsner RENEWAL
Jeanfrancois G GillianArgentinaElwin Sharvill UNQUALIFIED
Darci D TollnerIndiaElwin Sharvill RENEWAL
Aditya A RoysterFranceAmy Elsner RENEWAL
Sinclair H BriddickFranceStephen Shaw PROPOSAL
Emily A RimBrazilElwin Sharvill UNQUALIFIED
Cody K VocelkaAustraliaIoni Bowcher NEGOTIATION
Cody G WhobreyIndiaStephen Shaw NEGOTIATION
Ashley X CaudyAustraliaAsiya Javayant RENEWAL
Isabel Q ChuiItalyAmy Elsner NEGOTIATION
Aruna Y BriddickFranceAnna Fali QUALIFIED
Juan V RulapaughRussiaIvan Magalhaes UNQUALIFIED
Francesco U AlbaresFranceXuxue Feng NEW
Deepesh G CaudyJapanOnyama Limba PROPOSAL
Leja G OldroydItalyIoni Bowcher UNQUALIFIED
Cody W CaldareraRussiaAsiya Javayant QUALIFIED
Jefferson O AlbaresGermanyBernardo Dominic NEW
Morrow O OstroskyArgentinaOnyama Limba RENEWAL
Izzy L WieserBrazilIoni Bowcher NEGOTIATION
Maisha U CaldareraCanadaXuxue Feng UNQUALIFIED
Morrow G KuskoFranceAsiya Javayant QUALIFIED
Rodrigues J RulapaughCanadaAnna Fali RENEWAL
Kadeem G WhobreyRussiaIvan Magalhaes QUALIFIED
Sinclair J MacleadItalyAmy Elsner PROPOSAL
Isabel Y WieserSpainOnyama Limba NEGOTIATION
Francesco M RulapaughGermanyXuxue Feng PROPOSAL
Cody M BriddickJapanOnyama Limba QUALIFIED
Chavez X WaycottGermanyAmy Elsner RENEWAL
James N SergiAustraliaAnna Fali PROPOSAL
Silvio L NickaArgentinaElwin Sharvill RENEWAL
Nicolas Z SchemmerIndiaElwin Sharvill NEW
Claire Z BowleyJapanBernardo Dominic NEGOTIATION
Isabel X ButtBrazilStephen Shaw NEW
Greenwood J OldroydUnited KingdomXuxue Feng UNQUALIFIED

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>