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
Francesco O InouyeRussiaAsiya Javayant NEGOTIATION
Adams Z VenereArgentinaAnna Fali NEGOTIATION
Jeanfrancois Y StockhamArgentinaAnna Fali QUALIFIED
Murillo L SaylorsSpainAnna Fali NEGOTIATION
Smith V AmigonFranceIoni Bowcher NEGOTIATION
Deepesh O AlbaresSpainAsiya Javayant NEGOTIATION
Johnson S NickaIndiaIoni Bowcher NEW
Johnson S FollerJapanIvan Magalhaes UNQUALIFIED
Leon N SergiArgentinaIoni Bowcher QUALIFIED
Juan X OstroskyUnited KingdomIoni Bowcher QUALIFIED
Ivar F DarakjyBrazilElwin Sharvill RENEWAL
Aruna Y SchemmerJapanOnyama Limba NEGOTIATION
Izzy E WieserUnited KingdomIvan Magalhaes NEW
Jennifer N FerenczArgentinaAnna Fali RENEWAL
Darci F CampainGermanyAmy Elsner UNQUALIFIED
Maisha R BologniaIndiaAmy Elsner QUALIFIED
Morrow A VenereBrazilIoni Bowcher UNQUALIFIED
Izzy R CaudyArgentinaBernardo Dominic UNQUALIFIED
Darci I ButtGermanyOnyama Limba NEW
Misaki H CaudyGermanyElwin Sharvill PROPOSAL
Faith B InouyeArgentinaAsiya Javayant UNQUALIFIED
Mujtaba J TollnerIndiaIvan Magalhaes PROPOSAL
Kaitlin C PerinGermanyOnyama Limba NEGOTIATION
Smith R MarrierJapanAsiya Javayant PROPOSAL
Julie L PoquetteBrazilAnna Fali QUALIFIED
Ashley L WhobreyIndiaStephen Shaw RENEWAL
Rodrigues N CaldareraBrazilIvan Magalhaes NEGOTIATION
Juan P GillianRussiaAsiya Javayant QUALIFIED
Maisha Y GlickCanadaIvan Magalhaes QUALIFIED
Darci I StockhamRussiaElwin Sharvill NEW
Antonio A FerenczGermanyBernardo Dominic NEW
Smith M DarakjyItalyAnna Fali RENEWAL
Jennifer P StockhamCanadaIvan Magalhaes PROPOSAL
Ashley P SchemmerUnited KingdomAsiya Javayant QUALIFIED
Salvatore A KuskoCanadaAmy Elsner NEW
Salvatore F NickaItalyStephen Shaw NEGOTIATION
Leon T AmigonSpainAnna Fali NEGOTIATION
Silvio R FlosiRussiaStephen Shaw RENEWAL
Darci Q GauchoBrazilAsiya Javayant RENEWAL
Maria Z DoeItalyOnyama Limba UNQUALIFIED
Alejandro U WaycottJapanAmy Elsner PROPOSAL
Claire I SchemmerAustraliaElwin Sharvill UNQUALIFIED
Adams F ShinkoUnited KingdomBernardo Dominic RENEWAL
Morrow B NestleGermanyIvan Magalhaes NEW
Mayumi M InouyeArgentinaOnyama Limba NEW
Aruna R NestleJapanAmy Elsner QUALIFIED
Octavia Y GauchoJapanBernardo Dominic PROPOSAL
Julie Y DilliardJapanIoni Bowcher UNQUALIFIED
James E MaletAustraliaElwin Sharvill PROPOSAL
Antonio B AlbaresJapanOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba L DilliardItalyIvan Magalhaes QUALIFIED
Cody R VenereSpainElwin Sharvill UNQUALIFIED
Munro G WieserBrazilBernardo Dominic NEW
Misaki O ChuiCanadaBernardo Dominic NEW
Jeanfrancois L PerinUnited KingdomXuxue Feng RENEWAL
Tony C BriddickGermanyBernardo Dominic UNQUALIFIED
Maisha I CampainCanadaBernardo Dominic QUALIFIED
Ivar I AlbaresCanadaIoni Bowcher UNQUALIFIED
Wickens X MacleadRussiaBernardo Dominic UNQUALIFIED
Octavia F MarrierRussiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya E MarrierSpain2026-07-28Feltz Printing Service PROPOSAL57Bernardo Dominic
1001Ashley P MorascaArgentina2026-07-09Buckley Miller Wright QUALIFIED35Ivan Magalhaes
1002Maisha C BriddickJapan2026-07-18Feiner Bros NEW48Bernardo Dominic
1003Rodrigues W WaycottBrazil2026-07-17Commercial Press QUALIFIED71Xuxue Feng
1004Munro U PaprockiCanada2026-07-14Chanay, Jeffrey A Esq QUALIFIED3Elwin Sharvill
1005David M CaudyCanada2026-07-23Benton, John B Jr NEW62Amy Elsner
1006Kaitlin E RimGermany2026-07-07Feltz Printing Service NEW2Ioni Bowcher
1007Nicolas Q InouyeFrance2026-07-22Buckley Miller Wright PROPOSAL71Amy Elsner
1008Silvio F MorascaFrance2026-07-26Printing Dimensions NEGOTIATION67Ivan Magalhaes
1009Kadeem Y NestleCanada2026-07-21King, Christopher A Esq NEGOTIATION20Stephen Shaw
1010Octavia I OldroydSpain2026-07-27Morlong Associates PROPOSAL23Ivan Magalhaes
1011David P WieserFrance2026-07-08Printing Dimensions QUALIFIED55Stephen Shaw
1012Emily X AlbaresAustralia2026-07-05Morlong Associates PROPOSAL95Onyama Limba
1013Murillo U RulapaughAustralia2026-07-29Chanay, Jeffrey A Esq UNQUALIFIED28Onyama Limba
1014Juan F SaylorsCanada2026-07-10Chemel, James L Cpa RENEWAL11Bernardo Dominic
1015Wickens M PerinArgentina2026-07-05King, Christopher A Esq UNQUALIFIED35Stephen Shaw
1016Costa H CampainCanada2026-07-12Printing Dimensions NEGOTIATION91Ioni Bowcher
1017Julie Q BologniaIndia2026-07-20Benton, John B Jr NEGOTIATION26Ioni Bowcher
1018Smith O ButtRussia2026-07-24Feiner Bros NEW84Onyama Limba
1019Misaki A BowleyGermany2026-07-07Rangoni Of Florence PROPOSAL96Xuxue Feng
1020Jeanfrancois B SaylorsBrazil2026-07-24Chapman, Ross E Esq NEW52Bernardo Dominic
1021Antonio Q KuskoItaly2026-07-24Printing Dimensions RENEWAL47Stephen Shaw
1022Sinclair K TollnerJapan2026-07-16Feiner Bros RENEWAL30Amy Elsner
1023David V RulapaughArgentina2026-07-13Chapman, Ross E Esq PROPOSAL0Onyama Limba
1024Munro V PerinBrazil2026-07-18Chanay, Jeffrey A Esq NEGOTIATION33Ioni Bowcher
1025Maria D MacleadGermany2026-07-06Chapman, Ross E Esq QUALIFIED88Onyama Limba
1026Julie N SchemmerItaly2026-07-02Printing Dimensions RENEWAL29Ivan Magalhaes
1027Faith J GauchoAustralia2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED71Bernardo Dominic
1028Greenwood C IturbideItaly2026-07-06Chanay, Jeffrey A Esq NEW55Ioni Bowcher
1029Greenwood N SlusarskiArgentina2026-07-23Chanay, Jeffrey A Esq RENEWAL95Elwin Sharvill
1030Leon B DoeArgentina2026-07-27Commercial Press NEGOTIATION63Bernardo Dominic
1031Leja W FollerBrazil2026-07-13Dorl, James J Esq NEW40Xuxue Feng
1032Faith V AlbaresSpain2026-07-08Chanay, Jeffrey A Esq QUALIFIED36Ioni Bowcher
1033Juan O MorascaAustralia2026-07-07Printing Dimensions PROPOSAL62Xuxue Feng
1034Ivar J RulapaughRussia2026-07-24Rangoni Of Florence PROPOSAL48Ivan Magalhaes
1035Ivar N AlbaresAustralia2026-07-07Printing Dimensions PROPOSAL60Asiya Javayant
1036Kaitlin N DarakjyCanada2026-07-19Printing Dimensions NEW50Amy Elsner
1037Ashley Z KolmetzJapan2026-07-19Benton, John B Jr QUALIFIED35Onyama Limba
1038Morrow B FollerCanada2026-07-03Feiner Bros NEW71Stephen Shaw
1039Misaki J CampainRussia2026-07-27Benton, John B Jr UNQUALIFIED26Anna Fali
1040Darci M MarrierBrazil2026-07-26Feltz Printing Service UNQUALIFIED49Amy Elsner
1041Ivar I KolmetzCanada2026-07-18Feltz Printing Service QUALIFIED68Onyama Limba
1042Ashley M PoquetteBrazil2026-07-14Chanay, Jeffrey A Esq NEW50Asiya Javayant
1043Murillo T BologniaJapan2026-07-13Feiner Bros RENEWAL27Asiya Javayant
1044Ashley Z IturbideAustralia2026-07-06Feltz Printing Service RENEWAL70Xuxue Feng
1045Silvio C SchemmerBrazil2026-07-08Buckley Miller Wright NEW39Ioni Bowcher
1046Kaitlin G BologniaBrazil2026-07-21Chemel, James L Cpa UNQUALIFIED79Bernardo Dominic
1047Nicolas K VocelkaSpain2026-07-07Chanay, Jeffrey A Esq PROPOSAL42Ivan Magalhaes
1048Alejandro H DarakjyJapan2026-07-28Benton, John B Jr NEGOTIATION13Anna Fali
1049Mujtaba U KuskoCanada2026-07-28Commercial Press QUALIFIED19Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David E CampainItalyIoni Bowcher QUALIFIED
Juan B FlosiGermanyAnna Fali NEGOTIATION
Nicolas J VocelkaIndiaAmy Elsner PROPOSAL
Adams F NickaRussiaAmy Elsner QUALIFIED
Emily H SlusarskiItalyElwin Sharvill NEGOTIATION
Kadeem O BriddickGermanyXuxue Feng PROPOSAL
Greenwood S GauchoRussiaAnna Fali UNQUALIFIED
Murillo J DarakjyArgentinaXuxue Feng PROPOSAL
Kaitlin F PoquetteUnited KingdomXuxue Feng QUALIFIED
Francesco A PoquetteCanadaAmy Elsner QUALIFIED
Chavez M KuskoFranceAsiya Javayant NEW
Izzy M SergiBrazilAmy Elsner NEW
Isabel N GillianJapanElwin Sharvill RENEWAL
Juan J GlickRussiaElwin Sharvill RENEWAL
Aika B RoysterBrazilStephen Shaw QUALIFIED
Silvio T MaletArgentinaStephen Shaw UNQUALIFIED
Cody B NickaBrazilAnna Fali RENEWAL
Rodrigues Q GarufiCanadaIvan Magalhaes QUALIFIED
Sinclair K GarufiRussiaOnyama Limba NEW
Octavia S MaletCanadaAnna Fali RENEWAL
David O WieserGermanyOnyama Limba RENEWAL
Mujtaba F DoeIndiaStephen Shaw UNQUALIFIED
Alejandro R KuskoAustraliaOnyama Limba UNQUALIFIED
Faith D TollnerRussiaElwin Sharvill QUALIFIED
Jefferson A RimIndiaAmy Elsner PROPOSAL
Francesco G VocelkaSpainIvan Magalhaes RENEWAL
Leon G TollnerBrazilBernardo Dominic NEW
Adams O ButtFranceOnyama Limba PROPOSAL
Tony N WaycottUnited KingdomElwin Sharvill PROPOSAL
Aruna A DoeUnited KingdomAmy Elsner QUALIFIED
Rodrigues S GarufiItalyStephen Shaw RENEWAL
Ashley H StockhamUnited KingdomAmy Elsner PROPOSAL
Maria H ChuiUnited KingdomStephen Shaw UNQUALIFIED
David W NickaCanadaAsiya Javayant NEGOTIATION
Jefferson P ButtSpainElwin Sharvill UNQUALIFIED
Leon K OstroskyCanadaXuxue Feng NEGOTIATION
Johnson R PerinBrazilAnna Fali NEW
Ashley X CaudyArgentinaAnna Fali RENEWAL
Clifford B ButtArgentinaStephen Shaw NEGOTIATION
Juan C FerenczUnited KingdomAmy Elsner PROPOSAL
Costa C WieserUnited KingdomElwin Sharvill UNQUALIFIED
Maria L MarrierCanadaStephen Shaw NEW
Chavez V MorascaSpainStephen Shaw PROPOSAL
Isabel D RutaFranceAnna Fali NEW
Kadeem S BriddickItalyAnna Fali NEGOTIATION
Maisha A KolmetzBrazilAnna Fali QUALIFIED
Ashley N DoeAustraliaAnna Fali QUALIFIED
Darci Y PerinGermanyOnyama Limba UNQUALIFIED
Emily V RulapaughRussiaIoni Bowcher NEGOTIATION
Leja F AlbaresCanadaAsiya Javayant RENEWAL
Frozen Columns
Name
Smith F Campain
Octavia O Darakjy
Aruna E Whobrey
Maria J Dilliard
Costa A Caudy
Julie L Perin
Aruna R Caudy
Emily C Sergi
Silvio W Kusko
Arvin C Malet
Deepesh V Garufi
Francesco G Tollner
Murillo U Butt
Costa A Albares
Darci E Kusko
Jennifer N Paprocki
Tony X Maclead
Silvio E Nicka
Tony G Paprocki
Sinclair J Flosi
Claire Y Shinko
James J Shinko
Jones R Morasca
Maisha S Rim
Francesco O Chui
Leon B Inouye
Chavez U Darakjy
Misaki B Doe
Faith P Royster
Rodrigues G Rulapaugh
Deepesh O Iturbide
Darci T Rim
Kaitlin I Sergi
Antonio N Tollner
Arvin L Doe
David V Wieser
Francesco G Ferencz
Aditya Z Garufi
Cody T Vocelka
Emily B Glick
Ashley E Campain
Jefferson V Kolmetz
Isabel A Doe
Juan J Malet
Clifford Q Stenseth
Francesco R Caudy
Ricardo L Saylors
Ricardo N Oldroyd
Tony B Maclead
Isabel F Foller
IdCountryDate
1000Germany2026-07-16
1001Canada2026-07-26
1002Canada2026-07-02
1003Japan2026-07-23
1004Spain2026-07-26
1005Spain2026-07-03
1006Spain2026-07-15
1007Australia2026-07-29
1008Japan2026-07-14
1009Spain2026-07-28
1010Australia2026-07-05
1011France2026-07-09
1012Germany2026-07-26
1013Italy2026-07-12
1014United Kingdom2026-07-16
1015Brazil2026-07-29
1016Japan2026-07-12
1017Canada2026-07-13
1018Brazil2026-07-07
1019Italy2026-07-05
1020Brazil2026-07-23
1021Spain2026-07-02
1022United Kingdom2026-07-13
1023Japan2026-07-21
1024France2026-07-27
1025Russia2026-07-24
1026Canada2026-07-16
1027Australia2026-07-07
1028Australia2026-06-30
1029France2026-07-06
1030Canada2026-07-04
1031Argentina2026-07-26
1032Brazil2026-07-15
1033United Kingdom2026-07-19
1034Canada2026-07-27
1035Spain2026-07-05
1036Argentina2026-07-02
1037Canada2026-07-24
1038India2026-07-13
1039Australia2026-07-09
1040Spain2026-07-11
1041United Kingdom2026-07-06
1042Spain2026-07-10
1043Russia2026-07-23
1044United Kingdom2026-07-18
1045Argentina2026-07-15
1046Germany2026-07-13
1047Argentina2026-07-12
1048Germany2026-06-30
1049Argentina2026-07-01

On-Demand Data

NameIdCountryDate
Greenwood R Amigon1000Germany2026-07-01
Aruna R Foller1001Germany2026-07-26
Antonio B Stenseth1002Argentina2026-07-26
Rodrigues S Campain1003Australia2026-07-01
Faith B Nicka1004Canada2026-07-10
Kaitlin Y Tollner1005Canada2026-07-26
Clifford A Ostrosky1006United Kingdom2026-07-06
Faith G Malet1007Russia2026-07-20
Chavez D Maclead1008Argentina2026-07-22
Octavia C Stockham1009India2026-07-15
Juan R Saylors1010India2026-07-03
David H Doe1011France2026-07-09
Leon G Garufi1012Spain2026-07-10
Deepesh F Perin1013Australia2026-07-16
Ashley E Chui1014Russia2026-07-28
Leja E Chui1015Italy2026-07-14
Smith K Maclead1016Canada2026-07-20
James Y Chui1017Japan2026-07-26
Deepesh E Caldarera1018Spain2026-07-02
Maisha Z Glick1019Japan2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie H SlusarskiItalyIoni Bowcher NEGOTIATION
Arvin S MaletUnited KingdomAnna Fali NEGOTIATION
Aditya Y RulapaughUnited KingdomStephen Shaw RENEWAL
Maisha J GauchoSpainAmy Elsner RENEWAL
Leja O CampainUnited KingdomXuxue Feng UNQUALIFIED
Nicolas D MacleadJapanIvan Magalhaes NEGOTIATION
Salvatore H AlbaresGermanyBernardo Dominic QUALIFIED
Jeanfrancois V GarufiUnited KingdomIoni Bowcher NEGOTIATION
Morrow K SchemmerGermanyStephen Shaw NEW
Salvatore M WieserFranceAnna Fali QUALIFIED
Arvin W KuskoBrazilXuxue Feng PROPOSAL
Salvatore W KolmetzBrazilBernardo Dominic UNQUALIFIED
Faith J KolmetzAustraliaOnyama Limba NEGOTIATION
Clifford F SchemmerJapanIoni Bowcher QUALIFIED
Rodrigues S NestleRussiaStephen Shaw RENEWAL
Adams N AlbaresArgentinaIoni Bowcher RENEWAL
Mujtaba P FlosiCanadaStephen Shaw PROPOSAL
Mayumi F SergiSpainBernardo Dominic QUALIFIED
Mayumi W RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba E StockhamGermanyXuxue Feng NEW
David B WieserSpainIvan Magalhaes QUALIFIED
Antonio V OstroskyIndiaElwin Sharvill RENEWAL
Nicolas V FollerRussiaElwin Sharvill UNQUALIFIED
Sinclair J PaprockiSpainIoni Bowcher NEGOTIATION
Arvin P WhobreyJapanOnyama Limba PROPOSAL
Sinclair R OldroydFranceAnna Fali NEW
Mayumi O SaylorsItalyAmy Elsner RENEWAL
Jones X FollerIndiaAmy Elsner PROPOSAL
Nicolas M VenereItalyAmy Elsner NEGOTIATION
David N ShinkoBrazilAmy Elsner QUALIFIED
Silvio V AlbaresArgentinaAsiya Javayant UNQUALIFIED
Antonio M MacleadBrazilBernardo Dominic NEGOTIATION
Stacey Y BriddickGermanyBernardo Dominic RENEWAL
Johnson W SergiAustraliaAnna Fali QUALIFIED
Maisha D MaletCanadaOnyama Limba NEW
Tony Y RutaFranceAmy Elsner QUALIFIED
Nicolas P OldroydJapanStephen Shaw QUALIFIED
Wickens B RoysterAustraliaStephen Shaw QUALIFIED
Chavez G FlosiGermanyBernardo Dominic NEGOTIATION
Adams U MaletFranceXuxue Feng NEW

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