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
Morrow Y VocelkaGermanyAsiya Javayant QUALIFIED
Julie E OstroskyIndiaIvan Magalhaes UNQUALIFIED
Clifford K BowleyBrazilAsiya Javayant UNQUALIFIED
Leon X NickaJapanElwin Sharvill NEGOTIATION
Jones F FollerCanadaAmy Elsner NEW
Kaitlin I KuskoItalyAmy Elsner PROPOSAL
Jeanfrancois K KolmetzJapanAnna Fali RENEWAL
Sinclair D SchemmerIndiaBernardo Dominic RENEWAL
Juan G DilliardGermanyAnna Fali RENEWAL
Munro D SaylorsCanadaIoni Bowcher QUALIFIED
Ricardo L GlickIndiaElwin Sharvill PROPOSAL
Isabel J SlusarskiAustraliaXuxue Feng QUALIFIED
Rodrigues D MaletSpainIoni Bowcher QUALIFIED
Antonio F OstroskyGermanyStephen Shaw RENEWAL
Ashley E WhobreySpainStephen Shaw UNQUALIFIED
David V NickaUnited KingdomStephen Shaw UNQUALIFIED
Izzy G ChuiRussiaElwin Sharvill NEGOTIATION
Jeanfrancois K AlbaresCanadaElwin Sharvill PROPOSAL
Deepesh K BologniaIndiaAnna Fali QUALIFIED
Ivar Y MorascaCanadaOnyama Limba NEW
Ricardo D FollerSpainIoni Bowcher UNQUALIFIED
Aditya J PoquetteSpainBernardo Dominic QUALIFIED
Maria O ButtCanadaElwin Sharvill UNQUALIFIED
Silvio Q RoysterSpainElwin Sharvill PROPOSAL
Rodrigues D FlosiBrazilOnyama Limba NEW
David F VenereIndiaOnyama Limba NEGOTIATION
Jeanfrancois E WhobreySpainStephen Shaw NEGOTIATION
Salvatore T BriddickUnited KingdomElwin Sharvill NEW
Leja P WhobreyUnited KingdomBernardo Dominic PROPOSAL
Rodrigues T MacleadRussiaAsiya Javayant RENEWAL
Francesco D NestleJapanXuxue Feng RENEWAL
Ivar H RoysterGermanyStephen Shaw NEGOTIATION
Antonio T AlbaresCanadaOnyama Limba NEGOTIATION
Adams V BologniaSpainElwin Sharvill NEW
Ivar X FigeroaFranceXuxue Feng NEW
Salvatore J MaletBrazilAmy Elsner NEGOTIATION
Alejandro Q SlusarskiArgentinaAmy Elsner PROPOSAL
Adams G BriddickBrazilBernardo Dominic NEW
Nicolas S GlickFranceIvan Magalhaes PROPOSAL
Clifford R RulapaughRussiaAnna Fali UNQUALIFIED
Ivar A OldroydSpainAmy Elsner UNQUALIFIED
Alejandro C SchemmerItalyElwin Sharvill NEGOTIATION
Julie S OstroskyFranceOnyama Limba NEW
Munro Q GillianFranceIvan Magalhaes PROPOSAL
Misaki C PerinIndiaIvan Magalhaes UNQUALIFIED
Johnson G KuskoSpainXuxue Feng QUALIFIED
Jennifer T OstroskySpainXuxue Feng PROPOSAL
Kaitlin A StensethCanadaBernardo Dominic QUALIFIED
Antonio N InouyeCanadaAnna Fali NEW
Jeanfrancois S GillianUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro O RutaArgentinaAnna Fali NEW
Aditya S RoysterRussiaElwin Sharvill UNQUALIFIED
Maisha E FlosiUnited KingdomAmy Elsner PROPOSAL
David W MaletCanadaXuxue Feng UNQUALIFIED
Ricardo X MarrierJapanAnna Fali UNQUALIFIED
David Q DilliardBrazilAmy Elsner RENEWAL
Greenwood A OstroskyCanadaAmy Elsner UNQUALIFIED
Darci X ShinkoBrazilIoni Bowcher PROPOSAL
Maisha J MarrierBrazilStephen Shaw QUALIFIED
Cody N ButtItalyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco R WhobreyFrance2026-07-13Feiner Bros UNQUALIFIED65Ivan Magalhaes
1001Misaki T DoeBrazil2026-07-20Morlong Associates UNQUALIFIED91Amy Elsner
1002Leon M GauchoFrance2026-07-23Benton, John B Jr PROPOSAL40Onyama Limba
1003Ashley A TollnerRussia2026-07-03Rousseaux, Michael Esq NEW26Stephen Shaw
1004Mujtaba O GlickArgentina2026-07-01Feiner Bros NEW22Elwin Sharvill
1005Sinclair D NestleCanada2026-07-22Buckley Miller Wright PROPOSAL66Bernardo Dominic
1006Jones Q StockhamIndia2026-07-09Morlong Associates UNQUALIFIED44Elwin Sharvill
1007Costa H RimUnited Kingdom2026-07-07Truhlar And Truhlar Attys UNQUALIFIED7Elwin Sharvill
1008Aruna B CaldareraJapan2026-07-16Feiner Bros NEW49Ioni Bowcher
1009Jones P FollerIndia2026-07-21Benton, John B Jr UNQUALIFIED5Asiya Javayant
1010Mujtaba Y CampainIndia2026-06-26Chemel, James L Cpa RENEWAL22Elwin Sharvill
1011Tony K MaletItaly2026-07-06Buckley Miller Wright NEGOTIATION24Stephen Shaw
1012Greenwood T AlbaresItaly2026-06-25Benton, John B Jr QUALIFIED43Elwin Sharvill
1013Ashley Z OldroydSpain2026-07-12King, Christopher A Esq QUALIFIED18Bernardo Dominic
1014Leja T NickaArgentina2026-07-02King, Christopher A Esq PROPOSAL50Stephen Shaw
1015Stacey O NestleAustralia2026-07-04Dorl, James J Esq NEGOTIATION35Asiya Javayant
1016Stacey C FlosiGermany2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED43Onyama Limba
1017Mayumi L TollnerArgentina2026-07-21Feiner Bros UNQUALIFIED20Anna Fali
1018Arvin R MarrierArgentina2026-07-04Feiner Bros NEW41Bernardo Dominic
1019Juan V PerinAustralia2026-07-24Feiner Bros QUALIFIED68Ivan Magalhaes
1020Antonio S WieserIndia2026-07-08Printing Dimensions RENEWAL4Stephen Shaw
1021Kaitlin K ButtCanada2026-07-08Rousseaux, Michael Esq NEW34Onyama Limba
1022Munro R InouyeRussia2026-06-25Chanay, Jeffrey A Esq NEGOTIATION65Ivan Magalhaes
1023David J VenereUnited Kingdom2026-07-20Chemel, James L Cpa PROPOSAL25Bernardo Dominic
1024Jeanfrancois M WaycottAustralia2026-06-27Feiner Bros NEGOTIATION42Elwin Sharvill
1025Arvin P WieserFrance2026-07-12King, Christopher A Esq QUALIFIED0Ioni Bowcher
1026Leon L CaldareraIndia2026-07-24Feiner Bros UNQUALIFIED34Bernardo Dominic
1027Greenwood W NestleRussia2026-06-26King, Christopher A Esq NEW67Anna Fali
1028Kadeem A MaletAustralia2026-07-13Chapman, Ross E Esq NEGOTIATION13Ioni Bowcher
1029Izzy X WhobreyRussia2026-07-11Printing Dimensions UNQUALIFIED10Elwin Sharvill
1030Misaki R KuskoArgentina2026-07-15Chemel, James L Cpa QUALIFIED64Asiya Javayant
1031Nicolas B OldroydGermany2026-07-10Commercial Press PROPOSAL54Bernardo Dominic
1032Murillo X CampainBrazil2026-06-29Commercial Press RENEWAL53Amy Elsner
1033Clifford M PoquetteSpain2026-07-18Chanay, Jeffrey A Esq RENEWAL98Ivan Magalhaes
1034Mujtaba R CaldareraIndia2026-07-15Feiner Bros PROPOSAL68Xuxue Feng
1035Costa W IturbideAustralia2026-06-30Feltz Printing Service NEW96Onyama Limba
1036Silvio F CaldareraSpain2026-07-09Benton, John B Jr NEGOTIATION95Elwin Sharvill
1037Claire O WaycottFrance2026-07-04King, Christopher A Esq QUALIFIED50Ioni Bowcher
1038Ricardo N WaycottRussia2026-06-25Rangoni Of Florence NEGOTIATION2Bernardo Dominic
1039Ivar D GarufiRussia2026-06-25Printing Dimensions QUALIFIED81Elwin Sharvill
1040David N NestleRussia2026-07-04Chapman, Ross E Esq NEGOTIATION74Xuxue Feng
1041Murillo Y WieserBrazil2026-07-24Rangoni Of Florence PROPOSAL22Onyama Limba
1042Arvin G KuskoJapan2026-07-16Commercial Press RENEWAL28Onyama Limba
1043Ashley Q BriddickArgentina2026-07-01Truhlar And Truhlar Attys RENEWAL79Xuxue Feng
1044Isabel K GlickAustralia2026-07-17Rangoni Of Florence NEGOTIATION4Amy Elsner
1045Aika S AmigonRussia2026-06-26Rangoni Of Florence NEGOTIATION40Elwin Sharvill
1046Octavia I CaldareraSpain2026-07-09Chanay, Jeffrey A Esq NEGOTIATION96Amy Elsner
1047Jones T OldroydGermany2026-06-28Commercial Press QUALIFIED48Elwin Sharvill
1048Maria Q CaldareraCanada2026-07-17Buckley Miller Wright NEW38Ioni Bowcher
1049Julie J OldroydRussia2026-07-09Truhlar And Truhlar Attys PROPOSAL87Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy O InouyeIndiaElwin Sharvill NEW
Ashley I SchemmerIndiaElwin Sharvill UNQUALIFIED
Izzy X NickaJapanOnyama Limba UNQUALIFIED
Juan A NestleSpainAnna Fali NEW
Aruna A GillianJapanXuxue Feng QUALIFIED
Aika F PerinAustraliaStephen Shaw QUALIFIED
Johnson Y KuskoGermanyElwin Sharvill PROPOSAL
Jones H OldroydItalyIvan Magalhaes NEW
Emily H GlickJapanXuxue Feng NEW
Francesco K RulapaughAustraliaXuxue Feng RENEWAL
Octavia Z SlusarskiGermanyAmy Elsner NEGOTIATION
James B PoquetteCanadaIvan Magalhaes RENEWAL
Antonio F FollerRussiaAnna Fali PROPOSAL
Ashley E StensethAustraliaAnna Fali UNQUALIFIED
Chavez R DilliardUnited KingdomStephen Shaw PROPOSAL
Izzy P PaprockiArgentinaOnyama Limba QUALIFIED
Alejandro Z FollerBrazilStephen Shaw QUALIFIED
Maria W SergiFranceAmy Elsner PROPOSAL
Munro Z AlbaresRussiaBernardo Dominic RENEWAL
Izzy L MaletFranceBernardo Dominic UNQUALIFIED
Izzy C MorascaFranceIvan Magalhaes RENEWAL
Aruna R BowleyBrazilAnna Fali NEW
Ricardo S MaletArgentinaAsiya Javayant NEGOTIATION
Morrow D StensethArgentinaIvan Magalhaes NEW
Julie A AlbaresCanadaXuxue Feng NEGOTIATION
Izzy T SaylorsRussiaAmy Elsner UNQUALIFIED
Greenwood K WaycottItalyXuxue Feng PROPOSAL
Leja L KuskoSpainIoni Bowcher UNQUALIFIED
Claire C CampainCanadaStephen Shaw NEW
Claire R ChuiIndiaIoni Bowcher RENEWAL
Smith S OldroydArgentinaBernardo Dominic PROPOSAL
Jefferson P OstroskyItalyElwin Sharvill NEW
Maisha D RoysterUnited KingdomBernardo Dominic QUALIFIED
Emily D InouyeGermanyIoni Bowcher UNQUALIFIED
Misaki L ShinkoSpainIvan Magalhaes PROPOSAL
Sinclair L VenereBrazilAnna Fali NEGOTIATION
Jeanfrancois F SaylorsFranceAsiya Javayant QUALIFIED
Ricardo W GlickRussiaXuxue Feng QUALIFIED
Jennifer J BriddickAustraliaOnyama Limba PROPOSAL
Johnson N GarufiItalyElwin Sharvill NEGOTIATION
Deepesh X WieserBrazilBernardo Dominic QUALIFIED
Clifford E ButtJapanBernardo Dominic UNQUALIFIED
Chavez L CampainRussiaIoni Bowcher RENEWAL
Adams B PoquetteArgentinaOnyama Limba PROPOSAL
Wickens G InouyeAustraliaAnna Fali NEW
Adams R CaudyBrazilAmy Elsner RENEWAL
David R KolmetzJapanXuxue Feng UNQUALIFIED
Salvatore N DoeAustraliaElwin Sharvill QUALIFIED
Francesco W MacleadRussiaOnyama Limba RENEWAL
Costa U SchemmerArgentinaAmy Elsner NEW
Frozen Columns
Name
Stacey W Rulapaugh
Alejandro M Saylors
Maisha H Malet
Leja N Caldarera
Jennifer V Perin
Adams R Nestle
Mujtaba J Ruta
Nicolas B Rim
Alejandro Y Perin
Munro N Tollner
Stacey L Morasca
Maisha E Iturbide
Darci W Kusko
Maria D Nestle
Isabel I Foller
Juan L Glick
Octavia V Caudy
Maria K Nicka
Chavez I Ostrosky
Aika S Garufi
Alejandro L Campain
Emily E Flosi
Izzy C Campain
Emily N Dilliard
Juan A Slusarski
Arvin R Malet
Johnson G Malet
Chavez U Figeroa
Ivar H Stockham
Kaitlin U Rulapaugh
Munro E Tollner
Jennifer P Stenseth
James J Bowley
Arvin X Oldroyd
Adams J Inouye
Octavia H Nicka
Ashley O Wieser
Isabel N Poquette
Jennifer F Royster
Adams B Figeroa
Ivar W Nestle
Ashley Z Foller
Leja T Campain
Morrow Y Nicka
Chavez P Bowley
Sinclair O Schemmer
Ashley C Figeroa
Juan E Schemmer
Leon S Waycott
Costa G Kusko
IdCountryDate
1000Russia2026-07-12
1001Italy2026-07-20
1002Brazil2026-07-18
1003Japan2026-06-29
1004India2026-07-11
1005France2026-07-03
1006Germany2026-07-18
1007Japan2026-07-20
1008Canada2026-07-14
1009Argentina2026-07-05
1010France2026-07-07
1011Canada2026-07-13
1012France2026-07-18
1013Japan2026-07-22
1014Argentina2026-06-27
1015Canada2026-07-07
1016India2026-07-13
1017Argentina2026-07-20
1018Italy2026-07-12
1019Italy2026-06-26
1020Italy2026-07-20
1021United Kingdom2026-07-20
1022Italy2026-07-07
1023India2026-06-29
1024Brazil2026-07-08
1025Argentina2026-07-03
1026Spain2026-07-13
1027France2026-06-25
1028Germany2026-07-12
1029France2026-06-25
1030Japan2026-07-03
1031Italy2026-07-06
1032United Kingdom2026-06-29
1033Spain2026-07-16
1034United Kingdom2026-07-17
1035Spain2026-07-13
1036Russia2026-07-21
1037Russia2026-07-04
1038Russia2026-07-15
1039France2026-07-23
1040Germany2026-07-05
1041Japan2026-07-17
1042Germany2026-07-06
1043Spain2026-06-26
1044Germany2026-07-17
1045Spain2026-07-22
1046Italy2026-06-27
1047Russia2026-07-09
1048Canada2026-06-30
1049Spain2026-06-28

On-Demand Data

NameIdCountryDate
Aditya V Amigon1000India2026-07-13
Aruna P Malet1001Australia2026-07-16
Alejandro K Amigon1002Spain2026-07-06
Aditya W Venere1003United Kingdom2026-06-27
David K Stockham1004Japan2026-07-10
Mujtaba U Gaucho1005India2026-07-11
Faith Q Slusarski1006United Kingdom2026-07-03
Francesco J Malet1007Canada2026-07-12
Ivar U Waycott1008Russia2026-07-04
Francesco D Doe1009United Kingdom2026-07-03
Deepesh A Morasca1010France2026-07-06
Maria T Dilliard1011India2026-07-15
Clifford D Nestle1012Canada2026-06-25
Ashley R Garufi1013Australia2026-07-14
Emily J Royster1014France2026-07-15
Mayumi V Iturbide1015Australia2026-07-21
James M Amigon1016India2026-07-14
Salvatore F Caldarera1017United Kingdom2026-07-04
Tony V Waycott1018France2026-07-17
Mujtaba Z Caudy1019France2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire N TollnerGermanyIvan Magalhaes RENEWAL
Octavia P GarufiUnited KingdomAsiya Javayant QUALIFIED
Kaitlin C PerinFranceOnyama Limba NEW
Rodrigues M ButtCanadaStephen Shaw RENEWAL
Chavez Z InouyeCanadaAmy Elsner NEGOTIATION
Kadeem S RimFranceBernardo Dominic PROPOSAL
Rodrigues F AmigonCanadaIoni Bowcher UNQUALIFIED
Isabel L AlbaresFranceXuxue Feng RENEWAL
Silvio L PerinSpainIoni Bowcher QUALIFIED
Alejandro P AlbaresCanadaOnyama Limba PROPOSAL
Antonio Y NickaRussiaIvan Magalhaes QUALIFIED
Leja A KuskoCanadaAsiya Javayant UNQUALIFIED
Rodrigues N DilliardCanadaAsiya Javayant UNQUALIFIED
Jennifer U FigeroaItalyOnyama Limba UNQUALIFIED
Leon B WhobreyBrazilXuxue Feng QUALIFIED
Francesco D OstroskySpainOnyama Limba NEGOTIATION
Kaitlin A DarakjyAustraliaIvan Magalhaes NEGOTIATION
Aika S RutaAustraliaOnyama Limba NEGOTIATION
Leja Q ButtUnited KingdomStephen Shaw NEW
Wickens O ButtGermanyIoni Bowcher QUALIFIED
Murillo F SchemmerArgentinaOnyama Limba NEW
Silvio A RutaItalyAmy Elsner PROPOSAL
Claire F GillianBrazilIoni Bowcher QUALIFIED
Maisha C FerenczFranceAnna Fali RENEWAL
Octavia R SlusarskiIndiaStephen Shaw UNQUALIFIED
Jennifer L IturbideJapanXuxue Feng NEGOTIATION
Maria X DilliardUnited KingdomAnna Fali RENEWAL
Juan Y SaylorsAustraliaAmy Elsner PROPOSAL
Jeanfrancois G OstroskyArgentinaXuxue Feng NEW
Nicolas J CampainJapanStephen Shaw NEW
Johnson T ChuiJapanIvan Magalhaes PROPOSAL
Isabel X ShinkoBrazilIoni Bowcher RENEWAL
Rodrigues V RimUnited KingdomXuxue Feng NEW
Nicolas X NickaFranceAmy Elsner QUALIFIED
David R BriddickFranceStephen Shaw NEW
Misaki A NickaGermanyAmy Elsner RENEWAL
Octavia L CaldareraUnited KingdomAsiya Javayant QUALIFIED
Aditya A NestleArgentinaIvan Magalhaes PROPOSAL
Smith R WhobreyJapanOnyama Limba NEGOTIATION
James J NestleArgentinaAsiya Javayant 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>