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
Ivar J TollnerBrazilIvan Magalhaes RENEWAL
Murillo A ButtSpainOnyama Limba NEW
Rodrigues X DarakjyItalyIvan Magalhaes PROPOSAL
Sinclair Z AmigonIndiaIoni Bowcher NEGOTIATION
Arvin D CampainBrazilXuxue Feng NEGOTIATION
Deepesh J BowleyItalyIoni Bowcher RENEWAL
Tony C KolmetzGermanyBernardo Dominic QUALIFIED
Juan W AlbaresFranceIvan Magalhaes NEW
Ivar Q CampainFranceAsiya Javayant QUALIFIED
Silvio H IturbideItalyAsiya Javayant PROPOSAL
Mayumi C DilliardJapanAnna Fali PROPOSAL
Adams S VenereRussiaXuxue Feng NEW
Antonio Z WaycottItalyStephen Shaw NEGOTIATION
Rodrigues A VenereCanadaIoni Bowcher RENEWAL
Kaitlin M MaletCanadaXuxue Feng PROPOSAL
Maisha Q RimUnited KingdomOnyama Limba NEW
Francesco I WieserSpainIoni Bowcher QUALIFIED
Clifford D GauchoUnited KingdomBernardo Dominic RENEWAL
Julie R MaletJapanElwin Sharvill RENEWAL
Misaki P NestleItalyBernardo Dominic NEGOTIATION
Aruna Y BowleyCanadaIvan Magalhaes NEW
Ricardo G WaycottSpainStephen Shaw NEGOTIATION
Morrow P DoeIndiaAmy Elsner NEGOTIATION
Isabel P SchemmerIndiaAnna Fali NEW
Ashley G SergiCanadaAnna Fali UNQUALIFIED
Francesco D BriddickArgentinaAmy Elsner PROPOSAL
Alejandro S SaylorsFranceXuxue Feng QUALIFIED
Kaitlin B IturbideArgentinaAnna Fali UNQUALIFIED
Silvio J MorascaRussiaIoni Bowcher UNQUALIFIED
Maisha J RutaItalyAnna Fali QUALIFIED
Rodrigues P GauchoCanadaBernardo Dominic PROPOSAL
Clifford Z OstroskyFranceXuxue Feng QUALIFIED
James P VenereItalyStephen Shaw NEGOTIATION
Chavez I ButtSpainOnyama Limba NEW
Aika Q TollnerRussiaAsiya Javayant PROPOSAL
Isabel E GarufiSpainIvan Magalhaes QUALIFIED
Francesco H PaprockiJapanStephen Shaw NEGOTIATION
Claire G OstroskyFranceStephen Shaw UNQUALIFIED
Isabel K DilliardArgentinaAsiya Javayant UNQUALIFIED
Mujtaba U RutaBrazilAmy Elsner NEW
Jones A GarufiSpainElwin Sharvill PROPOSAL
Wickens C SaylorsSpainXuxue Feng NEGOTIATION
Clifford B GillianCanadaElwin Sharvill PROPOSAL
Maisha U SergiItalyAnna Fali UNQUALIFIED
Ivar R SaylorsJapanAnna Fali QUALIFIED
Isabel X MorascaAustraliaAnna Fali RENEWAL
Morrow F MorascaCanadaElwin Sharvill PROPOSAL
Tony U WaycottFranceIvan Magalhaes NEW
Nicolas Z SaylorsIndiaAmy Elsner QUALIFIED
Arvin K NickaArgentinaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois N BowleySpainIoni Bowcher RENEWAL
Murillo T CaldareraGermanyBernardo Dominic NEGOTIATION
Juan J FlosiAustraliaAnna Fali NEW
Cody K PerinRussiaIoni Bowcher RENEWAL
Jones O GarufiFranceIoni Bowcher QUALIFIED
Aika X VenereIndiaStephen Shaw NEW
Darci H ButtArgentinaStephen Shaw NEGOTIATION
Jones W VenereRussiaBernardo Dominic NEW
Ricardo B NickaUnited KingdomIoni Bowcher PROPOSAL
Deepesh X InouyeCanadaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody F FlosiSpain2026-07-29Feiner Bros NEGOTIATION38Elwin Sharvill
1001Morrow A DoeGermany2026-07-20Feiner Bros QUALIFIED3Onyama Limba
1002Deepesh P StensethArgentina2026-07-16Chanay, Jeffrey A Esq NEW20Stephen Shaw
1003Sinclair W StensethItaly2026-07-15Feltz Printing Service NEGOTIATION56Bernardo Dominic
1004Ricardo G DoeSpain2026-07-26Buckley Miller Wright QUALIFIED55Bernardo Dominic
1005Chavez O KuskoSpain2026-07-28Benton, John B Jr NEGOTIATION66Stephen Shaw
1006Mujtaba X WieserItaly2026-07-16Rousseaux, Michael Esq NEW80Amy Elsner
1007Smith U VocelkaRussia2026-07-24Truhlar And Truhlar Attys UNQUALIFIED2Amy Elsner
1008Morrow M FerenczArgentina2026-07-15Buckley Miller Wright NEW50Amy Elsner
1009Aika M DilliardUnited Kingdom2026-07-29Rousseaux, Michael Esq PROPOSAL38Ioni Bowcher
1010Ricardo H FigeroaBrazil2026-07-24Dorl, James J Esq NEGOTIATION86Xuxue Feng
1011Maria D MaletItaly2026-07-15Feiner Bros UNQUALIFIED42Anna Fali
1012David J OldroydBrazil2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED78Ioni Bowcher
1013Jeanfrancois H ShinkoUnited Kingdom2026-07-12Buckley Miller Wright RENEWAL38Stephen Shaw
1014Murillo Y BriddickGermany2026-07-09Rousseaux, Michael Esq QUALIFIED63Bernardo Dominic
1015Jones Z MorascaAustralia2026-07-27Chanay, Jeffrey A Esq QUALIFIED21Elwin Sharvill
1016Rodrigues C CaldareraArgentina2026-07-07Chapman, Ross E Esq NEGOTIATION66Anna Fali
1017Faith Z BologniaJapan2026-07-15Morlong Associates PROPOSAL57Asiya Javayant
1018Nicolas E NickaIndia2026-07-06Rangoni Of Florence NEW2Bernardo Dominic
1019Sinclair B BriddickGermany2026-07-26Dorl, James J Esq NEW13Xuxue Feng
1020Juan W SergiBrazil2026-07-11Benton, John B Jr QUALIFIED68Onyama Limba
1021Misaki I BologniaUnited Kingdom2026-07-21Printing Dimensions PROPOSAL55Asiya Javayant
1022James O TollnerItaly2026-07-11Rousseaux, Michael Esq PROPOSAL92Ivan Magalhaes
1023Murillo G VenereJapan2026-07-23Feiner Bros PROPOSAL7Onyama Limba
1024Claire R GarufiJapan2026-07-16Feltz Printing Service UNQUALIFIED26Elwin Sharvill
1025David G ShinkoCanada2026-07-09Rangoni Of Florence NEW64Asiya Javayant
1026Munro O CaudyFrance2026-07-05Dorl, James J Esq UNQUALIFIED64Ivan Magalhaes
1027Smith Z GlickBrazil2026-08-01Commercial Press NEW30Amy Elsner
1028Claire O RutaAustralia2026-07-12Chanay, Jeffrey A Esq NEW43Asiya Javayant
1029Ashley W SchemmerBrazil2026-07-18Morlong Associates NEGOTIATION36Anna Fali
1030Ivar F GlickGermany2026-07-11Rangoni Of Florence QUALIFIED3Onyama Limba
1031Arvin O MaletRussia2026-07-23Chemel, James L Cpa NEW27Elwin Sharvill
1032Sinclair T TollnerCanada2026-07-14Chemel, James L Cpa PROPOSAL18Elwin Sharvill
1033Ashley M CaudyUnited Kingdom2026-07-23King, Christopher A Esq NEGOTIATION62Ioni Bowcher
1034Costa S MaletFrance2026-07-20Benton, John B Jr RENEWAL9Stephen Shaw
1035Claire Z GarufiRussia2026-07-08Dorl, James J Esq RENEWAL50Amy Elsner
1036Silvio T SaylorsBrazil2026-07-11Buckley Miller Wright UNQUALIFIED40Onyama Limba
1037Alejandro G TollnerCanada2026-07-26Commercial Press NEGOTIATION89Amy Elsner
1038David K KolmetzGermany2026-07-23Chanay, Jeffrey A Esq NEW54Anna Fali
1039David J BologniaSpain2026-07-15Buckley Miller Wright QUALIFIED66Xuxue Feng
1040Rodrigues S FerenczUnited Kingdom2026-07-13Chanay, Jeffrey A Esq QUALIFIED62Ivan Magalhaes
1041Faith V AlbaresJapan2026-07-10Rangoni Of Florence UNQUALIFIED99Asiya Javayant
1042Greenwood X TollnerJapan2026-07-11Morlong Associates NEW84Elwin Sharvill
1043Costa H KuskoAustralia2026-07-28Rousseaux, Michael Esq RENEWAL41Asiya Javayant
1044Aika E SergiFrance2026-07-21Benton, John B Jr NEGOTIATION45Ivan Magalhaes
1045Aika Z BriddickSpain2026-07-10King, Christopher A Esq NEW65Ioni Bowcher
1046Ricardo Z VenereItaly2026-07-23Truhlar And Truhlar Attys QUALIFIED48Xuxue Feng
1047Maria J SergiCanada2026-07-29King, Christopher A Esq NEW78Xuxue Feng
1048Morrow F TollnerSpain2026-07-20Buckley Miller Wright PROPOSAL46Xuxue Feng
1049Deepesh L NestleArgentina2026-07-04Dorl, James J Esq PROPOSAL64Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna F SergiFranceStephen Shaw NEW
Silvio H CaldareraCanadaIoni Bowcher NEGOTIATION
Izzy Q KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin O DilliardItalyAmy Elsner UNQUALIFIED
Clifford L RoysterBrazilAnna Fali NEGOTIATION
James V RutaJapanAmy Elsner NEW
Maisha I WaycottGermanyXuxue Feng QUALIFIED
Johnson K PoquetteItalyAnna Fali RENEWAL
Wickens H AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Leja P GauchoBrazilAnna Fali PROPOSAL
Izzy O MaletJapanAmy Elsner RENEWAL
Clifford J GarufiIndiaElwin Sharvill NEGOTIATION
Antonio Y PerinCanadaBernardo Dominic QUALIFIED
Johnson G WieserUnited KingdomElwin Sharvill NEGOTIATION
Francesco X AmigonRussiaAnna Fali PROPOSAL
Misaki Y ButtGermanyAnna Fali PROPOSAL
Francesco N GauchoCanadaOnyama Limba NEW
Sinclair T SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Antonio J NickaAustraliaAsiya Javayant QUALIFIED
Maria H MarrierGermanyIoni Bowcher UNQUALIFIED
Murillo I OldroydFranceBernardo Dominic PROPOSAL
Aditya N AlbaresIndiaIvan Magalhaes UNQUALIFIED
Aika O WieserBrazilBernardo Dominic RENEWAL
Sinclair T WaycottBrazilIvan Magalhaes QUALIFIED
Isabel I FollerArgentinaAmy Elsner NEGOTIATION
Munro L MaletItalyStephen Shaw NEGOTIATION
James V OstroskyGermanyIoni Bowcher RENEWAL
Ivar S PaprockiSpainOnyama Limba PROPOSAL
Mujtaba B DarakjyGermanyAsiya Javayant NEW
Misaki C StensethJapanBernardo Dominic RENEWAL
Aika S ChuiUnited KingdomAsiya Javayant RENEWAL
Adams E WieserUnited KingdomElwin Sharvill UNQUALIFIED
Munro O CaldareraRussiaStephen Shaw NEGOTIATION
Darci S FollerRussiaBernardo Dominic PROPOSAL
Antonio U PaprockiUnited KingdomAsiya Javayant NEW
Claire A FlosiItalyStephen Shaw QUALIFIED
Emily M WaycottAustraliaAnna Fali RENEWAL
Salvatore H BologniaBrazilAnna Fali UNQUALIFIED
Emily D CampainCanadaAmy Elsner PROPOSAL
Octavia O PoquetteRussiaXuxue Feng QUALIFIED
Costa O TollnerAustraliaAmy Elsner RENEWAL
Maria P CaudyIndiaElwin Sharvill PROPOSAL
Adams N ButtIndiaAnna Fali RENEWAL
Leon M BriddickGermanyIvan Magalhaes NEW
Maisha D MaletSpainStephen Shaw PROPOSAL
Morrow O GillianArgentinaAmy Elsner UNQUALIFIED
Aruna A NestleBrazilOnyama Limba NEW
Aruna N RoysterSpainAnna Fali QUALIFIED
Ricardo R ShinkoRussiaIoni Bowcher UNQUALIFIED
Mayumi E TollnerCanadaBernardo Dominic PROPOSAL
Frozen Columns
Name
Isabel G Sergi
Darci X Marrier
Alejandro O Malet
Leja H Schemmer
Juan B Oldroyd
Clifford N Morasca
Octavia A Maclead
Aruna Y Caudy
James O Royster
Murillo M Saylors
Deepesh C Poquette
Sinclair C Tollner
Clifford S Shinko
Misaki T Butt
Chavez L Paprocki
Stacey N Venere
James I Nicka
Misaki U Bolognia
Darci Q Gaucho
Juan B Poquette
Silvio B Paprocki
Francesco D Stockham
Jennifer Z Darakjy
Maria I Perin
Nicolas N Iturbide
Silvio R Stockham
Aika D Campain
Izzy U Amigon
David L Garufi
Costa V Garufi
Emily M Garufi
Francesco C Marrier
Greenwood B Iturbide
Greenwood M Sergi
Tony C Sergi
Jennifer W Campain
Faith K Sergi
Smith Y Waycott
Leon U Glick
David U Dilliard
Stacey Q Rulapaugh
Silvio B Marrier
Misaki Q Poquette
Adams A Kusko
Emily V Albares
Jeanfrancois M Doe
Kaitlin N Gaucho
Alejandro G Venere
Aditya S Flosi
Aika K Morasca
IdCountryDate
1000Australia2026-07-23
1001United Kingdom2026-07-11
1002Argentina2026-07-30
1003Japan2026-07-13
1004Argentina2026-07-28
1005Spain2026-07-31
1006Japan2026-07-11
1007Russia2026-07-23
1008India2026-07-23
1009Germany2026-07-07
1010United Kingdom2026-07-17
1011Japan2026-07-16
1012Germany2026-07-25
1013France2026-07-06
1014United Kingdom2026-07-06
1015Italy2026-07-29
1016Australia2026-07-26
1017France2026-07-19
1018India2026-07-27
1019United Kingdom2026-07-08
1020Canada2026-07-23
1021Japan2026-07-26
1022India2026-07-21
1023India2026-07-31
1024Argentina2026-07-21
1025India2026-07-18
1026Spain2026-07-18
1027France2026-07-10
1028India2026-07-12
1029Russia2026-07-06
1030Italy2026-07-28
1031Germany2026-07-28
1032Argentina2026-07-28
1033Brazil2026-07-09
1034Australia2026-07-28
1035Australia2026-07-30
1036Brazil2026-07-17
1037Argentina2026-07-19
1038Canada2026-07-16
1039Germany2026-07-08
1040Japan2026-07-12
1041Australia2026-07-28
1042India2026-07-13
1043Italy2026-07-09
1044Australia2026-07-31
1045Germany2026-07-24
1046Germany2026-07-21
1047Spain2026-07-07
1048France2026-07-29
1049Canada2026-07-27

On-Demand Data

NameIdCountryDate
Silvio K Slusarski1000Italy2026-07-24
Alejandro H Caudy1001Argentina2026-07-07
Isabel E Waycott1002Spain2026-07-22
Tony G Malet1003France2026-07-08
David K Maclead1004Argentina2026-07-16
Deepesh D Garufi1005Argentina2026-07-09
Juan R Saylors1006Russia2026-07-18
Darci A Bolognia1007Argentina2026-07-04
Smith K Flosi1008Australia2026-07-14
David L Vocelka1009Italy2026-07-29
Ashley D Shinko1010Argentina2026-07-14
Aditya X Butt1011Germany2026-07-06
Ricardo D Garufi1012Australia2026-07-28
Murillo T Gaucho1013Spain2026-07-24
Clifford L Chui1014United Kingdom2026-07-14
Claire Y Glick1015Japan2026-07-09
James M Shinko1016Russia2026-07-20
Chavez H Vocelka1017Canada2026-07-28
Misaki V Briddick1018Argentina2026-07-29
Wickens T Morasca1019Italy2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas F FlosiUnited KingdomAmy Elsner UNQUALIFIED
Jefferson Q OldroydArgentinaIvan Magalhaes NEGOTIATION
David F ChuiAustraliaAnna Fali PROPOSAL
Adams K GarufiUnited KingdomBernardo Dominic NEGOTIATION
Tony G MaletAustraliaStephen Shaw RENEWAL
Juan H SchemmerJapanIoni Bowcher NEGOTIATION
Silvio T CampainSpainOnyama Limba NEGOTIATION
Aditya B PoquetteGermanyElwin Sharvill RENEWAL
Emily E BriddickArgentinaIoni Bowcher UNQUALIFIED
Sinclair L ShinkoBrazilXuxue Feng UNQUALIFIED
Emily L MaletIndiaAmy Elsner QUALIFIED
Jefferson U MacleadGermanyAnna Fali PROPOSAL
Juan G AmigonItalyAmy Elsner PROPOSAL
Isabel U TollnerAustraliaIoni Bowcher UNQUALIFIED
Darci B ButtJapanIoni Bowcher UNQUALIFIED
Morrow P GlickIndiaAnna Fali UNQUALIFIED
Ivar H ButtRussiaBernardo Dominic QUALIFIED
Faith T MaletJapanIoni Bowcher RENEWAL
Sinclair Q BologniaRussiaStephen Shaw NEGOTIATION
Aditya G MorascaGermanyStephen Shaw PROPOSAL
Jones A ShinkoItalyXuxue Feng NEW
Costa M FlosiRussiaBernardo Dominic NEGOTIATION
Cody X VocelkaItalyElwin Sharvill PROPOSAL
Izzy M MaletUnited KingdomStephen Shaw UNQUALIFIED
Cody E CaudyGermanyAsiya Javayant QUALIFIED
Smith U BriddickSpainXuxue Feng PROPOSAL
Jones Z BriddickItalyAnna Fali UNQUALIFIED
Izzy S DilliardArgentinaBernardo Dominic NEW
Arvin I AlbaresRussiaStephen Shaw QUALIFIED
Maria J CaldareraItalyIoni Bowcher QUALIFIED
Adams I PerinJapanAsiya Javayant UNQUALIFIED
Smith J KolmetzCanadaElwin Sharvill QUALIFIED
Jones I OldroydCanadaAsiya Javayant QUALIFIED
Misaki Z RulapaughCanadaIoni Bowcher RENEWAL
Antonio P ChuiFranceAmy Elsner NEW
Wickens E MaletJapanBernardo Dominic NEW
Nicolas Y SlusarskiIndiaOnyama Limba QUALIFIED
Maria R DoeRussiaIoni Bowcher RENEWAL
Stacey Y CampainItalyAsiya Javayant NEW
Leon E FigeroaCanadaXuxue Feng NEGOTIATION

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