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
Jeanfrancois H RutaArgentinaElwin Sharvill NEGOTIATION
Munro I ShinkoArgentinaIoni Bowcher PROPOSAL
Murillo A GarufiJapanOnyama Limba UNQUALIFIED
Aika L ButtUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois X RoysterUnited KingdomBernardo Dominic RENEWAL
Aditya C ChuiItalyIoni Bowcher RENEWAL
Alejandro A FerenczCanadaAsiya Javayant QUALIFIED
David S InouyeItalyIoni Bowcher QUALIFIED
Juan W FlosiSpainOnyama Limba UNQUALIFIED
Jennifer M AlbaresJapanXuxue Feng NEGOTIATION
Juan O BriddickCanadaAmy Elsner QUALIFIED
Mayumi V PoquetteGermanyBernardo Dominic NEW
Antonio Z NickaGermanyOnyama Limba NEW
Claire A SlusarskiIndiaAsiya Javayant NEGOTIATION
Rodrigues W StensethAustraliaElwin Sharvill NEW
Clifford A PoquetteCanadaXuxue Feng QUALIFIED
Octavia X MaletBrazilStephen Shaw QUALIFIED
Tony V DoeCanadaAmy Elsner UNQUALIFIED
Clifford Z MacleadAustraliaIvan Magalhaes UNQUALIFIED
Izzy I GauchoCanadaIvan Magalhaes RENEWAL
Morrow J NestleItalyIoni Bowcher RENEWAL
Antonio X ChuiItalyAmy Elsner QUALIFIED
Faith U CaudySpainOnyama Limba NEGOTIATION
Chavez H VenereBrazilIoni Bowcher RENEWAL
David Y StockhamAustraliaStephen Shaw RENEWAL
Sinclair W SlusarskiSpainIvan Magalhaes QUALIFIED
Emily L BowleyUnited KingdomAmy Elsner RENEWAL
Sinclair O BriddickFranceXuxue Feng UNQUALIFIED
Maisha L CaldareraSpainAmy Elsner RENEWAL
Chavez P MarrierGermanyBernardo Dominic UNQUALIFIED
Isabel K StockhamJapanAsiya Javayant QUALIFIED
Jones R MaletFranceXuxue Feng PROPOSAL
Rodrigues D SlusarskiCanadaIvan Magalhaes NEW
Salvatore I PerinSpainElwin Sharvill PROPOSAL
Maria K RutaFranceIoni Bowcher NEGOTIATION
Ashley D TollnerAustraliaElwin Sharvill RENEWAL
Silvio M OldroydGermanyAmy Elsner QUALIFIED
Jennifer O PerinSpainAnna Fali NEGOTIATION
Smith W OldroydItalyXuxue Feng QUALIFIED
Chavez Q NestleGermanyStephen Shaw RENEWAL
Jefferson T FollerBrazilStephen Shaw QUALIFIED
Antonio F MacleadAustraliaIvan Magalhaes QUALIFIED
David O MaletIndiaBernardo Dominic NEGOTIATION
Greenwood R FlosiCanadaElwin Sharvill NEW
Costa O MarrierAustraliaAnna Fali PROPOSAL
Munro P OstroskyGermanyAnna Fali PROPOSAL
James P VocelkaItalyAnna Fali NEW
Rodrigues O SaylorsSpainStephen Shaw NEGOTIATION
Julie O SaylorsRussiaIvan Magalhaes NEGOTIATION
Silvio W RutaRussiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio E StensethItalyIvan Magalhaes PROPOSAL
Deepesh U StockhamCanadaElwin Sharvill UNQUALIFIED
Aika T FollerJapanAnna Fali NEW
Faith P MorascaJapanOnyama Limba QUALIFIED
Smith F FigeroaJapanAmy Elsner UNQUALIFIED
Francesco S RulapaughFranceStephen Shaw QUALIFIED
Aika Q KuskoBrazilOnyama Limba QUALIFIED
Kadeem W StensethArgentinaAnna Fali NEGOTIATION
David Y GauchoGermanyOnyama Limba NEW
Kaitlin A AlbaresItalyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya J SchemmerRussia2026-07-24Morlong Associates QUALIFIED56Stephen Shaw
1001Jeanfrancois B TollnerArgentina2026-06-30Dorl, James J Esq QUALIFIED46Elwin Sharvill
1002Greenwood H TollnerJapan2026-07-18Buckley Miller Wright RENEWAL97Onyama Limba
1003Jeanfrancois U BowleyItaly2026-07-28Morlong Associates NEW29Ivan Magalhaes
1004Aruna L CaudySpain2026-07-22Chemel, James L Cpa UNQUALIFIED53Ioni Bowcher
1005Johnson M ShinkoGermany2026-07-07Rangoni Of Florence QUALIFIED4Onyama Limba
1006Munro C RimItaly2026-07-07Feiner Bros UNQUALIFIED65Ioni Bowcher
1007Munro S IturbideSpain2026-07-08Chanay, Jeffrey A Esq QUALIFIED72Ioni Bowcher
1008Smith I GlickRussia2026-07-14Chemel, James L Cpa NEW93Amy Elsner
1009Wickens Z VocelkaJapan2026-07-15Chemel, James L Cpa QUALIFIED36Asiya Javayant
1010Jefferson F WaycottGermany2026-07-08Feltz Printing Service NEGOTIATION74Asiya Javayant
1011Octavia R DarakjySpain2026-07-05Dorl, James J Esq RENEWAL76Amy Elsner
1012Stacey V DarakjyRussia2026-07-15King, Christopher A Esq NEW6Ioni Bowcher
1013Mujtaba Z DarakjyBrazil2026-07-16Feiner Bros QUALIFIED53Xuxue Feng
1014Aika J CaudyItaly2026-07-29King, Christopher A Esq RENEWAL15Asiya Javayant
1015Ashley V SergiRussia2026-07-02Dorl, James J Esq PROPOSAL87Bernardo Dominic
1016Nicolas N IturbideJapan2026-07-01Rousseaux, Michael Esq UNQUALIFIED99Asiya Javayant
1017Jefferson R GarufiFrance2026-07-08Truhlar And Truhlar Attys PROPOSAL22Onyama Limba
1018Chavez Z ShinkoRussia2026-07-09Buckley Miller Wright UNQUALIFIED27Asiya Javayant
1019David Z GarufiRussia2026-07-05Dorl, James J Esq UNQUALIFIED53Bernardo Dominic
1020Leja U MorascaRussia2026-07-13Benton, John B Jr NEW37Ivan Magalhaes
1021David I RulapaughCanada2026-07-01Rousseaux, Michael Esq UNQUALIFIED49Elwin Sharvill
1022David M IturbideItaly2026-07-05Dorl, James J Esq PROPOSAL6Stephen Shaw
1023Nicolas A AlbaresRussia2026-07-18Dorl, James J Esq PROPOSAL45Xuxue Feng
1024Aruna G PaprockiRussia2026-07-13Chemel, James L Cpa PROPOSAL79Xuxue Feng
1025Sinclair Y ButtBrazil2026-07-25Buckley Miller Wright NEW37Anna Fali
1026Murillo K DilliardIndia2026-07-27King, Christopher A Esq RENEWAL80Ioni Bowcher
1027Deepesh W MacleadUnited Kingdom2026-07-22Feiner Bros UNQUALIFIED44Onyama Limba
1028Rodrigues G DoeIndia2026-07-03Chemel, James L Cpa QUALIFIED83Amy Elsner
1029Emily N DilliardBrazil2026-07-02Chanay, Jeffrey A Esq PROPOSAL18Stephen Shaw
1030Johnson W CaldareraCanada2026-07-21Morlong Associates NEW63Asiya Javayant
1031Silvio J AmigonAustralia2026-07-03Buckley Miller Wright NEGOTIATION86Elwin Sharvill
1032James R VenereBrazil2026-07-10Chanay, Jeffrey A Esq QUALIFIED28Ivan Magalhaes
1033Jeanfrancois I FigeroaUnited Kingdom2026-07-29Feiner Bros PROPOSAL59Elwin Sharvill
1034Jeanfrancois D FollerSpain2026-07-17Chanay, Jeffrey A Esq PROPOSAL69Xuxue Feng
1035Adams G SaylorsArgentina2026-07-24Commercial Press NEW18Ivan Magalhaes
1036Murillo I BowleyItaly2026-07-03Chemel, James L Cpa NEGOTIATION60Asiya Javayant
1037Jefferson G StensethJapan2026-07-18Truhlar And Truhlar Attys QUALIFIED8Anna Fali
1038Deepesh V PaprockiJapan2026-07-11Chemel, James L Cpa QUALIFIED69Anna Fali
1039Tony J MarrierItaly2026-07-08Chapman, Ross E Esq PROPOSAL18Onyama Limba
1040Isabel W AmigonSpain2026-07-01Chemel, James L Cpa NEW79Asiya Javayant
1041Ricardo B DilliardJapan2026-07-03Buckley Miller Wright NEGOTIATION63Xuxue Feng
1042Arvin Y BowleyUnited Kingdom2026-07-09Commercial Press QUALIFIED93Onyama Limba
1043Munro S StensethGermany2026-07-29Buckley Miller Wright NEGOTIATION94Asiya Javayant
1044Juan O DarakjyGermany2026-07-27Benton, John B Jr NEGOTIATION10Amy Elsner
1045Maisha I DoeFrance2026-07-22Feiner Bros QUALIFIED6Xuxue Feng
1046Antonio L WaycottAustralia2026-07-12Dorl, James J Esq NEW18Bernardo Dominic
1047Aruna K DilliardArgentina2026-07-10King, Christopher A Esq NEW30Bernardo Dominic
1048Mujtaba B FerenczItaly2026-07-12Chemel, James L Cpa RENEWAL34Ioni Bowcher
1049Clifford C ButtCanada2026-07-03Commercial Press QUALIFIED97Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maisha L RulapaughSpainAmy Elsner UNQUALIFIED
Johnson W FigeroaCanadaIoni Bowcher UNQUALIFIED
Greenwood W NestleJapanAmy Elsner UNQUALIFIED
Morrow M CaudyJapanIoni Bowcher NEGOTIATION
Izzy S StockhamFranceStephen Shaw PROPOSAL
Leon D CampainUnited KingdomAnna Fali NEGOTIATION
Isabel G MaletFranceAnna Fali NEGOTIATION
Clifford U StockhamFranceXuxue Feng NEGOTIATION
Adams E DoeGermanyBernardo Dominic PROPOSAL
Maria H IturbideBrazilIoni Bowcher NEGOTIATION
Kadeem H SergiItalyAmy Elsner NEW
Izzy F StockhamRussiaIvan Magalhaes QUALIFIED
Juan Y BowleyArgentinaXuxue Feng UNQUALIFIED
Izzy A FollerRussiaIoni Bowcher PROPOSAL
Clifford H ShinkoArgentinaXuxue Feng QUALIFIED
Arvin B MacleadIndiaAnna Fali QUALIFIED
James O GlickArgentinaOnyama Limba UNQUALIFIED
Antonio K MaletItalyXuxue Feng NEGOTIATION
Stacey E MorascaSpainAmy Elsner RENEWAL
Julie D IturbideIndiaIoni Bowcher UNQUALIFIED
Maria C PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Claire T SlusarskiAustraliaStephen Shaw RENEWAL
Emily M BowleyFranceAsiya Javayant NEGOTIATION
Johnson P KuskoIndiaElwin Sharvill NEGOTIATION
Morrow K FollerSpainIoni Bowcher PROPOSAL
Kadeem F AmigonRussiaElwin Sharvill QUALIFIED
Morrow J PoquetteArgentinaAsiya Javayant QUALIFIED
Munro F InouyeCanadaIoni Bowcher RENEWAL
David W InouyeGermanyXuxue Feng NEW
Aika E StensethItalyAmy Elsner NEGOTIATION
Cody U VenereIndiaAnna Fali QUALIFIED
Silvio L InouyeCanadaBernardo Dominic PROPOSAL
Arvin N RutaGermanyElwin Sharvill RENEWAL
Sinclair R OldroydRussiaAnna Fali UNQUALIFIED
Murillo M GlickArgentinaAsiya Javayant PROPOSAL
Murillo C CampainSpainIoni Bowcher UNQUALIFIED
Cody J KuskoUnited KingdomAmy Elsner PROPOSAL
Chavez Y StockhamIndiaBernardo Dominic PROPOSAL
Faith X SergiSpainAsiya Javayant QUALIFIED
Johnson W DilliardCanadaIoni Bowcher NEW
Isabel T MacleadIndiaElwin Sharvill NEW
Julie S PoquetteBrazilAsiya Javayant QUALIFIED
Jefferson C StockhamAustraliaAsiya Javayant NEGOTIATION
Kaitlin F ShinkoItalyElwin Sharvill QUALIFIED
Ivar X SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Darci Y NickaIndiaAnna Fali NEW
Leja F PoquetteArgentinaStephen Shaw NEGOTIATION
Silvio D IturbideRussiaAnna Fali QUALIFIED
Cody J IturbideUnited KingdomElwin Sharvill PROPOSAL
James J AlbaresFranceStephen Shaw NEW
Frozen Columns
Name
David G Gillian
Ricardo B Garufi
Rodrigues A Sergi
Antonio B Tollner
Clifford P Chui
Leja T Wieser
Aruna H Waycott
Johnson T Albares
Leon P Glick
Aditya Q Malet
Leon S Caldarera
Adams C Amigon
Munro N Gillian
Mujtaba N Waycott
Juan J Gaucho
Deepesh P Oldroyd
Jeanfrancois W Darakjy
Jones M Nestle
Mujtaba B Rulapaugh
Mujtaba C Tollner
Jeanfrancois Z Doe
Aditya J Perin
Alejandro S Whobrey
Emily U Nicka
Antonio U Malet
Murillo Q Gaucho
Morrow T Kusko
Maisha M Whobrey
Ashley U Caudy
Munro M Poquette
Aruna L Slusarski
Deepesh I Iturbide
Antonio R Garufi
Juan T Whobrey
Maria B Ruta
Jeanfrancois Q Stenseth
Octavia S Tollner
Antonio S Wieser
Nicolas C Poquette
Claire G Paprocki
Munro I Marrier
Jones R Gaucho
Misaki L Ostrosky
Stacey Q Iturbide
David V Shinko
Adams L Doe
Greenwood D Glick
Greenwood T Inouye
Kadeem E Gillian
Mujtaba Y Maclead
IdCountryDate
1000Japan2026-07-28
1001Japan2026-07-24
1002Brazil2026-07-01
1003France2026-07-20
1004Argentina2026-07-20
1005Australia2026-07-12
1006Germany2026-07-17
1007Australia2026-07-06
1008Canada2026-07-22
1009United Kingdom2026-07-04
1010Australia2026-07-01
1011Australia2026-07-25
1012Australia2026-07-29
1013Argentina2026-07-06
1014Australia2026-07-27
1015Australia2026-07-12
1016Brazil2026-07-09
1017Australia2026-07-16
1018Italy2026-07-06
1019Australia2026-07-15
1020France2026-07-29
1021India2026-07-10
1022Canada2026-07-25
1023India2026-07-22
1024India2026-07-25
1025Japan2026-07-27
1026Argentina2026-07-24
1027Italy2026-07-19
1028Spain2026-06-30
1029India2026-07-23
1030Germany2026-07-07
1031Russia2026-07-28
1032Australia2026-07-20
1033Spain2026-07-03
1034Italy2026-07-22
1035Brazil2026-07-22
1036Argentina2026-07-07
1037France2026-07-01
1038Russia2026-07-06
1039Spain2026-07-11
1040Brazil2026-07-07
1041Germany2026-07-10
1042France2026-07-15
1043India2026-07-06
1044Russia2026-07-17
1045India2026-07-25
1046Brazil2026-07-10
1047Argentina2026-07-02
1048Japan2026-07-09
1049Germany2026-07-21

On-Demand Data

NameIdCountryDate
Kaitlin U Ruta1000Russia2026-07-18
Silvio H Rulapaugh1001Russia2026-07-07
Maisha Z Schemmer1002Argentina2026-07-13
Rodrigues Z Glick1003United Kingdom2026-07-10
Leja Y Oldroyd1004France2026-07-15
Darci S Briddick1005India2026-07-25
Salvatore E Vocelka1006France2026-07-09
Chavez A Nicka1007Argentina2026-07-27
Izzy E Vocelka1008Spain2026-07-19
Aditya D Shinko1009Spain2026-07-25
Greenwood K Rim1010Brazil2026-07-12
Kadeem M Wieser1011Argentina2026-07-08
Johnson H Gillian1012Russia2026-07-27
Rodrigues D Royster1013Spain2026-07-06
Mayumi M Albares1014Japan2026-07-21
Stacey W Maclead1015Japan2026-07-14
Stacey R Malet1016Italy2026-07-21
David R Ferencz1017India2026-07-29
Jeanfrancois Z Paprocki1018Argentina2026-07-14
Leon T Morasca1019Argentina2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo N GillianArgentinaIoni Bowcher UNQUALIFIED
Leja Q PaprockiFranceIoni Bowcher QUALIFIED
David O DarakjyJapanBernardo Dominic NEW
Arvin Z NestleRussiaOnyama Limba NEW
Arvin Z SergiAustraliaStephen Shaw QUALIFIED
David U VenereGermanyElwin Sharvill PROPOSAL
Juan D GlickBrazilOnyama Limba NEW
Arvin H OstroskyGermanyIvan Magalhaes QUALIFIED
Costa V SlusarskiAustraliaBernardo Dominic NEGOTIATION
Francesco J MaletBrazilAnna Fali PROPOSAL
Nicolas F OstroskyFranceElwin Sharvill NEW
Salvatore Z RulapaughFranceAmy Elsner NEGOTIATION
Morrow L GauchoItalyBernardo Dominic NEW
Isabel N SaylorsGermanyIoni Bowcher UNQUALIFIED
Leon W ShinkoArgentinaAnna Fali RENEWAL
Misaki O BriddickSpainAmy Elsner UNQUALIFIED
Cody K WaycottFranceAmy Elsner RENEWAL
Maria W DilliardGermanyStephen Shaw RENEWAL
Costa R SergiIndiaAsiya Javayant PROPOSAL
Antonio N CaldareraGermanyAnna Fali UNQUALIFIED
Juan T GauchoAustraliaXuxue Feng QUALIFIED
Tony K MarrierBrazilAsiya Javayant UNQUALIFIED
Rodrigues U SaylorsGermanyElwin Sharvill RENEWAL
Wickens N KuskoCanadaIoni Bowcher QUALIFIED
Wickens F TollnerCanadaElwin Sharvill QUALIFIED
Tony X OldroydFranceAsiya Javayant NEW
Murillo L RutaRussiaAnna Fali PROPOSAL
Silvio U MaletBrazilIvan Magalhaes RENEWAL
Adams B StensethSpainOnyama Limba PROPOSAL
Greenwood C TollnerItalyIvan Magalhaes QUALIFIED
Nicolas W VenereArgentinaAnna Fali QUALIFIED
Aruna O SlusarskiCanadaIvan Magalhaes RENEWAL
Morrow P FollerJapanAsiya Javayant QUALIFIED
Octavia Z FigeroaUnited KingdomBernardo Dominic NEW
David O NickaArgentinaAmy Elsner QUALIFIED
Arvin L VocelkaUnited KingdomXuxue Feng RENEWAL
Isabel V DilliardSpainIoni Bowcher NEGOTIATION
Antonio J WhobreyBrazilIvan Magalhaes PROPOSAL
Maisha J InouyeArgentinaBernardo Dominic NEGOTIATION
Costa V NestleRussiaOnyama Limba UNQUALIFIED

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