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
Aditya Y NickaItalyAnna Fali PROPOSAL
Stacey P RutaIndiaIoni Bowcher QUALIFIED
Maria P MaletItalyAmy Elsner UNQUALIFIED
Mujtaba S ChuiUnited KingdomStephen Shaw NEGOTIATION
Alejandro L MarrierCanadaAnna Fali RENEWAL
Leja N RoysterGermanyBernardo Dominic NEW
Ashley L FerenczIndiaElwin Sharvill RENEWAL
Misaki Y MorascaCanadaElwin Sharvill UNQUALIFIED
Jennifer X KolmetzSpainIvan Magalhaes UNQUALIFIED
Mayumi Y FigeroaCanadaAmy Elsner RENEWAL
Mujtaba V BriddickJapanOnyama Limba NEGOTIATION
Emily N FerenczArgentinaIoni Bowcher RENEWAL
Tony M MaletJapanElwin Sharvill PROPOSAL
Juan Y CampainBrazilOnyama Limba NEGOTIATION
Johnson M OstroskyFranceAmy Elsner RENEWAL
Silvio F DoeCanadaAsiya Javayant NEGOTIATION
James C DoeSpainAmy Elsner PROPOSAL
Morrow S MarrierArgentinaStephen Shaw NEW
Stacey P StensethUnited KingdomAmy Elsner RENEWAL
Clifford C KuskoUnited KingdomElwin Sharvill UNQUALIFIED
David S GauchoCanadaElwin Sharvill QUALIFIED
Chavez K BowleyRussiaIoni Bowcher UNQUALIFIED
Wickens F MarrierGermanyIvan Magalhaes RENEWAL
Ricardo R CampainItalyAmy Elsner RENEWAL
Maisha T DarakjySpainOnyama Limba NEGOTIATION
Aditya F PaprockiArgentinaAmy Elsner QUALIFIED
Izzy C GillianArgentinaAnna Fali NEGOTIATION
Jennifer G ShinkoRussiaAmy Elsner UNQUALIFIED
Arvin P MorascaJapanAmy Elsner RENEWAL
Maria Q RimFranceAmy Elsner QUALIFIED
Deepesh T MarrierGermanyIoni Bowcher RENEWAL
Stacey N GarufiGermanyAsiya Javayant NEGOTIATION
Chavez N RulapaughCanadaIvan Magalhaes UNQUALIFIED
Ivar U DoeArgentinaElwin Sharvill QUALIFIED
Tony Z StensethBrazilIvan Magalhaes NEW
Cody Q SaylorsFranceAsiya Javayant UNQUALIFIED
Maria W ShinkoBrazilIoni Bowcher PROPOSAL
Octavia Y RimGermanyXuxue Feng RENEWAL
Antonio R GarufiRussiaAnna Fali NEW
Murillo G GauchoSpainIvan Magalhaes NEGOTIATION
Tony R VenereSpainStephen Shaw PROPOSAL
Alejandro F GarufiSpainAsiya Javayant NEW
Jones U DarakjyIndiaElwin Sharvill QUALIFIED
Mujtaba K AlbaresArgentinaAsiya Javayant NEW
Greenwood H MaletSpainAnna Fali NEGOTIATION
Emily R KuskoBrazilAsiya Javayant PROPOSAL
Aika H KuskoGermanyAsiya Javayant RENEWAL
Mayumi B CampainSpainAnna Fali QUALIFIED
Wickens M MacleadGermanyStephen Shaw UNQUALIFIED
Julie Y RutaItalyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha Y GarufiUnited KingdomAnna Fali QUALIFIED
Jefferson H NickaItalyAmy Elsner UNQUALIFIED
Aruna H AmigonItalyBernardo Dominic PROPOSAL
Cody X PoquetteSpainBernardo Dominic NEW
Aruna P VenereGermanyAsiya Javayant NEGOTIATION
Emily K PerinUnited KingdomXuxue Feng NEGOTIATION
Sinclair F PoquetteFranceIoni Bowcher NEGOTIATION
Octavia C ShinkoSpainStephen Shaw RENEWAL
Maria I NestleArgentinaXuxue Feng UNQUALIFIED
Costa S VenereRussiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson A MaletGermany2026-07-07Rousseaux, Michael Esq RENEWAL29Anna Fali
1001Morrow G DarakjyJapan2026-07-04Benton, John B Jr NEW9Anna Fali
1002Kaitlin U GlickSpain2026-07-12Buckley Miller Wright NEW73Asiya Javayant
1003Antonio E RimCanada2026-07-07Chapman, Ross E Esq NEW90Ivan Magalhaes
1004Silvio Z ChuiGermany2026-07-09Feiner Bros RENEWAL22Bernardo Dominic
1005Leja X FerenczBrazil2026-07-30Chapman, Ross E Esq PROPOSAL91Ivan Magalhaes
1006Jennifer O GarufiArgentina2026-07-14Printing Dimensions RENEWAL4Anna Fali
1007Ricardo M RimUnited Kingdom2026-07-27Chanay, Jeffrey A Esq QUALIFIED26Amy Elsner
1008Maisha F GillianGermany2026-07-22Printing Dimensions NEGOTIATION39Onyama Limba
1009Murillo B DoeRussia2026-07-22Chemel, James L Cpa NEW23Onyama Limba
1010Alejandro X AlbaresSpain2026-07-11Dorl, James J Esq PROPOSAL32Stephen Shaw
1011Francesco R IturbideBrazil2026-07-22Commercial Press UNQUALIFIED30Xuxue Feng
1012Arvin F MaletIndia2026-07-19Rousseaux, Michael Esq RENEWAL91Bernardo Dominic
1013Jeanfrancois F RimIndia2026-08-01Dorl, James J Esq NEW84Ioni Bowcher
1014Deepesh K SchemmerBrazil2026-07-04Chemel, James L Cpa NEGOTIATION57Onyama Limba
1015Francesco V GauchoUnited Kingdom2026-07-08Dorl, James J Esq QUALIFIED53Amy Elsner
1016Adams U SergiBrazil2026-07-17Feiner Bros UNQUALIFIED37Bernardo Dominic
1017Emily T ButtRussia2026-07-17Chapman, Ross E Esq RENEWAL27Amy Elsner
1018Greenwood M CaudyFrance2026-07-27Printing Dimensions QUALIFIED99Onyama Limba
1019Leja J MaletAustralia2026-07-16Chemel, James L Cpa RENEWAL30Stephen Shaw
1020Aditya O GlickSpain2026-07-14Chanay, Jeffrey A Esq NEW24Xuxue Feng
1021Mayumi H CaldareraItaly2026-07-30King, Christopher A Esq NEW35Amy Elsner
1022Isabel D GillianIndia2026-07-12Chanay, Jeffrey A Esq NEW83Ioni Bowcher
1023Claire L RoysterIndia2026-07-11Feiner Bros UNQUALIFIED96Amy Elsner
1024Faith P FigeroaUnited Kingdom2026-07-10King, Christopher A Esq NEGOTIATION71Bernardo Dominic
1025Chavez Z CaudyUnited Kingdom2026-07-17Morlong Associates RENEWAL78Xuxue Feng
1026Misaki C FigeroaJapan2026-07-30Commercial Press NEGOTIATION52Asiya Javayant
1027Chavez S MacleadIndia2026-07-28King, Christopher A Esq RENEWAL43Onyama Limba
1028Murillo X ButtIndia2026-07-22Rousseaux, Michael Esq PROPOSAL17Onyama Limba
1029Leja N WhobreyAustralia2026-07-24Chemel, James L Cpa UNQUALIFIED20Asiya Javayant
1030Munro N PaprockiBrazil2026-07-18Buckley Miller Wright UNQUALIFIED63Amy Elsner
1031Greenwood S RimItaly2026-07-16Printing Dimensions NEW21Asiya Javayant
1032Octavia L VocelkaBrazil2026-07-30Truhlar And Truhlar Attys QUALIFIED75Xuxue Feng
1033Leja T MarrierRussia2026-07-29Chanay, Jeffrey A Esq UNQUALIFIED53Ioni Bowcher
1034Greenwood A RimIndia2026-07-31Buckley Miller Wright QUALIFIED14Stephen Shaw
1035Stacey J IturbideJapan2026-07-14Dorl, James J Esq QUALIFIED82Ivan Magalhaes
1036Salvatore X MacleadArgentina2026-07-25Rangoni Of Florence NEGOTIATION40Xuxue Feng
1037Ashley S ChuiIndia2026-07-03Truhlar And Truhlar Attys UNQUALIFIED20Xuxue Feng
1038Francesco I CampainRussia2026-07-31King, Christopher A Esq QUALIFIED87Amy Elsner
1039Arvin Q AmigonArgentina2026-07-12Chemel, James L Cpa QUALIFIED58Ivan Magalhaes
1040Smith Y GarufiGermany2026-07-26Rousseaux, Michael Esq NEW64Stephen Shaw
1041Greenwood H NestleJapan2026-07-08Commercial Press NEW31Stephen Shaw
1042Nicolas M MaletFrance2026-07-22Buckley Miller Wright NEGOTIATION46Anna Fali
1043Octavia T MaletAustralia2026-07-03Feiner Bros PROPOSAL99Stephen Shaw
1044Francesco S WieserIndia2026-07-19Feltz Printing Service NEW15Elwin Sharvill
1045Munro W SaylorsIndia2026-07-26Morlong Associates NEGOTIATION76Anna Fali
1046Misaki A DilliardIndia2026-07-30Chapman, Ross E Esq NEW60Stephen Shaw
1047Greenwood O RoysterSpain2026-07-30Truhlar And Truhlar Attys PROPOSAL77Onyama Limba
1048Silvio G ButtArgentina2026-07-26Commercial Press PROPOSAL8Asiya Javayant
1049Ashley K WaycottGermany2026-07-31King, Christopher A Esq PROPOSAL72Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Claire Y VenereRussiaXuxue Feng RENEWAL
Misaki T AlbaresGermanyBernardo Dominic QUALIFIED
Jones Q DilliardBrazilBernardo Dominic QUALIFIED
Faith J CampainArgentinaStephen Shaw NEGOTIATION
Sinclair U WieserCanadaIoni Bowcher NEGOTIATION
Ivar K RoysterIndiaAmy Elsner NEGOTIATION
Izzy X StensethSpainOnyama Limba RENEWAL
James N SergiBrazilElwin Sharvill NEW
Maisha B NestleBrazilAsiya Javayant QUALIFIED
Octavia V StensethJapanIvan Magalhaes QUALIFIED
Isabel E TollnerGermanyOnyama Limba RENEWAL
David F TollnerIndiaAsiya Javayant NEGOTIATION
Silvio D IturbideFranceIvan Magalhaes NEGOTIATION
Antonio D WaycottArgentinaIvan Magalhaes UNQUALIFIED
Isabel V IturbideItalyElwin Sharvill NEGOTIATION
Costa L StockhamUnited KingdomAnna Fali PROPOSAL
James W FlosiJapanElwin Sharvill UNQUALIFIED
Arvin Z DilliardCanadaIvan Magalhaes UNQUALIFIED
Mujtaba M KuskoItalyXuxue Feng PROPOSAL
Silvio F SchemmerRussiaBernardo Dominic UNQUALIFIED
Maria E MarrierJapanStephen Shaw QUALIFIED
Izzy K SergiBrazilXuxue Feng QUALIFIED
Johnson J MaletCanadaAsiya Javayant UNQUALIFIED
Chavez L WieserSpainIoni Bowcher NEW
Ashley T BriddickSpainIvan Magalhaes QUALIFIED
Mayumi D DilliardRussiaIoni Bowcher NEW
Ivar D KuskoJapanIvan Magalhaes QUALIFIED
Silvio N MaletUnited KingdomAnna Fali RENEWAL
Arvin O MacleadJapanOnyama Limba UNQUALIFIED
Faith P VenereUnited KingdomBernardo Dominic RENEWAL
Munro I NickaIndiaIvan Magalhaes RENEWAL
Emily J DoeIndiaOnyama Limba RENEWAL
Deepesh C OldroydCanadaAmy Elsner UNQUALIFIED
Misaki C SchemmerBrazilAsiya Javayant RENEWAL
Adams N CaudyItalyIoni Bowcher NEGOTIATION
Deepesh K GarufiRussiaBernardo Dominic PROPOSAL
Jones O GarufiSpainBernardo Dominic UNQUALIFIED
Misaki L CampainBrazilAmy Elsner PROPOSAL
Leja Q CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Julie E RulapaughIndiaIvan Magalhaes PROPOSAL
Aika I DilliardIndiaBernardo Dominic QUALIFIED
Smith U GlickJapanAmy Elsner UNQUALIFIED
Aditya K IturbideItalyOnyama Limba UNQUALIFIED
Nicolas N BologniaSpainAnna Fali NEW
Munro F VocelkaArgentinaAnna Fali UNQUALIFIED
Salvatore K PerinArgentinaOnyama Limba UNQUALIFIED
David L VenereBrazilOnyama Limba RENEWAL
Smith T PerinAustraliaAnna Fali PROPOSAL
Darci F RutaGermanyIoni Bowcher NEGOTIATION
Arvin L AlbaresJapanElwin Sharvill NEGOTIATION
Frozen Columns
Name
Antonio V Venere
Jones R Ruta
Darci V Dilliard
Wickens V Stockham
Smith S Schemmer
Alejandro I Venere
Jeanfrancois O Morasca
Chavez I Royster
Maria W Rim
Izzy W Rim
Adams B Glick
Johnson L Malet
David E Darakjy
Sinclair T Campain
Kaitlin Y Wieser
Mayumi F Whobrey
Aditya A Nicka
Salvatore T Paprocki
Chavez B Whobrey
Leja H Sergi
Izzy T Ferencz
Wickens M Malet
Ricardo Z Garufi
Salvatore U Amigon
Maria F Rulapaugh
Arvin W Saylors
Silvio J Royster
Aruna S Stenseth
Ivar E Kolmetz
Aika C Bolognia
Maria D Caldarera
Leon F Nicka
Deepesh G Tollner
Cody R Ruta
Wickens H Glick
Aruna Z Saylors
Aditya M Figeroa
Mujtaba U Ostrosky
Emily Y Caudy
Munro X Venere
Darci I Ferencz
Mayumi M Marrier
Leon Z Waycott
Francesco M Vocelka
Murillo I Shinko
Nicolas V Foller
Ashley D Schemmer
Mayumi X Nestle
Aditya V Morasca
Chavez Y Bowley
IdCountryDate
1000Spain2026-07-25
1001Italy2026-07-26
1002Russia2026-07-23
1003Germany2026-07-09
1004Brazil2026-07-07
1005France2026-07-17
1006Spain2026-07-28
1007Italy2026-07-11
1008Spain2026-07-10
1009India2026-07-15
1010India2026-07-23
1011Japan2026-07-20
1012Japan2026-07-03
1013India2026-07-04
1014Japan2026-07-30
1015Brazil2026-07-14
1016Argentina2026-07-28
1017France2026-07-09
1018Russia2026-07-17
1019Argentina2026-07-22
1020Russia2026-07-08
1021Brazil2026-07-24
1022France2026-07-06
1023Germany2026-07-30
1024France2026-07-21
1025Italy2026-07-16
1026Spain2026-07-30
1027Argentina2026-07-19
1028India2026-08-01
1029Australia2026-07-05
1030Argentina2026-07-15
1031France2026-07-31
1032Japan2026-07-17
1033India2026-07-24
1034Argentina2026-07-10
1035Brazil2026-07-11
1036France2026-07-20
1037Brazil2026-07-27
1038India2026-07-28
1039Russia2026-07-18
1040Brazil2026-07-27
1041Russia2026-07-21
1042Brazil2026-07-21
1043Australia2026-07-30
1044Germany2026-07-18
1045India2026-07-23
1046Japan2026-07-05
1047United Kingdom2026-08-01
1048Brazil2026-07-23
1049Spain2026-07-26

On-Demand Data

NameIdCountryDate
Salvatore E Morasca1000Japan2026-07-26
Isabel X Royster1001Argentina2026-07-09
Julie N Briddick1002Germany2026-07-13
Greenwood B Tollner1003Argentina2026-07-29
Sinclair W Figeroa1004Germany2026-08-01
Arvin R Caudy1005India2026-07-29
Maisha B Butt1006France2026-07-18
Maria B Malet1007Argentina2026-07-26
Greenwood W Tollner1008Brazil2026-07-14
Greenwood E Ferencz1009United Kingdom2026-07-06
Silvio X Caldarera1010Italy2026-07-10
Ashley W Gillian1011Canada2026-07-21
Stacey M Figeroa1012Canada2026-07-11
Antonio D Albares1013France2026-07-14
Maisha L Dilliard1014Australia2026-07-10
Ashley U Campain1015Brazil2026-07-17
Salvatore U Albares1016Canada2026-07-12
James O Wieser1017Australia2026-07-29
Munro P Venere1018Argentina2026-07-06
Wickens X Marrier1019Spain2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo R WieserArgentinaIvan Magalhaes NEGOTIATION
Ashley X VenereBrazilIoni Bowcher QUALIFIED
Emily W VocelkaRussiaAmy Elsner NEW
Wickens T GauchoItalyAmy Elsner RENEWAL
Mayumi J GillianSpainAsiya Javayant QUALIFIED
Ricardo Q BowleyCanadaIoni Bowcher NEGOTIATION
Mujtaba O CaldareraBrazilAsiya Javayant QUALIFIED
Wickens N SergiArgentinaXuxue Feng NEW
Mayumi D GarufiIndiaIoni Bowcher UNQUALIFIED
Jefferson V RulapaughFranceIvan Magalhaes QUALIFIED
Ashley J CampainArgentinaIvan Magalhaes NEW
Sinclair A PerinBrazilStephen Shaw UNQUALIFIED
Mujtaba V BologniaGermanyElwin Sharvill UNQUALIFIED
Rodrigues M VocelkaUnited KingdomBernardo Dominic NEW
Jeanfrancois J GlickBrazilOnyama Limba RENEWAL
Emily P ButtCanadaAmy Elsner QUALIFIED
Kadeem S ShinkoSpainIvan Magalhaes PROPOSAL
Faith C ButtGermanyAsiya Javayant RENEWAL
Arvin E DoeGermanyAmy Elsner QUALIFIED
Leja T NestleBrazilOnyama Limba UNQUALIFIED
Leja W SaylorsItalyStephen Shaw RENEWAL
Aditya E NestleItalyElwin Sharvill PROPOSAL
Adams Z PaprockiFranceAmy Elsner NEGOTIATION
Stacey V CaudyArgentinaElwin Sharvill NEGOTIATION
James H NickaJapanIoni Bowcher UNQUALIFIED
Isabel M RoysterJapanElwin Sharvill QUALIFIED
Kaitlin P WaycottItalyElwin Sharvill NEGOTIATION
Aruna G GarufiFranceAmy Elsner NEGOTIATION
Johnson J CaudyJapanElwin Sharvill QUALIFIED
Deepesh I StensethArgentinaStephen Shaw QUALIFIED
Alejandro J ChuiArgentinaOnyama Limba RENEWAL
Adams Q AlbaresAustraliaStephen Shaw UNQUALIFIED
Ivar B SchemmerJapanAmy Elsner NEGOTIATION
Cody K OstroskyUnited KingdomXuxue Feng RENEWAL
Mujtaba F BologniaGermanyXuxue Feng UNQUALIFIED
Rodrigues D MarrierGermanyIoni Bowcher UNQUALIFIED
Julie I StensethUnited KingdomAnna Fali NEW
Aika H FollerArgentinaAmy Elsner UNQUALIFIED
Faith D OldroydCanadaStephen Shaw RENEWAL
Aruna O NickaArgentinaIoni Bowcher 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>