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
Smith R GauchoCanadaAsiya Javayant UNQUALIFIED
Isabel D MacleadIndiaIoni Bowcher PROPOSAL
Juan Z RimFranceElwin Sharvill PROPOSAL
Mujtaba P InouyeUnited KingdomElwin Sharvill NEW
Kaitlin K CampainGermanyXuxue Feng NEW
Ashley Y PaprockiFranceAnna Fali UNQUALIFIED
Mujtaba L GlickSpainBernardo Dominic QUALIFIED
Mujtaba R PoquetteSpainIvan Magalhaes NEGOTIATION
Arvin P OstroskyFranceIoni Bowcher NEGOTIATION
Francesco F DilliardRussiaXuxue Feng NEW
Misaki X VocelkaSpainElwin Sharvill UNQUALIFIED
Jeanfrancois N WaycottItalyIvan Magalhaes RENEWAL
Jones V WaycottGermanyOnyama Limba RENEWAL
Julie I StockhamGermanyAmy Elsner QUALIFIED
Morrow U DilliardSpainStephen Shaw NEGOTIATION
Murillo M RutaUnited KingdomIoni Bowcher NEGOTIATION
Juan S ShinkoAustraliaBernardo Dominic NEW
Leja R BowleyAustraliaIoni Bowcher NEW
Jones A VocelkaUnited KingdomBernardo Dominic PROPOSAL
Leon Y WaycottIndiaAsiya Javayant QUALIFIED
Mujtaba Y VenereSpainAmy Elsner NEW
Deepesh Y GlickCanadaAmy Elsner RENEWAL
Clifford V FigeroaItalyAnna Fali NEGOTIATION
Munro B DoeSpainAmy Elsner QUALIFIED
Murillo V SergiRussiaStephen Shaw PROPOSAL
Aruna F MaletBrazilBernardo Dominic QUALIFIED
Maisha V FigeroaGermanyStephen Shaw RENEWAL
Ivar P VocelkaBrazilStephen Shaw QUALIFIED
Juan M KuskoArgentinaAsiya Javayant PROPOSAL
Isabel C BowleyAustraliaElwin Sharvill NEGOTIATION
Morrow Q BowleyBrazilAsiya Javayant NEW
Leja P GarufiRussiaAsiya Javayant PROPOSAL
Maisha E SaylorsUnited KingdomOnyama Limba NEW
Murillo T StensethGermanyAnna Fali PROPOSAL
Antonio J RulapaughCanadaAsiya Javayant NEW
Arvin O RoysterSpainXuxue Feng UNQUALIFIED
Costa D OstroskyCanadaElwin Sharvill NEW
Francesco B GlickIndiaElwin Sharvill UNQUALIFIED
Adams J GauchoFranceIvan Magalhaes PROPOSAL
Sinclair Y BowleyGermanyOnyama Limba NEW
Murillo F KolmetzAustraliaAmy Elsner QUALIFIED
Francesco S WhobreyUnited KingdomIoni Bowcher QUALIFIED
Maria S AlbaresArgentinaOnyama Limba UNQUALIFIED
Stacey X DarakjyRussiaXuxue Feng NEW
Morrow C PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Jones G MarrierSpainBernardo Dominic NEW
Deepesh L VenereSpainElwin Sharvill PROPOSAL
Aditya Q InouyeAustraliaIvan Magalhaes RENEWAL
Nicolas N FollerAustraliaXuxue Feng NEGOTIATION
Aditya H InouyeArgentinaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya H DilliardAustraliaAmy Elsner RENEWAL
Francesco Y WhobreySpainIoni Bowcher NEGOTIATION
Munro X SchemmerJapanElwin Sharvill NEGOTIATION
Darci E GlickSpainAnna Fali UNQUALIFIED
Cody I IturbideJapanStephen Shaw PROPOSAL
Alejandro E FlosiJapanAmy Elsner NEGOTIATION
Stacey C OstroskyItalyStephen Shaw NEGOTIATION
Leja Q FigeroaRussiaXuxue Feng RENEWAL
Ivar V FerenczUnited KingdomStephen Shaw QUALIFIED
Faith T PerinCanadaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia G FollerGermany2026-08-07Rousseaux, Michael Esq NEGOTIATION43Asiya Javayant
1001Stacey I AlbaresJapan2026-08-24Chemel, James L Cpa NEGOTIATION15Stephen Shaw
1002Kadeem L WaycottUnited Kingdom2026-08-09Dorl, James J Esq RENEWAL58Ivan Magalhaes
1003Sinclair X DilliardArgentina2026-08-12Printing Dimensions NEGOTIATION48Anna Fali
1004Kadeem A CampainJapan2026-08-15Rousseaux, Michael Esq QUALIFIED92Anna Fali
1005Kaitlin V SchemmerRussia2026-08-09Feiner Bros QUALIFIED63Elwin Sharvill
1006Tony X DoeArgentina2026-08-21Chemel, James L Cpa QUALIFIED1Stephen Shaw
1007Kadeem X IturbideBrazil2026-08-01Chanay, Jeffrey A Esq PROPOSAL18Asiya Javayant
1008Aruna L BologniaGermany2026-08-06Chemel, James L Cpa UNQUALIFIED23Ivan Magalhaes
1009Emily D MaletItaly2026-08-29Commercial Press QUALIFIED37Elwin Sharvill
1010Jefferson U InouyeArgentina2026-08-10Dorl, James J Esq QUALIFIED44Bernardo Dominic
1011Claire B BologniaUnited Kingdom2026-08-30Benton, John B Jr RENEWAL61Anna Fali
1012Ashley X NestleCanada2026-08-04Truhlar And Truhlar Attys QUALIFIED98Asiya Javayant
1013Claire E InouyeFrance2026-08-22Chemel, James L Cpa RENEWAL63Stephen Shaw
1014Salvatore O AmigonUnited Kingdom2026-08-24Morlong Associates RENEWAL0Ivan Magalhaes
1015Leja B KolmetzRussia2026-08-24Feltz Printing Service RENEWAL14Bernardo Dominic
1016Octavia A WieserFrance2026-08-10Rangoni Of Florence RENEWAL74Xuxue Feng
1017Chavez C KuskoArgentina2026-08-29Feiner Bros RENEWAL82Xuxue Feng
1018Ashley U ShinkoSpain2026-08-29Commercial Press UNQUALIFIED50Ioni Bowcher
1019Mayumi H GarufiRussia2026-08-14Commercial Press UNQUALIFIED8Bernardo Dominic
1020Jennifer X KuskoJapan2026-08-16Truhlar And Truhlar Attys RENEWAL55Amy Elsner
1021Aditya G PerinIndia2026-08-23Feltz Printing Service UNQUALIFIED84Ioni Bowcher
1022Silvio V WhobreyUnited Kingdom2026-08-19Printing Dimensions UNQUALIFIED99Ivan Magalhaes
1023Aditya R WieserAustralia2026-08-15Feiner Bros NEW51Onyama Limba
1024Isabel A ShinkoAustralia2026-08-07Rousseaux, Michael Esq QUALIFIED53Anna Fali
1025David O MorascaIndia2026-08-27Commercial Press PROPOSAL70Onyama Limba
1026Aditya X RulapaughBrazil2026-08-06Chapman, Ross E Esq RENEWAL13Ivan Magalhaes
1027Maisha G FlosiSpain2026-08-14Rousseaux, Michael Esq NEW56Ivan Magalhaes
1028Silvio D CaldareraArgentina2026-08-01Commercial Press NEGOTIATION82Amy Elsner
1029Jefferson C WhobreyCanada2026-08-04Buckley Miller Wright NEW39Elwin Sharvill
1030Wickens G KolmetzCanada2026-08-11Truhlar And Truhlar Attys UNQUALIFIED70Stephen Shaw
1031Clifford H MaletCanada2026-08-29Morlong Associates RENEWAL30Elwin Sharvill
1032Jefferson B RutaGermany2026-08-27King, Christopher A Esq NEGOTIATION92Asiya Javayant
1033Stacey B GlickRussia2026-08-25Rousseaux, Michael Esq QUALIFIED23Bernardo Dominic
1034Julie W VenereSpain2026-08-16Printing Dimensions RENEWAL41Ivan Magalhaes
1035Juan C AmigonRussia2026-08-29Rousseaux, Michael Esq UNQUALIFIED63Onyama Limba
1036Aruna G RimSpain2026-08-15Feltz Printing Service UNQUALIFIED79Xuxue Feng
1037Jennifer W NestleItaly2026-08-05Commercial Press NEW36Ioni Bowcher
1038Aruna P KolmetzRussia2026-08-27Rousseaux, Michael Esq QUALIFIED83Elwin Sharvill
1039Alejandro S SchemmerCanada2026-08-01Dorl, James J Esq QUALIFIED40Stephen Shaw
1040Faith W InouyeArgentina2026-08-16Feiner Bros UNQUALIFIED59Anna Fali
1041Claire N PaprockiItaly2026-08-29Dorl, James J Esq PROPOSAL93Bernardo Dominic
1042Claire O PerinArgentina2026-08-14Chanay, Jeffrey A Esq NEGOTIATION93Amy Elsner
1043Ricardo N FollerIndia2026-08-22Commercial Press NEGOTIATION69Ioni Bowcher
1044Munro X BriddickUnited Kingdom2026-08-11Benton, John B Jr NEGOTIATION53Asiya Javayant
1045Darci N OldroydSpain2026-08-12Commercial Press NEW41Ivan Magalhaes
1046Julie L OstroskyGermany2026-08-06King, Christopher A Esq QUALIFIED42Amy Elsner
1047Munro Z GlickSpain2026-08-17Chanay, Jeffrey A Esq NEW46Xuxue Feng
1048Jennifer S GlickArgentina2026-08-26Buckley Miller Wright PROPOSAL87Xuxue Feng
1049Misaki V RimAustralia2026-08-21Chemel, James L Cpa QUALIFIED68Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo L MaletIndiaAsiya Javayant NEW
Mayumi L OstroskyBrazilBernardo Dominic UNQUALIFIED
Misaki M NestleSpainAsiya Javayant PROPOSAL
Jennifer M KuskoIndiaAnna Fali UNQUALIFIED
Rodrigues M PoquetteFranceAmy Elsner PROPOSAL
Alejandro Z DarakjyRussiaAnna Fali PROPOSAL
Murillo M CaudyRussiaIoni Bowcher QUALIFIED
Claire T ShinkoSpainAsiya Javayant QUALIFIED
Ivar D KuskoUnited KingdomAsiya Javayant UNQUALIFIED
Smith L ButtCanadaXuxue Feng NEW
Kaitlin B WhobreyRussiaAsiya Javayant NEGOTIATION
Aruna Q GarufiBrazilBernardo Dominic PROPOSAL
Ashley T WaycottGermanyAnna Fali PROPOSAL
Stacey R RimItalyStephen Shaw RENEWAL
Maisha Y StockhamAustraliaElwin Sharvill QUALIFIED
Misaki D PaprockiCanadaXuxue Feng UNQUALIFIED
Alejandro E PaprockiSpainAnna Fali PROPOSAL
Wickens O MorascaJapanXuxue Feng RENEWAL
Maisha X SchemmerIndiaBernardo Dominic PROPOSAL
Cody U CampainItalyAmy Elsner NEGOTIATION
Aruna M BriddickRussiaStephen Shaw RENEWAL
Leon Y CaldareraIndiaIoni Bowcher NEGOTIATION
Aika S FlosiBrazilOnyama Limba PROPOSAL
Octavia M RutaUnited KingdomBernardo Dominic RENEWAL
Isabel Z GillianArgentinaIvan Magalhaes NEGOTIATION
Nicolas P MaletArgentinaAnna Fali UNQUALIFIED
Munro C SaylorsItalyIoni Bowcher RENEWAL
Mayumi O GauchoAustraliaBernardo Dominic NEGOTIATION
Deepesh Q FerenczFranceElwin Sharvill NEW
Darci M AmigonAustraliaAmy Elsner NEGOTIATION
Aditya X SaylorsAustraliaBernardo Dominic UNQUALIFIED
Nicolas C VocelkaCanadaAmy Elsner RENEWAL
Deepesh H OldroydCanadaStephen Shaw UNQUALIFIED
Octavia X SlusarskiArgentinaIoni Bowcher RENEWAL
Smith Y KolmetzFranceXuxue Feng NEW
Octavia K FigeroaAustraliaIoni Bowcher RENEWAL
Kaitlin S GlickSpainXuxue Feng QUALIFIED
Stacey Z StockhamArgentinaBernardo Dominic NEW
Misaki X AlbaresGermanyStephen Shaw NEW
Johnson A MarrierFranceElwin Sharvill NEW
Kaitlin A RulapaughRussiaBernardo Dominic NEGOTIATION
Ashley H DarakjyItalyOnyama Limba QUALIFIED
Murillo A CaudySpainAnna Fali PROPOSAL
Claire C ShinkoArgentinaXuxue Feng RENEWAL
Ricardo W PerinJapanIvan Magalhaes RENEWAL
Costa A SaylorsRussiaXuxue Feng QUALIFIED
Morrow V IturbideGermanyAnna Fali UNQUALIFIED
Clifford I RoysterItalyBernardo Dominic PROPOSAL
James Y BologniaUnited KingdomAsiya Javayant QUALIFIED
Isabel U AmigonIndiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Aditya W Briddick
Chavez V Ferencz
Nicolas N Iturbide
Ricardo N Whobrey
Ricardo P Waycott
Tony S Whobrey
Adams D Sergi
Adams R Maclead
Alejandro K Stenseth
Wickens N Inouye
Chavez K Wieser
Sinclair Y Tollner
Alejandro F Albares
Rodrigues I Amigon
Antonio I Tollner
Jones I Marrier
Tony A Saylors
Claire M Wieser
Tony F Shinko
Izzy K Marrier
Darci F Caldarera
Clifford Q Caudy
Jennifer D Stockham
Nicolas E Maclead
Kaitlin R Tollner
Isabel C Kusko
Leon G Caudy
Kaitlin Q Inouye
Nicolas Y Tollner
Julie A Tollner
Jefferson X Maclead
Isabel P Figeroa
Clifford F Oldroyd
Julie Q Stockham
Mujtaba R Amigon
Aika F Bowley
Izzy L Butt
Jones R Venere
Isabel P Butt
David X Iturbide
Jennifer D Chui
Faith Y Tollner
Darci T Bowley
Deepesh R Royster
Jeanfrancois V Tollner
Faith B Gillian
Munro C Stockham
Darci C Sergi
Antonio R Chui
Adams G Kusko
IdCountryDate
1000France2026-08-28
1001Canada2026-08-08
1002Spain2026-08-09
1003Japan2026-08-21
1004Spain2026-08-18
1005Japan2026-08-23
1006Brazil2026-08-20
1007France2026-08-22
1008Canada2026-08-16
1009United Kingdom2026-08-09
1010India2026-08-16
1011Germany2026-08-16
1012Canada2026-08-13
1013United Kingdom2026-08-25
1014Germany2026-08-25
1015Australia2026-08-22
1016France2026-08-21
1017Canada2026-08-27
1018Italy2026-08-01
1019Russia2026-08-03
1020United Kingdom2026-08-13
1021France2026-08-14
1022Australia2026-08-29
1023Japan2026-08-17
1024Argentina2026-08-01
1025India2026-08-23
1026Brazil2026-08-14
1027Russia2026-08-07
1028Italy2026-08-29
1029Argentina2026-08-18
1030Canada2026-08-12
1031Canada2026-08-20
1032United Kingdom2026-08-22
1033France2026-08-30
1034France2026-08-01
1035Japan2026-08-19
1036Germany2026-08-15
1037Spain2026-08-17
1038Italy2026-08-14
1039Australia2026-08-06
1040Spain2026-08-01
1041Brazil2026-08-23
1042Italy2026-08-04
1043Italy2026-08-22
1044Canada2026-08-10
1045France2026-08-25
1046Argentina2026-08-25
1047Russia2026-08-06
1048France2026-08-25
1049Germany2026-08-29

On-Demand Data

NameIdCountryDate
Arvin D Kolmetz1000Germany2026-08-02
Jennifer V Vocelka1001United Kingdom2026-08-08
Claire G Maclead1002Canada2026-08-25
Ashley Z Kolmetz1003Canada2026-08-17
David I Malet1004India2026-08-01
Jefferson L Caudy1005Italy2026-08-16
Nicolas T Shinko1006Russia2026-08-04
Maisha J Maclead1007Italy2026-08-21
Aruna I Vocelka1008Canada2026-08-08
Aika M Tollner1009Spain2026-08-12
Ricardo B Gillian1010United Kingdom2026-08-29
Misaki N Schemmer1011Germany2026-08-21
Jefferson D Malet1012Brazil2026-08-01
Adams E Wieser1013Russia2026-08-26
Rodrigues R Poquette1014Brazil2026-08-09
Octavia K Perin1015Russia2026-08-10
Misaki B Perin1016France2026-08-19
Francesco M Maclead1017Spain2026-08-01
Maisha J Tollner1018Russia2026-08-21
James C Nestle1019Canada2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David S FollerBrazilIvan Magalhaes NEGOTIATION
Jennifer K FerenczFranceBernardo Dominic NEW
Alejandro S StensethJapanOnyama Limba QUALIFIED
Jefferson G OldroydCanadaXuxue Feng NEW
Costa I RulapaughSpainXuxue Feng PROPOSAL
Wickens V SaylorsAustraliaAmy Elsner PROPOSAL
Chavez A StockhamIndiaOnyama Limba RENEWAL
Aruna C SchemmerCanadaElwin Sharvill QUALIFIED
Munro H OstroskyRussiaBernardo Dominic QUALIFIED
Arvin P KolmetzIndiaAmy Elsner UNQUALIFIED
Aruna K GillianSpainAmy Elsner RENEWAL
Smith G CampainItalyBernardo Dominic NEGOTIATION
Faith P TollnerFranceStephen Shaw UNQUALIFIED
David T ShinkoFranceAsiya Javayant UNQUALIFIED
Ricardo D GlickGermanyOnyama Limba UNQUALIFIED
Juan Z MaletBrazilStephen Shaw UNQUALIFIED
David C StensethSpainOnyama Limba RENEWAL
Cody O MorascaArgentinaAmy Elsner UNQUALIFIED
Ivar C FollerAustraliaAnna Fali UNQUALIFIED
Kadeem G GarufiItalyIoni Bowcher NEW
Murillo K WieserCanadaIoni Bowcher PROPOSAL
Ricardo L DoeArgentinaXuxue Feng UNQUALIFIED
Claire I StensethRussiaIvan Magalhaes RENEWAL
Sinclair C BologniaGermanyIvan Magalhaes NEGOTIATION
Ricardo B SergiFranceIvan Magalhaes NEGOTIATION
Leon U VenereRussiaOnyama Limba RENEWAL
James X BologniaUnited KingdomIvan Magalhaes NEW
Sinclair B IturbideSpainOnyama Limba NEW
Stacey Y MacleadRussiaBernardo Dominic QUALIFIED
Tony M WhobreyBrazilAmy Elsner RENEWAL
Morrow M MarrierRussiaOnyama Limba RENEWAL
Izzy G PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas R VenereFranceAnna Fali NEW
Octavia I FlosiCanadaAnna Fali NEW
Aruna F AmigonArgentinaXuxue Feng PROPOSAL
Kadeem Z NestleAustraliaElwin Sharvill RENEWAL
Emily G DarakjyArgentinaElwin Sharvill RENEWAL
Arvin F StensethArgentinaXuxue Feng NEW
Jeanfrancois I RulapaughFranceBernardo Dominic NEGOTIATION
David X RimIndiaAnna Fali 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>