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
Antonio W NestleGermanyAnna Fali PROPOSAL
Stacey D MorascaRussiaAsiya Javayant PROPOSAL
Munro C MacleadGermanyStephen Shaw RENEWAL
James E ChuiSpainOnyama Limba QUALIFIED
Darci C CaudyItalyElwin Sharvill RENEWAL
Aruna R WaycottArgentinaBernardo Dominic QUALIFIED
Claire H CampainJapanElwin Sharvill UNQUALIFIED
Julie B SergiIndiaBernardo Dominic UNQUALIFIED
Julie L GillianArgentinaOnyama Limba UNQUALIFIED
Aruna Q KuskoItalyXuxue Feng QUALIFIED
David U PerinIndiaAsiya Javayant UNQUALIFIED
Clifford M FigeroaCanadaAsiya Javayant UNQUALIFIED
Munro E NestleRussiaAmy Elsner RENEWAL
Alejandro J BowleyBrazilAnna Fali QUALIFIED
Maisha C CaldareraIndiaIvan Magalhaes UNQUALIFIED
Jefferson T RoysterBrazilElwin Sharvill UNQUALIFIED
Leja L GlickAustraliaAmy Elsner NEW
Nicolas K NickaBrazilBernardo Dominic NEW
Antonio Q AmigonAustraliaAmy Elsner NEW
Antonio H MaletUnited KingdomXuxue Feng NEW
Adams M GillianSpainStephen Shaw QUALIFIED
Leon I FlosiGermanyIvan Magalhaes NEW
Tony R InouyeIndiaBernardo Dominic PROPOSAL
Maria N BriddickBrazilElwin Sharvill PROPOSAL
Francesco R SergiArgentinaElwin Sharvill PROPOSAL
Tony L DilliardGermanyAnna Fali RENEWAL
Johnson X WieserRussiaXuxue Feng RENEWAL
Faith B CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Julie F CaldareraArgentinaAsiya Javayant PROPOSAL
Stacey Y MaletRussiaXuxue Feng PROPOSAL
Nicolas Z RimFranceAnna Fali PROPOSAL
Greenwood H SchemmerJapanAmy Elsner QUALIFIED
Claire B GlickSpainAmy Elsner QUALIFIED
Aika E GauchoUnited KingdomIvan Magalhaes PROPOSAL
David H RoysterRussiaStephen Shaw NEW
Arvin S ButtFranceElwin Sharvill UNQUALIFIED
Juan I BologniaBrazilStephen Shaw PROPOSAL
Cody X AlbaresAustraliaIvan Magalhaes NEW
Morrow P MaletGermanyElwin Sharvill RENEWAL
Jones F GillianArgentinaStephen Shaw QUALIFIED
Ricardo N PerinBrazilIoni Bowcher UNQUALIFIED
Clifford X MaletAustraliaXuxue Feng PROPOSAL
Antonio S SaylorsItalyXuxue Feng RENEWAL
Leja U MarrierUnited KingdomStephen Shaw NEW
Munro U DoeJapanOnyama Limba NEW
Mujtaba Q CampainIndiaIoni Bowcher NEW
Leon Z MaletIndiaElwin Sharvill NEGOTIATION
Izzy Z StensethIndiaStephen Shaw PROPOSAL
Jennifer O TollnerGermanyXuxue Feng NEGOTIATION
Kadeem J MaletUnited KingdomXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley Z MaletSpainAnna Fali NEW
Claire V OstroskyBrazilOnyama Limba NEGOTIATION
Jones K StockhamItalyAmy Elsner UNQUALIFIED
Darci A IturbideRussiaIvan Magalhaes NEW
Jennifer W VenereCanadaAnna Fali PROPOSAL
Alejandro B StockhamCanadaIoni Bowcher QUALIFIED
Munro R PerinGermanyIvan Magalhaes PROPOSAL
Maria E PaprockiBrazilXuxue Feng RENEWAL
Octavia M VenereItalyXuxue Feng NEGOTIATION
Nicolas M MaletArgentinaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas H StensethJapan2026-07-08Benton, John B Jr RENEWAL45Onyama Limba
1001Tony J RutaSpain2026-07-19Buckley Miller Wright RENEWAL69Asiya Javayant
1002Maisha J RimUnited Kingdom2026-07-18Benton, John B Jr NEGOTIATION93Amy Elsner
1003Ricardo G FlosiSpain2026-07-13Rangoni Of Florence NEGOTIATION24Onyama Limba
1004Leja Y DarakjyIndia2026-07-09Feiner Bros UNQUALIFIED70Stephen Shaw
1005Chavez N KolmetzAustralia2026-07-07Chanay, Jeffrey A Esq PROPOSAL70Ioni Bowcher
1006Silvio B CampainJapan2026-07-22Dorl, James J Esq QUALIFIED62Amy Elsner
1007Stacey D CaldareraFrance2026-07-24Dorl, James J Esq PROPOSAL52Bernardo Dominic
1008Maria I DoeSpain2026-07-21Rousseaux, Michael Esq NEGOTIATION34Xuxue Feng
1009Alejandro C GlickCanada2026-07-17Commercial Press QUALIFIED4Amy Elsner
1010James V DarakjyFrance2026-07-26Truhlar And Truhlar Attys RENEWAL28Onyama Limba
1011Deepesh X GillianUnited Kingdom2026-07-29Buckley Miller Wright UNQUALIFIED55Onyama Limba
1012Cody E NestleArgentina2026-07-20Benton, John B Jr RENEWAL62Stephen Shaw
1013Chavez E GlickCanada2026-07-21Printing Dimensions NEW7Stephen Shaw
1014Faith Q CaudyCanada2026-07-19Morlong Associates NEGOTIATION97Ivan Magalhaes
1015Ashley U MaletArgentina2026-07-12Rangoni Of Florence NEGOTIATION41Onyama Limba
1016Murillo S StockhamRussia2026-07-26Rangoni Of Florence UNQUALIFIED70Bernardo Dominic
1017Claire U GauchoJapan2026-07-08Feiner Bros NEGOTIATION26Xuxue Feng
1018Maria L PoquetteRussia2026-07-24Chemel, James L Cpa UNQUALIFIED62Xuxue Feng
1019Munro N WhobreyBrazil2026-07-19Truhlar And Truhlar Attys PROPOSAL59Ioni Bowcher
1020Antonio F CaldareraItaly2026-07-31Dorl, James J Esq RENEWAL6Stephen Shaw
1021Jeanfrancois M PaprockiCanada2026-07-19Morlong Associates NEW35Asiya Javayant
1022Arvin D RoysterAustralia2026-07-24Dorl, James J Esq RENEWAL6Ioni Bowcher
1023Leja G BologniaSpain2026-07-10Chapman, Ross E Esq NEGOTIATION94Amy Elsner
1024Tony O TollnerRussia2026-07-27Chanay, Jeffrey A Esq PROPOSAL12Onyama Limba
1025Smith C StensethCanada2026-07-13King, Christopher A Esq RENEWAL58Bernardo Dominic
1026Tony U WaycottUnited Kingdom2026-07-14Truhlar And Truhlar Attys PROPOSAL14Stephen Shaw
1027Morrow A FlosiGermany2026-07-20Chapman, Ross E Esq NEW19Asiya Javayant
1028Aika U ShinkoArgentina2026-07-22Truhlar And Truhlar Attys NEW74Bernardo Dominic
1029David Q RoysterCanada2026-07-22Truhlar And Truhlar Attys NEW83Xuxue Feng
1030Maria G BologniaGermany2026-07-06Feltz Printing Service QUALIFIED50Asiya Javayant
1031Julie B RimBrazil2026-07-28Morlong Associates NEW37Anna Fali
1032Misaki O BriddickArgentina2026-07-17Truhlar And Truhlar Attys PROPOSAL87Stephen Shaw
1033Leja L FerenczIndia2026-07-06Morlong Associates RENEWAL12Bernardo Dominic
1034Aika W DoeItaly2026-07-20King, Christopher A Esq RENEWAL92Bernardo Dominic
1035Darci Q SchemmerUnited Kingdom2026-07-24Rangoni Of Florence UNQUALIFIED24Onyama Limba
1036Ricardo L RulapaughGermany2026-07-22Benton, John B Jr RENEWAL89Bernardo Dominic
1037Misaki D AmigonJapan2026-07-08Buckley Miller Wright RENEWAL12Onyama Limba
1038Misaki Y KolmetzFrance2026-07-25Chapman, Ross E Esq UNQUALIFIED78Xuxue Feng
1039Faith T AlbaresRussia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED79Bernardo Dominic
1040Morrow O RimGermany2026-07-19Feiner Bros QUALIFIED16Amy Elsner
1041Ashley G BowleyGermany2026-07-18Rangoni Of Florence UNQUALIFIED93Elwin Sharvill
1042Izzy B NickaArgentina2026-07-05King, Christopher A Esq PROPOSAL26Stephen Shaw
1043Ashley T KolmetzCanada2026-07-27Commercial Press QUALIFIED87Stephen Shaw
1044Antonio O ButtFrance2026-07-19Benton, John B Jr NEGOTIATION65Onyama Limba
1045Tony S GillianBrazil2026-07-31Truhlar And Truhlar Attys NEW80Onyama Limba
1046Mayumi C FerenczUnited Kingdom2026-07-29Printing Dimensions RENEWAL99Xuxue Feng
1047Tony O BriddickArgentina2026-07-08Rousseaux, Michael Esq NEGOTIATION70Elwin Sharvill
1048Aika J RutaBrazil2026-07-15King, Christopher A Esq NEGOTIATION38Stephen Shaw
1049Arvin M MaletUnited Kingdom2026-07-24King, Christopher A Esq RENEWAL95Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Munro O FigeroaSpainOnyama Limba UNQUALIFIED
Jeanfrancois F PoquetteFranceIvan Magalhaes RENEWAL
Octavia W BowleyBrazilAnna Fali NEW
Darci I ChuiSpainElwin Sharvill NEW
Arvin N WaycottIndiaAnna Fali NEGOTIATION
Izzy Q FigeroaFranceStephen Shaw RENEWAL
Octavia B GarufiIndiaStephen Shaw RENEWAL
Arvin L IturbideAustraliaStephen Shaw QUALIFIED
Greenwood C IturbideRussiaIoni Bowcher QUALIFIED
Claire G ChuiGermanyStephen Shaw RENEWAL
Wickens J FerenczIndiaXuxue Feng NEGOTIATION
Jeanfrancois D PaprockiBrazilAsiya Javayant PROPOSAL
Johnson U MaletItalyAsiya Javayant NEW
Mujtaba V NestleArgentinaIoni Bowcher UNQUALIFIED
Leja X InouyeItalyIoni Bowcher NEW
Kadeem Q FerenczArgentinaBernardo Dominic PROPOSAL
Wickens M OldroydGermanyAnna Fali RENEWAL
Ashley J DarakjyCanadaElwin Sharvill RENEWAL
Johnson D MarrierRussiaAmy Elsner NEW
Octavia E NestleJapanAsiya Javayant RENEWAL
Antonio S SchemmerFranceBernardo Dominic RENEWAL
Sinclair K StensethItalyElwin Sharvill QUALIFIED
Aditya V DoeAustraliaXuxue Feng UNQUALIFIED
Morrow L SergiGermanyIoni Bowcher NEW
Darci J GarufiGermanyStephen Shaw QUALIFIED
Jeanfrancois I MarrierBrazilAsiya Javayant NEGOTIATION
Isabel K SlusarskiJapanOnyama Limba NEW
Costa B FollerAustraliaBernardo Dominic UNQUALIFIED
Rodrigues X CampainGermanyXuxue Feng PROPOSAL
Wickens T ChuiJapanAnna Fali NEGOTIATION
Leja X CampainAustraliaStephen Shaw PROPOSAL
Maria U WhobreyJapanAmy Elsner NEW
Octavia P OldroydArgentinaAmy Elsner NEGOTIATION
David K RimJapanOnyama Limba RENEWAL
Claire Y PaprockiSpainStephen Shaw UNQUALIFIED
Misaki H OldroydJapanAmy Elsner PROPOSAL
Leja L BologniaGermanyAmy Elsner NEGOTIATION
Johnson Q PoquetteUnited KingdomBernardo Dominic PROPOSAL
Ivar N RutaRussiaAnna Fali RENEWAL
Julie Q FigeroaFranceXuxue Feng NEGOTIATION
Smith B DarakjyGermanyOnyama Limba RENEWAL
Tony R FollerSpainIoni Bowcher NEW
Johnson H PerinBrazilAsiya Javayant NEGOTIATION
David R PerinJapanOnyama Limba RENEWAL
Alejandro Y FlosiGermanyAnna Fali RENEWAL
David U FlosiUnited KingdomIoni Bowcher PROPOSAL
Isabel B TollnerBrazilOnyama Limba NEGOTIATION
Maria W AlbaresBrazilAmy Elsner NEGOTIATION
Emily T InouyeIndiaIvan Magalhaes PROPOSAL
Jennifer I RutaItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Silvio X Foller
Aditya W Rim
Isabel Y Bowley
Jones M Oldroyd
Tony V Figeroa
Misaki N Bowley
Darci X Nicka
Jones F Darakjy
Murillo W Rim
Kaitlin L Sergi
Nicolas I Vocelka
Chavez Z Chui
Wickens S Slusarski
Sinclair Z Butt
David E Darakjy
Antonio U Briddick
Izzy V Briddick
Julie K Dilliard
Morrow F Stenseth
Claire K Whobrey
Isabel X Venere
Leon F Chui
Maria S Sergi
Julie T Vocelka
Aditya G Slusarski
Greenwood L Saylors
Smith E Amigon
Francesco N Poquette
Morrow T Vocelka
Mayumi L Darakjy
Stacey J Nestle
Chavez Z Flosi
Rodrigues O Glick
Misaki I Nicka
Leon K Nestle
Jones X Flosi
Faith O Briddick
Murillo S Malet
Alejandro C Oldroyd
Aditya Q Kusko
Leon P Wieser
Chavez J Gaucho
Morrow P Whobrey
Mujtaba F Inouye
Deepesh G Kusko
David Y Morasca
Francesco Q Vocelka
Tony U Iturbide
Jeanfrancois F Figeroa
Emily O Caldarera
IdCountryDate
1000France2026-07-27
1001Japan2026-07-29
1002Italy2026-07-29
1003Germany2026-07-22
1004India2026-07-11
1005Argentina2026-07-05
1006United Kingdom2026-07-06
1007Germany2026-07-07
1008Spain2026-07-24
1009Argentina2026-07-05
1010Russia2026-07-26
1011Russia2026-07-28
1012Brazil2026-07-29
1013Brazil2026-07-29
1014Italy2026-07-28
1015Brazil2026-07-22
1016Argentina2026-07-26
1017India2026-07-21
1018Canada2026-07-20
1019Germany2026-07-25
1020Australia2026-07-14
1021United Kingdom2026-07-11
1022Japan2026-07-03
1023Germany2026-07-06
1024Argentina2026-07-25
1025Australia2026-07-26
1026Brazil2026-07-31
1027Canada2026-07-11
1028Brazil2026-07-31
1029Germany2026-07-23
1030Japan2026-07-18
1031Germany2026-07-30
1032France2026-07-06
1033France2026-07-24
1034Russia2026-07-15
1035Italy2026-07-27
1036France2026-07-18
1037India2026-07-26
1038France2026-07-04
1039France2026-07-24
1040United Kingdom2026-08-01
1041Japan2026-07-13
1042France2026-07-17
1043India2026-07-12
1044Italy2026-07-27
1045Canada2026-07-15
1046Italy2026-07-29
1047Italy2026-07-16
1048Spain2026-07-16
1049United Kingdom2026-07-05

On-Demand Data

NameIdCountryDate
Munro C Albares1000Germany2026-07-31
Jones R Inouye1001Brazil2026-07-09
Jones F Gillian1002Germany2026-07-06
Mujtaba Z Butt1003Germany2026-07-07
Emily V Shinko1004Brazil2026-07-04
Adams Q Ostrosky1005Spain2026-07-19
Ivar Z Kusko1006Australia2026-07-27
Juan U Flosi1007India2026-07-14
Jennifer F Chui1008Spain2026-07-26
Faith U Gillian1009Australia2026-07-16
Isabel L Morasca1010United Kingdom2026-07-16
Ricardo I Poquette1011Japan2026-07-16
Maria V Kusko1012Brazil2026-08-01
Arvin I Venere1013Germany2026-07-09
Jefferson U Ostrosky1014India2026-07-06
Costa E Briddick1015Brazil2026-07-29
Chavez U Poquette1016Spain2026-07-12
Arvin M Bolognia1017Russia2026-07-26
Claire L Stockham1018Germany2026-07-28
Tony U Slusarski1019Spain2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo R StockhamJapanElwin Sharvill UNQUALIFIED
Darci U DoeBrazilXuxue Feng UNQUALIFIED
Deepesh M MorascaRussiaAsiya Javayant NEW
Clifford M MorascaArgentinaStephen Shaw NEW
Julie V OstroskyRussiaBernardo Dominic PROPOSAL
Octavia E VenereUnited KingdomAsiya Javayant RENEWAL
Mujtaba A NickaSpainOnyama Limba RENEWAL
Maria M SchemmerBrazilOnyama Limba NEW
Mayumi Y RulapaughRussiaOnyama Limba UNQUALIFIED
Octavia A SaylorsBrazilElwin Sharvill UNQUALIFIED
Morrow N MaletBrazilIoni Bowcher NEW
Smith P RimAustraliaBernardo Dominic UNQUALIFIED
Munro J GarufiCanadaXuxue Feng NEGOTIATION
Aruna U GillianFranceBernardo Dominic PROPOSAL
Silvio L PoquetteGermanyAmy Elsner NEGOTIATION
Ivar G NestleUnited KingdomStephen Shaw NEW
Cody T AlbaresItalyAmy Elsner RENEWAL
Adams Q TollnerIndiaAsiya Javayant QUALIFIED
Francesco H GauchoItalyAnna Fali PROPOSAL
Misaki G GauchoSpainAnna Fali UNQUALIFIED
Stacey N OldroydArgentinaElwin Sharvill RENEWAL
Kadeem V KolmetzGermanyOnyama Limba NEGOTIATION
Misaki T GlickGermanyXuxue Feng PROPOSAL
Wickens R NestleItalyAnna Fali PROPOSAL
Kadeem Z StockhamItalyIvan Magalhaes PROPOSAL
Aika I DilliardIndiaXuxue Feng RENEWAL
Izzy S VocelkaJapanAnna Fali RENEWAL
Jefferson O BologniaRussiaIoni Bowcher NEGOTIATION
Ashley J SchemmerSpainAmy Elsner NEGOTIATION
Juan L MacleadArgentinaBernardo Dominic NEW
Mujtaba E CampainGermanyXuxue Feng NEGOTIATION
Alejandro Q SlusarskiRussiaElwin Sharvill RENEWAL
Isabel E OstroskyAustraliaStephen Shaw UNQUALIFIED
Rodrigues D MaletArgentinaBernardo Dominic NEW
Johnson Z VocelkaAustraliaXuxue Feng NEGOTIATION
Ivar T SchemmerAustraliaBernardo Dominic NEGOTIATION
Cody K SergiAustraliaAmy Elsner RENEWAL
Smith S AmigonIndiaOnyama Limba QUALIFIED
Sinclair C CampainAustraliaXuxue Feng RENEWAL
Mayumi Q OstroskySpainAsiya Javayant 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>