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
Leja X DilliardAustraliaIoni Bowcher NEW
Francesco D StensethItalyBernardo Dominic PROPOSAL
Sinclair C CampainIndiaStephen Shaw NEGOTIATION
Sinclair Q FollerRussiaBernardo Dominic NEGOTIATION
Aruna N MaletItalyAmy Elsner RENEWAL
Antonio Y GarufiArgentinaIoni Bowcher NEGOTIATION
Octavia E GillianAustraliaIvan Magalhaes NEGOTIATION
Arvin W RimItalyIoni Bowcher NEGOTIATION
Claire T WhobreyGermanyIoni Bowcher NEW
Juan D FlosiItalyBernardo Dominic PROPOSAL
Alejandro I MaletUnited KingdomOnyama Limba RENEWAL
Chavez V AlbaresAustraliaXuxue Feng NEW
Maria A NickaIndiaAnna Fali QUALIFIED
Deepesh N MacleadJapanElwin Sharvill NEW
Leon I MaletUnited KingdomXuxue Feng RENEWAL
Salvatore L FerenczBrazilIvan Magalhaes NEW
Isabel K PerinFranceIoni Bowcher UNQUALIFIED
Adams Z ChuiUnited KingdomIvan Magalhaes PROPOSAL
Costa U MorascaGermanyAsiya Javayant RENEWAL
Jennifer K SergiIndiaOnyama Limba PROPOSAL
Silvio I CaldareraAustraliaIvan Magalhaes NEW
Aika A ButtArgentinaStephen Shaw RENEWAL
Morrow L StockhamArgentinaXuxue Feng UNQUALIFIED
Jeanfrancois R TollnerSpainElwin Sharvill NEGOTIATION
Leon L KuskoIndiaOnyama Limba NEGOTIATION
Murillo Z PaprockiCanadaIvan Magalhaes NEGOTIATION
Clifford Y VocelkaCanadaIoni Bowcher QUALIFIED
James D MorascaCanadaXuxue Feng NEW
Leon K DilliardRussiaElwin Sharvill UNQUALIFIED
Octavia P PaprockiJapanAsiya Javayant RENEWAL
Morrow L MorascaFranceAmy Elsner NEGOTIATION
Clifford G InouyeFranceXuxue Feng UNQUALIFIED
Francesco P StensethBrazilAsiya Javayant QUALIFIED
Mayumi M NickaGermanyIoni Bowcher RENEWAL
Mujtaba D AlbaresIndiaAsiya Javayant NEW
Nicolas D WhobreyCanadaBernardo Dominic RENEWAL
Julie F PoquetteArgentinaAnna Fali NEW
Munro P StockhamJapanOnyama Limba NEGOTIATION
Chavez J VocelkaUnited KingdomAmy Elsner RENEWAL
Tony M PoquetteJapanOnyama Limba NEW
Aruna C ChuiRussiaIvan Magalhaes UNQUALIFIED
Leon U CampainArgentinaAsiya Javayant NEGOTIATION
Rodrigues V MarrierIndiaAnna Fali UNQUALIFIED
Aruna Z TollnerRussiaStephen Shaw RENEWAL
Morrow R GillianGermanyStephen Shaw PROPOSAL
Cody B VenereCanadaIoni Bowcher QUALIFIED
Claire D DoeArgentinaXuxue Feng QUALIFIED
Murillo S GlickBrazilElwin Sharvill PROPOSAL
Jefferson O SergiSpainIvan Magalhaes NEGOTIATION
Greenwood A NestleItalyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Francesco Y StensethUnited KingdomIoni Bowcher QUALIFIED
Antonio T DarakjyIndiaIoni Bowcher RENEWAL
Faith I PoquetteJapanXuxue Feng NEGOTIATION
Ivar E MorascaBrazilOnyama Limba RENEWAL
Aditya I WhobreyArgentinaAnna Fali NEW
Leja Y RutaJapanIoni Bowcher UNQUALIFIED
David R FigeroaCanadaOnyama Limba UNQUALIFIED
Octavia Y FollerBrazilStephen Shaw NEW
Maria S FerenczSpainXuxue Feng NEGOTIATION
Costa O FlosiItalyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja T WieserSpain2026-08-09Dorl, James J Esq UNQUALIFIED72Xuxue Feng
1001Jones P TollnerGermany2026-08-05Morlong Associates UNQUALIFIED83Xuxue Feng
1002Adams I OldroydArgentina2026-08-13Feltz Printing Service NEGOTIATION38Ivan Magalhaes
1003Izzy X RulapaughCanada2026-08-02Morlong Associates RENEWAL71Ioni Bowcher
1004Leja B GarufiCanada2026-08-15Morlong Associates UNQUALIFIED8Amy Elsner
1005Arvin J TollnerBrazil2026-08-16Dorl, James J Esq UNQUALIFIED21Bernardo Dominic
1006Chavez F PoquetteItaly2026-08-20Chapman, Ross E Esq RENEWAL53Ioni Bowcher
1007Johnson J MarrierBrazil2026-08-09Truhlar And Truhlar Attys PROPOSAL66Onyama Limba
1008Francesco Y CaudyJapan2026-08-21Truhlar And Truhlar Attys RENEWAL91Asiya Javayant
1009Antonio J TollnerAustralia2026-08-21Morlong Associates NEGOTIATION4Anna Fali
1010Arvin K VocelkaCanada2026-07-30Chanay, Jeffrey A Esq NEW12Amy Elsner
1011Ivar Z GauchoArgentina2026-08-16Chemel, James L Cpa QUALIFIED12Bernardo Dominic
1012Ashley O FigeroaBrazil2026-08-03Commercial Press NEW29Xuxue Feng
1013Faith S InouyeGermany2026-08-19Rangoni Of Florence QUALIFIED66Anna Fali
1014Johnson X WaycottBrazil2026-08-05Rangoni Of Florence NEW76Xuxue Feng
1015Clifford R WhobreyJapan2026-08-02Commercial Press UNQUALIFIED74Ioni Bowcher
1016Cody S IturbideJapan2026-07-23Chemel, James L Cpa NEW86Stephen Shaw
1017Leon R InouyeUnited Kingdom2026-08-03Truhlar And Truhlar Attys UNQUALIFIED26Stephen Shaw
1018Johnson Q ChuiGermany2026-08-16Rangoni Of Florence QUALIFIED3Stephen Shaw
1019Adams X SchemmerUnited Kingdom2026-08-08Morlong Associates UNQUALIFIED54Ioni Bowcher
1020Darci T FlosiJapan2026-07-26Printing Dimensions NEGOTIATION11Onyama Limba
1021James U DilliardAustralia2026-08-08Chanay, Jeffrey A Esq RENEWAL31Elwin Sharvill
1022Adams S GillianGermany2026-08-15Feltz Printing Service UNQUALIFIED90Asiya Javayant
1023Emily B DilliardUnited Kingdom2026-08-06Chemel, James L Cpa NEW91Ioni Bowcher
1024Morrow X MarrierItaly2026-08-08Benton, John B Jr UNQUALIFIED53Amy Elsner
1025Antonio P FlosiSpain2026-07-27Rousseaux, Michael Esq NEW21Elwin Sharvill
1026Jennifer S RulapaughRussia2026-08-02Rangoni Of Florence NEW54Asiya Javayant
1027Ricardo R KolmetzItaly2026-07-28Chemel, James L Cpa QUALIFIED3Anna Fali
1028Alejandro P SlusarskiGermany2026-07-27Benton, John B Jr RENEWAL73Stephen Shaw
1029Greenwood V InouyeAustralia2026-07-28Commercial Press RENEWAL76Ioni Bowcher
1030Mujtaba A AlbaresAustralia2026-08-20Chapman, Ross E Esq NEGOTIATION51Bernardo Dominic
1031Octavia U VenereGermany2026-07-28Feiner Bros RENEWAL39Stephen Shaw
1032Darci O DilliardCanada2026-08-16Chanay, Jeffrey A Esq NEW46Elwin Sharvill
1033Chavez U ChuiJapan2026-08-08Feiner Bros RENEWAL17Xuxue Feng
1034Kaitlin H FigeroaUnited Kingdom2026-08-05Rangoni Of Florence NEW90Ioni Bowcher
1035Alejandro O DilliardArgentina2026-08-13Feiner Bros UNQUALIFIED69Amy Elsner
1036Smith I TollnerGermany2026-08-12Rangoni Of Florence PROPOSAL55Amy Elsner
1037Johnson Y StensethIndia2026-07-26Feiner Bros QUALIFIED76Onyama Limba
1038Ricardo T RulapaughRussia2026-08-18King, Christopher A Esq RENEWAL2Asiya Javayant
1039Ashley B BriddickAustralia2026-07-24Feltz Printing Service NEW65Onyama Limba
1040Morrow S RimUnited Kingdom2026-08-13Printing Dimensions NEGOTIATION25Xuxue Feng
1041Claire A FerenczFrance2026-08-02Chapman, Ross E Esq QUALIFIED90Onyama Limba
1042Jefferson N DilliardArgentina2026-08-13Chemel, James L Cpa PROPOSAL88Amy Elsner
1043Jefferson T RimAustralia2026-08-10Morlong Associates PROPOSAL48Ioni Bowcher
1044Silvio X MarrierBrazil2026-07-27Commercial Press PROPOSAL43Stephen Shaw
1045Leja F VenereBrazil2026-08-07Rangoni Of Florence UNQUALIFIED22Stephen Shaw
1046Emily Y OstroskyRussia2026-08-17Chapman, Ross E Esq RENEWAL40Elwin Sharvill
1047Maisha T BowleyUnited Kingdom2026-08-06Benton, John B Jr PROPOSAL61Asiya Javayant
1048Alejandro I CaudyItaly2026-08-15Chapman, Ross E Esq NEGOTIATION64Asiya Javayant
1049James M CaldareraSpain2026-08-09Dorl, James J Esq QUALIFIED29Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Leja U DoeBrazilElwin Sharvill PROPOSAL
Aruna B MaletSpainOnyama Limba PROPOSAL
Claire Z FlosiGermanyAsiya Javayant QUALIFIED
Stacey Q KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Ashley U FollerSpainBernardo Dominic UNQUALIFIED
Ivar N KuskoSpainBernardo Dominic UNQUALIFIED
Smith H GarufiJapanAmy Elsner UNQUALIFIED
Izzy R MaletIndiaAnna Fali PROPOSAL
Tony J GauchoItalyAmy Elsner RENEWAL
Misaki X BriddickUnited KingdomBernardo Dominic PROPOSAL
Rodrigues D GauchoRussiaXuxue Feng PROPOSAL
Mujtaba K SlusarskiCanadaXuxue Feng NEGOTIATION
Maria I CampainIndiaOnyama Limba QUALIFIED
Emily Q PoquetteAustraliaAnna Fali NEW
Cody X AlbaresIndiaOnyama Limba QUALIFIED
Faith Y NickaAustraliaStephen Shaw PROPOSAL
Johnson B CampainFranceIvan Magalhaes NEW
Adams I WaycottItalyStephen Shaw RENEWAL
Aditya D MaletArgentinaIvan Magalhaes QUALIFIED
Faith A GlickAustraliaIoni Bowcher PROPOSAL
James T InouyeIndiaAnna Fali NEW
Francesco W GlickUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh H AmigonIndiaElwin Sharvill RENEWAL
Rodrigues V DarakjyUnited KingdomElwin Sharvill PROPOSAL
Nicolas B CaldareraUnited KingdomAnna Fali PROPOSAL
Tony D WhobreySpainAmy Elsner NEGOTIATION
Greenwood O MaletBrazilAnna Fali RENEWAL
Alejandro S MacleadJapanOnyama Limba UNQUALIFIED
Emily Q PoquetteArgentinaBernardo Dominic NEGOTIATION
Rodrigues C StockhamAustraliaStephen Shaw PROPOSAL
James M WieserItalyOnyama Limba NEW
Adams C SchemmerFranceElwin Sharvill UNQUALIFIED
Leon W MarrierIndiaXuxue Feng UNQUALIFIED
Wickens L KuskoUnited KingdomStephen Shaw NEGOTIATION
Silvio B IturbideBrazilOnyama Limba PROPOSAL
Kadeem C RimAustraliaAnna Fali NEW
Octavia M AmigonItalyAnna Fali NEGOTIATION
Arvin Q FollerFranceXuxue Feng PROPOSAL
Costa M BowleyFranceOnyama Limba NEGOTIATION
Maisha E KuskoIndiaAmy Elsner QUALIFIED
Mayumi P CampainBrazilAnna Fali NEW
Costa G FerenczSpainElwin Sharvill QUALIFIED
Alejandro S VocelkaSpainXuxue Feng QUALIFIED
Aruna B DilliardIndiaAsiya Javayant NEW
Claire D MaletAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois R RutaIndiaElwin Sharvill PROPOSAL
Francesco G PaprockiJapanStephen Shaw PROPOSAL
Smith V GauchoSpainOnyama Limba RENEWAL
Julie R MacleadRussiaAsiya Javayant NEGOTIATION
Darci Q DarakjyAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Stacey M Iturbide
Aruna N Royster
Murillo F Gaucho
Leon Q Poquette
Ashley A Sergi
Munro P Shinko
Antonio L Oldroyd
Arvin V Rim
Leja X Gillian
Francesco Z Whobrey
Cody P Tollner
Mayumi E Venere
Ivar P Sergi
Emily H Poquette
Juan Q Ruta
Francesco F Bolognia
Emily G Kolmetz
Murillo Q Gaucho
Juan L Perin
Jennifer F Darakjy
Arvin W Nicka
Isabel C Malet
Sinclair S Garufi
Jefferson O Chui
Sinclair U Dilliard
Ivar X Malet
Leja V Vocelka
Izzy D Paprocki
Octavia H Glick
Maisha O Nestle
Clifford F Shinko
Kadeem W Slusarski
Jones S Ferencz
Costa C Kolmetz
Aruna E Dilliard
Maisha Q Rulapaugh
Rodrigues Q Ferencz
Murillo S Marrier
Maria F Flosi
Aruna S Waycott
David W Stenseth
Arvin P Nicka
Tony W Wieser
Maria T Bowley
Izzy P Foller
Deepesh I Glick
Arvin F Flosi
Tony W Poquette
David W Royster
Aruna O Wieser
IdCountryDate
1000Germany2026-08-01
1001Brazil2026-07-31
1002Russia2026-07-30
1003France2026-07-30
1004Brazil2026-08-04
1005France2026-08-03
1006Australia2026-08-09
1007India2026-08-13
1008Argentina2026-08-11
1009United Kingdom2026-08-19
1010France2026-08-19
1011Brazil2026-07-30
1012Italy2026-08-11
1013Germany2026-08-14
1014Italy2026-08-02
1015Brazil2026-08-06
1016Italy2026-08-10
1017Brazil2026-08-11
1018Spain2026-08-14
1019Russia2026-08-15
1020Spain2026-07-23
1021Brazil2026-08-21
1022Russia2026-08-09
1023Argentina2026-08-20
1024Canada2026-07-31
1025France2026-07-25
1026Japan2026-08-11
1027Germany2026-08-18
1028Australia2026-08-19
1029Germany2026-08-18
1030Canada2026-08-12
1031India2026-07-30
1032Japan2026-08-01
1033Brazil2026-08-03
1034Japan2026-08-07
1035Argentina2026-08-12
1036Spain2026-08-08
1037Spain2026-08-07
1038Japan2026-08-02
1039Argentina2026-08-09
1040Spain2026-08-14
1041Argentina2026-08-03
1042France2026-07-30
1043United Kingdom2026-08-15
1044Argentina2026-07-26
1045Italy2026-08-08
1046France2026-08-18
1047Italy2026-08-15
1048Russia2026-07-23
1049Italy2026-07-26

On-Demand Data

NameIdCountryDate
Darci F Rim1000Russia2026-08-05
Octavia K Perin1001United Kingdom2026-07-30
Kadeem I Briddick1002Canada2026-08-15
Octavia O Briddick1003Australia2026-07-31
Salvatore K Schemmer1004India2026-08-18
Octavia W Maclead1005Germany2026-08-06
Jennifer L Venere1006Japan2026-07-31
Leja Z Malet1007Italy2026-08-16
Darci B Nestle1008Brazil2026-07-25
Stacey W Albares1009Argentina2026-07-25
Izzy D Ruta1010Russia2026-08-05
Smith I Bowley1011Germany2026-08-08
Deepesh T Marrier1012Spain2026-08-11
Aika K Rulapaugh1013Argentina2026-08-16
Tony O Maclead1014Russia2026-07-30
Leon W Dilliard1015Brazil2026-08-09
Isabel Q Whobrey1016Brazil2026-08-02
Maria S Malet1017Italy2026-07-28
James V Foller1018Russia2026-08-14
Aruna K Malet1019Italy2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire M NickaArgentinaAmy Elsner NEGOTIATION
Stacey V DoeRussiaElwin Sharvill UNQUALIFIED
Mujtaba I WieserCanadaIoni Bowcher UNQUALIFIED
Julie O ChuiRussiaStephen Shaw NEGOTIATION
Costa Q MaletJapanOnyama Limba NEGOTIATION
Deepesh T NickaBrazilElwin Sharvill NEGOTIATION
Silvio A NickaSpainAnna Fali QUALIFIED
Mujtaba Q WhobreyRussiaAmy Elsner NEGOTIATION
Clifford L FigeroaFranceAnna Fali PROPOSAL
Kadeem T MacleadItalyOnyama Limba UNQUALIFIED
Francesco I PaprockiFranceAnna Fali RENEWAL
Isabel A FlosiUnited KingdomIoni Bowcher PROPOSAL
Darci V IturbideRussiaStephen Shaw UNQUALIFIED
Misaki B FigeroaRussiaOnyama Limba QUALIFIED
Sinclair H WaycottSpainAmy Elsner RENEWAL
Cody J VenereAustraliaStephen Shaw NEW
Claire T PoquetteAustraliaElwin Sharvill UNQUALIFIED
Ricardo D FigeroaIndiaStephen Shaw NEW
Francesco P OstroskyRussiaBernardo Dominic UNQUALIFIED
Morrow R DoeItalyAmy Elsner NEW
Maisha X SergiUnited KingdomStephen Shaw RENEWAL
Cody G MaletRussiaElwin Sharvill PROPOSAL
Faith W OstroskyArgentinaElwin Sharvill UNQUALIFIED
Alejandro Z SergiBrazilOnyama Limba QUALIFIED
Aruna P SergiCanadaElwin Sharvill RENEWAL
Leja W BologniaSpainElwin Sharvill NEW
Juan Z WhobreyAustraliaAsiya Javayant UNQUALIFIED
Mujtaba U InouyeAustraliaIvan Magalhaes NEW
Darci T ChuiRussiaAmy Elsner UNQUALIFIED
Ivar Y PoquetteBrazilOnyama Limba NEGOTIATION
Clifford J CaudyArgentinaAmy Elsner UNQUALIFIED
Isabel K MaletIndiaAnna Fali RENEWAL
Alejandro V OstroskyCanadaIvan Magalhaes PROPOSAL
Francesco F FlosiIndiaBernardo Dominic RENEWAL
Mujtaba P FollerGermanyBernardo Dominic UNQUALIFIED
Morrow T MaletRussiaAmy Elsner UNQUALIFIED
Maisha W ButtGermanyIvan Magalhaes NEW
Leja D AlbaresGermanyStephen Shaw NEW
Deepesh H StockhamJapanOnyama Limba NEW
David E RimGermanyIvan Magalhaes RENEWAL

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