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
Aditya V MarrierSpainAsiya Javayant QUALIFIED
Ivar J FigeroaItalyOnyama Limba QUALIFIED
Cody C WaycottBrazilOnyama Limba RENEWAL
Faith R PoquetteJapanAsiya Javayant NEW
Stacey J SaylorsArgentinaBernardo Dominic QUALIFIED
Jennifer P RoysterRussiaIoni Bowcher RENEWAL
Aika J VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues Y BriddickFranceIvan Magalhaes UNQUALIFIED
Darci K WaycottFranceOnyama Limba NEGOTIATION
Ricardo E VocelkaItalyOnyama Limba PROPOSAL
Antonio B BologniaGermanyAmy Elsner NEGOTIATION
Adams U KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro U DilliardUnited KingdomAnna Fali RENEWAL
Murillo M CaldareraJapanStephen Shaw PROPOSAL
David U VenereCanadaAsiya Javayant NEW
Octavia X WieserBrazilOnyama Limba NEW
Misaki P DarakjyCanadaBernardo Dominic NEW
Costa Y MaletArgentinaOnyama Limba UNQUALIFIED
Leja F CampainArgentinaStephen Shaw RENEWAL
Morrow I CaldareraFranceBernardo Dominic QUALIFIED
Kadeem Y KolmetzBrazilAnna Fali NEW
Stacey K ButtItalyIvan Magalhaes RENEWAL
Greenwood H CaudyGermanyBernardo Dominic NEGOTIATION
Deepesh D FollerGermanyBernardo Dominic NEW
Izzy P CampainAustraliaBernardo Dominic UNQUALIFIED
Emily I PoquetteSpainIvan Magalhaes UNQUALIFIED
Stacey L BowleyItalyIoni Bowcher NEW
Aruna B GauchoIndiaXuxue Feng UNQUALIFIED
Ashley D GauchoUnited KingdomXuxue Feng PROPOSAL
Smith J DilliardFranceOnyama Limba NEW
Octavia S AlbaresIndiaAmy Elsner PROPOSAL
Darci D BriddickUnited KingdomXuxue Feng RENEWAL
Maria U MarrierUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois H MorascaFranceAmy Elsner NEGOTIATION
Faith B KuskoRussiaIvan Magalhaes NEGOTIATION
Wickens R NestleGermanyAsiya Javayant PROPOSAL
Costa H DoeArgentinaElwin Sharvill NEGOTIATION
Wickens B KolmetzFranceIvan Magalhaes NEW
Darci D WhobreyRussiaAnna Fali QUALIFIED
Leja E BowleyItalyElwin Sharvill PROPOSAL
Mujtaba C RutaSpainAmy Elsner PROPOSAL
Jones U MorascaUnited KingdomStephen Shaw PROPOSAL
Maisha G FerenczUnited KingdomAnna Fali NEW
Stacey B MaletFranceAnna Fali UNQUALIFIED
Jeanfrancois G StockhamIndiaAmy Elsner QUALIFIED
Misaki Q BriddickFranceAmy Elsner RENEWAL
Julie E FollerUnited KingdomAmy Elsner PROPOSAL
Kaitlin S OstroskyJapanIvan Magalhaes QUALIFIED
Arvin R GarufiIndiaAmy Elsner RENEWAL
Kaitlin T PoquetteUnited KingdomAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo S SaylorsIndiaBernardo Dominic RENEWAL
James S MorascaGermanyAsiya Javayant NEW
James B MarrierGermanyBernardo Dominic UNQUALIFIED
Arvin W AmigonItalyAmy Elsner NEW
Kadeem E DarakjyIndiaIvan Magalhaes QUALIFIED
Munro A FlosiCanadaIoni Bowcher NEW
Claire A DarakjyFranceIoni Bowcher NEW
Adams Z IturbideCanadaXuxue Feng PROPOSAL
Ivar A FigeroaIndiaElwin Sharvill RENEWAL
Ricardo A PoquetteSpainStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio B FollerCanada2026-07-29Buckley Miller Wright UNQUALIFIED15Stephen Shaw
1001Greenwood D CaldareraUnited Kingdom2026-08-06Chapman, Ross E Esq NEGOTIATION98Stephen Shaw
1002Isabel D OstroskyArgentina2026-08-15Truhlar And Truhlar Attys NEGOTIATION25Bernardo Dominic
1003Aruna H BowleyFrance2026-08-21Truhlar And Truhlar Attys QUALIFIED48Stephen Shaw
1004Antonio J MaletGermany2026-08-09Chanay, Jeffrey A Esq QUALIFIED63Ivan Magalhaes
1005David Y StockhamArgentina2026-08-08Buckley Miller Wright NEW39Xuxue Feng
1006Jeanfrancois W WhobreyFrance2026-08-16Chapman, Ross E Esq PROPOSAL99Bernardo Dominic
1007Isabel F CaldareraArgentina2026-08-03Dorl, James J Esq UNQUALIFIED79Ivan Magalhaes
1008Adams A OldroydAustralia2026-08-21Printing Dimensions RENEWAL35Asiya Javayant
1009Aika Q WieserIndia2026-07-30Rousseaux, Michael Esq QUALIFIED85Stephen Shaw
1010Juan W ShinkoCanada2026-08-16Buckley Miller Wright RENEWAL11Amy Elsner
1011Aruna N BologniaIndia2026-08-23Truhlar And Truhlar Attys PROPOSAL28Ioni Bowcher
1012Aika S RoysterUnited Kingdom2026-08-03King, Christopher A Esq QUALIFIED59Ivan Magalhaes
1013Alejandro E ChuiAustralia2026-08-13Feltz Printing Service NEW75Elwin Sharvill
1014Costa S ButtBrazil2026-07-29Chanay, Jeffrey A Esq PROPOSAL83Onyama Limba
1015David P NestleGermany2026-07-26Buckley Miller Wright RENEWAL82Bernardo Dominic
1016Costa T BowleySpain2026-08-07Chemel, James L Cpa QUALIFIED27Stephen Shaw
1017Leon C StensethJapan2026-08-08Commercial Press QUALIFIED60Onyama Limba
1018Aruna M VenereRussia2026-08-01Feltz Printing Service QUALIFIED92Asiya Javayant
1019Izzy P InouyeCanada2026-08-11Rangoni Of Florence QUALIFIED61Stephen Shaw
1020Munro S IturbideBrazil2026-08-22Feiner Bros RENEWAL85Elwin Sharvill
1021Jennifer Y SaylorsFrance2026-08-01Benton, John B Jr NEW59Ioni Bowcher
1022Julie V FlosiJapan2026-08-21Chemel, James L Cpa UNQUALIFIED32Xuxue Feng
1023Izzy M MarrierArgentina2026-08-06Benton, John B Jr NEGOTIATION13Asiya Javayant
1024Leja P DarakjySpain2026-08-10Commercial Press QUALIFIED87Asiya Javayant
1025Isabel Y WieserJapan2026-08-23Rangoni Of Florence NEW56Amy Elsner
1026Jones N ShinkoCanada2026-08-13Commercial Press PROPOSAL96Amy Elsner
1027Jefferson X RutaBrazil2026-08-11Commercial Press PROPOSAL90Bernardo Dominic
1028Chavez Q VocelkaBrazil2026-08-12Truhlar And Truhlar Attys NEGOTIATION81Ivan Magalhaes
1029Claire B InouyeRussia2026-08-21Benton, John B Jr NEGOTIATION53Xuxue Feng
1030Rodrigues J IturbideCanada2026-08-22Chemel, James L Cpa RENEWAL25Xuxue Feng
1031Munro F MarrierRussia2026-08-17Truhlar And Truhlar Attys PROPOSAL74Asiya Javayant
1032Leon P WhobreySpain2026-08-01Benton, John B Jr PROPOSAL38Anna Fali
1033Silvio A MaletSpain2026-08-03Commercial Press PROPOSAL69Stephen Shaw
1034Cody W IturbideJapan2026-08-05Truhlar And Truhlar Attys RENEWAL15Bernardo Dominic
1035Darci W RulapaughAustralia2026-08-07Feiner Bros NEGOTIATION47Elwin Sharvill
1036Nicolas F IturbideUnited Kingdom2026-08-01Benton, John B Jr NEW89Stephen Shaw
1037Aruna L DarakjyItaly2026-08-10Chemel, James L Cpa NEW69Xuxue Feng
1038Isabel V VocelkaRussia2026-08-24Chemel, James L Cpa QUALIFIED0Ivan Magalhaes
1039Salvatore Z ShinkoRussia2026-08-04Rangoni Of Florence NEW75Xuxue Feng
1040Mayumi Y CampainSpain2026-08-13Commercial Press QUALIFIED9Ioni Bowcher
1041Greenwood H SlusarskiAustralia2026-08-21Truhlar And Truhlar Attys QUALIFIED94Onyama Limba
1042Wickens G CampainCanada2026-08-24Truhlar And Truhlar Attys UNQUALIFIED2Amy Elsner
1043Octavia E StockhamFrance2026-08-22Chemel, James L Cpa NEW58Ioni Bowcher
1044Claire J BologniaBrazil2026-08-08King, Christopher A Esq QUALIFIED79Onyama Limba
1045James X MarrierGermany2026-08-08Chapman, Ross E Esq PROPOSAL0Amy Elsner
1046Sinclair B RutaRussia2026-08-21Feltz Printing Service PROPOSAL14Amy Elsner
1047Jones W WhobreyRussia2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED44Asiya Javayant
1048Darci I WhobreyCanada2026-07-30Morlong Associates PROPOSAL25Ivan Magalhaes
1049Kadeem N GillianGermany2026-07-31Chapman, Ross E Esq UNQUALIFIED34Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio Z CaudySpainAmy Elsner NEGOTIATION
Wickens U WieserCanadaXuxue Feng PROPOSAL
Jones V SchemmerItalyXuxue Feng NEGOTIATION
Sinclair U ChuiFranceAnna Fali QUALIFIED
David C CaudyFranceXuxue Feng NEW
Maria V ShinkoItalyAsiya Javayant UNQUALIFIED
Greenwood Q MarrierItalyElwin Sharvill NEGOTIATION
James D MaletBrazilStephen Shaw NEGOTIATION
Leja R AlbaresCanadaAsiya Javayant NEW
Isabel S RimJapanElwin Sharvill RENEWAL
Ashley A CaudyGermanyAsiya Javayant QUALIFIED
Jennifer X GillianJapanIoni Bowcher PROPOSAL
Ricardo G WaycottBrazilBernardo Dominic PROPOSAL
Clifford L BologniaAustraliaOnyama Limba NEGOTIATION
Ashley F RutaItalyIvan Magalhaes RENEWAL
Costa X AlbaresJapanIvan Magalhaes QUALIFIED
Jones P KuskoCanadaXuxue Feng RENEWAL
Juan W OstroskyFranceElwin Sharvill QUALIFIED
Cody Y ButtCanadaElwin Sharvill PROPOSAL
Wickens K FigeroaCanadaOnyama Limba QUALIFIED
Jones H GillianArgentinaElwin Sharvill UNQUALIFIED
Emily F StensethIndiaAsiya Javayant QUALIFIED
Darci M SergiAustraliaIoni Bowcher RENEWAL
Aika A WieserRussiaXuxue Feng QUALIFIED
Johnson R RoysterArgentinaBernardo Dominic UNQUALIFIED
Sinclair S RimFranceOnyama Limba NEGOTIATION
Jones F OldroydRussiaOnyama Limba NEW
Munro R StensethItalyAnna Fali QUALIFIED
Kadeem A DilliardSpainElwin Sharvill PROPOSAL
Deepesh F RulapaughBrazilIvan Magalhaes NEGOTIATION
Isabel W PaprockiAustraliaBernardo Dominic NEW
Deepesh F NestleGermanyXuxue Feng PROPOSAL
Jefferson W DoeBrazilElwin Sharvill QUALIFIED
Darci I MaletFranceAnna Fali PROPOSAL
Ivar R WieserGermanyAsiya Javayant PROPOSAL
Cody T TollnerRussiaIvan Magalhaes QUALIFIED
Clifford I BriddickUnited KingdomIvan Magalhaes QUALIFIED
Darci L DilliardUnited KingdomBernardo Dominic RENEWAL
Aruna P BriddickSpainAmy Elsner QUALIFIED
Ricardo Q SchemmerSpainBernardo Dominic UNQUALIFIED
Murillo Z RulapaughAustraliaAmy Elsner PROPOSAL
Arvin U GillianGermanyBernardo Dominic UNQUALIFIED
Deepesh R SchemmerUnited KingdomElwin Sharvill NEW
Mujtaba M ShinkoBrazilAsiya Javayant PROPOSAL
Costa Q FerenczAustraliaAnna Fali PROPOSAL
Stacey G CaldareraRussiaXuxue Feng RENEWAL
Ashley N PerinUnited KingdomAmy Elsner PROPOSAL
Jones W SchemmerCanadaAsiya Javayant NEW
Kadeem Y PaprockiUnited KingdomStephen Shaw NEGOTIATION
Jennifer X RoysterAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Julie G Malet
Kaitlin I Kusko
Maria T Gaucho
Johnson G Malet
Faith A Inouye
Julie J Schemmer
Murillo X Tollner
Maria Q Poquette
David H Ostrosky
Costa B Morasca
Tony J Paprocki
Sinclair Z Malet
Arvin B Rim
Kaitlin T Foller
Mujtaba S Darakjy
Deepesh Q Caldarera
Aruna K Bowley
Isabel W Rim
Jones I Oldroyd
Johnson O Inouye
Johnson Y Morasca
Darci V Inouye
Leon F Nicka
Chavez Y Marrier
Nicolas F Marrier
Faith R Dilliard
Arvin J Malet
Ricardo Y Venere
Ricardo H Kolmetz
Nicolas F Foller
Clifford E Sergi
Faith G Schemmer
Ashley G Garufi
Munro K Inouye
Octavia Y Garufi
Aditya H Sergi
Izzy M Briddick
James R Paprocki
Morrow Z Saylors
Antonio S Gaucho
Munro G Poquette
Ashley B Oldroyd
Silvio H Vocelka
Jennifer C Caldarera
Faith Z Rim
Maria S Inouye
Greenwood P Bowley
Leon N Bolognia
Johnson S Campain
Costa G Whobrey
IdCountryDate
1000Russia2026-08-14
1001Brazil2026-08-04
1002United Kingdom2026-08-09
1003Argentina2026-08-04
1004United Kingdom2026-07-30
1005Japan2026-08-14
1006Argentina2026-07-31
1007Japan2026-08-11
1008Argentina2026-08-02
1009India2026-08-05
1010Australia2026-07-29
1011Japan2026-08-03
1012France2026-07-31
1013Argentina2026-07-28
1014United Kingdom2026-07-27
1015Japan2026-08-11
1016Germany2026-08-08
1017Brazil2026-08-14
1018Australia2026-07-27
1019Canada2026-08-19
1020France2026-08-17
1021Argentina2026-08-19
1022India2026-08-08
1023Russia2026-08-06
1024France2026-07-29
1025Spain2026-07-27
1026Australia2026-07-29
1027Canada2026-08-17
1028Brazil2026-08-23
1029United Kingdom2026-08-20
1030Italy2026-08-11
1031United Kingdom2026-08-08
1032Germany2026-07-30
1033Italy2026-08-04
1034Spain2026-08-15
1035United Kingdom2026-08-09
1036France2026-07-29
1037Australia2026-08-20
1038Brazil2026-07-29
1039Argentina2026-08-13
1040Germany2026-08-21
1041Brazil2026-08-02
1042United Kingdom2026-08-23
1043Argentina2026-07-26
1044United Kingdom2026-07-30
1045Germany2026-08-19
1046Canada2026-08-11
1047Spain2026-08-04
1048Australia2026-08-04
1049United Kingdom2026-08-17

On-Demand Data

NameIdCountryDate
Jennifer C Chui1000Australia2026-08-10
Leon V Saylors1001United Kingdom2026-08-11
Jeanfrancois T Darakjy1002India2026-07-31
James O Malet1003Germany2026-08-16
Deepesh S Paprocki1004Germany2026-08-19
Isabel S Albares1005Germany2026-07-30
Leja C Albares1006Brazil2026-08-18
Murillo X Caudy1007United Kingdom2026-08-01
Murillo P Flosi1008Japan2026-07-28
Johnson V Doe1009Russia2026-08-14
Ashley O Oldroyd1010Russia2026-08-06
Murillo T Iturbide1011Russia2026-07-29
Francesco Z Vocelka1012Brazil2026-08-04
Mujtaba U Caldarera1013Spain2026-08-14
Clifford A Garufi1014Germany2026-08-10
Jennifer K Nicka1015India2026-07-30
Jeanfrancois U Darakjy1016Japan2026-08-06
Jefferson J Waycott1017Brazil2026-08-19
Darci Y Nestle1018Italy2026-07-28
Chavez E Amigon1019Brazil2026-08-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford K DarakjyGermanyStephen Shaw NEGOTIATION
Arvin H ShinkoFranceIoni Bowcher UNQUALIFIED
Arvin S GlickItalyStephen Shaw UNQUALIFIED
Juan M StockhamArgentinaAmy Elsner NEW
Julie I StockhamGermanyOnyama Limba NEGOTIATION
Arvin R RulapaughUnited KingdomAnna Fali NEW
Deepesh D NestleFranceIvan Magalhaes UNQUALIFIED
Ricardo P TollnerAustraliaAsiya Javayant RENEWAL
Leon C KolmetzItalyElwin Sharvill PROPOSAL
Mayumi K CampainJapanAnna Fali NEW
Jones H CaudyUnited KingdomOnyama Limba PROPOSAL
Ricardo L VocelkaAustraliaAsiya Javayant NEW
Octavia E FerenczUnited KingdomStephen Shaw NEW
Julie U VenereBrazilBernardo Dominic PROPOSAL
Mujtaba U MarrierBrazilIvan Magalhaes UNQUALIFIED
Leja K DarakjyItalyIvan Magalhaes RENEWAL
James B FigeroaItalyIvan Magalhaes NEW
Wickens C WaycottJapanOnyama Limba PROPOSAL
Munro O WaycottIndiaAmy Elsner PROPOSAL
Julie C MaletBrazilStephen Shaw NEGOTIATION
Salvatore U MorascaGermanyBernardo Dominic RENEWAL
Sinclair R AmigonArgentinaIoni Bowcher QUALIFIED
Juan H ShinkoRussiaAmy Elsner QUALIFIED
Sinclair N DarakjyItalyAnna Fali PROPOSAL
Leja K MaletFranceIoni Bowcher PROPOSAL
James K StockhamIndiaAmy Elsner PROPOSAL
Greenwood A DoeCanadaElwin Sharvill NEW
David E MaletArgentinaAsiya Javayant UNQUALIFIED
Ivar N PaprockiSpainBernardo Dominic QUALIFIED
Jennifer N OstroskyFranceAnna Fali PROPOSAL
Rodrigues S CampainItalyIvan Magalhaes QUALIFIED
Ivar E PaprockiCanadaIoni Bowcher QUALIFIED
Darci A RimSpainXuxue Feng RENEWAL
Emily H VenereGermanyAnna Fali UNQUALIFIED
Salvatore O MorascaJapanBernardo Dominic UNQUALIFIED
Chavez K DarakjyAustraliaOnyama Limba RENEWAL
Sinclair P PoquetteGermanyOnyama Limba NEW
Jones D SchemmerAustraliaAmy Elsner QUALIFIED
Misaki Z SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro V SergiBrazilStephen Shaw 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>