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 N WhobreyUnited KingdomAnna Fali NEW
Munro N ChuiAustraliaAsiya Javayant RENEWAL
David F MacleadJapanAnna Fali RENEWAL
Emily C RulapaughAustraliaIoni Bowcher RENEWAL
Mujtaba W MorascaArgentinaStephen Shaw NEGOTIATION
Stacey C GlickIndiaOnyama Limba PROPOSAL
Izzy S AmigonBrazilIoni Bowcher QUALIFIED
Aditya F DoeCanadaIoni Bowcher NEW
Greenwood L GauchoAustraliaAsiya Javayant NEW
Juan P StockhamCanadaAnna Fali QUALIFIED
Ashley X MarrierRussiaAnna Fali QUALIFIED
Leja Y CaldareraAustraliaAnna Fali NEW
Octavia T MarrierSpainAnna Fali UNQUALIFIED
Francesco D AmigonFranceStephen Shaw NEW
Silvio M ChuiRussiaXuxue Feng QUALIFIED
Mujtaba K WaycottArgentinaOnyama Limba NEGOTIATION
Mayumi A BriddickJapanStephen Shaw QUALIFIED
Antonio Q StensethUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro V FlosiRussiaAmy Elsner RENEWAL
Tony A KolmetzAustraliaStephen Shaw NEGOTIATION
Jennifer Y InouyeSpainIvan Magalhaes RENEWAL
Jones I MarrierItalyOnyama Limba NEW
Leja C NickaJapanIoni Bowcher RENEWAL
Clifford R KolmetzRussiaElwin Sharvill NEW
Nicolas R GlickRussiaXuxue Feng RENEWAL
Murillo T TollnerIndiaIoni Bowcher PROPOSAL
Aruna Q FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Aruna M SergiSpainIoni Bowcher PROPOSAL
Faith D IturbideGermanyBernardo Dominic RENEWAL
Kaitlin U GarufiBrazilBernardo Dominic QUALIFIED
Aika W AmigonArgentinaIvan Magalhaes NEGOTIATION
Rodrigues C FigeroaJapanAmy Elsner PROPOSAL
Cody X CaldareraCanadaBernardo Dominic NEW
Ashley C CaudyJapanElwin Sharvill NEW
Mayumi K CaldareraJapanAnna Fali NEGOTIATION
Ivar H GlickJapanElwin Sharvill NEW
Alejandro O StockhamIndiaIvan Magalhaes NEGOTIATION
Jones S MaletIndiaBernardo Dominic QUALIFIED
Adams Y AlbaresJapanXuxue Feng QUALIFIED
James W DarakjyRussiaIoni Bowcher NEW
Octavia X StockhamIndiaXuxue Feng QUALIFIED
Cody N KuskoFranceAmy Elsner UNQUALIFIED
Ivar D PaprockiFranceAmy Elsner UNQUALIFIED
Izzy D WaycottBrazilStephen Shaw UNQUALIFIED
Aika O SlusarskiFranceAmy Elsner UNQUALIFIED
Rodrigues I VocelkaIndiaIoni Bowcher PROPOSAL
Smith G FlosiGermanyIoni Bowcher RENEWAL
Kaitlin H WhobreyUnited KingdomIoni Bowcher QUALIFIED
Chavez X FollerArgentinaStephen Shaw QUALIFIED
Wickens Q GauchoArgentinaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas Y AmigonBrazilAnna Fali NEGOTIATION
Cody W DilliardItalyXuxue Feng QUALIFIED
Smith F KolmetzBrazilXuxue Feng RENEWAL
Jeanfrancois N FlosiRussiaStephen Shaw PROPOSAL
Wickens Q IturbideCanadaXuxue Feng NEGOTIATION
Claire U RulapaughUnited KingdomElwin Sharvill QUALIFIED
Deepesh O BowleyFranceAsiya Javayant RENEWAL
James H MaletSpainAsiya Javayant RENEWAL
Ricardo A AlbaresGermanyAsiya Javayant PROPOSAL
Jeanfrancois D VocelkaBrazilAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire F KuskoGermany2026-07-27Morlong Associates RENEWAL98Asiya Javayant
1001Maria I WieserSpain2026-08-24Printing Dimensions NEW73Xuxue Feng
1002Aditya S ButtItaly2026-08-06Benton, John B Jr UNQUALIFIED94Ivan Magalhaes
1003Antonio H WaycottFrance2026-07-26King, Christopher A Esq PROPOSAL53Stephen Shaw
1004Costa N SaylorsCanada2026-08-05Truhlar And Truhlar Attys NEGOTIATION75Amy Elsner
1005Leon R RulapaughItaly2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED77Elwin Sharvill
1006Chavez U DilliardGermany2026-08-02Benton, John B Jr QUALIFIED11Asiya Javayant
1007Jefferson F RimArgentina2026-07-26Chanay, Jeffrey A Esq RENEWAL25Onyama Limba
1008Jeanfrancois K AmigonIndia2026-08-14Chemel, James L Cpa NEGOTIATION3Ioni Bowcher
1009Ashley S KuskoUnited Kingdom2026-08-13Commercial Press RENEWAL39Bernardo Dominic
1010Aruna A SchemmerCanada2026-08-08Buckley Miller Wright PROPOSAL26Anna Fali
1011Nicolas U MorascaJapan2026-08-01Feiner Bros RENEWAL96Bernardo Dominic
1012Silvio G StensethSpain2026-08-01Chemel, James L Cpa UNQUALIFIED1Stephen Shaw
1013Stacey S VocelkaIndia2026-08-24Feiner Bros RENEWAL6Anna Fali
1014Isabel H RimJapan2026-08-07Rousseaux, Michael Esq QUALIFIED87Xuxue Feng
1015Faith B AlbaresCanada2026-08-21Morlong Associates NEGOTIATION29Stephen Shaw
1016Mujtaba S RutaJapan2026-08-03Feltz Printing Service NEW55Stephen Shaw
1017Jefferson R DoeSpain2026-08-06Truhlar And Truhlar Attys NEW2Ioni Bowcher
1018Leja L RimAustralia2026-08-23King, Christopher A Esq QUALIFIED40Onyama Limba
1019Arvin K TollnerGermany2026-08-19Printing Dimensions NEGOTIATION83Ioni Bowcher
1020Leon O BriddickItaly2026-08-04Morlong Associates PROPOSAL78Asiya Javayant
1021Johnson G GillianSpain2026-08-14Chanay, Jeffrey A Esq RENEWAL45Stephen Shaw
1022Julie E GauchoRussia2026-07-31Chanay, Jeffrey A Esq NEW70Bernardo Dominic
1023Ricardo Q RulapaughGermany2026-08-11Feiner Bros PROPOSAL8Ioni Bowcher
1024Izzy W VocelkaCanada2026-07-26Feltz Printing Service UNQUALIFIED84Amy Elsner
1025Francesco W GlickCanada2026-08-09Chapman, Ross E Esq QUALIFIED34Asiya Javayant
1026James Y MorascaAustralia2026-08-13Chapman, Ross E Esq NEW95Amy Elsner
1027Claire O GillianGermany2026-08-17Buckley Miller Wright NEW5Stephen Shaw
1028Morrow L ShinkoCanada2026-08-17Truhlar And Truhlar Attys NEGOTIATION32Ivan Magalhaes
1029Chavez K SergiUnited Kingdom2026-08-06Printing Dimensions RENEWAL97Xuxue Feng
1030Francesco H ShinkoBrazil2026-07-28Chapman, Ross E Esq PROPOSAL39Anna Fali
1031Mujtaba Q SlusarskiAustralia2026-08-06Feiner Bros UNQUALIFIED5Ioni Bowcher
1032Johnson S FerenczRussia2026-08-21Feltz Printing Service QUALIFIED56Amy Elsner
1033Claire N SaylorsIndia2026-08-07Buckley Miller Wright QUALIFIED12Xuxue Feng
1034Claire E BriddickJapan2026-08-05Commercial Press RENEWAL32Ioni Bowcher
1035Kaitlin N WhobreyAustralia2026-08-22Dorl, James J Esq QUALIFIED85Bernardo Dominic
1036Octavia J WieserFrance2026-08-12Morlong Associates RENEWAL87Ioni Bowcher
1037Antonio C KuskoUnited Kingdom2026-08-10King, Christopher A Esq RENEWAL76Asiya Javayant
1038David Q GlickFrance2026-08-06Chapman, Ross E Esq NEW93Onyama Limba
1039Ivar M NestleArgentina2026-08-05Rousseaux, Michael Esq NEW14Ivan Magalhaes
1040Deepesh Z FerenczAustralia2026-08-06Printing Dimensions NEW87Elwin Sharvill
1041Arvin N FlosiAustralia2026-08-23Chapman, Ross E Esq NEGOTIATION74Onyama Limba
1042Wickens C BologniaSpain2026-08-15Rousseaux, Michael Esq PROPOSAL22Anna Fali
1043Aruna K DoeArgentina2026-08-07Chemel, James L Cpa NEGOTIATION20Bernardo Dominic
1044Chavez E RoysterBrazil2026-08-17Chemel, James L Cpa NEGOTIATION74Xuxue Feng
1045Octavia V CaudyGermany2026-08-10Truhlar And Truhlar Attys RENEWAL51Elwin Sharvill
1046Francesco A ShinkoUnited Kingdom2026-08-24Benton, John B Jr RENEWAL97Elwin Sharvill
1047Chavez O SlusarskiSpain2026-08-23Rangoni Of Florence UNQUALIFIED46Ioni Bowcher
1048Chavez Y AlbaresItaly2026-08-21Feiner Bros UNQUALIFIED9Bernardo Dominic
1049Ricardo Z PaprockiGermany2026-08-12Chanay, Jeffrey A Esq RENEWAL67Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony N MorascaIndiaBernardo Dominic QUALIFIED
Aika Q GauchoSpainStephen Shaw UNQUALIFIED
Jefferson H CampainItalyXuxue Feng QUALIFIED
Salvatore A StensethIndiaBernardo Dominic PROPOSAL
Deepesh V IturbideAustraliaOnyama Limba UNQUALIFIED
Aditya V RimIndiaElwin Sharvill NEW
Aruna E RimArgentinaBernardo Dominic RENEWAL
Wickens V GillianArgentinaAmy Elsner PROPOSAL
Sinclair T ShinkoItalyAnna Fali RENEWAL
Emily Q NestleAustraliaOnyama Limba UNQUALIFIED
Tony L ChuiBrazilElwin Sharvill QUALIFIED
James R OstroskyUnited KingdomAmy Elsner RENEWAL
Juan N MorascaBrazilAsiya Javayant RENEWAL
Kadeem X ChuiUnited KingdomAmy Elsner PROPOSAL
Stacey C VenereArgentinaStephen Shaw PROPOSAL
James O PaprockiIndiaIoni Bowcher PROPOSAL
Adams E IturbideRussiaAmy Elsner QUALIFIED
Juan V BowleyBrazilAsiya Javayant UNQUALIFIED
Morrow U ButtRussiaIvan Magalhaes NEW
Deepesh M AlbaresItalyStephen Shaw PROPOSAL
Izzy O MaletUnited KingdomStephen Shaw RENEWAL
Alejandro S RimItalyStephen Shaw PROPOSAL
Wickens U AlbaresIndiaAmy Elsner NEGOTIATION
Claire C DarakjyCanadaIoni Bowcher RENEWAL
Greenwood B MarrierIndiaAmy Elsner NEGOTIATION
Smith W DarakjyJapanOnyama Limba UNQUALIFIED
Deepesh D GauchoIndiaAnna Fali PROPOSAL
Juan L KuskoRussiaAnna Fali PROPOSAL
James Y MorascaIndiaElwin Sharvill QUALIFIED
Misaki L NickaFranceAmy Elsner RENEWAL
Ashley W MorascaFranceStephen Shaw PROPOSAL
Deepesh C WaycottJapanXuxue Feng RENEWAL
Ricardo P MorascaRussiaAsiya Javayant NEW
Smith B OldroydBrazilIoni Bowcher RENEWAL
Smith I GauchoFranceXuxue Feng RENEWAL
Jefferson T VenereJapanStephen Shaw NEW
Murillo M IturbideItalyAnna Fali RENEWAL
Leja B FerenczAustraliaXuxue Feng RENEWAL
Juan F IturbideGermanyIvan Magalhaes RENEWAL
Misaki R BologniaBrazilIvan Magalhaes PROPOSAL
Alejandro H MarrierIndiaIvan Magalhaes RENEWAL
Isabel A CaldareraFranceOnyama Limba NEW
Antonio M DoeAustraliaOnyama Limba NEW
Misaki N StensethAustraliaXuxue Feng NEW
Ivar S MorascaCanadaAsiya Javayant NEGOTIATION
Aditya L OldroydAustraliaBernardo Dominic NEW
Octavia K ChuiGermanyStephen Shaw RENEWAL
Octavia O SchemmerRussiaAnna Fali UNQUALIFIED
Clifford U CaudyAustraliaIoni Bowcher NEW
Isabel E SlusarskiBrazilBernardo Dominic QUALIFIED
Frozen Columns
Name
Adams H Stockham
Mayumi Z Morasca
Julie G Iturbide
Francesco B Kolmetz
Maria M Stenseth
Kaitlin H Ruta
Munro P Saylors
Aruna J Glick
Maisha L Slusarski
Ricardo Z Rulapaugh
Wickens H Perin
Smith F Briddick
Aditya E Shinko
Stacey J Shinko
Jones F Rim
Leja I Tollner
David C Dilliard
Aditya I Darakjy
Izzy R Figeroa
Jennifer F Waycott
Smith O Sergi
Alejandro E Poquette
Octavia L Flosi
Wickens B Malet
Arvin F Butt
Ivar B Butt
Nicolas B Maclead
Leja A Sergi
Ricardo U Briddick
Adams V Oldroyd
Leon I Kolmetz
Maisha T Paprocki
Ashley L Poquette
Alejandro C Amigon
Sinclair V Chui
Wickens S Rim
Salvatore W Caudy
Alejandro G Nicka
Ashley A Caudy
Murillo X Kusko
Isabel Y Oldroyd
Aruna D Butt
Antonio S Sergi
Adams K Gillian
Stacey D Wieser
Silvio V Nicka
Murillo M Caldarera
Jones A Albares
Claire P Albares
Nicolas O Whobrey
IdCountryDate
1000France2026-08-17
1001France2026-08-09
1002Argentina2026-08-06
1003Brazil2026-08-22
1004Spain2026-08-18
1005Italy2026-08-23
1006Japan2026-08-15
1007United Kingdom2026-07-29
1008India2026-08-06
1009Spain2026-08-17
1010Spain2026-07-27
1011United Kingdom2026-07-30
1012Japan2026-07-30
1013Japan2026-07-28
1014Spain2026-08-15
1015Canada2026-08-07
1016Japan2026-08-12
1017Italy2026-08-17
1018Argentina2026-07-27
1019Russia2026-08-18
1020Brazil2026-08-22
1021Japan2026-08-09
1022United Kingdom2026-08-06
1023Russia2026-08-20
1024Australia2026-08-18
1025France2026-07-26
1026United Kingdom2026-08-14
1027Australia2026-07-28
1028Brazil2026-08-01
1029Brazil2026-08-17
1030Spain2026-08-05
1031Spain2026-08-07
1032United Kingdom2026-08-08
1033Germany2026-08-08
1034Argentina2026-07-31
1035Australia2026-08-18
1036Italy2026-08-21
1037Brazil2026-08-10
1038Russia2026-07-30
1039Canada2026-08-05
1040Germany2026-07-30
1041Germany2026-08-02
1042Russia2026-08-10
1043Spain2026-08-20
1044Argentina2026-08-14
1045Spain2026-07-30
1046Argentina2026-08-13
1047Spain2026-08-04
1048Japan2026-08-03
1049Argentina2026-07-28

On-Demand Data

NameIdCountryDate
Aditya T Marrier1000Italy2026-08-03
Wickens E Nicka1001Germany2026-08-06
Costa W Ferencz1002Canada2026-08-03
Aditya D Flosi1003Argentina2026-08-24
Sinclair W Figeroa1004United Kingdom2026-08-13
Alejandro W Waycott1005France2026-08-12
Sinclair Z Malet1006Australia2026-07-26
Greenwood Z Dilliard1007Brazil2026-07-30
Darci A Figeroa1008Argentina2026-08-19
Adams X Caldarera1009Japan2026-08-05
Kaitlin B Garufi1010United Kingdom2026-08-11
Deepesh S Royster1011United Kingdom2026-08-20
Ivar U Amigon1012France2026-08-17
Claire P Ferencz1013Canada2026-08-16
Salvatore Z Nicka1014Germany2026-08-22
Jeanfrancois C Campain1015Germany2026-08-03
Claire W Nicka1016Italy2026-08-16
Johnson R Campain1017Brazil2026-08-22
Wickens B Iturbide1018Spain2026-08-11
Julie W Venere1019United Kingdom2026-08-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo D OstroskyCanadaAmy Elsner UNQUALIFIED
Stacey L StensethUnited KingdomIoni Bowcher UNQUALIFIED
Juan K NestleUnited KingdomElwin Sharvill PROPOSAL
David J DoeIndiaAmy Elsner RENEWAL
Chavez M GillianGermanyElwin Sharvill QUALIFIED
Jeanfrancois M SchemmerAustraliaOnyama Limba PROPOSAL
Ivar W GauchoFranceStephen Shaw NEGOTIATION
Jeanfrancois C MacleadBrazilBernardo Dominic UNQUALIFIED
Costa F NickaUnited KingdomXuxue Feng QUALIFIED
Clifford W MacleadBrazilOnyama Limba RENEWAL
Claire Z BologniaUnited KingdomAnna Fali PROPOSAL
Alejandro T BriddickJapanAsiya Javayant QUALIFIED
Alejandro H DilliardArgentinaXuxue Feng UNQUALIFIED
Izzy Y NickaCanadaStephen Shaw NEW
Aruna R WieserAustraliaAsiya Javayant QUALIFIED
Aditya F FlosiFranceAnna Fali QUALIFIED
Aruna H BologniaSpainElwin Sharvill QUALIFIED
Greenwood R WieserItalyIoni Bowcher UNQUALIFIED
Tony X PoquetteBrazilIoni Bowcher NEW
David F CaldareraCanadaIoni Bowcher UNQUALIFIED
Wickens X StensethUnited KingdomAnna Fali QUALIFIED
Leon D AlbaresBrazilStephen Shaw PROPOSAL
Wickens H RoysterFranceXuxue Feng NEW
Morrow J DilliardJapanIoni Bowcher UNQUALIFIED
Emily F StensethGermanyIvan Magalhaes QUALIFIED
Kadeem Y FollerArgentinaAmy Elsner NEGOTIATION
Julie X RoysterIndiaIvan Magalhaes QUALIFIED
Salvatore G MaletArgentinaElwin Sharvill PROPOSAL
Rodrigues P SaylorsCanadaBernardo Dominic UNQUALIFIED
Morrow A NestleArgentinaOnyama Limba QUALIFIED
Leja O NickaCanadaStephen Shaw NEGOTIATION
Faith M RimUnited KingdomAmy Elsner NEW
Rodrigues Z DilliardItalyStephen Shaw QUALIFIED
Isabel D RulapaughRussiaIoni Bowcher UNQUALIFIED
Maria D NestleAustraliaAnna Fali NEW
Chavez O PaprockiSpainIoni Bowcher UNQUALIFIED
Emily J FollerBrazilElwin Sharvill NEW
Ivar C KolmetzJapanStephen Shaw UNQUALIFIED
James T RulapaughCanadaAmy Elsner RENEWAL
Misaki Z RutaArgentinaXuxue Feng QUALIFIED

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