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
Kadeem H AmigonJapanXuxue Feng NEGOTIATION
Jeanfrancois N AlbaresJapanAnna Fali NEW
Nicolas T MaletAustraliaBernardo Dominic UNQUALIFIED
Maria P DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Isabel C GauchoBrazilAnna Fali RENEWAL
Antonio M PerinArgentinaAmy Elsner NEGOTIATION
Smith M DarakjyIndiaIvan Magalhaes NEGOTIATION
Isabel T RulapaughBrazilBernardo Dominic NEW
Alejandro X GlickBrazilAnna Fali UNQUALIFIED
Wickens Y BriddickRussiaAnna Fali PROPOSAL
Salvatore E CaudyAustraliaBernardo Dominic RENEWAL
Cody N KolmetzIndiaElwin Sharvill RENEWAL
Aika H DoeAustraliaXuxue Feng QUALIFIED
Jennifer I AlbaresUnited KingdomBernardo Dominic PROPOSAL
Mujtaba I NickaGermanyIvan Magalhaes PROPOSAL
Jones Z BowleyRussiaAnna Fali NEW
Maisha K BowleyCanadaOnyama Limba UNQUALIFIED
Ivar Y WaycottIndiaIvan Magalhaes NEGOTIATION
Kadeem G RulapaughUnited KingdomStephen Shaw NEGOTIATION
Sinclair V StensethSpainOnyama Limba PROPOSAL
Mayumi S ChuiArgentinaOnyama Limba RENEWAL
Antonio I InouyeJapanAnna Fali UNQUALIFIED
Aditya C DarakjyCanadaXuxue Feng UNQUALIFIED
Alejandro V CampainAustraliaElwin Sharvill RENEWAL
Rodrigues B BriddickItalyBernardo Dominic PROPOSAL
Emily Q GarufiArgentinaOnyama Limba NEGOTIATION
Leon K PerinUnited KingdomBernardo Dominic PROPOSAL
Jennifer A WieserRussiaIoni Bowcher NEGOTIATION
Deepesh J GillianIndiaXuxue Feng NEW
Alejandro Y SaylorsArgentinaElwin Sharvill PROPOSAL
Deepesh C WaycottAustraliaOnyama Limba NEW
Murillo O VenereCanadaBernardo Dominic RENEWAL
Salvatore W PoquetteArgentinaStephen Shaw RENEWAL
Deepesh V FlosiJapanElwin Sharvill RENEWAL
Smith T StensethUnited KingdomIoni Bowcher NEW
Costa Y FlosiRussiaAnna Fali RENEWAL
Izzy T RulapaughFranceOnyama Limba NEW
Arvin P MaletIndiaOnyama Limba QUALIFIED
Ricardo K VenereAustraliaStephen Shaw NEGOTIATION
Cody T PoquetteSpainOnyama Limba QUALIFIED
Rodrigues S ButtRussiaXuxue Feng QUALIFIED
Maria E NickaUnited KingdomAnna Fali PROPOSAL
Jeanfrancois W WaycottBrazilBernardo Dominic RENEWAL
Aika J RulapaughFranceElwin Sharvill NEGOTIATION
Greenwood Q AlbaresSpainAsiya Javayant PROPOSAL
Tony C RulapaughArgentinaXuxue Feng PROPOSAL
Wickens W MaletItalyAsiya Javayant NEGOTIATION
Chavez D GarufiBrazilAmy Elsner RENEWAL
Misaki I MaletAustraliaBernardo Dominic PROPOSAL
Johnson F RoysterSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey Z MaletJapanXuxue Feng PROPOSAL
Octavia A VenereItalyAsiya Javayant RENEWAL
Aika F NickaCanadaAsiya Javayant RENEWAL
Leon D StockhamRussiaOnyama Limba RENEWAL
Izzy Q ShinkoGermanyAnna Fali RENEWAL
Francesco Y KolmetzGermanyStephen Shaw NEGOTIATION
Adams L BologniaCanadaIvan Magalhaes QUALIFIED
Ricardo G MorascaBrazilAmy Elsner PROPOSAL
Sinclair M FigeroaArgentinaAsiya Javayant RENEWAL
Jennifer N GillianItalyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James A GlickArgentina2025-05-01Buckley Miller Wright UNQUALIFIED6Onyama Limba
1001Murillo U PoquetteItaly2025-05-07Dorl, James J Esq QUALIFIED84Ioni Bowcher
1002Stacey Y PoquetteIndia2025-04-19Feltz Printing Service NEW76Ivan Magalhaes
1003Aruna M ButtGermany2025-04-17Chanay, Jeffrey A Esq UNQUALIFIED69Anna Fali
1004Deepesh H NickaItaly2025-05-11Feiner Bros NEW94Onyama Limba
1005Arvin Z DarakjySpain2025-05-01Rangoni Of Florence UNQUALIFIED83Ioni Bowcher
1006Ricardo A DilliardItaly2025-04-23Morlong Associates PROPOSAL76Amy Elsner
1007Faith S GarufiRussia2025-05-11Buckley Miller Wright RENEWAL9Ioni Bowcher
1008Izzy S FerenczArgentina2025-04-28Rousseaux, Michael Esq PROPOSAL49Elwin Sharvill
1009Ashley O SlusarskiSpain2025-05-02Dorl, James J Esq NEGOTIATION21Ioni Bowcher
1010Ashley G MorascaSpain2025-04-21Rousseaux, Michael Esq UNQUALIFIED30Elwin Sharvill
1011Izzy K TollnerIndia2025-05-10Feltz Printing Service NEW24Ioni Bowcher
1012Emily L VenereArgentina2025-04-25Rousseaux, Michael Esq UNQUALIFIED3Xuxue Feng
1013Adams G RimUnited Kingdom2025-04-14Rangoni Of Florence PROPOSAL42Ivan Magalhaes
1014Isabel C StockhamItaly2025-04-22Printing Dimensions QUALIFIED31Bernardo Dominic
1015Smith B ButtBrazil2025-04-20King, Christopher A Esq UNQUALIFIED99Amy Elsner
1016Aika T InouyeRussia2025-04-17Rangoni Of Florence NEGOTIATION31Amy Elsner
1017Alejandro S RutaFrance2025-04-15Chemel, James L Cpa RENEWAL18Stephen Shaw
1018Jefferson V StockhamSpain2025-04-17Rousseaux, Michael Esq PROPOSAL99Elwin Sharvill
1019Smith V RutaGermany2025-05-06Rangoni Of Florence PROPOSAL6Anna Fali
1020Silvio F WhobreyCanada2025-05-03Morlong Associates PROPOSAL43Ioni Bowcher
1021Johnson J FigeroaAustralia2025-04-27King, Christopher A Esq NEGOTIATION87Onyama Limba
1022Greenwood I KolmetzBrazil2025-04-18King, Christopher A Esq NEW25Elwin Sharvill
1023Ashley D RutaUnited Kingdom2025-05-11Chapman, Ross E Esq NEW10Onyama Limba
1024Costa N SaylorsIndia2025-04-22Chapman, Ross E Esq UNQUALIFIED64Ivan Magalhaes
1025Aditya I AmigonFrance2025-04-14Buckley Miller Wright PROPOSAL89Amy Elsner
1026Kadeem J VenereBrazil2025-04-15Commercial Press UNQUALIFIED94Asiya Javayant
1027Nicolas X CaudyBrazil2025-04-23Chapman, Ross E Esq PROPOSAL31Ivan Magalhaes
1028Murillo P CaldareraSpain2025-05-09Dorl, James J Esq PROPOSAL44Bernardo Dominic
1029Maria V MorascaSpain2025-04-16Rangoni Of Florence QUALIFIED90Ioni Bowcher
1030Emily D RulapaughGermany2025-05-07Feltz Printing Service RENEWAL12Elwin Sharvill
1031Emily H MaletItaly2025-04-18Buckley Miller Wright NEGOTIATION29Ivan Magalhaes
1032Kaitlin U WieserBrazil2025-05-01Truhlar And Truhlar Attys PROPOSAL72Ioni Bowcher
1033Salvatore R WhobreySpain2025-05-05Morlong Associates UNQUALIFIED83Elwin Sharvill
1034Mujtaba Q OstroskyRussia2025-04-22Truhlar And Truhlar Attys UNQUALIFIED0Onyama Limba
1035Octavia S GarufiBrazil2025-04-30Feiner Bros UNQUALIFIED73Ioni Bowcher
1036Rodrigues X RulapaughSpain2025-04-22Morlong Associates QUALIFIED89Anna Fali
1037Maria L WieserRussia2025-04-28Printing Dimensions NEGOTIATION1Amy Elsner
1038Greenwood C TollnerIndia2025-05-08Dorl, James J Esq PROPOSAL46Amy Elsner
1039Juan P CampainItaly2025-04-27Chapman, Ross E Esq PROPOSAL6Xuxue Feng
1040Tony E RimFrance2025-05-04Dorl, James J Esq QUALIFIED9Stephen Shaw
1041Kadeem Y BologniaGermany2025-05-10Dorl, James J Esq PROPOSAL59Asiya Javayant
1042Aika Q VenereRussia2025-04-30Chapman, Ross E Esq PROPOSAL7Anna Fali
1043Jeanfrancois Q TollnerItaly2025-04-29Dorl, James J Esq PROPOSAL0Ioni Bowcher
1044Stacey Y DarakjyArgentina2025-04-13Dorl, James J Esq NEW26Ioni Bowcher
1045Munro G OstroskyBrazil2025-04-29Truhlar And Truhlar Attys QUALIFIED50Ivan Magalhaes
1046Jennifer Q SergiRussia2025-04-14Rangoni Of Florence UNQUALIFIED65Onyama Limba
1047Leon Z GauchoUnited Kingdom2025-04-22Printing Dimensions QUALIFIED59Bernardo Dominic
1048Antonio T DilliardItaly2025-04-21Commercial Press RENEWAL17Ioni Bowcher
1049Johnson J WieserAustralia2025-04-29Morlong Associates RENEWAL63Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ashley U SchemmerBrazilStephen Shaw NEGOTIATION
Kaitlin J DoeArgentinaIvan Magalhaes PROPOSAL
Aruna Q AlbaresSpainAsiya Javayant PROPOSAL
Emily M BologniaFranceStephen Shaw QUALIFIED
Faith B PoquetteArgentinaAmy Elsner QUALIFIED
Emily Z VenereSpainIoni Bowcher RENEWAL
Maisha P MorascaSpainOnyama Limba NEGOTIATION
Wickens Y PaprockiIndiaXuxue Feng NEGOTIATION
Maria G DarakjyFranceIoni Bowcher NEW
Maria N KolmetzSpainAsiya Javayant NEW
Aika I DoeIndiaAsiya Javayant UNQUALIFIED
Darci W OstroskyArgentinaIvan Magalhaes QUALIFIED
Julie Z StockhamBrazilElwin Sharvill RENEWAL
Kaitlin D GarufiBrazilIvan Magalhaes NEW
Adams M TollnerFranceAnna Fali NEGOTIATION
Darci U IturbideBrazilAnna Fali UNQUALIFIED
Mujtaba R RoysterIndiaIoni Bowcher NEW
Octavia U DilliardGermanyBernardo Dominic PROPOSAL
Salvatore G PoquetteRussiaAnna Fali QUALIFIED
Greenwood F GarufiAustraliaStephen Shaw QUALIFIED
Munro H StensethAustraliaBernardo Dominic QUALIFIED
Aditya Y SlusarskiJapanIvan Magalhaes NEGOTIATION
Rodrigues S MaletCanadaElwin Sharvill UNQUALIFIED
Arvin V InouyeFranceIvan Magalhaes UNQUALIFIED
Jennifer D ChuiGermanyIvan Magalhaes NEW
Maisha Y CaudyUnited KingdomElwin Sharvill QUALIFIED
David N ChuiUnited KingdomAsiya Javayant QUALIFIED
Darci L DarakjyCanadaIoni Bowcher NEW
Rodrigues R WhobreyIndiaIoni Bowcher NEW
Leja O DilliardGermanyIoni Bowcher NEW
Maisha V NickaArgentinaXuxue Feng RENEWAL
Octavia J GillianJapanStephen Shaw QUALIFIED
Jones H AmigonAustraliaBernardo Dominic PROPOSAL
Ashley Q NestleItalyBernardo Dominic NEW
Salvatore K CaudyRussiaXuxue Feng QUALIFIED
Emily C WieserBrazilOnyama Limba PROPOSAL
Aika E CaldareraRussiaIvan Magalhaes RENEWAL
Morrow F SaylorsFranceIvan Magalhaes QUALIFIED
Costa O SlusarskiCanadaAsiya Javayant UNQUALIFIED
Tony D PaprockiCanadaXuxue Feng NEW
Emily L PaprockiItalyAnna Fali UNQUALIFIED
Tony K GlickCanadaAsiya Javayant PROPOSAL
Jefferson W CaudyJapanAsiya Javayant NEW
Juan F ButtFranceIoni Bowcher RENEWAL
Aruna I InouyeAustraliaIoni Bowcher NEGOTIATION
Juan L SergiFranceAnna Fali PROPOSAL
Juan I CaudyUnited KingdomAnna Fali RENEWAL
Faith F CampainItalyStephen Shaw QUALIFIED
Mujtaba Q KuskoArgentinaIvan Magalhaes UNQUALIFIED
Emily V MaletBrazilElwin Sharvill NEW
Frozen Columns
Name
Aika N Caudy
Silvio T Venere
Alejandro X Amigon
Aika H Tollner
Cody Z Oldroyd
Aditya Y Wieser
Leja A Marrier
Kaitlin O Albares
Arvin B Flosi
Stacey A Paprocki
Jeanfrancois F Inouye
Jones I Shinko
Chavez X Stenseth
Rodrigues L Inouye
Murillo L Vocelka
Alejandro P Malet
Antonio A Royster
Adams J Nicka
Deepesh X Venere
David Q Vocelka
Morrow I Nicka
Kaitlin D Caldarera
Aruna Z Saylors
Misaki Y Whobrey
Silvio C Bowley
Leja X Bolognia
Alejandro D Caldarera
Ashley C Amigon
Aditya H Butt
Darci X Inouye
Tony E Flosi
Juan U Marrier
Kaitlin L Nicka
Munro I Vocelka
Johnson F Flosi
Ivar Z Briddick
Wickens F Ostrosky
Aditya J Sergi
Stacey W Gillian
Adams N Perin
Ricardo R Royster
Alejandro I Gaucho
Faith I Chui
Isabel V Slusarski
Arvin E Marrier
Greenwood J Maclead
David I Stenseth
Deepesh I Inouye
Jones B Sergi
Jennifer Q Maclead
IdCountryDate
1000Canada2025-04-14
1001Australia2025-04-29
1002Russia2025-05-06
1003United Kingdom2025-05-05
1004Brazil2025-04-16
1005India2025-04-21
1006India2025-04-29
1007Brazil2025-04-14
1008India2025-05-11
1009Australia2025-04-26
1010United Kingdom2025-04-20
1011Italy2025-04-24
1012United Kingdom2025-04-15
1013France2025-05-05
1014United Kingdom2025-05-03
1015France2025-05-08
1016Canada2025-05-07
1017Spain2025-04-19
1018United Kingdom2025-05-04
1019Canada2025-04-21
1020Argentina2025-04-16
1021United Kingdom2025-04-27
1022Australia2025-04-16
1023France2025-04-20
1024France2025-04-18
1025United Kingdom2025-05-06
1026Russia2025-04-28
1027Brazil2025-04-18
1028Germany2025-05-01
1029France2025-04-18
1030Australia2025-05-06
1031Australia2025-04-14
1032France2025-04-19
1033Australia2025-05-11
1034Argentina2025-04-30
1035France2025-05-07
1036United Kingdom2025-04-15
1037India2025-04-28
1038Russia2025-04-30
1039Italy2025-04-17
1040United Kingdom2025-04-27
1041Canada2025-05-07
1042Spain2025-04-21
1043Germany2025-05-05
1044France2025-05-02
1045Spain2025-04-18
1046Spain2025-04-27
1047India2025-04-28
1048Germany2025-04-24
1049Italy2025-05-03

On-Demand Data

NameIdCountryDate
Aditya S Chui1000Germany2025-04-15
Tony G Sergi1001France2025-04-23
Adams D Paprocki1002United Kingdom2025-04-19
Aika B Nestle1003Spain2025-04-28
Costa H Kusko1004Japan2025-04-18
Faith S Flosi1005United Kingdom2025-04-25
Julie V Doe1006France2025-04-23
Jones Y Vocelka1007United Kingdom2025-05-11
Mayumi L Paprocki1008Italy2025-04-25
Maisha K Campain1009Spain2025-04-19
Ashley H Dilliard1010France2025-05-04
Cody F Malet1011Russia2025-05-07
Isabel F Vocelka1012Spain2025-04-21
Claire G Stenseth1013United Kingdom2025-04-27
Misaki Y Kusko1014Germany2025-05-02
Darci P Campain1015France2025-05-05
Jones V Kolmetz1016Russia2025-05-09
Ricardo K Butt1017Canada2025-05-07
Munro Q Kusko1018Italy2025-04-14
Aruna R Figeroa1019Russia2025-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore J FerenczArgentinaStephen Shaw RENEWAL
Murillo Z WhobreyItalyAmy Elsner PROPOSAL
Wickens U PoquetteJapanOnyama Limba RENEWAL
Antonio I SlusarskiJapanIoni Bowcher RENEWAL
Izzy F WieserGermanyElwin Sharvill RENEWAL
Costa H WhobreySpainAmy Elsner PROPOSAL
Izzy C TollnerJapanAmy Elsner NEW
Chavez X PerinGermanyOnyama Limba NEGOTIATION
James N MaletIndiaAsiya Javayant PROPOSAL
Jennifer P RoysterGermanyAmy Elsner QUALIFIED
Sinclair R GlickCanadaIoni Bowcher NEW
Francesco Z AmigonFranceAmy Elsner RENEWAL
Greenwood F CampainCanadaXuxue Feng NEW
Leja D FigeroaBrazilAnna Fali NEW
Maria F SergiFranceBernardo Dominic NEGOTIATION
Wickens H WhobreyFranceIvan Magalhaes PROPOSAL
Mujtaba K WhobreyItalyIoni Bowcher QUALIFIED
Octavia K SlusarskiBrazilXuxue Feng RENEWAL
Octavia A CaldareraSpainAnna Fali RENEWAL
Maisha G ChuiSpainAsiya Javayant NEW
Kadeem D SaylorsIndiaBernardo Dominic NEGOTIATION
Misaki D NickaIndiaXuxue Feng QUALIFIED
Julie T InouyeCanadaStephen Shaw RENEWAL
Jennifer H DarakjyBrazilXuxue Feng RENEWAL
Ashley B CaudyItalyAmy Elsner PROPOSAL
Maria A SlusarskiCanadaBernardo Dominic NEW
Rodrigues O ShinkoIndiaAsiya Javayant UNQUALIFIED
Cody G RutaRussiaIvan Magalhaes RENEWAL
Aditya F DoeGermanyIoni Bowcher NEGOTIATION
Greenwood X DarakjyRussiaXuxue Feng NEW
Arvin C VocelkaBrazilBernardo Dominic RENEWAL
Julie N WaycottSpainStephen Shaw QUALIFIED
Isabel Y DoeJapanAnna Fali NEGOTIATION
Greenwood Y ChuiIndiaElwin Sharvill NEW
Murillo D RutaBrazilIvan Magalhaes NEGOTIATION
Aika Q NestleIndiaElwin Sharvill NEW
Smith Y MacleadArgentinaXuxue Feng UNQUALIFIED
Adams E WaycottSpainAsiya Javayant RENEWAL
Morrow R VenereCanadaElwin Sharvill PROPOSAL
Misaki D DilliardJapanAsiya Javayant PROPOSAL

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