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
Misaki H MaletFranceBernardo Dominic UNQUALIFIED
Antonio P CaldareraFranceStephen Shaw QUALIFIED
Kadeem A MorascaSpainIoni Bowcher NEGOTIATION
Faith B StockhamGermanyStephen Shaw NEGOTIATION
Wickens U RulapaughBrazilElwin Sharvill NEGOTIATION
Stacey X MaletGermanyAsiya Javayant UNQUALIFIED
Emily L IturbideItalyAsiya Javayant UNQUALIFIED
Octavia Q NestleBrazilStephen Shaw QUALIFIED
Morrow F DarakjyFranceAsiya Javayant NEGOTIATION
Francesco A FollerCanadaOnyama Limba NEW
Sinclair A PoquetteRussiaStephen Shaw NEGOTIATION
Nicolas S GauchoFranceElwin Sharvill NEW
Morrow X FlosiBrazilElwin Sharvill NEW
Aditya T BologniaGermanyIvan Magalhaes NEW
Tony W AmigonGermanyAnna Fali QUALIFIED
Smith L ButtCanadaElwin Sharvill QUALIFIED
Stacey J SaylorsGermanyBernardo Dominic NEGOTIATION
Izzy B WieserSpainAsiya Javayant UNQUALIFIED
Aika A GlickArgentinaStephen Shaw RENEWAL
Stacey L MarrierUnited KingdomElwin Sharvill QUALIFIED
Munro R VocelkaFranceStephen Shaw UNQUALIFIED
Aika W OstroskyItalyXuxue Feng NEW
Isabel M AlbaresSpainAmy Elsner PROPOSAL
Smith G TollnerIndiaAnna Fali NEW
Smith C RulapaughArgentinaOnyama Limba PROPOSAL
Stacey M GillianFranceXuxue Feng RENEWAL
Maisha S BowleyArgentinaIvan Magalhaes QUALIFIED
Jefferson Z WaycottArgentinaAsiya Javayant RENEWAL
Deepesh R CampainGermanyBernardo Dominic NEW
Alejandro U RulapaughItalyAsiya Javayant UNQUALIFIED
Smith Q StensethGermanyIvan Magalhaes RENEWAL
Claire C InouyeAustraliaAnna Fali UNQUALIFIED
Mujtaba V SchemmerItalyIvan Magalhaes NEGOTIATION
Isabel E StensethIndiaAmy Elsner QUALIFIED
Leon E VocelkaSpainOnyama Limba RENEWAL
Silvio F SlusarskiArgentinaAmy Elsner QUALIFIED
Maisha Y GarufiArgentinaStephen Shaw UNQUALIFIED
Julie L WieserJapanIoni Bowcher PROPOSAL
Aika J DilliardCanadaIvan Magalhaes QUALIFIED
Ivar V ChuiFranceStephen Shaw QUALIFIED
Jefferson Q WaycottArgentinaStephen Shaw PROPOSAL
Aditya W MaletBrazilBernardo Dominic RENEWAL
Jeanfrancois Z DarakjyRussiaAmy Elsner NEW
Leja G WieserGermanyAsiya Javayant UNQUALIFIED
Mujtaba U KuskoGermanyAnna Fali UNQUALIFIED
Nicolas F ChuiSpainAmy Elsner PROPOSAL
Maria B FerenczItalyElwin Sharvill NEW
Darci O WieserUnited KingdomAsiya Javayant PROPOSAL
Maisha L WieserArgentinaStephen Shaw QUALIFIED
Maisha G BologniaRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey C AlbaresBrazilStephen Shaw RENEWAL
Costa I CampainGermanyBernardo Dominic NEW
Aika T NickaUnited KingdomAnna Fali NEW
Maisha Q RimAustraliaOnyama Limba QUALIFIED
David I WhobreyUnited KingdomStephen Shaw QUALIFIED
David G BowleyAustraliaBernardo Dominic UNQUALIFIED
Francesco Q AlbaresCanadaBernardo Dominic NEGOTIATION
Johnson U GillianGermanyIoni Bowcher NEGOTIATION
Maria B ShinkoFranceAnna Fali QUALIFIED
Greenwood R CaudyFranceStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia E StockhamCanada2026-07-27Chemel, James L Cpa RENEWAL25Elwin Sharvill
1001Leon X RulapaughItaly2026-07-06Commercial Press RENEWAL60Ioni Bowcher
1002Aditya T StockhamAustralia2026-07-03Rangoni Of Florence UNQUALIFIED13Elwin Sharvill
1003Costa W DoeIndia2026-07-14Dorl, James J Esq PROPOSAL65Ivan Magalhaes
1004Cody O RutaAustralia2026-07-20Benton, John B Jr NEGOTIATION4Ioni Bowcher
1005Sinclair X VocelkaItaly2026-07-17Chemel, James L Cpa PROPOSAL84Ivan Magalhaes
1006Kaitlin T MorascaIndia2026-07-13Truhlar And Truhlar Attys NEGOTIATION28Asiya Javayant
1007Wickens V OstroskyArgentina2026-06-30Benton, John B Jr RENEWAL95Xuxue Feng
1008Costa Q RoysterSpain2026-07-08Buckley Miller Wright UNQUALIFIED81Elwin Sharvill
1009Ashley D RulapaughBrazil2026-07-03Morlong Associates PROPOSAL15Asiya Javayant
1010Costa O GlickUnited Kingdom2026-07-28King, Christopher A Esq NEGOTIATION56Ivan Magalhaes
1011David L MarrierItaly2026-07-19Morlong Associates NEGOTIATION57Xuxue Feng
1012David O BriddickFrance2026-07-12Commercial Press NEW94Ioni Bowcher
1013Munro N OldroydArgentina2026-07-21Commercial Press NEGOTIATION51Xuxue Feng
1014Julie E WaycottUnited Kingdom2026-07-05Printing Dimensions NEW57Anna Fali
1015Francesco Q RoysterAustralia2026-07-05Commercial Press RENEWAL71Asiya Javayant
1016Mujtaba T DoeArgentina2026-07-23King, Christopher A Esq PROPOSAL19Ioni Bowcher
1017David W FlosiRussia2026-07-26Rousseaux, Michael Esq UNQUALIFIED97Bernardo Dominic
1018Leon P GillianArgentina2026-07-05Buckley Miller Wright NEGOTIATION63Ivan Magalhaes
1019Alejandro R RutaItaly2026-07-18Chapman, Ross E Esq QUALIFIED99Ioni Bowcher
1020Emily L GarufiIndia2026-07-19Rangoni Of Florence PROPOSAL45Ivan Magalhaes
1021James O PerinFrance2026-07-29Printing Dimensions NEW47Onyama Limba
1022Juan V GlickCanada2026-07-06Printing Dimensions PROPOSAL74Onyama Limba
1023Maria Z WaycottSpain2026-07-24Benton, John B Jr NEGOTIATION24Anna Fali
1024Aditya B PaprockiCanada2026-07-21Truhlar And Truhlar Attys UNQUALIFIED80Anna Fali
1025Johnson T KuskoBrazil2026-07-23Rangoni Of Florence PROPOSAL77Anna Fali
1026Faith F WieserSpain2026-06-30Feiner Bros NEGOTIATION30Anna Fali
1027Octavia J RoysterSpain2026-07-21Rousseaux, Michael Esq NEW87Xuxue Feng
1028Octavia Z MorascaRussia2026-07-10Truhlar And Truhlar Attys RENEWAL30Amy Elsner
1029Mujtaba D VenereSpain2026-07-29Chemel, James L Cpa PROPOSAL37Elwin Sharvill
1030Misaki B GauchoUnited Kingdom2026-07-10Buckley Miller Wright PROPOSAL75Elwin Sharvill
1031Arvin G AlbaresItaly2026-07-13Chanay, Jeffrey A Esq QUALIFIED77Bernardo Dominic
1032Darci T IturbideArgentina2026-07-27King, Christopher A Esq UNQUALIFIED55Xuxue Feng
1033Salvatore C WieserIndia2026-07-18Rousseaux, Michael Esq UNQUALIFIED72Xuxue Feng
1034Munro O SchemmerIndia2026-07-11Commercial Press NEW88Amy Elsner
1035Isabel U MaletBrazil2026-07-02Benton, John B Jr NEW50Ivan Magalhaes
1036Julie C BriddickItaly2026-07-25Dorl, James J Esq PROPOSAL24Onyama Limba
1037Clifford F WieserIndia2026-07-23Rangoni Of Florence NEGOTIATION83Amy Elsner
1038Morrow E CaldareraRussia2026-07-13Rangoni Of Florence NEGOTIATION10Elwin Sharvill
1039Misaki H GarufiRussia2026-07-10Commercial Press QUALIFIED27Amy Elsner
1040Isabel E WaycottBrazil2026-07-07Benton, John B Jr NEGOTIATION66Bernardo Dominic
1041Leon K IturbideSpain2026-07-17King, Christopher A Esq UNQUALIFIED72Elwin Sharvill
1042Johnson F TollnerIndia2026-07-04Rangoni Of Florence NEGOTIATION83Onyama Limba
1043Claire Q RulapaughAustralia2026-07-25Printing Dimensions PROPOSAL21Asiya Javayant
1044Alejandro L DilliardJapan2026-07-21Commercial Press QUALIFIED83Stephen Shaw
1045Jones P WaycottBrazil2026-07-29Chanay, Jeffrey A Esq PROPOSAL81Stephen Shaw
1046Mujtaba L ButtGermany2026-07-11Printing Dimensions UNQUALIFIED69Ioni Bowcher
1047Rodrigues B PaprockiItaly2026-07-13Chemel, James L Cpa PROPOSAL18Onyama Limba
1048Alejandro Y DilliardBrazil2026-07-16King, Christopher A Esq PROPOSAL66Amy Elsner
1049Wickens E ShinkoIndia2026-07-19Truhlar And Truhlar Attys NEW82Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mayumi R FlosiAustraliaIoni Bowcher RENEWAL
Morrow J SergiBrazilAmy Elsner NEW
Jennifer O IturbideRussiaStephen Shaw NEW
Octavia D PaprockiFranceOnyama Limba UNQUALIFIED
Izzy O RulapaughRussiaAnna Fali QUALIFIED
Adams N GarufiUnited KingdomXuxue Feng QUALIFIED
Alejandro M SaylorsRussiaBernardo Dominic PROPOSAL
Maisha D AmigonGermanyBernardo Dominic QUALIFIED
Wickens N StockhamBrazilAnna Fali PROPOSAL
Misaki B NickaAustraliaIoni Bowcher UNQUALIFIED
Kaitlin I MorascaRussiaAsiya Javayant RENEWAL
Greenwood T VenereBrazilOnyama Limba NEW
Murillo J SlusarskiFranceAnna Fali UNQUALIFIED
Aika K PaprockiAustraliaAsiya Javayant RENEWAL
Chavez S BriddickCanadaIvan Magalhaes RENEWAL
Salvatore X FigeroaArgentinaIoni Bowcher QUALIFIED
James T SchemmerBrazilIoni Bowcher NEW
Juan G RulapaughJapanAmy Elsner NEW
Cody G ButtSpainOnyama Limba NEGOTIATION
Alejandro H PaprockiSpainIoni Bowcher PROPOSAL
Morrow I SlusarskiItalyOnyama Limba PROPOSAL
Aditya G OldroydGermanyAmy Elsner UNQUALIFIED
Alejandro J IturbideArgentinaAsiya Javayant NEW
Francesco B ShinkoItalyIvan Magalhaes QUALIFIED
Maria R FerenczRussiaStephen Shaw RENEWAL
Kaitlin N CampainItalyIvan Magalhaes UNQUALIFIED
Munro S VocelkaBrazilElwin Sharvill NEGOTIATION
Maria D MaletUnited KingdomStephen Shaw QUALIFIED
Emily H MaletBrazilStephen Shaw NEW
Costa H BologniaAustraliaStephen Shaw NEW
James I KolmetzJapanBernardo Dominic NEGOTIATION
Aditya X FerenczItalyXuxue Feng UNQUALIFIED
Nicolas Y FlosiIndiaXuxue Feng UNQUALIFIED
Juan P MaletGermanyIoni Bowcher QUALIFIED
Alejandro K OstroskyItalyIoni Bowcher NEW
Ricardo V ShinkoRussiaElwin Sharvill QUALIFIED
Adams I GlickAustraliaXuxue Feng RENEWAL
Ricardo H FigeroaGermanyAnna Fali PROPOSAL
Kadeem E SlusarskiFranceAsiya Javayant RENEWAL
Greenwood O DoeSpainAnna Fali PROPOSAL
Izzy E WaycottBrazilXuxue Feng UNQUALIFIED
Maria T AmigonJapanAnna Fali UNQUALIFIED
Ivar W NickaFranceIvan Magalhaes NEW
Chavez X KuskoUnited KingdomAsiya Javayant NEW
Mayumi E AlbaresFranceIoni Bowcher NEGOTIATION
Maria R WieserSpainElwin Sharvill PROPOSAL
Jeanfrancois S MaletCanadaXuxue Feng RENEWAL
Misaki V KuskoItalyStephen Shaw NEGOTIATION
Kadeem U OstroskyFranceAmy Elsner NEGOTIATION
Tony C GauchoGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Smith G Rulapaugh
Salvatore C Briddick
Francesco Z Malet
Ashley A Poquette
Antonio L Nestle
Stacey C Saylors
Octavia J Garufi
Salvatore M Marrier
Stacey S Oldroyd
Aditya T Maclead
Jennifer S Oldroyd
Jeanfrancois P Nicka
Murillo K Waycott
Jennifer H Nicka
Jeanfrancois L Sergi
Costa K Slusarski
Isabel N Briddick
Jeanfrancois J Caudy
Darci Y Sergi
Cody V Campain
Leon G Inouye
Misaki B Iturbide
Chavez F Bolognia
Misaki U Ferencz
Julie G Tollner
Claire S Bowley
Greenwood V Maclead
Emily Z Ruta
Darci C Oldroyd
Kaitlin F Inouye
Francesco O Butt
Izzy Q Stockham
Francesco R Stockham
David M Amigon
Adams R Poquette
Mayumi X Ruta
Tony M Slusarski
Greenwood Y Wieser
Maria M Caudy
Juan E Whobrey
Kaitlin N Paprocki
Munro P Shinko
Silvio V Kusko
Kadeem N Caudy
Juan L Gillian
Mayumi V Campain
Claire R Rulapaugh
Leja E Malet
Johnson O Amigon
Jennifer R Sergi
IdCountryDate
1000Canada2026-06-30
1001Germany2026-07-28
1002Japan2026-07-25
1003Brazil2026-07-08
1004Argentina2026-07-21
1005Argentina2026-07-26
1006France2026-07-10
1007Brazil2026-07-21
1008Italy2026-07-02
1009India2026-07-10
1010Spain2026-06-30
1011France2026-07-28
1012Japan2026-07-12
1013Australia2026-07-06
1014Italy2026-07-15
1015United Kingdom2026-07-16
1016Australia2026-07-19
1017Italy2026-07-23
1018Argentina2026-07-22
1019United Kingdom2026-07-15
1020Canada2026-07-10
1021Spain2026-07-26
1022France2026-07-08
1023Japan2026-07-20
1024Spain2026-07-14
1025Canada2026-07-08
1026Australia2026-07-17
1027Germany2026-07-09
1028United Kingdom2026-07-24
1029United Kingdom2026-07-08
1030Brazil2026-07-28
1031India2026-07-03
1032Germany2026-06-30
1033France2026-07-26
1034Italy2026-07-24
1035Argentina2026-07-06
1036Russia2026-07-29
1037Brazil2026-07-19
1038France2026-07-20
1039Italy2026-07-08
1040Italy2026-07-23
1041France2026-07-17
1042India2026-07-13
1043Canada2026-07-25
1044Italy2026-07-14
1045Australia2026-07-09
1046United Kingdom2026-07-23
1047France2026-07-12
1048India2026-07-13
1049Japan2026-07-25

On-Demand Data

NameIdCountryDate
Cody L Figeroa1000Germany2026-07-02
Faith N Bolognia1001Germany2026-07-06
Isabel E Flosi1002India2026-07-22
Sinclair J Kolmetz1003Argentina2026-07-18
Arvin S Caudy1004Australia2026-07-07
Ricardo R Garufi1005Argentina2026-07-28
Misaki A Butt1006Canada2026-07-27
Kadeem Y Ostrosky1007Brazil2026-07-06
Aika S Stenseth1008Argentina2026-07-10
Ricardo C Whobrey1009United Kingdom2026-07-20
Smith A Schemmer1010Russia2026-07-01
Mujtaba K Waycott1011France2026-07-18
Darci R Albares1012United Kingdom2026-07-21
Greenwood P Amigon1013Brazil2026-07-07
Mayumi M Ostrosky1014Australia2026-07-07
Misaki V Gaucho1015United Kingdom2026-07-19
Clifford T Albares1016Spain2026-07-10
Jennifer P Figeroa1017Germany2026-07-20
David J Sergi1018India2026-07-14
Morrow R Gillian1019France2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin Y CaldareraJapanBernardo Dominic NEW
Aruna A FlosiBrazilElwin Sharvill RENEWAL
Maria K FerenczCanadaAmy Elsner QUALIFIED
Tony Y NickaSpainXuxue Feng NEGOTIATION
Isabel U GarufiArgentinaAmy Elsner UNQUALIFIED
Rodrigues Z StockhamUnited KingdomBernardo Dominic RENEWAL
Claire S OldroydSpainAnna Fali NEGOTIATION
Johnson W RimRussiaIoni Bowcher UNQUALIFIED
Stacey G DilliardJapanStephen Shaw NEGOTIATION
Isabel J WhobreyCanadaIvan Magalhaes NEW
Ashley B AmigonArgentinaIvan Magalhaes NEW
Aruna A SlusarskiSpainStephen Shaw QUALIFIED
Maisha Q InouyeRussiaBernardo Dominic UNQUALIFIED
Ashley P KuskoRussiaAsiya Javayant RENEWAL
Misaki J CaudyAustraliaAnna Fali UNQUALIFIED
Smith X GauchoArgentinaIvan Magalhaes UNQUALIFIED
Tony X SaylorsArgentinaAsiya Javayant UNQUALIFIED
Darci P FerenczSpainBernardo Dominic NEW
Izzy B GauchoCanadaAsiya Javayant PROPOSAL
Leon S FerenczAustraliaAnna Fali QUALIFIED
Deepesh G StockhamJapanElwin Sharvill UNQUALIFIED
Greenwood I DoeIndiaAsiya Javayant NEW
Ashley M MacleadIndiaOnyama Limba NEGOTIATION
Leja B RulapaughRussiaAsiya Javayant QUALIFIED
Salvatore Z BriddickSpainAsiya Javayant NEGOTIATION
Johnson A ShinkoCanadaAsiya Javayant PROPOSAL
Deepesh U ShinkoJapanAnna Fali NEGOTIATION
Faith Y TollnerJapanAmy Elsner NEGOTIATION
Chavez Y DarakjyAustraliaAnna Fali NEGOTIATION
Adams O DarakjyIndiaXuxue Feng RENEWAL
Kaitlin X GauchoAustraliaIoni Bowcher RENEWAL
Antonio L StockhamGermanyAmy Elsner PROPOSAL
Stacey A KuskoItalyIoni Bowcher NEGOTIATION
Costa O NestleItalyIvan Magalhaes PROPOSAL
Jennifer P PerinBrazilAnna Fali NEW
Izzy K RulapaughAustraliaStephen Shaw RENEWAL
Izzy D SaylorsSpainXuxue Feng QUALIFIED
Stacey D CampainIndiaAnna Fali RENEWAL
Octavia K MaletFranceStephen Shaw PROPOSAL
Sinclair K OldroydAustraliaElwin Sharvill NEGOTIATION

<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>