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
Deepesh V RulapaughSpainAmy Elsner NEW
Maria S DarakjyCanadaAmy Elsner RENEWAL
Costa B DoeUnited KingdomXuxue Feng PROPOSAL
Misaki G FollerFranceIoni Bowcher RENEWAL
Ivar B CaudyAustraliaStephen Shaw QUALIFIED
Antonio Y BowleyIndiaStephen Shaw QUALIFIED
Francesco J MorascaIndiaIoni Bowcher NEGOTIATION
Mayumi K ChuiRussiaAmy Elsner NEW
Cody S StensethJapanAsiya Javayant QUALIFIED
Jones E VenereBrazilOnyama Limba PROPOSAL
Leja Y FigeroaCanadaAmy Elsner QUALIFIED
Mujtaba E CaldareraJapanBernardo Dominic NEW
James X AlbaresItalyAmy Elsner NEGOTIATION
Antonio F BowleyAustraliaXuxue Feng NEGOTIATION
Leon N BologniaFranceElwin Sharvill RENEWAL
Misaki Z RutaAustraliaBernardo Dominic UNQUALIFIED
Jones M RimItalyAsiya Javayant RENEWAL
Nicolas G RutaUnited KingdomAsiya Javayant PROPOSAL
Clifford A OldroydItalyElwin Sharvill UNQUALIFIED
Jennifer D NestleSpainAsiya Javayant NEW
Kadeem H MacleadGermanyXuxue Feng NEGOTIATION
Rodrigues Z RutaJapanAmy Elsner QUALIFIED
Aruna C InouyeJapanIoni Bowcher RENEWAL
Isabel L CampainIndiaAmy Elsner RENEWAL
Adams C KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Rodrigues U BologniaFranceBernardo Dominic RENEWAL
Murillo O FigeroaIndiaOnyama Limba UNQUALIFIED
Faith O TollnerJapanAnna Fali NEW
Jefferson Q WieserFranceIvan Magalhaes UNQUALIFIED
Ivar W BriddickSpainOnyama Limba NEW
Mujtaba G RutaBrazilIoni Bowcher NEGOTIATION
Cody V PaprockiCanadaOnyama Limba UNQUALIFIED
Juan W WieserCanadaIvan Magalhaes NEGOTIATION
Emily K DilliardFranceStephen Shaw RENEWAL
Salvatore M FlosiGermanyOnyama Limba NEGOTIATION
David L VenereUnited KingdomAnna Fali NEW
Nicolas R WaycottRussiaStephen Shaw NEGOTIATION
Izzy O NickaJapanIoni Bowcher PROPOSAL
Ashley A RoysterRussiaIvan Magalhaes NEW
Aruna H StockhamItalyAnna Fali RENEWAL
James W RimUnited KingdomAnna Fali PROPOSAL
Tony F NickaIndiaElwin Sharvill QUALIFIED
Leja Q VenereUnited KingdomBernardo Dominic NEGOTIATION
Antonio L GillianRussiaStephen Shaw RENEWAL
Tony O ChuiArgentinaAmy Elsner PROPOSAL
Ashley S CampainJapanBernardo Dominic UNQUALIFIED
Isabel T SchemmerIndiaBernardo Dominic RENEWAL
Maria D SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Tony Q GlickIndiaBernardo Dominic NEW
Octavia V CampainArgentinaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens N StockhamCanadaIoni Bowcher UNQUALIFIED
Sinclair K WieserUnited KingdomXuxue Feng UNQUALIFIED
Adams J SaylorsAustraliaXuxue Feng PROPOSAL
Mayumi R ChuiGermanyStephen Shaw NEW
Silvio W ChuiBrazilXuxue Feng NEW
Faith E IturbideCanadaIoni Bowcher UNQUALIFIED
Darci H ChuiSpainAmy Elsner PROPOSAL
James J RimBrazilIoni Bowcher RENEWAL
Leja P MacleadBrazilIoni Bowcher NEW
Morrow F GarufiItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio U DoeAustralia2026-07-02Printing Dimensions PROPOSAL59Stephen Shaw
1001Isabel S GauchoJapan2026-07-05Feltz Printing Service NEW27Asiya Javayant
1002Kaitlin Y AmigonUnited Kingdom2026-06-21Rousseaux, Michael Esq UNQUALIFIED29Anna Fali
1003Johnson F IturbideIndia2026-06-25Benton, John B Jr NEW10Onyama Limba
1004David G DarakjyArgentina2026-06-06Dorl, James J Esq QUALIFIED2Anna Fali
1005Greenwood N CaudyGermany2026-06-24Morlong Associates NEW55Bernardo Dominic
1006Kaitlin I OldroydIndia2026-07-02Feltz Printing Service RENEWAL22Amy Elsner
1007Kadeem U RulapaughGermany2026-07-02Truhlar And Truhlar Attys NEW45Ivan Magalhaes
1008Chavez U CaudyBrazil2026-06-24Benton, John B Jr QUALIFIED67Stephen Shaw
1009Mayumi X DoeItaly2026-06-28Chanay, Jeffrey A Esq RENEWAL0Anna Fali
1010Aditya M BriddickBrazil2026-06-06Morlong Associates PROPOSAL29Amy Elsner
1011Costa Z VocelkaIndia2026-06-08King, Christopher A Esq PROPOSAL43Elwin Sharvill
1012Arvin O DilliardRussia2026-07-01Buckley Miller Wright UNQUALIFIED13Anna Fali
1013Darci F WhobreyAustralia2026-06-29Dorl, James J Esq NEW23Bernardo Dominic
1014Silvio Q FerenczUnited Kingdom2026-06-08Feltz Printing Service PROPOSAL9Asiya Javayant
1015Jefferson X GauchoIndia2026-07-02Commercial Press RENEWAL15Asiya Javayant
1016Tony B InouyeArgentina2026-06-18Printing Dimensions RENEWAL21Bernardo Dominic
1017Maria D SaylorsItaly2026-06-26Chapman, Ross E Esq NEGOTIATION82Elwin Sharvill
1018Emily B SlusarskiJapan2026-06-21Feiner Bros RENEWAL69Bernardo Dominic
1019Jennifer E KuskoBrazil2026-07-01Chapman, Ross E Esq RENEWAL40Onyama Limba
1020Deepesh C SergiItaly2026-07-01Chemel, James L Cpa PROPOSAL65Anna Fali
1021Faith B PoquetteJapan2026-06-10Chanay, Jeffrey A Esq QUALIFIED86Onyama Limba
1022Murillo A OldroydArgentina2026-06-12Benton, John B Jr UNQUALIFIED88Ivan Magalhaes
1023Faith Y FlosiGermany2026-06-15Commercial Press UNQUALIFIED39Anna Fali
1024Julie Y RutaArgentina2026-06-25Dorl, James J Esq NEGOTIATION44Stephen Shaw
1025Kadeem G MaletAustralia2026-07-04Morlong Associates NEW84Onyama Limba
1026Greenwood V WieserFrance2026-06-17Chapman, Ross E Esq PROPOSAL57Amy Elsner
1027Octavia G GauchoUnited Kingdom2026-06-18Commercial Press QUALIFIED63Xuxue Feng
1028Sinclair Z RoysterGermany2026-06-15Printing Dimensions QUALIFIED54Amy Elsner
1029Maria L BologniaCanada2026-06-14Truhlar And Truhlar Attys QUALIFIED5Onyama Limba
1030James Y PoquetteJapan2026-06-11Feltz Printing Service PROPOSAL79Bernardo Dominic
1031Murillo X PerinRussia2026-06-06Morlong Associates NEW97Elwin Sharvill
1032Deepesh L ShinkoFrance2026-07-02Chanay, Jeffrey A Esq RENEWAL88Stephen Shaw
1033Aruna W GarufiIndia2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED68Ioni Bowcher
1034Ivar Z FollerFrance2026-06-25Morlong Associates NEGOTIATION13Anna Fali
1035Isabel N FerenczSpain2026-06-19Chapman, Ross E Esq QUALIFIED61Elwin Sharvill
1036Nicolas A CaldareraGermany2026-06-18Chapman, Ross E Esq NEW57Xuxue Feng
1037Munro O MacleadJapan2026-06-10Chemel, James L Cpa QUALIFIED17Amy Elsner
1038Costa Q MarrierRussia2026-06-23Chanay, Jeffrey A Esq NEW72Ivan Magalhaes
1039Murillo Y RimBrazil2026-06-15Truhlar And Truhlar Attys UNQUALIFIED93Asiya Javayant
1040Leon X ButtSpain2026-06-17Dorl, James J Esq QUALIFIED82Asiya Javayant
1041David Q MacleadAustralia2026-07-05Dorl, James J Esq NEW41Ivan Magalhaes
1042Clifford W InouyeBrazil2026-06-26Buckley Miller Wright RENEWAL22Onyama Limba
1043Antonio O CaudyJapan2026-06-11Benton, John B Jr PROPOSAL46Elwin Sharvill
1044Nicolas E RulapaughSpain2026-06-18Commercial Press QUALIFIED84Ioni Bowcher
1045Leja G ShinkoUnited Kingdom2026-06-18Truhlar And Truhlar Attys QUALIFIED94Xuxue Feng
1046Jones K StockhamFrance2026-06-15Dorl, James J Esq RENEWAL22Ivan Magalhaes
1047Leon L DoeIndia2026-07-01Buckley Miller Wright QUALIFIED57Asiya Javayant
1048Emily E AlbaresArgentina2026-06-26Feltz Printing Service NEGOTIATION31Ioni Bowcher
1049Darci T PoquetteAustralia2026-06-27King, Christopher A Esq QUALIFIED67Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ashley E KuskoJapanXuxue Feng NEGOTIATION
Murillo O DilliardFranceStephen Shaw NEW
James N NestleCanadaStephen Shaw NEGOTIATION
Maria L BowleyUnited KingdomOnyama Limba NEW
Aruna H TollnerArgentinaIvan Magalhaes UNQUALIFIED
Sinclair A GlickAustraliaIvan Magalhaes PROPOSAL
Izzy K GarufiSpainStephen Shaw QUALIFIED
Jefferson J AmigonSpainAsiya Javayant UNQUALIFIED
Deepesh T WaycottIndiaAmy Elsner NEW
Cody T CaudyArgentinaAnna Fali QUALIFIED
Munro Y FlosiIndiaAsiya Javayant UNQUALIFIED
Julie P OstroskyFranceIoni Bowcher NEW
Maisha U PerinItalyBernardo Dominic NEW
Claire F OstroskySpainOnyama Limba RENEWAL
Costa K BowleyItalyAnna Fali PROPOSAL
Claire Y WhobreyRussiaElwin Sharvill QUALIFIED
Faith S AlbaresGermanyBernardo Dominic QUALIFIED
Aruna J PoquetteItalyIoni Bowcher RENEWAL
Munro C ShinkoBrazilAsiya Javayant PROPOSAL
Smith K AmigonItalyOnyama Limba UNQUALIFIED
Rodrigues U WieserFranceAnna Fali QUALIFIED
Jennifer Q WaycottRussiaIoni Bowcher NEGOTIATION
Leon X MarrierUnited KingdomIoni Bowcher QUALIFIED
Ivar G RulapaughCanadaBernardo Dominic NEGOTIATION
Leja M StockhamUnited KingdomStephen Shaw NEGOTIATION
James H BowleyAustraliaStephen Shaw QUALIFIED
Alejandro T OstroskyIndiaAmy Elsner NEGOTIATION
Ashley N FlosiUnited KingdomXuxue Feng NEGOTIATION
Jeanfrancois N TollnerCanadaXuxue Feng NEGOTIATION
Rodrigues W KuskoFranceAmy Elsner QUALIFIED
Alejandro L NestleCanadaXuxue Feng NEW
Silvio Z ShinkoGermanyXuxue Feng NEW
Stacey X SaylorsCanadaAsiya Javayant QUALIFIED
Leon B DarakjyCanadaAsiya Javayant QUALIFIED
Rodrigues O WaycottJapanOnyama Limba QUALIFIED
Jefferson E WieserJapanAmy Elsner QUALIFIED
Kaitlin G RimItalyStephen Shaw UNQUALIFIED
Jennifer J OstroskyIndiaOnyama Limba RENEWAL
Misaki K NestleUnited KingdomAmy Elsner UNQUALIFIED
Wickens X SaylorsFranceStephen Shaw QUALIFIED
Ivar O GauchoItalyOnyama Limba QUALIFIED
James I StockhamUnited KingdomOnyama Limba RENEWAL
Kaitlin O RoysterArgentinaOnyama Limba NEW
Murillo Y MacleadAustraliaIvan Magalhaes QUALIFIED
David O IturbideArgentinaIvan Magalhaes NEW
Chavez D MaletUnited KingdomAsiya Javayant RENEWAL
Jennifer Z StensethItalyOnyama Limba NEW
Mujtaba G CampainJapanAnna Fali QUALIFIED
Kadeem A FollerFranceAnna Fali RENEWAL
Faith P VocelkaFranceElwin Sharvill NEGOTIATION
Frozen Columns
Name
Maria C Perin
Jennifer X Campain
Ashley F Perin
Faith O Sergi
Chavez U Sergi
Adams J Briddick
Rodrigues O Amigon
Ashley A Schemmer
Antonio K Perin
Sinclair T Kusko
Mayumi O Oldroyd
Clifford Z Waycott
Juan S Ostrosky
Kadeem Z Vocelka
Jefferson C Iturbide
Isabel Y Ostrosky
Salvatore Q Ruta
Costa C Morasca
Faith W Inouye
David T Bowley
Maisha J Sergi
Morrow L Doe
Jennifer O Campain
Leon E Waycott
Wickens X Royster
Jeanfrancois Q Shinko
Morrow E Chui
Costa P Malet
Emily I Bowley
Darci D Iturbide
Mujtaba R Dilliard
James U Tollner
Mujtaba Y Garufi
Claire E Campain
Kaitlin N Caudy
Cody T Waycott
Aditya X Gillian
Mujtaba T Waycott
Smith L Rim
Jennifer E Ferencz
Mayumi B Tollner
Darci P Nestle
Greenwood F Flosi
Wickens K Kolmetz
Stacey M Rulapaugh
Kaitlin H Poquette
Kaitlin H Butt
Alejandro G Inouye
Tony H Figeroa
Wickens C Sergi
IdCountryDate
1000United Kingdom2026-06-08
1001Russia2026-06-20
1002Spain2026-06-12
1003Argentina2026-06-18
1004Brazil2026-06-23
1005Russia2026-06-27
1006Japan2026-06-07
1007Brazil2026-06-16
1008Australia2026-07-04
1009Canada2026-06-14
1010Brazil2026-06-06
1011Brazil2026-06-25
1012Spain2026-06-28
1013Canada2026-07-02
1014Japan2026-06-13
1015Canada2026-06-10
1016Italy2026-06-21
1017Germany2026-06-28
1018Argentina2026-07-03
1019Canada2026-06-06
1020United Kingdom2026-06-14
1021Russia2026-06-14
1022United Kingdom2026-06-09
1023Spain2026-06-17
1024Spain2026-06-25
1025Brazil2026-06-17
1026Germany2026-06-21
1027Canada2026-06-08
1028Spain2026-07-03
1029France2026-06-14
1030Argentina2026-06-12
1031Spain2026-06-17
1032Germany2026-06-13
1033Canada2026-06-06
1034India2026-06-28
1035Spain2026-06-23
1036Spain2026-06-07
1037United Kingdom2026-06-19
1038France2026-06-11
1039Australia2026-06-27
1040Russia2026-07-03
1041France2026-07-04
1042Spain2026-06-27
1043Italy2026-06-30
1044India2026-06-07
1045United Kingdom2026-06-13
1046United Kingdom2026-06-13
1047Australia2026-06-28
1048Germany2026-06-23
1049Canada2026-07-05

On-Demand Data

NameIdCountryDate
Aika P Nestle1000Japan2026-06-14
Smith X Flosi1001Spain2026-06-30
Francesco M Foller1002Argentina2026-06-17
Morrow L Amigon1003Canada2026-06-16
Stacey J Darakjy1004Canada2026-06-12
Nicolas Q Shinko1005Spain2026-06-11
Silvio W Caudy1006Spain2026-07-01
Claire Q Figeroa1007Canada2026-06-18
Darci E Darakjy1008Russia2026-07-04
Emily K Albares1009United Kingdom2026-06-07
Juan B Morasca1010Russia2026-06-20
Adams B Garufi1011Argentina2026-06-18
Isabel S Whobrey1012Brazil2026-06-23
Leja L Caudy1013Canada2026-06-29
Jones R Slusarski1014United Kingdom2026-06-10
Cody R Ostrosky1015Japan2026-06-30
Leja C Paprocki1016Australia2026-06-11
David R Ostrosky1017Brazil2026-06-29
Aika A Doe1018Australia2026-06-09
Maisha X Shinko1019Argentina2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith T FollerGermanyIoni Bowcher RENEWAL
Leon S ChuiRussiaAnna Fali QUALIFIED
Nicolas L FollerBrazilAnna Fali PROPOSAL
Silvio X ButtAustraliaElwin Sharvill NEW
Izzy A SergiBrazilElwin Sharvill QUALIFIED
Stacey J AlbaresArgentinaAmy Elsner PROPOSAL
David R CampainCanadaAnna Fali UNQUALIFIED
Claire A ButtRussiaStephen Shaw QUALIFIED
Alejandro L CaudyGermanyIoni Bowcher RENEWAL
Morrow B KolmetzCanadaStephen Shaw QUALIFIED
Aruna G PoquetteItalyBernardo Dominic QUALIFIED
Aditya E PoquetteSpainOnyama Limba UNQUALIFIED
Juan W WaycottArgentinaAmy Elsner RENEWAL
Leja H SchemmerSpainAsiya Javayant RENEWAL
Misaki O MarrierJapanBernardo Dominic NEW
Morrow F OstroskyCanadaXuxue Feng NEGOTIATION
Stacey F RutaArgentinaBernardo Dominic PROPOSAL
Morrow T GlickGermanyStephen Shaw NEGOTIATION
Jennifer A MaletItalyOnyama Limba NEW
Aruna R PerinGermanyElwin Sharvill RENEWAL
Salvatore O VocelkaJapanStephen Shaw UNQUALIFIED
Tony P SchemmerBrazilAmy Elsner QUALIFIED
Salvatore L MarrierItalyIvan Magalhaes RENEWAL
Kadeem U VenereGermanyXuxue Feng PROPOSAL
Emily F GlickArgentinaBernardo Dominic NEW
Deepesh O RimIndiaXuxue Feng NEGOTIATION
Nicolas X BologniaItalyIoni Bowcher NEGOTIATION
Isabel D VocelkaArgentinaXuxue Feng NEGOTIATION
Stacey M IturbideGermanyOnyama Limba UNQUALIFIED
Aditya I VocelkaAustraliaBernardo Dominic RENEWAL
Francesco L VenereBrazilAmy Elsner UNQUALIFIED
Ivar A SergiBrazilAnna Fali NEW
Ashley J SergiCanadaAmy Elsner NEW
Salvatore G SchemmerUnited KingdomIoni Bowcher QUALIFIED
Kadeem C PerinBrazilElwin Sharvill UNQUALIFIED
Ashley F FlosiGermanyStephen Shaw RENEWAL
Aika E WhobreyFranceAmy Elsner RENEWAL
Murillo P CaudyCanadaAsiya Javayant NEGOTIATION
Clifford T NestleItalyIoni Bowcher UNQUALIFIED
Octavia D PerinRussiaXuxue 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>