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
Johnson C MaletAustraliaElwin Sharvill UNQUALIFIED
Ricardo N MacleadItalyStephen Shaw PROPOSAL
Silvio Q MaletArgentinaBernardo Dominic QUALIFIED
Nicolas T PoquetteAustraliaElwin Sharvill RENEWAL
James M DarakjyGermanyXuxue Feng PROPOSAL
Antonio Q NestleItalyAsiya Javayant NEW
Jones S PerinSpainAsiya Javayant QUALIFIED
Arvin I VocelkaSpainAnna Fali UNQUALIFIED
Arvin O SergiArgentinaIoni Bowcher NEW
Salvatore L GillianCanadaAnna Fali PROPOSAL
Juan P ChuiItalyAnna Fali RENEWAL
Claire X KuskoAustraliaIvan Magalhaes NEGOTIATION
Claire G AmigonSpainXuxue Feng NEGOTIATION
Claire J GlickRussiaOnyama Limba PROPOSAL
Morrow C GillianJapanXuxue Feng PROPOSAL
Clifford G VenereRussiaAsiya Javayant RENEWAL
Maisha Q FigeroaBrazilAsiya Javayant NEGOTIATION
Smith P BowleyIndiaIvan Magalhaes UNQUALIFIED
Alejandro S RulapaughUnited KingdomAnna Fali UNQUALIFIED
Misaki D RimIndiaStephen Shaw RENEWAL
Kaitlin Z FollerAustraliaOnyama Limba QUALIFIED
Ivar U NestleItalyOnyama Limba NEW
Cody M SchemmerItalyIoni Bowcher NEGOTIATION
Johnson M KuskoSpainOnyama Limba NEGOTIATION
Kaitlin C InouyeJapanAsiya Javayant UNQUALIFIED
Jeanfrancois S RimRussiaBernardo Dominic UNQUALIFIED
Leon M WhobreyGermanyAsiya Javayant RENEWAL
Kadeem Z StockhamItalyStephen Shaw PROPOSAL
Murillo D IturbideGermanyBernardo Dominic UNQUALIFIED
Mayumi N SlusarskiRussiaBernardo Dominic NEW
Ashley R FollerUnited KingdomAnna Fali RENEWAL
Leja Q PaprockiSpainAsiya Javayant RENEWAL
Francesco R KuskoAustraliaElwin Sharvill UNQUALIFIED
Mayumi I KolmetzArgentinaAmy Elsner UNQUALIFIED
Maisha M RimGermanyAnna Fali RENEWAL
Aditya G MorascaItalyOnyama Limba PROPOSAL
Kaitlin E FerenczUnited KingdomOnyama Limba PROPOSAL
Francesco D CaudyArgentinaAmy Elsner UNQUALIFIED
Costa P GauchoJapanAnna Fali NEGOTIATION
Maria X PerinBrazilAnna Fali PROPOSAL
Leja F MorascaItalyBernardo Dominic UNQUALIFIED
Arvin I WhobreyCanadaAsiya Javayant RENEWAL
Arvin J ShinkoCanadaAmy Elsner QUALIFIED
Alejandro X GlickItalyOnyama Limba NEW
Smith E GlickIndiaBernardo Dominic UNQUALIFIED
Ricardo E PoquetteRussiaAsiya Javayant RENEWAL
Nicolas R GlickJapanAmy Elsner UNQUALIFIED
Octavia I MacleadIndiaIoni Bowcher NEGOTIATION
Adams M StockhamUnited KingdomIoni Bowcher NEGOTIATION
Morrow T ShinkoBrazilAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy D CaudyArgentinaStephen Shaw QUALIFIED
Tony B StensethIndiaXuxue Feng NEW
Jefferson C DoeSpainBernardo Dominic NEW
Aditya G PoquetteFranceOnyama Limba RENEWAL
Kadeem D MacleadCanadaIvan Magalhaes PROPOSAL
Kaitlin X SergiAustraliaIoni Bowcher NEGOTIATION
Clifford S FollerFranceElwin Sharvill PROPOSAL
Stacey P SchemmerJapanAnna Fali RENEWAL
Chavez K PaprockiRussiaIoni Bowcher UNQUALIFIED
Murillo J FerenczSpainOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez T SlusarskiIndia2026-07-19Benton, John B Jr RENEWAL58Asiya Javayant
1001Julie K CaldareraBrazil2026-07-22Feiner Bros QUALIFIED21Anna Fali
1002Alejandro J WhobreyFrance2026-07-17Buckley Miller Wright RENEWAL8Amy Elsner
1003Jennifer F CaudyBrazil2026-08-06King, Christopher A Esq PROPOSAL2Anna Fali
1004Octavia U StensethIndia2026-07-25Feiner Bros PROPOSAL70Asiya Javayant
1005Antonio B MaletAustralia2026-08-05Benton, John B Jr PROPOSAL32Xuxue Feng
1006Maisha S MaletAustralia2026-07-24Feltz Printing Service NEGOTIATION29Asiya Javayant
1007Emily Q PoquetteBrazil2026-07-14Chapman, Ross E Esq RENEWAL23Ioni Bowcher
1008Maisha I PerinUnited Kingdom2026-08-09Printing Dimensions RENEWAL75Anna Fali
1009Costa J PaprockiAustralia2026-07-27King, Christopher A Esq NEW30Stephen Shaw
1010Jefferson M MarrierJapan2026-08-01King, Christopher A Esq QUALIFIED2Onyama Limba
1011Kaitlin Z TollnerItaly2026-07-14Chanay, Jeffrey A Esq QUALIFIED29Xuxue Feng
1012Wickens B FigeroaCanada2026-07-27Morlong Associates QUALIFIED27Onyama Limba
1013Jefferson K AmigonSpain2026-07-18Rousseaux, Michael Esq QUALIFIED13Asiya Javayant
1014Costa P BriddickFrance2026-07-20Feiner Bros UNQUALIFIED46Amy Elsner
1015James H RimGermany2026-08-09Chemel, James L Cpa NEGOTIATION96Bernardo Dominic
1016Salvatore H RutaAustralia2026-07-26Rangoni Of Florence PROPOSAL3Stephen Shaw
1017Maisha V CampainCanada2026-07-12Chapman, Ross E Esq QUALIFIED10Xuxue Feng
1018Darci Y PaprockiArgentina2026-08-01Chemel, James L Cpa UNQUALIFIED8Anna Fali
1019Julie I RoysterIndia2026-07-19Chapman, Ross E Esq PROPOSAL64Onyama Limba
1020Jefferson G NestleGermany2026-08-03Dorl, James J Esq PROPOSAL48Onyama Limba
1021Sinclair Z ShinkoUnited Kingdom2026-07-24Chapman, Ross E Esq NEW19Xuxue Feng
1022Johnson S StockhamJapan2026-07-19King, Christopher A Esq NEGOTIATION35Amy Elsner
1023Jefferson D BowleyItaly2026-07-31Chanay, Jeffrey A Esq PROPOSAL90Ivan Magalhaes
1024Nicolas J FollerItaly2026-07-12Chapman, Ross E Esq NEW7Onyama Limba
1025Arvin P VenereSpain2026-07-15King, Christopher A Esq NEW12Ivan Magalhaes
1026Tony N FerenczCanada2026-08-01King, Christopher A Esq UNQUALIFIED29Ivan Magalhaes
1027Mujtaba Y StockhamBrazil2026-07-14Dorl, James J Esq RENEWAL21Onyama Limba
1028Salvatore R VocelkaRussia2026-07-28Printing Dimensions NEW73Onyama Limba
1029Murillo L ShinkoAustralia2026-08-08Commercial Press RENEWAL91Amy Elsner
1030James J GauchoCanada2026-07-11Truhlar And Truhlar Attys QUALIFIED90Onyama Limba
1031Ashley U RimUnited Kingdom2026-07-18Feltz Printing Service NEW81Elwin Sharvill
1032Costa A RutaArgentina2026-07-15Chapman, Ross E Esq PROPOSAL46Stephen Shaw
1033Maisha T PaprockiUnited Kingdom2026-08-07Rousseaux, Michael Esq UNQUALIFIED86Onyama Limba
1034Greenwood F AmigonArgentina2026-08-01Chemel, James L Cpa NEGOTIATION17Elwin Sharvill
1035Mujtaba L BriddickUnited Kingdom2026-08-03Benton, John B Jr NEW59Stephen Shaw
1036James Z PerinItaly2026-07-16Morlong Associates PROPOSAL15Xuxue Feng
1037Emily E DilliardIndia2026-07-24Feiner Bros NEW23Xuxue Feng
1038Jones R KolmetzArgentina2026-07-28Benton, John B Jr NEW72Bernardo Dominic
1039Sinclair F GauchoIndia2026-07-19Chapman, Ross E Esq RENEWAL14Anna Fali
1040Maria O SlusarskiUnited Kingdom2026-07-14Truhlar And Truhlar Attys QUALIFIED99Bernardo Dominic
1041Jennifer X ShinkoIndia2026-07-22Feiner Bros QUALIFIED60Xuxue Feng
1042Tony D GauchoGermany2026-07-31Truhlar And Truhlar Attys UNQUALIFIED67Elwin Sharvill
1043Ivar L OldroydBrazil2026-08-09Rousseaux, Michael Esq RENEWAL17Asiya Javayant
1044Aika G InouyeItaly2026-07-31Dorl, James J Esq UNQUALIFIED19Amy Elsner
1045Adams M KuskoIndia2026-07-29Morlong Associates NEGOTIATION21Ivan Magalhaes
1046Adams B VocelkaIndia2026-07-11Printing Dimensions NEW20Stephen Shaw
1047Wickens W KolmetzAustralia2026-07-24Feiner Bros NEW80Onyama Limba
1048Rodrigues Z InouyeItaly2026-08-04Benton, John B Jr NEW7Anna Fali
1049Clifford W PoquetteItaly2026-07-21Morlong Associates PROPOSAL70Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Costa V DarakjyIndiaIvan Magalhaes NEGOTIATION
Munro X StockhamBrazilAsiya Javayant RENEWAL
Cody M OldroydUnited KingdomAnna Fali NEW
Aditya M SergiArgentinaAnna Fali RENEWAL
Antonio Y ButtCanadaAsiya Javayant QUALIFIED
Munro F OldroydCanadaOnyama Limba PROPOSAL
Octavia L TollnerGermanyIvan Magalhaes PROPOSAL
Silvio F RoysterItalyAsiya Javayant NEW
Alejandro L BowleyUnited KingdomAnna Fali QUALIFIED
Munro F KolmetzBrazilIvan Magalhaes PROPOSAL
Faith N VocelkaJapanXuxue Feng RENEWAL
Greenwood X BowleyArgentinaIvan Magalhaes QUALIFIED
Aika V DilliardFranceOnyama Limba QUALIFIED
James B KolmetzBrazilAmy Elsner RENEWAL
Aika J SlusarskiIndiaBernardo Dominic NEGOTIATION
James P DilliardArgentinaStephen Shaw NEGOTIATION
Deepesh F SchemmerItalyXuxue Feng PROPOSAL
Misaki M BriddickArgentinaAmy Elsner NEW
Arvin W ButtFranceBernardo Dominic QUALIFIED
Cody R BowleyItalyAmy Elsner NEGOTIATION
Greenwood V CaudyFranceElwin Sharvill PROPOSAL
Juan Q StockhamRussiaOnyama Limba PROPOSAL
Morrow P MaletGermanyXuxue Feng NEW
Morrow P BriddickFranceIvan Magalhaes UNQUALIFIED
Ashley J VocelkaUnited KingdomAsiya Javayant PROPOSAL
Morrow B ChuiArgentinaBernardo Dominic RENEWAL
Tony X PerinFranceIvan Magalhaes UNQUALIFIED
Isabel R RimUnited KingdomStephen Shaw UNQUALIFIED
Darci F SchemmerJapanAnna Fali UNQUALIFIED
Mayumi M PaprockiGermanyAmy Elsner PROPOSAL
Johnson A AlbaresSpainXuxue Feng PROPOSAL
Kadeem A ButtCanadaElwin Sharvill UNQUALIFIED
Mujtaba U BologniaAustraliaAmy Elsner NEW
Jefferson A GauchoUnited KingdomBernardo Dominic RENEWAL
Darci I DilliardSpainAsiya Javayant NEW
Wickens P ShinkoBrazilStephen Shaw PROPOSAL
Misaki S MorascaBrazilElwin Sharvill NEGOTIATION
Ivar G MarrierFranceIoni Bowcher NEGOTIATION
Jennifer Z IturbideItalyStephen Shaw NEW
Aruna T ShinkoAustraliaIvan Magalhaes PROPOSAL
Misaki V FigeroaBrazilAnna Fali NEGOTIATION
Morrow X BologniaCanadaOnyama Limba UNQUALIFIED
Rodrigues T AmigonAustraliaStephen Shaw PROPOSAL
Kaitlin B SergiJapanOnyama Limba UNQUALIFIED
Munro U SchemmerAustraliaAsiya Javayant QUALIFIED
Ashley N WhobreyItalyIvan Magalhaes QUALIFIED
Ivar J OldroydArgentinaIoni Bowcher RENEWAL
Cody D TollnerUnited KingdomElwin Sharvill RENEWAL
Jefferson V InouyeIndiaXuxue Feng PROPOSAL
Jefferson M RimIndiaElwin Sharvill PROPOSAL
Frozen Columns
Name
Francesco P Shinko
David R Dilliard
Izzy I Tollner
Francesco Y Sergi
Izzy Q Amigon
Aruna K Inouye
Ivar F Butt
Morrow D Darakjy
Sinclair A Dilliard
Greenwood W Royster
Jeanfrancois E Rim
Jefferson Z Schemmer
Faith T Shinko
Sinclair D Dilliard
Emily B Royster
Morrow R Schemmer
Leja A Ruta
Kaitlin K Stenseth
Kadeem U Oldroyd
Aditya M Paprocki
David M Ostrosky
David Z Vocelka
Costa V Campain
Wickens K Gillian
Smith P Tollner
Leja X Ruta
Munro T Darakjy
Ashley U Shinko
Alejandro S Kolmetz
Sinclair K Doe
Leon S Royster
Octavia W Wieser
Chavez S Butt
Munro C Amigon
Mayumi V Maclead
Rodrigues S Doe
Cody D Malet
Arvin K Kusko
Kadeem B Glick
Alejandro H Nicka
Chavez G Marrier
Ricardo O Glick
Claire Z Tollner
Mujtaba O Amigon
Emily S Paprocki
Silvio U Ostrosky
Nicolas M Caldarera
Kaitlin T Shinko
Maisha G Briddick
Mayumi N Paprocki
IdCountryDate
1000United Kingdom2026-07-31
1001Spain2026-07-27
1002Italy2026-07-25
1003India2026-07-11
1004Australia2026-07-23
1005Brazil2026-07-30
1006Japan2026-07-21
1007Canada2026-07-11
1008Spain2026-07-11
1009Australia2026-07-24
1010Japan2026-07-23
1011India2026-07-18
1012Germany2026-07-14
1013Russia2026-07-16
1014Germany2026-08-03
1015Spain2026-08-09
1016Italy2026-07-13
1017Japan2026-08-09
1018Russia2026-08-09
1019Italy2026-08-08
1020Russia2026-08-07
1021Canada2026-07-12
1022United Kingdom2026-07-12
1023Brazil2026-07-24
1024Russia2026-07-15
1025Brazil2026-08-09
1026United Kingdom2026-07-19
1027Italy2026-08-08
1028Australia2026-07-17
1029Russia2026-07-31
1030Brazil2026-08-05
1031Argentina2026-08-08
1032Japan2026-07-26
1033Canada2026-08-07
1034Argentina2026-08-07
1035Canada2026-07-16
1036Canada2026-07-24
1037India2026-07-31
1038Japan2026-07-24
1039France2026-07-16
1040Canada2026-07-11
1041Italy2026-07-20
1042United Kingdom2026-07-14
1043Argentina2026-07-11
1044Russia2026-08-07
1045Italy2026-07-16
1046Russia2026-07-27
1047India2026-07-12
1048Australia2026-07-14
1049Italy2026-08-04

On-Demand Data

NameIdCountryDate
Leja W Glick1000Argentina2026-07-20
Kadeem C Perin1001United Kingdom2026-07-15
Arvin R Nicka1002India2026-08-07
Mujtaba K Slusarski1003Brazil2026-07-11
Emily V Rulapaugh1004Canada2026-07-22
Greenwood L Stenseth1005France2026-08-08
Mujtaba L Shinko1006Spain2026-07-14
Smith A Morasca1007Italy2026-08-09
Alejandro G Wieser1008India2026-07-20
Tony Z Ruta1009France2026-07-15
Rodrigues F Campain1010Japan2026-07-13
Claire Y Iturbide1011Spain2026-08-03
Smith S Schemmer1012United Kingdom2026-08-06
Jones G Iturbide1013Italy2026-08-02
Kaitlin G Nestle1014Brazil2026-07-14
Murillo E Rulapaugh1015Brazil2026-08-07
Juan E Caudy1016India2026-07-18
Arvin T Bolognia1017United Kingdom2026-07-16
Francesco I Kusko1018Germany2026-07-25
Salvatore W Chui1019Russia2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair E ButtGermanyAnna Fali NEGOTIATION
Mayumi T KuskoBrazilAnna Fali RENEWAL
Ricardo I GillianAustraliaAmy Elsner NEGOTIATION
Aika O VocelkaRussiaOnyama Limba UNQUALIFIED
Nicolas B SaylorsGermanyIvan Magalhaes UNQUALIFIED
Ivar P WaycottGermanyElwin Sharvill NEGOTIATION
Tony R FlosiFranceElwin Sharvill NEW
Isabel T SergiSpainAsiya Javayant NEW
Julie I AmigonFranceAsiya Javayant NEW
Julie W NestleItalyAnna Fali PROPOSAL
Arvin X RulapaughGermanyXuxue Feng RENEWAL
David Y KolmetzFranceAsiya Javayant PROPOSAL
Silvio Y VenereBrazilIvan Magalhaes NEGOTIATION
Greenwood H RoysterItalyXuxue Feng NEGOTIATION
Darci Y RimGermanyIvan Magalhaes NEGOTIATION
Leja W FollerRussiaAmy Elsner QUALIFIED
Octavia J WieserArgentinaAsiya Javayant NEGOTIATION
James H DoeItalyAmy Elsner NEGOTIATION
Leja M IturbideItalyXuxue Feng PROPOSAL
Emily C SchemmerGermanyAmy Elsner NEGOTIATION
Maria B RutaBrazilXuxue Feng QUALIFIED
Nicolas R FollerFranceOnyama Limba NEW
Antonio J WieserItalyAnna Fali QUALIFIED
Deepesh K KolmetzIndiaStephen Shaw UNQUALIFIED
Wickens P OldroydItalyIvan Magalhaes NEGOTIATION
Emily U IturbideGermanyStephen Shaw UNQUALIFIED
Nicolas G FerenczJapanElwin Sharvill RENEWAL
Kaitlin Q PoquetteGermanyIvan Magalhaes RENEWAL
Ivar X MorascaGermanyAnna Fali PROPOSAL
Izzy Q SergiBrazilStephen Shaw QUALIFIED
Jefferson D WieserBrazilOnyama Limba UNQUALIFIED
Alejandro I FigeroaFranceIvan Magalhaes RENEWAL
Faith J FerenczFranceOnyama Limba UNQUALIFIED
Juan G SlusarskiCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois A FlosiAustraliaIoni Bowcher QUALIFIED
Ashley T MacleadJapanXuxue Feng RENEWAL
Arvin M TollnerAustraliaIoni Bowcher NEGOTIATION
Nicolas R IturbideUnited KingdomIoni Bowcher QUALIFIED
Emily J AmigonFranceBernardo Dominic NEGOTIATION
Isabel S AlbaresFranceAmy Elsner RENEWAL

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