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
Aruna X ButtUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi S DilliardCanadaElwin Sharvill UNQUALIFIED
Jefferson Z RimUnited KingdomXuxue Feng RENEWAL
Cody P CaldareraUnited KingdomIoni Bowcher NEW
Mayumi E RutaBrazilAsiya Javayant PROPOSAL
Morrow V FerenczCanadaXuxue Feng NEW
Jennifer B GlickItalyElwin Sharvill NEGOTIATION
Isabel F NestleArgentinaAnna Fali PROPOSAL
Leon N FollerRussiaBernardo Dominic NEW
Maria T RulapaughItalyAmy Elsner NEW
Adams V FerenczArgentinaXuxue Feng QUALIFIED
Leja O PerinAustraliaIoni Bowcher UNQUALIFIED
Deepesh N MarrierUnited KingdomAmy Elsner PROPOSAL
David G FollerSpainIoni Bowcher NEGOTIATION
Sinclair V MaletSpainBernardo Dominic QUALIFIED
Wickens U WieserArgentinaIoni Bowcher NEW
Johnson J DilliardRussiaAnna Fali NEGOTIATION
Silvio J GillianJapanXuxue Feng UNQUALIFIED
Izzy C GarufiRussiaStephen Shaw QUALIFIED
Munro I NestleGermanyIvan Magalhaes QUALIFIED
Mayumi W PaprockiRussiaBernardo Dominic NEGOTIATION
Leja D RutaGermanyOnyama Limba RENEWAL
Jones Y ButtFranceOnyama Limba RENEWAL
Wickens Z AmigonCanadaIoni Bowcher UNQUALIFIED
Leja D KuskoBrazilAmy Elsner PROPOSAL
Jones Y OstroskyArgentinaIoni Bowcher UNQUALIFIED
Julie S TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Adams X InouyeJapanAmy Elsner QUALIFIED
Juan A DoeAustraliaAnna Fali QUALIFIED
Jones W WieserUnited KingdomElwin Sharvill NEGOTIATION
Wickens M SchemmerBrazilIvan Magalhaes UNQUALIFIED
Juan T FerenczRussiaOnyama Limba NEGOTIATION
Johnson I PerinUnited KingdomIvan Magalhaes PROPOSAL
Ricardo P CaldareraCanadaStephen Shaw NEGOTIATION
Murillo W TollnerUnited KingdomXuxue Feng QUALIFIED
Francesco V OldroydUnited KingdomAsiya Javayant NEW
Aruna H StensethCanadaIvan Magalhaes PROPOSAL
Isabel X DilliardBrazilBernardo Dominic NEGOTIATION
Stacey U GarufiSpainAmy Elsner NEGOTIATION
Chavez S CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Claire B ButtArgentinaBernardo Dominic NEW
Leja U KuskoAustraliaXuxue Feng NEGOTIATION
Johnson M PerinAustraliaIvan Magalhaes NEGOTIATION
Francesco V BowleyRussiaIvan Magalhaes PROPOSAL
Octavia L DoeFranceOnyama Limba NEW
Kadeem I MacleadBrazilElwin Sharvill UNQUALIFIED
Sinclair K RulapaughSpainElwin Sharvill RENEWAL
Aditya V BriddickAustraliaStephen Shaw PROPOSAL
Leja R ShinkoGermanyIoni Bowcher NEGOTIATION
Munro D SchemmerJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba W VocelkaRussiaAmy Elsner UNQUALIFIED
Maisha F RoysterItalyXuxue Feng PROPOSAL
Nicolas V TollnerItalyIoni Bowcher NEGOTIATION
Johnson D RimGermanyElwin Sharvill NEW
Wickens U PaprockiAustraliaAnna Fali NEGOTIATION
Sinclair N IturbideGermanyElwin Sharvill RENEWAL
Deepesh H VenereBrazilElwin Sharvill QUALIFIED
Jeanfrancois I MacleadItalyElwin Sharvill PROPOSAL
Murillo T ChuiGermanyStephen Shaw RENEWAL
Maria A DoeCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer N DilliardBrazil2026-08-17Buckley Miller Wright NEW93Xuxue Feng
1001Jefferson T VocelkaCanada2026-07-19Benton, John B Jr NEW24Stephen Shaw
1002Smith U DilliardIndia2026-07-24Commercial Press UNQUALIFIED63Elwin Sharvill
1003Deepesh O WhobreyUnited Kingdom2026-08-08Chemel, James L Cpa QUALIFIED96Ivan Magalhaes
1004Murillo D ShinkoIndia2026-07-27Morlong Associates PROPOSAL58Stephen Shaw
1005Mujtaba Z SergiArgentina2026-08-17Buckley Miller Wright QUALIFIED32Ioni Bowcher
1006Stacey U InouyeJapan2026-08-08Rangoni Of Florence UNQUALIFIED53Ivan Magalhaes
1007Mujtaba F IturbideCanada2026-07-20Commercial Press RENEWAL5Ioni Bowcher
1008Aditya W DilliardArgentina2026-08-01Benton, John B Jr PROPOSAL82Onyama Limba
1009Smith F BologniaCanada2026-08-03King, Christopher A Esq NEGOTIATION51Ivan Magalhaes
1010Jeanfrancois A AmigonUnited Kingdom2026-07-21King, Christopher A Esq RENEWAL27Xuxue Feng
1011Greenwood W GarufiItaly2026-08-04Chanay, Jeffrey A Esq NEW55Elwin Sharvill
1012Jefferson O FerenczBrazil2026-07-27Printing Dimensions UNQUALIFIED41Anna Fali
1013Rodrigues D RutaCanada2026-07-23Rousseaux, Michael Esq RENEWAL97Elwin Sharvill
1014Adams X ButtGermany2026-07-25King, Christopher A Esq PROPOSAL78Asiya Javayant
1015Faith H FerenczIndia2026-08-15King, Christopher A Esq NEW94Asiya Javayant
1016Salvatore Q StensethJapan2026-07-30Benton, John B Jr NEW25Ivan Magalhaes
1017Kaitlin B CaldareraCanada2026-08-08Benton, John B Jr PROPOSAL87Amy Elsner
1018Costa S RutaItaly2026-08-01Rousseaux, Michael Esq RENEWAL77Onyama Limba
1019Juan M FerenczJapan2026-07-31Feltz Printing Service UNQUALIFIED87Amy Elsner
1020Ricardo F FigeroaItaly2026-08-13Dorl, James J Esq UNQUALIFIED19Ioni Bowcher
1021Stacey K FlosiAustralia2026-07-30Feltz Printing Service NEGOTIATION98Ioni Bowcher
1022Izzy D FigeroaSpain2026-08-15Dorl, James J Esq UNQUALIFIED92Asiya Javayant
1023Julie T SchemmerFrance2026-08-03Printing Dimensions NEW97Amy Elsner
1024Juan Z AlbaresJapan2026-08-08Chemel, James L Cpa RENEWAL29Elwin Sharvill
1025David Y StockhamGermany2026-08-13Chapman, Ross E Esq RENEWAL45Stephen Shaw
1026Jefferson K StensethAustralia2026-08-10Feltz Printing Service UNQUALIFIED50Ivan Magalhaes
1027Aditya Z KuskoItaly2026-08-03Chanay, Jeffrey A Esq PROPOSAL78Amy Elsner
1028Murillo M PoquetteGermany2026-08-16Feiner Bros UNQUALIFIED55Anna Fali
1029Tony U WhobreyItaly2026-08-04Feltz Printing Service QUALIFIED64Stephen Shaw
1030Cody C MacleadItaly2026-07-19Dorl, James J Esq QUALIFIED80Bernardo Dominic
1031Costa N DoeAustralia2026-08-07Commercial Press UNQUALIFIED43Ivan Magalhaes
1032Silvio K MacleadUnited Kingdom2026-08-01Truhlar And Truhlar Attys QUALIFIED11Ivan Magalhaes
1033Johnson Q InouyeCanada2026-07-24Printing Dimensions NEGOTIATION19Ioni Bowcher
1034Alejandro A RimJapan2026-07-24Commercial Press QUALIFIED82Bernardo Dominic
1035Smith J TollnerGermany2026-08-06Feltz Printing Service NEGOTIATION52Stephen Shaw
1036Adams C ShinkoIndia2026-07-21Chanay, Jeffrey A Esq NEW92Ivan Magalhaes
1037Maria X ShinkoAustralia2026-07-20Benton, John B Jr NEGOTIATION98Bernardo Dominic
1038Faith D MorascaFrance2026-07-21Rangoni Of Florence RENEWAL74Anna Fali
1039Arvin Q WieserItaly2026-07-28Feltz Printing Service RENEWAL77Amy Elsner
1040Maisha U RimUnited Kingdom2026-08-17Buckley Miller Wright NEGOTIATION3Onyama Limba
1041Chavez V FlosiUnited Kingdom2026-07-25Chapman, Ross E Esq NEGOTIATION50Bernardo Dominic
1042Maria V GarufiFrance2026-07-25Printing Dimensions UNQUALIFIED3Ioni Bowcher
1043Sinclair G TollnerJapan2026-07-24Morlong Associates UNQUALIFIED43Asiya Javayant
1044Claire M BologniaJapan2026-08-11Rousseaux, Michael Esq QUALIFIED37Ivan Magalhaes
1045Sinclair S WaycottGermany2026-08-07Buckley Miller Wright NEGOTIATION80Elwin Sharvill
1046Emily L SchemmerArgentina2026-08-01Printing Dimensions QUALIFIED27Ioni Bowcher
1047Aika U ChuiJapan2026-08-12Buckley Miller Wright NEW24Xuxue Feng
1048Faith U WieserJapan2026-07-23Chapman, Ross E Esq PROPOSAL17Ioni Bowcher
1049Jones H ShinkoAustralia2026-08-15Chapman, Ross E Esq NEGOTIATION44Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Greenwood E RulapaughJapanStephen Shaw RENEWAL
Adams Y DoeBrazilAnna Fali RENEWAL
Alejandro Z KolmetzIndiaElwin Sharvill QUALIFIED
Juan F MaletSpainIoni Bowcher NEGOTIATION
Aika W GlickFranceIvan Magalhaes QUALIFIED
Izzy R OldroydIndiaIoni Bowcher RENEWAL
Munro H StensethCanadaBernardo Dominic NEGOTIATION
James Q NickaFranceIvan Magalhaes RENEWAL
Jennifer A WhobreyAustraliaBernardo Dominic PROPOSAL
Jones B PaprockiIndiaXuxue Feng UNQUALIFIED
Aditya K WieserSpainAsiya Javayant UNQUALIFIED
Murillo X GarufiRussiaXuxue Feng NEW
Ivar S StensethIndiaBernardo Dominic UNQUALIFIED
Sinclair T BriddickFranceXuxue Feng NEGOTIATION
David Z OldroydCanadaAsiya Javayant UNQUALIFIED
Mujtaba K GarufiGermanyBernardo Dominic UNQUALIFIED
Alejandro D SaylorsIndiaIvan Magalhaes NEGOTIATION
Costa X NickaCanadaOnyama Limba NEGOTIATION
Maisha K FlosiAustraliaOnyama Limba QUALIFIED
Juan Q AmigonJapanOnyama Limba PROPOSAL
Alejandro Z ButtFranceIvan Magalhaes RENEWAL
Kaitlin Q PoquetteUnited KingdomAnna Fali PROPOSAL
Emily Y KolmetzCanadaIvan Magalhaes QUALIFIED
Rodrigues F DarakjyUnited KingdomIvan Magalhaes RENEWAL
Smith W FigeroaSpainIoni Bowcher QUALIFIED
Emily U WhobreyItalyAsiya Javayant NEW
Adams S WieserCanadaIoni Bowcher UNQUALIFIED
Jennifer U FollerRussiaAnna Fali RENEWAL
Isabel V TollnerGermanyAmy Elsner UNQUALIFIED
Kaitlin M DoeIndiaXuxue Feng NEW
Chavez J RutaBrazilXuxue Feng NEW
Ashley U MaletIndiaAsiya Javayant RENEWAL
Jones U RulapaughCanadaIvan Magalhaes PROPOSAL
David E FollerCanadaIoni Bowcher NEGOTIATION
Aruna B RutaRussiaBernardo Dominic PROPOSAL
Clifford G RoysterFranceAsiya Javayant UNQUALIFIED
David A PaprockiFranceStephen Shaw RENEWAL
Silvio Z FlosiJapanBernardo Dominic NEW
Silvio D FollerJapanXuxue Feng UNQUALIFIED
Aika U WhobreyBrazilAmy Elsner PROPOSAL
Izzy V ChuiRussiaOnyama Limba PROPOSAL
Antonio D PoquetteArgentinaBernardo Dominic QUALIFIED
Chavez W FerenczJapanAnna Fali RENEWAL
Julie V GillianCanadaXuxue Feng NEGOTIATION
Misaki M BriddickCanadaOnyama Limba PROPOSAL
Faith L PerinAustraliaAnna Fali NEGOTIATION
Isabel I IturbideIndiaAnna Fali QUALIFIED
Johnson O WieserUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo R GarufiSpainOnyama Limba UNQUALIFIED
Claire M VocelkaFranceAnna Fali RENEWAL
Frozen Columns
Name
Smith Q Oldroyd
Ashley X Nicka
Murillo O Paprocki
Jeanfrancois G Darakjy
Morrow A Figeroa
Isabel M Foller
Kaitlin D Maclead
Leon E Gaucho
Antonio O Caudy
Rodrigues A Foller
Claire S Waycott
Ashley H Flosi
Antonio Y Campain
Mujtaba P Kusko
Kadeem W Gillian
Francesco R Waycott
Isabel L Waycott
Nicolas T Venere
Tony U Darakjy
Aika M Whobrey
Salvatore D Venere
Cody R Waycott
Sinclair Z Gillian
Aditya Y Doe
Darci D Foller
Emily E Rulapaugh
Mujtaba P Ostrosky
Aika J Bolognia
Julie I Stenseth
Jennifer V Rulapaugh
Adams E Iturbide
Johnson V Morasca
Julie V Ostrosky
Johnson M Ostrosky
Kaitlin D Darakjy
Aika D Butt
Julie Q Bowley
Mujtaba T Poquette
Ivar I Nicka
Adams M Slusarski
Jones Z Wieser
Octavia H Schemmer
Greenwood K Vocelka
Morrow C Bolognia
Arvin V Dilliard
Ashley N Gillian
Kaitlin A Sergi
James X Sergi
Arvin V Bolognia
Darci V Vocelka
IdCountryDate
1000Brazil2026-08-02
1001Argentina2026-08-02
1002Canada2026-07-24
1003India2026-07-19
1004Japan2026-07-27
1005Australia2026-08-14
1006Italy2026-08-01
1007Canada2026-08-01
1008Japan2026-07-19
1009Argentina2026-07-19
1010Japan2026-07-20
1011Germany2026-07-30
1012Australia2026-08-04
1013India2026-08-01
1014United Kingdom2026-07-30
1015Germany2026-08-16
1016France2026-07-24
1017France2026-08-13
1018Australia2026-08-03
1019India2026-07-19
1020Spain2026-08-12
1021India2026-07-28
1022Germany2026-07-21
1023Spain2026-07-27
1024Argentina2026-07-24
1025Spain2026-07-31
1026Spain2026-08-15
1027Germany2026-07-31
1028Brazil2026-07-30
1029Spain2026-07-22
1030Spain2026-08-03
1031Australia2026-08-08
1032Australia2026-08-05
1033Russia2026-08-06
1034United Kingdom2026-08-07
1035India2026-07-30
1036Australia2026-08-14
1037Brazil2026-08-05
1038Brazil2026-08-01
1039Brazil2026-07-20
1040Brazil2026-08-07
1041Argentina2026-08-17
1042Brazil2026-07-24
1043Russia2026-08-02
1044Spain2026-07-29
1045Japan2026-07-31
1046Russia2026-07-27
1047United Kingdom2026-08-15
1048United Kingdom2026-08-16
1049Russia2026-07-22

On-Demand Data

NameIdCountryDate
Costa A Bowley1000France2026-07-19
Misaki O Figeroa1001Germany2026-08-08
James S Wieser1002Australia2026-07-27
Morrow A Wieser1003Germany2026-08-08
Misaki P Campain1004Germany2026-08-08
Octavia R Nicka1005Germany2026-08-11
Murillo G Caudy1006Brazil2026-07-24
Faith V Caudy1007Argentina2026-07-26
Nicolas Q Albares1008India2026-08-14
Maria A Caldarera1009Australia2026-07-26
Ivar U Amigon1010Italy2026-07-20
Emily A Schemmer1011Spain2026-08-12
Jennifer A Amigon1012Brazil2026-08-10
Octavia W Albares1013Canada2026-08-13
David P Rim1014Brazil2026-07-29
Murillo I Marrier1015Australia2026-08-15
Juan C Saylors1016Russia2026-08-07
Morrow B Foller1017Canada2026-08-07
Rodrigues W Morasca1018United Kingdom2026-08-14
Jones R Ferencz1019Brazil2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki A KolmetzCanadaElwin Sharvill RENEWAL
Jennifer U SlusarskiUnited KingdomAnna Fali PROPOSAL
Maria L GlickJapanAsiya Javayant NEGOTIATION
Isabel O MaletArgentinaElwin Sharvill NEW
Emily Y KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Cody K ChuiRussiaAsiya Javayant PROPOSAL
Darci E CaudyFranceAsiya Javayant RENEWAL
Jeanfrancois V IturbideGermanyIvan Magalhaes RENEWAL
Isabel S IturbideGermanyElwin Sharvill UNQUALIFIED
Johnson Q DilliardArgentinaIoni Bowcher QUALIFIED
Jeanfrancois E BologniaRussiaIvan Magalhaes QUALIFIED
Wickens W ShinkoArgentinaOnyama Limba NEW
Jefferson A PerinCanadaStephen Shaw NEW
Costa D SergiCanadaAmy Elsner NEW
Morrow A MaletSpainStephen Shaw NEW
Izzy S OstroskyAustraliaStephen Shaw QUALIFIED
Smith U SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Maria G FollerRussiaStephen Shaw NEW
Jeanfrancois X FerenczFranceIoni Bowcher NEW
Cody U KuskoSpainIoni Bowcher RENEWAL
Rodrigues P FlosiBrazilAmy Elsner UNQUALIFIED
Mujtaba E RulapaughJapanBernardo Dominic RENEWAL
Arvin Q FlosiBrazilIoni Bowcher PROPOSAL
Darci Z BowleyIndiaAmy Elsner UNQUALIFIED
Francesco X RoysterRussiaAmy Elsner PROPOSAL
David Z InouyeFranceBernardo Dominic RENEWAL
Silvio I RimRussiaIvan Magalhaes RENEWAL
Isabel H BriddickIndiaElwin Sharvill NEW
Clifford G VenereArgentinaBernardo Dominic PROPOSAL
Jones Y MorascaCanadaAmy Elsner NEW
Juan F GillianAustraliaBernardo Dominic NEGOTIATION
Johnson G NestleArgentinaBernardo Dominic NEW
James Q CampainIndiaBernardo Dominic PROPOSAL
Ashley V BowleyItalyAmy Elsner UNQUALIFIED
Ashley C PerinGermanyIvan Magalhaes PROPOSAL
Sinclair B CaldareraBrazilElwin Sharvill NEGOTIATION
Leja D RulapaughFranceStephen Shaw NEW
Smith T IturbideSpainElwin Sharvill NEGOTIATION
Costa Y TollnerUnited KingdomBernardo Dominic UNQUALIFIED
James S DarakjyAustraliaOnyama Limba QUALIFIED

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