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
Mayumi M WaycottItalyOnyama Limba PROPOSAL
Jefferson K CampainArgentinaAmy Elsner RENEWAL
Greenwood U AmigonUnited KingdomIvan Magalhaes QUALIFIED
Chavez U ShinkoCanadaAnna Fali NEGOTIATION
Nicolas F CampainIndiaOnyama Limba RENEWAL
Costa G DilliardCanadaStephen Shaw RENEWAL
Morrow H ChuiBrazilBernardo Dominic NEGOTIATION
David Z MorascaItalyElwin Sharvill NEGOTIATION
Kadeem L MorascaIndiaXuxue Feng PROPOSAL
Leja J BowleyAustraliaIvan Magalhaes UNQUALIFIED
Clifford E ChuiUnited KingdomIvan Magalhaes QUALIFIED
Nicolas U CampainSpainIoni Bowcher RENEWAL
Wickens R FollerFranceOnyama Limba RENEWAL
Kadeem T KolmetzJapanOnyama Limba QUALIFIED
Jeanfrancois R PoquetteBrazilIvan Magalhaes PROPOSAL
Chavez B AlbaresIndiaStephen Shaw NEW
Chavez O MaletJapanAsiya Javayant NEGOTIATION
Leja H NestleSpainElwin Sharvill QUALIFIED
Francesco H GauchoFranceIvan Magalhaes RENEWAL
Antonio V KuskoIndiaBernardo Dominic NEW
Faith T CaudySpainAmy Elsner RENEWAL
Aditya I BowleyItalyAsiya Javayant UNQUALIFIED
Aika M DilliardArgentinaBernardo Dominic NEW
Aditya E IturbideFranceAmy Elsner PROPOSAL
Greenwood N SergiAustraliaAmy Elsner NEW
Rodrigues H ChuiSpainStephen Shaw PROPOSAL
Ashley W CaudyJapanAmy Elsner NEGOTIATION
David Z CaudyBrazilAmy Elsner UNQUALIFIED
Aika Z RulapaughFranceAnna Fali NEW
Silvio N FollerJapanStephen Shaw UNQUALIFIED
Morrow R ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Munro Q ChuiSpainAnna Fali RENEWAL
Octavia Q DoeUnited KingdomBernardo Dominic RENEWAL
Nicolas U SchemmerBrazilStephen Shaw RENEWAL
Izzy J FerenczCanadaAsiya Javayant RENEWAL
Greenwood I FigeroaCanadaAmy Elsner QUALIFIED
Juan K ChuiItalyAnna Fali NEW
Julie O RutaGermanyXuxue Feng PROPOSAL
Ricardo S KuskoRussiaAnna Fali PROPOSAL
Jones W MarrierAustraliaXuxue Feng PROPOSAL
Francesco H PaprockiArgentinaIvan Magalhaes QUALIFIED
Juan O SaylorsUnited KingdomStephen Shaw RENEWAL
Antonio G GarufiCanadaAsiya Javayant NEW
Julie B MorascaRussiaXuxue Feng NEGOTIATION
Isabel V NickaFranceIoni Bowcher NEGOTIATION
Greenwood Z IturbideRussiaElwin Sharvill NEGOTIATION
Kaitlin J NickaItalyIoni Bowcher NEGOTIATION
Wickens M RoysterJapanXuxue Feng UNQUALIFIED
Sinclair O TollnerIndiaAsiya Javayant NEW
Alejandro J TollnerGermanyIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin C BowleyCanadaAnna Fali QUALIFIED
Salvatore J AmigonItalyIoni Bowcher NEGOTIATION
Izzy X TollnerIndiaAmy Elsner NEGOTIATION
Maisha G RimGermanyAmy Elsner RENEWAL
Juan J AmigonRussiaAsiya Javayant RENEWAL
Adams J GlickRussiaElwin Sharvill PROPOSAL
Isabel S SchemmerSpainElwin Sharvill RENEWAL
Juan D RimUnited KingdomElwin Sharvill UNQUALIFIED
Isabel C NickaBrazilAmy Elsner NEGOTIATION
Murillo Y SlusarskiFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Q RutaFrance2026-07-15Feiner Bros NEW26Anna Fali
1001Mayumi Y PoquetteUnited Kingdom2026-07-18Buckley Miller Wright RENEWAL64Asiya Javayant
1002Ivar X RulapaughItaly2026-07-09Rangoni Of Florence RENEWAL36Stephen Shaw
1003Claire L RimIndia2026-06-30Truhlar And Truhlar Attys QUALIFIED43Onyama Limba
1004Ricardo D InouyeItaly2026-07-09Dorl, James J Esq PROPOSAL79Elwin Sharvill
1005Jones L RimIndia2026-07-20Rousseaux, Michael Esq PROPOSAL75Elwin Sharvill
1006Misaki I SaylorsFrance2026-07-02Morlong Associates RENEWAL73Xuxue Feng
1007Jones A MaletAustralia2026-07-15Commercial Press UNQUALIFIED35Amy Elsner
1008Jefferson X VenereFrance2026-07-21Truhlar And Truhlar Attys PROPOSAL95Stephen Shaw
1009Jefferson B CampainCanada2026-07-12Feiner Bros RENEWAL4Bernardo Dominic
1010Aditya B AlbaresGermany2026-07-19King, Christopher A Esq QUALIFIED65Anna Fali
1011Rodrigues S DilliardGermany2026-07-18Chemel, James L Cpa NEGOTIATION20Onyama Limba
1012Mayumi B BologniaBrazil2026-07-02Rangoni Of Florence NEGOTIATION92Ioni Bowcher
1013Aruna W FerenczGermany2026-07-24Chemel, James L Cpa RENEWAL75Amy Elsner
1014Munro N ButtUnited Kingdom2026-07-21Truhlar And Truhlar Attys NEGOTIATION94Elwin Sharvill
1015Stacey S MaletFrance2026-07-22Dorl, James J Esq RENEWAL71Onyama Limba
1016Darci E DoeAustralia2026-07-06Chapman, Ross E Esq RENEWAL68Amy Elsner
1017James P GarufiGermany2026-07-17Morlong Associates UNQUALIFIED38Stephen Shaw
1018Izzy H GlickUnited Kingdom2026-07-05Chapman, Ross E Esq NEGOTIATION24Amy Elsner
1019Misaki I GauchoAustralia2026-07-08King, Christopher A Esq RENEWAL55Ioni Bowcher
1020Murillo R SergiAustralia2026-07-10Feltz Printing Service NEGOTIATION83Ioni Bowcher
1021Aruna B NestleRussia2026-07-12Rangoni Of Florence UNQUALIFIED70Ioni Bowcher
1022Octavia P CaldareraItaly2026-07-24Rangoni Of Florence UNQUALIFIED17Ioni Bowcher
1023Johnson D MorascaItaly2026-07-19King, Christopher A Esq QUALIFIED44Amy Elsner
1024Smith F ChuiIndia2026-07-01Buckley Miller Wright NEGOTIATION27Ioni Bowcher
1025Mayumi A SaylorsJapan2026-07-17Rangoni Of Florence QUALIFIED56Stephen Shaw
1026Isabel Q MaletRussia2026-07-24Chemel, James L Cpa NEGOTIATION27Bernardo Dominic
1027Nicolas Q TollnerAustralia2026-07-19Printing Dimensions NEGOTIATION85Ioni Bowcher
1028Jennifer M DilliardFrance2026-07-09Buckley Miller Wright NEW81Ivan Magalhaes
1029Leon V AmigonJapan2026-07-09Feiner Bros RENEWAL35Xuxue Feng
1030Costa D PoquetteArgentina2026-07-16Chemel, James L Cpa UNQUALIFIED71Elwin Sharvill
1031Murillo G FerenczItaly2026-07-10Printing Dimensions NEGOTIATION10Amy Elsner
1032Jones N FollerAustralia2026-07-09Chemel, James L Cpa NEGOTIATION97Bernardo Dominic
1033Kaitlin F SergiBrazil2026-07-18Chemel, James L Cpa UNQUALIFIED25Amy Elsner
1034Deepesh S CampainBrazil2026-07-04Feltz Printing Service PROPOSAL55Amy Elsner
1035Stacey Z IturbideUnited Kingdom2026-07-23Chanay, Jeffrey A Esq RENEWAL5Anna Fali
1036Tony Z GarufiSpain2026-06-30Chapman, Ross E Esq UNQUALIFIED46Onyama Limba
1037Ivar J DarakjyJapan2026-07-15Buckley Miller Wright QUALIFIED91Bernardo Dominic
1038Arvin I GillianUnited Kingdom2026-07-06Feltz Printing Service UNQUALIFIED81Ioni Bowcher
1039Misaki N MarrierGermany2026-06-30King, Christopher A Esq QUALIFIED68Bernardo Dominic
1040Darci C WieserGermany2026-07-07King, Christopher A Esq RENEWAL89Ivan Magalhaes
1041Deepesh O ChuiArgentina2026-07-27Buckley Miller Wright RENEWAL64Xuxue Feng
1042Maisha P WieserFrance2026-06-28Commercial Press PROPOSAL31Onyama Limba
1043Jennifer B NestleBrazil2026-07-07Benton, John B Jr UNQUALIFIED21Bernardo Dominic
1044Maisha S MaletCanada2026-07-11Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1045Faith M WieserArgentina2026-07-11King, Christopher A Esq NEW52Bernardo Dominic
1046Claire P FigeroaIndia2026-07-12Feiner Bros PROPOSAL71Ivan Magalhaes
1047Nicolas X FlosiSpain2026-07-24Rangoni Of Florence NEW4Anna Fali
1048Juan U OstroskyRussia2026-06-29Morlong Associates UNQUALIFIED15Anna Fali
1049Costa Q ShinkoSpain2026-07-20King, Christopher A Esq UNQUALIFIED83Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith T InouyeGermanyOnyama Limba NEW
Misaki P VenereAustraliaXuxue Feng UNQUALIFIED
Isabel T PoquetteAustraliaIoni Bowcher QUALIFIED
Maria X IturbideJapanXuxue Feng PROPOSAL
Alejandro I FigeroaBrazilAsiya Javayant UNQUALIFIED
Maisha Q WaycottFranceElwin Sharvill PROPOSAL
Antonio D KuskoUnited KingdomIvan Magalhaes RENEWAL
Maisha K InouyeItalyAmy Elsner RENEWAL
Antonio K SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Nicolas X WieserBrazilIvan Magalhaes RENEWAL
Ivar V DoeBrazilStephen Shaw NEW
Tony A SaylorsBrazilAnna Fali PROPOSAL
Faith P GlickCanadaAsiya Javayant NEW
Antonio H SlusarskiArgentinaAsiya Javayant NEW
Sinclair M DarakjyJapanStephen Shaw QUALIFIED
Stacey X KuskoJapanElwin Sharvill UNQUALIFIED
Maria L SlusarskiCanadaStephen Shaw PROPOSAL
Stacey Y IturbideBrazilIoni Bowcher UNQUALIFIED
Mujtaba G AlbaresArgentinaElwin Sharvill QUALIFIED
Aditya R FigeroaAustraliaBernardo Dominic UNQUALIFIED
Ricardo J SergiSpainIoni Bowcher NEGOTIATION
Jefferson C VenereItalyAnna Fali NEW
Antonio U KuskoFranceBernardo Dominic RENEWAL
Adams B CaldareraIndiaStephen Shaw UNQUALIFIED
Salvatore K SchemmerFranceAsiya Javayant PROPOSAL
Johnson X TollnerIndiaXuxue Feng NEGOTIATION
Adams V RimJapanIvan Magalhaes NEGOTIATION
Kadeem F DoeIndiaOnyama Limba RENEWAL
Antonio C NickaAustraliaElwin Sharvill PROPOSAL
Aruna T NestleJapanAsiya Javayant PROPOSAL
Aruna C WhobreyJapanIoni Bowcher UNQUALIFIED
Murillo K MorascaJapanAmy Elsner NEGOTIATION
Octavia E ShinkoSpainElwin Sharvill NEGOTIATION
Jeanfrancois M BologniaIndiaBernardo Dominic UNQUALIFIED
Rodrigues Z VocelkaArgentinaIvan Magalhaes QUALIFIED
Leja Q VenereIndiaAsiya Javayant QUALIFIED
Salvatore B SchemmerJapanAnna Fali RENEWAL
Maisha V GlickAustraliaIvan Magalhaes NEW
Arvin G WieserSpainAmy Elsner RENEWAL
Chavez B PaprockiItalyXuxue Feng NEW
Adams O SergiCanadaBernardo Dominic UNQUALIFIED
Leja H RulapaughBrazilAmy Elsner NEW
Ashley G FerenczUnited KingdomOnyama Limba PROPOSAL
Jones E GlickIndiaAmy Elsner NEGOTIATION
Greenwood R StensethArgentinaStephen Shaw RENEWAL
Sinclair J InouyeUnited KingdomAnna Fali PROPOSAL
Jones F WaycottArgentinaIvan Magalhaes UNQUALIFIED
Kadeem E MarrierJapanOnyama Limba PROPOSAL
Sinclair H PoquetteJapanAmy Elsner RENEWAL
Nicolas T BowleyRussiaXuxue Feng QUALIFIED
Frozen Columns
Name
Maisha Z Schemmer
Silvio S Poquette
Wickens L Morasca
Johnson Q Campain
Chavez E Schemmer
Maisha I Inouye
Murillo S Gillian
Morrow H Perin
Salvatore I Malet
Stacey X Wieser
Stacey E Foller
Johnson F Marrier
Jones J Saylors
David A Gillian
Wickens F Caldarera
Arvin H Glick
Isabel Q Campain
Morrow B Figeroa
Jones G Gillian
Aditya W Marrier
Alejandro K Nestle
Darci B Shinko
Alejandro X Garufi
Aruna R Bolognia
Johnson N Rulapaugh
Silvio S Tollner
Arvin L Briddick
David T Perin
Kaitlin H Saylors
Octavia W Ruta
Deepesh B Darakjy
Misaki S Stockham
Sinclair O Rim
Rodrigues O Morasca
Emily P Kusko
Darci K Nicka
Murillo Y Shinko
James D Vocelka
Misaki K Chui
Arvin M Slusarski
Mujtaba Z Amigon
Costa Z Schemmer
Maria K Tollner
Chavez G Paprocki
Ivar L Royster
Tony I Slusarski
Jones A Chui
James L Sergi
Francesco Z Campain
Costa Y Garufi
IdCountryDate
1000Australia2026-07-12
1001Brazil2026-06-28
1002Italy2026-07-09
1003Argentina2026-07-03
1004India2026-07-20
1005Canada2026-07-25
1006United Kingdom2026-07-27
1007India2026-07-12
1008Brazil2026-06-28
1009Spain2026-06-28
1010Russia2026-07-11
1011France2026-07-11
1012Brazil2026-07-24
1013Italy2026-07-13
1014India2026-06-29
1015France2026-06-29
1016Brazil2026-07-13
1017France2026-07-20
1018Germany2026-06-30
1019Argentina2026-07-19
1020Argentina2026-07-12
1021United Kingdom2026-07-23
1022Spain2026-07-11
1023Canada2026-07-04
1024Russia2026-07-21
1025France2026-07-15
1026Canada2026-07-11
1027Germany2026-07-22
1028Argentina2026-07-05
1029India2026-07-24
1030Canada2026-07-05
1031Japan2026-07-10
1032Germany2026-07-19
1033India2026-07-04
1034Brazil2026-07-17
1035United Kingdom2026-07-01
1036Spain2026-07-10
1037India2026-07-11
1038Russia2026-07-25
1039United Kingdom2026-07-06
1040Japan2026-07-20
1041Australia2026-06-29
1042Brazil2026-07-15
1043Australia2026-07-05
1044Japan2026-07-18
1045France2026-06-29
1046Australia2026-07-08
1047Canada2026-07-23
1048Brazil2026-07-15
1049Australia2026-07-11

On-Demand Data

NameIdCountryDate
Silvio U Flosi1000United Kingdom2026-07-10
Smith R Ruta1001Russia2026-07-10
Faith W Amigon1002Italy2026-06-30
Julie O Bolognia1003Spain2026-07-11
Wickens N Malet1004Spain2026-07-12
Adams Z Nicka1005Argentina2026-06-30
Nicolas M Albares1006Argentina2026-07-17
Cody S Malet1007Argentina2026-07-22
Cody D Royster1008Canada2026-07-08
Kadeem O Morasca1009Spain2026-07-16
Wickens D Wieser1010France2026-07-11
Jennifer M Royster1011Germany2026-07-27
Morrow B Sergi1012Argentina2026-07-16
Stacey W Ostrosky1013Russia2026-07-11
David H Nestle1014Spain2026-07-17
Julie J Tollner1015Brazil2026-07-02
Francesco E Waycott1016Canada2026-07-10
David B Nicka1017Australia2026-07-23
Kadeem O Garufi1018United Kingdom2026-07-01
Johnson C Flosi1019Spain2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford T AmigonFranceXuxue Feng NEW
Clifford A MorascaFranceAsiya Javayant RENEWAL
Mayumi G MaletCanadaXuxue Feng QUALIFIED
Ashley B CampainBrazilOnyama Limba PROPOSAL
Munro B FlosiCanadaIoni Bowcher RENEWAL
Sinclair F ButtRussiaXuxue Feng UNQUALIFIED
Maisha K GauchoCanadaAmy Elsner UNQUALIFIED
Claire B FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Silvio Z WieserJapanIoni Bowcher PROPOSAL
Sinclair T RulapaughRussiaStephen Shaw PROPOSAL
Octavia P IturbideItalyAnna Fali NEGOTIATION
Sinclair D DarakjyFranceStephen Shaw NEGOTIATION
Francesco A KuskoFranceElwin Sharvill RENEWAL
Maria F DarakjyRussiaElwin Sharvill NEGOTIATION
Ricardo P ChuiBrazilElwin Sharvill PROPOSAL
Jeanfrancois R WaycottRussiaXuxue Feng RENEWAL
David C CaldareraFranceOnyama Limba NEW
Julie O SlusarskiArgentinaAmy Elsner QUALIFIED
Ashley U FlosiJapanStephen Shaw PROPOSAL
Francesco S MacleadBrazilAmy Elsner NEW
Aditya R StensethFranceIoni Bowcher QUALIFIED
Alejandro V BowleyGermanyXuxue Feng QUALIFIED
David T IturbideUnited KingdomAmy Elsner UNQUALIFIED
Wickens V RimSpainXuxue Feng NEGOTIATION
Wickens J VocelkaArgentinaBernardo Dominic NEW
David P InouyeGermanyAsiya Javayant NEGOTIATION
Johnson V GauchoIndiaAsiya Javayant PROPOSAL
Leja C DilliardItalyOnyama Limba NEGOTIATION
Maisha Q DilliardIndiaOnyama Limba RENEWAL
Antonio J SergiFranceXuxue Feng PROPOSAL
Maria E RoysterRussiaAsiya Javayant PROPOSAL
Kaitlin B KolmetzGermanyXuxue Feng NEGOTIATION
Cody Z RimIndiaAsiya Javayant NEW
Faith D PoquetteJapanIoni Bowcher UNQUALIFIED
Jones P SchemmerItalyIoni Bowcher PROPOSAL
Tony Z NickaAustraliaIoni Bowcher NEW
Chavez E BologniaIndiaAsiya Javayant NEGOTIATION
Jefferson Q OldroydJapanOnyama Limba QUALIFIED
Nicolas P InouyeCanadaIoni Bowcher NEW
Adams A FollerItalyAnna Fali 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>