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
Sinclair T CampainArgentinaAsiya Javayant UNQUALIFIED
Jones M VocelkaRussiaIoni Bowcher RENEWAL
Kadeem T BologniaArgentinaAnna Fali RENEWAL
Aruna F GauchoRussiaAmy Elsner NEW
Mujtaba S AlbaresBrazilElwin Sharvill NEGOTIATION
Johnson U PoquetteUnited KingdomAsiya Javayant PROPOSAL
Emily V OldroydGermanyOnyama Limba QUALIFIED
Emily Z GarufiCanadaAsiya Javayant NEGOTIATION
Maria F MaletRussiaAsiya Javayant NEGOTIATION
Aruna H SchemmerJapanAmy Elsner UNQUALIFIED
Nicolas O SergiIndiaIoni Bowcher QUALIFIED
Emily I CaldareraJapanAsiya Javayant QUALIFIED
Clifford H WaycottUnited KingdomAnna Fali RENEWAL
Arvin V MarrierGermanyElwin Sharvill RENEWAL
Ricardo N VenereIndiaIoni Bowcher RENEWAL
Tony L FigeroaAustraliaOnyama Limba NEGOTIATION
Jones T WieserJapanXuxue Feng NEGOTIATION
Aruna B InouyeBrazilOnyama Limba UNQUALIFIED
Cody E PaprockiSpainIvan Magalhaes PROPOSAL
Ashley O CampainBrazilElwin Sharvill UNQUALIFIED
Tony H GauchoUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois X BologniaSpainIoni Bowcher PROPOSAL
Juan P PerinCanadaIvan Magalhaes NEGOTIATION
Darci Q FlosiJapanIoni Bowcher NEW
Alejandro X OstroskyCanadaAnna Fali NEGOTIATION
Greenwood B WaycottSpainIoni Bowcher QUALIFIED
Morrow F FlosiFranceIvan Magalhaes NEW
David R RoysterRussiaAsiya Javayant PROPOSAL
Aruna P MaletSpainXuxue Feng UNQUALIFIED
Emily I DilliardFranceAmy Elsner NEGOTIATION
James Y ButtGermanyElwin Sharvill RENEWAL
Tony M GillianJapanXuxue Feng RENEWAL
Smith O FigeroaIndiaIoni Bowcher PROPOSAL
Jennifer E CaudyItalyIoni Bowcher NEGOTIATION
Rodrigues H KuskoArgentinaIvan Magalhaes NEGOTIATION
Wickens J KuskoIndiaAmy Elsner UNQUALIFIED
Ashley P NickaAustraliaXuxue Feng RENEWAL
Ashley D WieserFranceAmy Elsner QUALIFIED
Emily F TollnerGermanyElwin Sharvill RENEWAL
Morrow L VenereJapanOnyama Limba RENEWAL
Alejandro F InouyeAustraliaIvan Magalhaes PROPOSAL
Arvin A AmigonAustraliaXuxue Feng NEGOTIATION
Darci I ShinkoArgentinaIoni Bowcher UNQUALIFIED
Kaitlin Q GillianItalyElwin Sharvill QUALIFIED
Maria A ChuiCanadaStephen Shaw NEW
Salvatore U AlbaresBrazilAnna Fali NEW
Juan J KolmetzFranceBernardo Dominic RENEWAL
Maria R RulapaughSpainElwin Sharvill PROPOSAL
Aika L RoysterRussiaStephen Shaw RENEWAL
Francesco B VocelkaItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson Q FigeroaIndiaXuxue Feng NEW
Nicolas U AmigonIndiaAnna Fali PROPOSAL
Leon I CaudyItalyIoni Bowcher PROPOSAL
Jones F PaprockiGermanyAnna Fali NEGOTIATION
Morrow Z SlusarskiRussiaXuxue Feng RENEWAL
Maisha U RimGermanyAsiya Javayant NEGOTIATION
Morrow A PerinUnited KingdomIoni Bowcher NEW
Kaitlin M RoysterCanadaXuxue Feng NEW
Maria K OstroskySpainIoni Bowcher RENEWAL
Tony X FollerItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel A MacleadFrance2026-06-21Truhlar And Truhlar Attys UNQUALIFIED24Onyama Limba
1001Ricardo M NickaGermany2026-06-19Feiner Bros RENEWAL80Onyama Limba
1002Deepesh O FlosiRussia2026-07-08Printing Dimensions QUALIFIED30Asiya Javayant
1003Octavia G CaudySpain2026-06-18Feiner Bros RENEWAL90Onyama Limba
1004Claire K TollnerRussia2026-06-23Feltz Printing Service UNQUALIFIED41Amy Elsner
1005Rodrigues G MacleadArgentina2026-07-05Chemel, James L Cpa RENEWAL58Onyama Limba
1006James T NestleBrazil2026-06-27Chapman, Ross E Esq RENEWAL63Ivan Magalhaes
1007Mujtaba J FigeroaJapan2026-06-27Chapman, Ross E Esq NEGOTIATION12Amy Elsner
1008Ivar Q GillianJapan2026-06-22Buckley Miller Wright NEGOTIATION77Bernardo Dominic
1009Salvatore X BologniaJapan2026-07-13Chanay, Jeffrey A Esq RENEWAL43Stephen Shaw
1010Adams N BologniaBrazil2026-06-23Dorl, James J Esq NEW58Ivan Magalhaes
1011Salvatore A TollnerUnited Kingdom2026-07-09Buckley Miller Wright NEGOTIATION92Elwin Sharvill
1012Wickens Q BologniaArgentina2026-07-04Chanay, Jeffrey A Esq NEW37Amy Elsner
1013Izzy I MaletBrazil2026-06-22Rousseaux, Michael Esq NEGOTIATION9Asiya Javayant
1014Salvatore C SlusarskiAustralia2026-06-28Benton, John B Jr UNQUALIFIED24Amy Elsner
1015Leon J BriddickBrazil2026-06-27Commercial Press UNQUALIFIED39Stephen Shaw
1016Jeanfrancois V FigeroaCanada2026-06-29Chemel, James L Cpa NEW56Ivan Magalhaes
1017Emily B MarrierUnited Kingdom2026-07-04Feltz Printing Service PROPOSAL35Elwin Sharvill
1018Mayumi T GlickIndia2026-07-06King, Christopher A Esq UNQUALIFIED56Xuxue Feng
1019Octavia U CaudySpain2026-06-23Chapman, Ross E Esq NEGOTIATION52Ioni Bowcher
1020Johnson P ButtFrance2026-07-13Chapman, Ross E Esq RENEWAL40Stephen Shaw
1021Nicolas V BowleyIndia2026-07-10Feltz Printing Service NEGOTIATION18Elwin Sharvill
1022Misaki V ChuiBrazil2026-07-04Feiner Bros NEGOTIATION20Bernardo Dominic
1023Leon W CaudyArgentina2026-07-01Rangoni Of Florence RENEWAL8Amy Elsner
1024Darci B VenereItaly2026-07-12Truhlar And Truhlar Attys PROPOSAL16Asiya Javayant
1025Francesco D VenereIndia2026-06-29Chapman, Ross E Esq NEW59Asiya Javayant
1026Alejandro G MorascaRussia2026-06-17Morlong Associates NEGOTIATION45Xuxue Feng
1027Wickens L StensethCanada2026-06-29Chapman, Ross E Esq PROPOSAL28Ioni Bowcher
1028Izzy Z StockhamItaly2026-06-21Feltz Printing Service PROPOSAL35Ioni Bowcher
1029Francesco W InouyeBrazil2026-07-13Truhlar And Truhlar Attys NEW90Amy Elsner
1030Claire I WieserGermany2026-06-21Buckley Miller Wright PROPOSAL11Asiya Javayant
1031Morrow Z WaycottIndia2026-06-25Chemel, James L Cpa QUALIFIED76Ioni Bowcher
1032Jeanfrancois N FigeroaCanada2026-06-24Rousseaux, Michael Esq QUALIFIED20Elwin Sharvill
1033David O CaudyIndia2026-06-27Benton, John B Jr PROPOSAL37Xuxue Feng
1034Emily L AmigonSpain2026-06-26Commercial Press QUALIFIED93Ioni Bowcher
1035Maria J GillianSpain2026-07-01Truhlar And Truhlar Attys PROPOSAL63Ivan Magalhaes
1036Wickens P CaldareraAustralia2026-06-27Chapman, Ross E Esq UNQUALIFIED41Elwin Sharvill
1037Aika Y SergiAustralia2026-06-17Feltz Printing Service QUALIFIED25Anna Fali
1038Murillo W WaycottItaly2026-07-04Chapman, Ross E Esq NEW47Elwin Sharvill
1039Murillo P CaldareraBrazil2026-06-21Chanay, Jeffrey A Esq QUALIFIED94Anna Fali
1040Julie T GarufiArgentina2026-07-15Printing Dimensions NEGOTIATION72Bernardo Dominic
1041Greenwood F NickaCanada2026-07-10Printing Dimensions NEW36Ivan Magalhaes
1042Murillo J DoeJapan2026-06-30Feltz Printing Service PROPOSAL6Amy Elsner
1043David J GillianAustralia2026-07-16Morlong Associates NEW7Asiya Javayant
1044Stacey P WieserJapan2026-07-08Buckley Miller Wright PROPOSAL72Elwin Sharvill
1045Murillo F CampainArgentina2026-06-26Chanay, Jeffrey A Esq QUALIFIED10Xuxue Feng
1046Salvatore I WieserFrance2026-07-04Chemel, James L Cpa QUALIFIED3Asiya Javayant
1047Leon L MacleadCanada2026-06-19Dorl, James J Esq NEGOTIATION7Xuxue Feng
1048Misaki D PoquetteItaly2026-07-06Rangoni Of Florence UNQUALIFIED66Ivan Magalhaes
1049Aika N GillianUnited Kingdom2026-06-25Benton, John B Jr UNQUALIFIED38Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Munro B CampainUnited KingdomAmy Elsner QUALIFIED
Aika N ChuiCanadaElwin Sharvill QUALIFIED
Arvin N VenereBrazilAmy Elsner UNQUALIFIED
Isabel U MaletArgentinaAnna Fali PROPOSAL
Mayumi X NickaBrazilAmy Elsner QUALIFIED
Maisha L TollnerItalyBernardo Dominic RENEWAL
Izzy E OstroskyBrazilStephen Shaw UNQUALIFIED
Aditya D GlickGermanyAsiya Javayant PROPOSAL
Antonio V FollerUnited KingdomAmy Elsner PROPOSAL
Costa L GarufiItalyXuxue Feng PROPOSAL
Juan Z BriddickItalyStephen Shaw NEGOTIATION
Salvatore D ChuiItalyAnna Fali QUALIFIED
Chavez H VocelkaBrazilXuxue Feng QUALIFIED
David Z BowleyBrazilElwin Sharvill UNQUALIFIED
Ivar Y ChuiUnited KingdomStephen Shaw QUALIFIED
Aruna B BologniaBrazilAmy Elsner NEGOTIATION
Leja D BriddickBrazilAnna Fali QUALIFIED
Greenwood Q CaudyJapanIoni Bowcher QUALIFIED
Cody L FlosiSpainAmy Elsner UNQUALIFIED
Izzy S MaletGermanyAnna Fali NEW
Clifford H SaylorsAustraliaAsiya Javayant QUALIFIED
Aika W CampainAustraliaStephen Shaw QUALIFIED
Francesco L FerenczJapanOnyama Limba UNQUALIFIED
Aditya W NestleAustraliaIvan Magalhaes NEGOTIATION
Kadeem D WaycottRussiaXuxue Feng PROPOSAL
Morrow K GillianAustraliaElwin Sharvill UNQUALIFIED
Deepesh W FerenczAustraliaElwin Sharvill NEGOTIATION
Jones V BowleyAustraliaIvan Magalhaes NEGOTIATION
Darci F VenereCanadaOnyama Limba UNQUALIFIED
Octavia M SaylorsFranceIvan Magalhaes PROPOSAL
Claire X SaylorsIndiaAsiya Javayant UNQUALIFIED
Jefferson Z SaylorsGermanyAsiya Javayant UNQUALIFIED
Ashley F NestleItalyXuxue Feng NEGOTIATION
Costa G WhobreySpainAnna Fali UNQUALIFIED
Tony E StockhamIndiaBernardo Dominic NEGOTIATION
Leja Z FerenczRussiaAsiya Javayant NEGOTIATION
Deepesh I OstroskyArgentinaStephen Shaw UNQUALIFIED
Aruna T RimJapanStephen Shaw UNQUALIFIED
Salvatore A DoeItalyStephen Shaw PROPOSAL
Aditya F PoquetteItalyIoni Bowcher NEGOTIATION
Silvio J NestleGermanyIoni Bowcher NEGOTIATION
Costa J MaletIndiaAnna Fali NEW
Sinclair K GarufiFranceIoni Bowcher QUALIFIED
Izzy S TollnerJapanAmy Elsner RENEWAL
Rodrigues R WieserAustraliaIoni Bowcher PROPOSAL
Julie F TollnerGermanyAsiya Javayant NEW
Jefferson J FigeroaArgentinaBernardo Dominic QUALIFIED
James K DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh Y MorascaRussiaXuxue Feng QUALIFIED
Ashley B GillianAustraliaElwin Sharvill NEW
Frozen Columns
Name
Alejandro B Kusko
Mayumi G Oldroyd
Munro D Rulapaugh
Antonio R Rulapaugh
Tony Q Wieser
James U Campain
James G Caudy
Maria V Venere
Aika X Whobrey
Aika P Dilliard
Adams O Kusko
Munro U Paprocki
Aruna Y Foller
Murillo Q Marrier
Francesco P Malet
Morrow N Caldarera
Francesco T Malet
Antonio A Bowley
Aruna I Garufi
Clifford B Marrier
Clifford Z Figeroa
Chavez C Nicka
Salvatore W Maclead
Juan Y Waycott
Jennifer E Amigon
Clifford S Ferencz
Aika Y Campain
Kaitlin P Wieser
Maria T Chui
Morrow K Caudy
Leja V Ruta
Deepesh H Campain
Murillo A Amigon
Francesco O Poquette
Octavia B Dilliard
Juan Y Doe
Faith Z Caldarera
Maria B Bolognia
Jefferson Y Dilliard
Maria O Stockham
Mujtaba J Malet
Isabel F Glick
Leja E Kusko
Murillo H Morasca
Leon H Morasca
Cody V Paprocki
Maisha S Ostrosky
Misaki K Campain
David Q Kusko
Misaki B Glick
IdCountryDate
1000Russia2026-07-01
1001Argentina2026-07-04
1002France2026-06-29
1003Spain2026-07-05
1004Australia2026-06-18
1005Australia2026-07-10
1006Australia2026-07-15
1007France2026-07-01
1008Japan2026-06-25
1009France2026-07-03
1010Germany2026-07-14
1011Brazil2026-07-08
1012Argentina2026-07-15
1013Italy2026-07-11
1014India2026-07-03
1015Italy2026-07-09
1016Germany2026-07-01
1017Spain2026-06-18
1018Canada2026-06-22
1019Spain2026-07-14
1020Russia2026-07-05
1021Canada2026-06-20
1022Australia2026-07-16
1023Argentina2026-06-17
1024Spain2026-07-01
1025Brazil2026-07-05
1026Spain2026-07-15
1027Germany2026-07-11
1028United Kingdom2026-06-25
1029Brazil2026-07-12
1030Canada2026-07-16
1031Japan2026-07-04
1032Spain2026-07-16
1033India2026-06-25
1034Canada2026-07-13
1035Brazil2026-06-18
1036India2026-07-06
1037Canada2026-06-19
1038France2026-07-13
1039France2026-07-15
1040Italy2026-06-17
1041Russia2026-06-27
1042Japan2026-06-26
1043Brazil2026-07-16
1044Spain2026-07-03
1045Spain2026-07-05
1046Russia2026-07-05
1047France2026-06-23
1048Australia2026-07-16
1049Canada2026-07-07

On-Demand Data

NameIdCountryDate
Tony S Caudy1000Spain2026-07-01
Mujtaba O Darakjy1001Japan2026-07-09
Ricardo J Morasca1002Italy2026-07-10
Greenwood B Stockham1003Germany2026-07-09
Johnson P Kusko1004Italy2026-07-08
Jefferson Y Perin1005Germany2026-06-22
Cody L Iturbide1006Germany2026-07-03
Jefferson Q Maclead1007France2026-06-17
Francesco M Iturbide1008Japan2026-07-07
Munro W Butt1009Germany2026-06-26
David S Bowley1010Spain2026-07-16
Francesco M Stockham1011Brazil2026-06-17
Jeanfrancois L Bowley1012Spain2026-06-27
Julie O Kusko1013United Kingdom2026-06-30
Maisha G Malet1014Italy2026-06-28
Tony Q Flosi1015Brazil2026-07-04
Izzy D Gaucho1016Japan2026-07-04
Kaitlin W Kusko1017United Kingdom2026-06-19
Morrow D Marrier1018Japan2026-06-30
Deepesh Y Oldroyd1019Canada2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford S VocelkaGermanyAsiya Javayant UNQUALIFIED
Costa I FigeroaBrazilBernardo Dominic QUALIFIED
Jefferson Q AmigonRussiaXuxue Feng PROPOSAL
Isabel Z BowleySpainXuxue Feng NEW
Kadeem Q BologniaJapanXuxue Feng NEGOTIATION
Mujtaba G WhobreyRussiaBernardo Dominic RENEWAL
Alejandro M SaylorsSpainAnna Fali NEGOTIATION
Octavia W ButtAustraliaIoni Bowcher NEW
Maisha B OldroydUnited KingdomBernardo Dominic NEW
Octavia D FollerFranceAnna Fali PROPOSAL
Aditya U BologniaArgentinaElwin Sharvill RENEWAL
Wickens K ShinkoRussiaIoni Bowcher NEW
Emily N SlusarskiRussiaBernardo Dominic QUALIFIED
Jennifer J RoysterAustraliaIvan Magalhaes PROPOSAL
Izzy M InouyeSpainXuxue Feng PROPOSAL
Salvatore M GlickAustraliaIoni Bowcher PROPOSAL
Isabel N ShinkoJapanElwin Sharvill PROPOSAL
Isabel K MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Jones T PerinBrazilStephen Shaw NEGOTIATION
Isabel G TollnerGermanyIoni Bowcher PROPOSAL
Juan W ButtCanadaIvan Magalhaes QUALIFIED
Sinclair Y AlbaresGermanyStephen Shaw PROPOSAL
Maisha V DarakjyIndiaBernardo Dominic PROPOSAL
Chavez V DarakjyBrazilIvan Magalhaes QUALIFIED
Faith R DilliardGermanyAmy Elsner NEGOTIATION
Rodrigues N ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Morrow J GillianJapanXuxue Feng RENEWAL
Chavez H ButtAustraliaIvan Magalhaes NEGOTIATION
Clifford M MacleadAustraliaOnyama Limba QUALIFIED
Arvin D TollnerUnited KingdomElwin Sharvill QUALIFIED
Emily W VocelkaUnited KingdomStephen Shaw PROPOSAL
Munro Z CaudyItalyOnyama Limba PROPOSAL
Arvin Z SergiGermanyAnna Fali UNQUALIFIED
Ricardo M DarakjyArgentinaStephen Shaw RENEWAL
Munro L FerenczCanadaBernardo Dominic UNQUALIFIED
Ashley M MacleadItalyBernardo Dominic NEW
Maria P MacleadGermanyBernardo Dominic UNQUALIFIED
Arvin Z WaycottJapanXuxue Feng QUALIFIED
David O OldroydArgentinaOnyama Limba NEW
Murillo Z NickaArgentinaXuxue Feng 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>