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
Kaitlin W FigeroaArgentinaAnna Fali NEGOTIATION
Arvin R VenereRussiaIoni Bowcher UNQUALIFIED
Deepesh C RoysterCanadaIoni Bowcher PROPOSAL
Chavez H CaldareraCanadaIvan Magalhaes RENEWAL
Leja L CampainBrazilIvan Magalhaes NEW
Mujtaba D CaudyBrazilXuxue Feng PROPOSAL
Claire J SergiArgentinaStephen Shaw UNQUALIFIED
Aruna C VocelkaArgentinaElwin Sharvill RENEWAL
Jennifer A NestleArgentinaIvan Magalhaes NEW
Cody P AmigonAustraliaXuxue Feng PROPOSAL
Johnson M AlbaresFranceStephen Shaw NEGOTIATION
Chavez V IturbideGermanyAnna Fali NEGOTIATION
Stacey F NestleCanadaAnna Fali NEGOTIATION
Misaki K WaycottGermanyAnna Fali UNQUALIFIED
Misaki Y PerinArgentinaAmy Elsner NEW
Ricardo V TollnerSpainBernardo Dominic NEW
Alejandro T MacleadItalyOnyama Limba QUALIFIED
Ivar K GarufiSpainIoni Bowcher NEW
Julie J ShinkoAustraliaAsiya Javayant QUALIFIED
Mujtaba X SlusarskiItalyAnna Fali PROPOSAL
Ashley D KuskoFranceXuxue Feng QUALIFIED
Claire C StockhamBrazilStephen Shaw QUALIFIED
Isabel D FollerSpainStephen Shaw UNQUALIFIED
Costa B MorascaFranceAmy Elsner UNQUALIFIED
Salvatore V PoquetteFranceStephen Shaw UNQUALIFIED
Julie N VocelkaBrazilAsiya Javayant PROPOSAL
Murillo S OstroskyCanadaIoni Bowcher QUALIFIED
Kaitlin U BowleyJapanStephen Shaw NEGOTIATION
Octavia O DoeAustraliaIoni Bowcher NEGOTIATION
Wickens J ButtCanadaOnyama Limba NEW
Leon X VenereAustraliaElwin Sharvill RENEWAL
Ashley W DilliardFranceAnna Fali UNQUALIFIED
Greenwood O WieserIndiaBernardo Dominic RENEWAL
Maisha H NestleGermanyBernardo Dominic RENEWAL
Mujtaba M ShinkoGermanyOnyama Limba QUALIFIED
Isabel T MorascaUnited KingdomStephen Shaw QUALIFIED
Juan G GauchoGermanyAsiya Javayant NEGOTIATION
Johnson R SchemmerIndiaIoni Bowcher PROPOSAL
Darci K MacleadArgentinaBernardo Dominic NEGOTIATION
Costa S BriddickArgentinaAmy Elsner PROPOSAL
Emily N StockhamItalyXuxue Feng RENEWAL
Ivar R SchemmerUnited KingdomStephen Shaw NEW
Clifford Y ShinkoSpainXuxue Feng NEW
Clifford H BriddickBrazilIvan Magalhaes NEW
David R FlosiItalyIoni Bowcher UNQUALIFIED
Francesco Z VocelkaJapanIoni Bowcher UNQUALIFIED
Aditya F OldroydCanadaAnna Fali QUALIFIED
Chavez T BriddickSpainIoni Bowcher PROPOSAL
Salvatore J VenereBrazilIvan Magalhaes UNQUALIFIED
Tony F AlbaresCanadaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy P TollnerAustraliaBernardo Dominic NEW
Tony L DarakjyBrazilElwin Sharvill PROPOSAL
Octavia Y WhobreyAustraliaElwin Sharvill RENEWAL
Ivar K FerenczFranceIoni Bowcher PROPOSAL
Ivar I DilliardUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin Y NickaItalyIoni Bowcher NEW
James X DilliardFranceStephen Shaw NEGOTIATION
Smith D VocelkaGermanyAmy Elsner PROPOSAL
Adams T DarakjyFranceElwin Sharvill QUALIFIED
Kadeem O CaldareraIndiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Y MarrierCanada2026-07-22Morlong Associates QUALIFIED62Asiya Javayant
1001David V SaylorsSpain2026-06-25Chanay, Jeffrey A Esq UNQUALIFIED87Asiya Javayant
1002Aika Y BowleyGermany2026-06-27Benton, John B Jr RENEWAL97Onyama Limba
1003Jones X DilliardItaly2026-07-08King, Christopher A Esq RENEWAL50Onyama Limba
1004Nicolas J AlbaresJapan2026-06-25Printing Dimensions NEW16Stephen Shaw
1005Murillo B SergiJapan2026-06-26Feltz Printing Service QUALIFIED40Xuxue Feng
1006Julie A GillianSpain2026-07-21Feiner Bros QUALIFIED76Xuxue Feng
1007Jennifer O NestleAustralia2026-07-19Feltz Printing Service RENEWAL63Amy Elsner
1008Tony G RulapaughArgentina2026-07-24Morlong Associates NEGOTIATION75Stephen Shaw
1009Alejandro X AmigonBrazil2026-07-15Feiner Bros NEGOTIATION97Amy Elsner
1010Chavez D RutaSpain2026-07-17Truhlar And Truhlar Attys QUALIFIED78Ivan Magalhaes
1011Salvatore Q MorascaGermany2026-07-03Benton, John B Jr NEW65Onyama Limba
1012Cody X SaylorsGermany2026-07-13Feltz Printing Service RENEWAL80Xuxue Feng
1013Wickens B CampainJapan2026-07-15Feiner Bros PROPOSAL22Stephen Shaw
1014Wickens Y CaldareraArgentina2026-06-29Rangoni Of Florence QUALIFIED98Asiya Javayant
1015Mujtaba Y GarufiCanada2026-07-16Chapman, Ross E Esq PROPOSAL73Asiya Javayant
1016Octavia N PaprockiItaly2026-07-01Feiner Bros PROPOSAL24Stephen Shaw
1017Tony S RoysterIndia2026-07-03Morlong Associates UNQUALIFIED36Ivan Magalhaes
1018Isabel G InouyeItaly2026-07-19Commercial Press RENEWAL65Elwin Sharvill
1019Salvatore E BologniaBrazil2026-07-20Chemel, James L Cpa RENEWAL9Amy Elsner
1020Antonio X StockhamItaly2026-06-25Printing Dimensions PROPOSAL35Asiya Javayant
1021Claire Y OldroydItaly2026-07-18Chapman, Ross E Esq NEW51Elwin Sharvill
1022Cody K CaldareraAustralia2026-07-04Buckley Miller Wright NEGOTIATION21Amy Elsner
1023Jennifer V NickaIndia2026-07-09Dorl, James J Esq RENEWAL9Bernardo Dominic
1024Murillo E BologniaArgentina2026-07-15Feltz Printing Service NEGOTIATION1Elwin Sharvill
1025Darci K KolmetzRussia2026-07-09King, Christopher A Esq QUALIFIED69Onyama Limba
1026Smith N RutaUnited Kingdom2026-06-30Chapman, Ross E Esq PROPOSAL24Ioni Bowcher
1027Ricardo K RulapaughFrance2026-07-07Printing Dimensions UNQUALIFIED25Onyama Limba
1028Emily Y AmigonJapan2026-06-27Buckley Miller Wright RENEWAL38Ioni Bowcher
1029Julie S DarakjyArgentina2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED90Anna Fali
1030James F StensethArgentina2026-07-22Benton, John B Jr RENEWAL61Ivan Magalhaes
1031Darci Q CaudySpain2026-07-03Feiner Bros NEGOTIATION16Asiya Javayant
1032Izzy R GauchoAustralia2026-07-18Chapman, Ross E Esq NEW6Anna Fali
1033Faith N WieserSpain2026-07-11Dorl, James J Esq UNQUALIFIED36Ioni Bowcher
1034Francesco G PerinBrazil2026-07-02Commercial Press UNQUALIFIED77Asiya Javayant
1035Ricardo Y SlusarskiIndia2026-06-29Truhlar And Truhlar Attys UNQUALIFIED9Stephen Shaw
1036Jones U NickaItaly2026-07-18Morlong Associates NEW19Asiya Javayant
1037Mayumi M SlusarskiJapan2026-07-16Printing Dimensions PROPOSAL6Onyama Limba
1038Izzy K IturbideItaly2026-07-03Benton, John B Jr UNQUALIFIED78Amy Elsner
1039Munro K RimFrance2026-06-27Printing Dimensions NEGOTIATION91Bernardo Dominic
1040Ivar T GarufiSpain2026-07-18Benton, John B Jr QUALIFIED5Onyama Limba
1041Jeanfrancois I ShinkoSpain2026-07-01Chapman, Ross E Esq NEGOTIATION45Stephen Shaw
1042Darci E PaprockiUnited Kingdom2026-07-01Feiner Bros NEGOTIATION58Elwin Sharvill
1043Jennifer N VocelkaItaly2026-07-09Dorl, James J Esq NEW44Asiya Javayant
1044Stacey Y NestleIndia2026-06-30Printing Dimensions PROPOSAL73Amy Elsner
1045Darci H NestleIndia2026-07-12King, Christopher A Esq PROPOSAL34Ivan Magalhaes
1046Deepesh V PoquetteArgentina2026-07-21Morlong Associates QUALIFIED70Amy Elsner
1047Aruna Q WieserJapan2026-06-26Dorl, James J Esq PROPOSAL15Ioni Bowcher
1048Leon Z WaycottBrazil2026-07-23Commercial Press RENEWAL51Bernardo Dominic
1049Salvatore F IturbideArgentina2026-07-21Chemel, James L Cpa PROPOSAL44Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Antonio R FigeroaBrazilBernardo Dominic NEGOTIATION
James R MaletArgentinaElwin Sharvill UNQUALIFIED
Maisha O PerinBrazilIvan Magalhaes PROPOSAL
Maisha P OldroydGermanyAsiya Javayant NEGOTIATION
Emily V AmigonAustraliaXuxue Feng NEGOTIATION
Munro Y GlickCanadaAmy Elsner QUALIFIED
Sinclair L OstroskyGermanyBernardo Dominic RENEWAL
Rodrigues B PoquetteGermanyAnna Fali PROPOSAL
Misaki B OstroskyCanadaStephen Shaw RENEWAL
Rodrigues A FigeroaUnited KingdomXuxue Feng QUALIFIED
Izzy O AmigonBrazilIvan Magalhaes QUALIFIED
Arvin Q MacleadAustraliaAsiya Javayant PROPOSAL
Wickens Q MarrierBrazilElwin Sharvill UNQUALIFIED
Murillo B GauchoFranceBernardo Dominic QUALIFIED
James E FollerItalyXuxue Feng NEW
Costa O BologniaUnited KingdomStephen Shaw NEW
Wickens E CampainAustraliaAmy Elsner PROPOSAL
Arvin G GarufiAustraliaElwin Sharvill UNQUALIFIED
Adams W VenereFranceBernardo Dominic NEGOTIATION
Costa W GlickJapanXuxue Feng NEGOTIATION
Mujtaba W DilliardItalyAmy Elsner NEW
Nicolas B FlosiBrazilAmy Elsner NEW
Salvatore Q CampainRussiaIvan Magalhaes QUALIFIED
Sinclair S CaldareraFranceIvan Magalhaes NEW
Sinclair M NestleGermanyIvan Magalhaes NEGOTIATION
Salvatore I RimIndiaAmy Elsner PROPOSAL
Darci Y AlbaresJapanAmy Elsner RENEWAL
Mayumi U FollerFranceIvan Magalhaes UNQUALIFIED
Jones C StensethJapanOnyama Limba RENEWAL
Alejandro V FlosiJapanElwin Sharvill UNQUALIFIED
Antonio P WaycottItalyAnna Fali QUALIFIED
James E RutaSpainAsiya Javayant UNQUALIFIED
Chavez F GillianArgentinaIvan Magalhaes UNQUALIFIED
Claire B OstroskyGermanyAsiya Javayant PROPOSAL
Maria B TollnerRussiaBernardo Dominic NEGOTIATION
Sinclair G MacleadArgentinaXuxue Feng NEGOTIATION
Julie A DarakjyRussiaIoni Bowcher QUALIFIED
Maisha U MaletFranceXuxue Feng NEW
Aditya S PerinGermanyAnna Fali NEGOTIATION
Darci C AmigonArgentinaXuxue Feng NEW
Claire S WhobreyRussiaAsiya Javayant UNQUALIFIED
Claire H SlusarskiJapanIoni Bowcher NEGOTIATION
Jefferson C ButtRussiaAmy Elsner RENEWAL
Nicolas T InouyeJapanXuxue Feng NEW
Emily O DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Ivar P GarufiSpainAmy Elsner NEW
Smith G OstroskyBrazilIvan Magalhaes PROPOSAL
Isabel C ShinkoBrazilAmy Elsner UNQUALIFIED
Jennifer C ButtAustraliaBernardo Dominic RENEWAL
Jefferson F KuskoAustraliaAmy Elsner PROPOSAL
Frozen Columns
Name
Deepesh N Marrier
Smith E Nicka
Misaki H Albares
Francesco R Chui
Mujtaba A Vocelka
Salvatore P Ruta
James H Kolmetz
Isabel L Campain
Jennifer D Waycott
Aika L Bolognia
Tony X Foller
Jeanfrancois R Wieser
Claire T Campain
Leja Y Morasca
Johnson X Gaucho
Faith O Malet
Sinclair M Chui
Isabel U Inouye
Juan P Caudy
Munro S Ferencz
Aika I Rulapaugh
Tony O Nicka
Alejandro U Inouye
Stacey X Iturbide
Mujtaba P Briddick
Antonio S Vocelka
Adams A Malet
Misaki L Campain
Deepesh T Stenseth
Aika K Royster
Stacey T Saylors
Jones Y Figeroa
Jones R Ostrosky
Cody J Saylors
Kaitlin V Saylors
Stacey J Garufi
Octavia H Caudy
Claire Y Whobrey
Ivar U Ruta
Sinclair K Chui
Smith E Kusko
Kaitlin Q Glick
Clifford U Inouye
Leon T Briddick
Kadeem Q Butt
Antonio C Gaucho
Mayumi D Bolognia
Silvio K Morasca
Adams U Malet
Johnson P Briddick
IdCountryDate
1000Argentina2026-06-28
1001Brazil2026-07-07
1002Germany2026-07-24
1003France2026-07-15
1004Germany2026-06-25
1005Italy2026-07-15
1006Germany2026-07-09
1007Italy2026-07-12
1008United Kingdom2026-07-09
1009India2026-06-26
1010Australia2026-07-14
1011Canada2026-07-12
1012Italy2026-07-22
1013United Kingdom2026-07-17
1014Brazil2026-06-29
1015India2026-07-22
1016Canada2026-07-17
1017Italy2026-07-04
1018Argentina2026-06-25
1019Japan2026-06-27
1020India2026-07-06
1021Germany2026-06-26
1022Spain2026-07-11
1023France2026-07-10
1024Japan2026-06-27
1025Australia2026-07-08
1026Russia2026-07-21
1027Russia2026-06-27
1028Brazil2026-06-30
1029Brazil2026-06-28
1030Russia2026-06-26
1031Australia2026-07-10
1032France2026-07-15
1033Russia2026-07-16
1034India2026-07-18
1035United Kingdom2026-07-15
1036Australia2026-07-12
1037Germany2026-06-25
1038Australia2026-07-10
1039Australia2026-07-21
1040Australia2026-06-30
1041Russia2026-07-04
1042Spain2026-06-26
1043Australia2026-07-05
1044Germany2026-07-15
1045Australia2026-06-28
1046Germany2026-06-28
1047Spain2026-06-29
1048Germany2026-07-04
1049Australia2026-07-22

On-Demand Data

NameIdCountryDate
Misaki S Venere1000Canada2026-07-08
Aika I Poquette1001Australia2026-07-13
Silvio D Campain1002Argentina2026-07-04
Ivar I Wieser1003Canada2026-07-16
Claire W Bolognia1004Canada2026-07-01
Antonio Y Oldroyd1005Spain2026-07-22
Juan X Iturbide1006Russia2026-07-20
Francesco Z Malet1007Russia2026-07-23
Jeanfrancois U Vocelka1008Spain2026-06-30
Isabel T Paprocki1009Canada2026-07-21
Jones X Dilliard1010United Kingdom2026-07-14
Darci G Malet1011Brazil2026-07-13
Ivar R Albares1012Spain2026-07-16
Darci M Maclead1013Brazil2026-06-28
Maisha Y Malet1014India2026-07-09
Kadeem J Whobrey1015Spain2026-07-06
Jennifer H Flosi1016Italy2026-07-01
Costa Z Gaucho1017Germany2026-07-18
Maisha N Briddick1018Canada2026-07-17
Nicolas S Nicka1019Russia2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio S FigeroaSpainOnyama Limba NEW
Maisha U RutaSpainIvan Magalhaes PROPOSAL
Francesco A PoquetteBrazilAnna Fali UNQUALIFIED
Maisha J TollnerBrazilIoni Bowcher QUALIFIED
David J DoeCanadaXuxue Feng NEW
Murillo K FlosiRussiaStephen Shaw PROPOSAL
David G NickaAustraliaBernardo Dominic NEW
Adams E ChuiBrazilStephen Shaw NEW
Jeanfrancois A RimFranceAmy Elsner NEW
Salvatore D MarrierSpainElwin Sharvill QUALIFIED
Deepesh Z SaylorsAustraliaBernardo Dominic PROPOSAL
Nicolas F FlosiItalyAsiya Javayant QUALIFIED
Jeanfrancois D MacleadBrazilIvan Magalhaes NEGOTIATION
Aruna S InouyeIndiaIvan Magalhaes PROPOSAL
Salvatore T IturbideJapanAsiya Javayant RENEWAL
Claire X NickaBrazilAsiya Javayant NEW
Wickens W RutaItalyAsiya Javayant NEW
Ashley D PaprockiAustraliaXuxue Feng NEGOTIATION
Salvatore T IturbideGermanyAmy Elsner QUALIFIED
Mayumi E KuskoBrazilIoni Bowcher QUALIFIED
Aika O CaldareraJapanAmy Elsner NEGOTIATION
Jennifer U VocelkaItalyBernardo Dominic NEGOTIATION
Emily N OstroskyFranceIoni Bowcher PROPOSAL
Johnson O WhobreyItalyAsiya Javayant QUALIFIED
Costa O VocelkaArgentinaOnyama Limba NEGOTIATION
Johnson K SergiGermanyXuxue Feng QUALIFIED
Alejandro R RoysterGermanyBernardo Dominic PROPOSAL
Wickens G FlosiGermanyStephen Shaw PROPOSAL
David U GillianAustraliaStephen Shaw NEW
Leja F KuskoCanadaIvan Magalhaes NEGOTIATION
Clifford T PerinUnited KingdomAmy Elsner UNQUALIFIED
Faith L FollerSpainAnna Fali PROPOSAL
Ivar T NestleItalyXuxue Feng NEGOTIATION
Kaitlin F OldroydUnited KingdomAnna Fali PROPOSAL
Leja J SchemmerGermanyIoni Bowcher NEGOTIATION
Chavez G NestleArgentinaAsiya Javayant NEW
Clifford V IturbideArgentinaXuxue Feng PROPOSAL
Kadeem I CampainBrazilAmy Elsner NEGOTIATION
Francesco J StensethCanadaXuxue Feng NEW
Wickens X CaudyUnited KingdomAmy Elsner 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>