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
Alejandro N MorascaArgentinaIvan Magalhaes QUALIFIED
Aruna X RimArgentinaAmy Elsner RENEWAL
Juan D SchemmerFranceOnyama Limba RENEWAL
Juan R OstroskyCanadaIoni Bowcher RENEWAL
Aika V FlosiArgentinaOnyama Limba PROPOSAL
Jeanfrancois H SlusarskiJapanAsiya Javayant NEW
Chavez Q IturbideJapanBernardo Dominic PROPOSAL
Ashley B TollnerArgentinaAmy Elsner NEW
Jones R CaudySpainIoni Bowcher NEW
Nicolas P GauchoFranceAnna Fali UNQUALIFIED
Mayumi N MaletArgentinaOnyama Limba RENEWAL
Ashley U AmigonItalyAnna Fali UNQUALIFIED
Maisha K ShinkoAustraliaAsiya Javayant PROPOSAL
Smith R SaylorsAustraliaBernardo Dominic RENEWAL
Clifford P FerenczRussiaElwin Sharvill NEGOTIATION
Clifford L OldroydSpainIvan Magalhaes UNQUALIFIED
Juan S MacleadRussiaXuxue Feng UNQUALIFIED
Izzy Y GauchoFranceOnyama Limba NEW
Mujtaba O WieserAustraliaIvan Magalhaes NEGOTIATION
Deepesh W DoeGermanyBernardo Dominic PROPOSAL
Francesco O PoquetteCanadaIoni Bowcher RENEWAL
Leon S BologniaJapanStephen Shaw NEW
James K CaldareraItalyOnyama Limba QUALIFIED
Arvin L VenereFranceStephen Shaw UNQUALIFIED
Ashley W RutaBrazilStephen Shaw RENEWAL
Izzy P AlbaresItalyAnna Fali NEW
Cody V WieserGermanyIvan Magalhaes UNQUALIFIED
Ashley I MarrierItalyStephen Shaw PROPOSAL
Salvatore H BologniaUnited KingdomAnna Fali PROPOSAL
Ashley Y MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Tony M SchemmerIndiaBernardo Dominic RENEWAL
Ashley O CampainUnited KingdomElwin Sharvill PROPOSAL
Francesco K VenereBrazilOnyama Limba PROPOSAL
Aruna U PerinAustraliaOnyama Limba QUALIFIED
Stacey P CaudyAustraliaElwin Sharvill PROPOSAL
Alejandro G RoysterCanadaAnna Fali UNQUALIFIED
Ricardo P SchemmerRussiaBernardo Dominic NEW
Isabel F NestleRussiaElwin Sharvill RENEWAL
Antonio G TollnerArgentinaBernardo Dominic RENEWAL
Silvio B RimAustraliaIvan Magalhaes UNQUALIFIED
Costa K SlusarskiGermanyAmy Elsner UNQUALIFIED
Stacey D RimFranceAnna Fali NEW
Jeanfrancois J GauchoAustraliaIvan Magalhaes NEGOTIATION
Juan E ButtGermanyOnyama Limba UNQUALIFIED
Juan H BowleyRussiaBernardo Dominic UNQUALIFIED
Cody X FollerJapanBernardo Dominic NEGOTIATION
Emily B MaletAustraliaBernardo Dominic QUALIFIED
Cody Q IturbideAustraliaAnna Fali UNQUALIFIED
Kadeem U WieserIndiaElwin Sharvill PROPOSAL
Adams W SergiAustraliaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna A FerenczItalyBernardo Dominic QUALIFIED
Johnson D IturbideFranceElwin Sharvill QUALIFIED
Morrow H WaycottArgentinaAnna Fali NEGOTIATION
Ricardo C NestleItalyElwin Sharvill UNQUALIFIED
Emily C RutaArgentinaAsiya Javayant NEGOTIATION
Mujtaba E CampainFranceAnna Fali RENEWAL
Jeanfrancois Z SchemmerCanadaAsiya Javayant UNQUALIFIED
Julie N WieserSpainAmy Elsner NEGOTIATION
Ashley R BriddickRussiaIoni Bowcher QUALIFIED
Chavez Z MaletSpainAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David U ChuiIndia2026-07-08Dorl, James J Esq NEW4Onyama Limba
1001Wickens T WieserFrance2026-07-11Feltz Printing Service UNQUALIFIED59Xuxue Feng
1002Tony T FigeroaBrazil2026-07-10Truhlar And Truhlar Attys PROPOSAL1Stephen Shaw
1003Ricardo F BowleyUnited Kingdom2026-07-01Dorl, James J Esq NEW67Asiya Javayant
1004Silvio E StensethBrazil2026-07-01Rousseaux, Michael Esq UNQUALIFIED72Elwin Sharvill
1005Salvatore J RoysterCanada2026-07-12Truhlar And Truhlar Attys NEW8Anna Fali
1006Izzy X GillianRussia2026-07-27Chemel, James L Cpa QUALIFIED73Asiya Javayant
1007Cody A TollnerFrance2026-07-26Buckley Miller Wright QUALIFIED11Ivan Magalhaes
1008Tony G MaletAustralia2026-07-11Chapman, Ross E Esq UNQUALIFIED59Asiya Javayant
1009Jennifer C SaylorsFrance2026-07-02Buckley Miller Wright PROPOSAL10Elwin Sharvill
1010Ivar U VocelkaArgentina2026-07-20Buckley Miller Wright RENEWAL12Stephen Shaw
1011Aruna J GauchoJapan2026-07-27Buckley Miller Wright QUALIFIED94Bernardo Dominic
1012Mayumi Y NestleGermany2026-07-05Rousseaux, Michael Esq NEW54Asiya Javayant
1013Alejandro X BologniaGermany2026-07-11Feiner Bros RENEWAL34Asiya Javayant
1014Faith X VenereBrazil2026-07-16Truhlar And Truhlar Attys UNQUALIFIED22Xuxue Feng
1015Rodrigues S InouyeRussia2026-07-01Chemel, James L Cpa QUALIFIED48Stephen Shaw
1016Ivar M DilliardRussia2026-07-08Feiner Bros UNQUALIFIED34Asiya Javayant
1017Clifford Q CaudyGermany2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED15Ivan Magalhaes
1018Darci S MaletItaly2026-06-29Chemel, James L Cpa RENEWAL76Xuxue Feng
1019James N MacleadJapan2026-07-24Printing Dimensions NEGOTIATION99Onyama Limba
1020Isabel Y InouyeUnited Kingdom2026-07-02Feltz Printing Service RENEWAL53Bernardo Dominic
1021Salvatore T MacleadFrance2026-07-03Chanay, Jeffrey A Esq NEW17Ivan Magalhaes
1022Salvatore T NickaUnited Kingdom2026-07-17Chapman, Ross E Esq NEGOTIATION46Amy Elsner
1023Antonio B DilliardJapan2026-07-10King, Christopher A Esq NEGOTIATION21Xuxue Feng
1024Clifford G WieserRussia2026-07-13Benton, John B Jr QUALIFIED16Ioni Bowcher
1025Silvio Q SlusarskiFrance2026-07-19Benton, John B Jr UNQUALIFIED92Anna Fali
1026Jennifer Q CaldareraItaly2026-07-02Truhlar And Truhlar Attys PROPOSAL33Anna Fali
1027Sinclair J SchemmerBrazil2026-07-02Benton, John B Jr UNQUALIFIED62Stephen Shaw
1028Wickens V WaycottArgentina2026-07-25Chemel, James L Cpa NEGOTIATION24Stephen Shaw
1029David F CaudyBrazil2026-07-22Rangoni Of Florence QUALIFIED84Onyama Limba
1030Salvatore B AlbaresCanada2026-07-17Buckley Miller Wright NEGOTIATION46Onyama Limba
1031Jennifer O FerenczFrance2026-07-03Chemel, James L Cpa RENEWAL37Elwin Sharvill
1032Julie A MaletArgentina2026-07-19Rangoni Of Florence NEGOTIATION96Xuxue Feng
1033Wickens U GillianBrazil2026-07-07Feltz Printing Service RENEWAL88Elwin Sharvill
1034Wickens I IturbideUnited Kingdom2026-07-11Chemel, James L Cpa NEW94Elwin Sharvill
1035Chavez R CaldareraCanada2026-07-26Morlong Associates NEGOTIATION28Bernardo Dominic
1036Jennifer R RimAustralia2026-07-08Feltz Printing Service PROPOSAL59Amy Elsner
1037Chavez A FerenczBrazil2026-07-01Dorl, James J Esq RENEWAL16Bernardo Dominic
1038Mujtaba N InouyeSpain2026-07-15Rangoni Of Florence QUALIFIED8Xuxue Feng
1039David I RoysterAustralia2026-07-08Rangoni Of Florence QUALIFIED2Anna Fali
1040Stacey F PoquetteSpain2026-07-24Benton, John B Jr QUALIFIED35Elwin Sharvill
1041James U RoysterItaly2026-07-11Rousseaux, Michael Esq NEW24Ivan Magalhaes
1042Isabel U DarakjyIndia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED8Asiya Javayant
1043Nicolas E SaylorsBrazil2026-07-05Chapman, Ross E Esq QUALIFIED0Stephen Shaw
1044Salvatore T OldroydSpain2026-07-25Morlong Associates NEW57Anna Fali
1045Cody J FlosiFrance2026-07-07Feiner Bros PROPOSAL89Onyama Limba
1046Silvio S FerenczUnited Kingdom2026-06-29Printing Dimensions UNQUALIFIED80Anna Fali
1047Aika K PoquetteUnited Kingdom2026-07-13Truhlar And Truhlar Attys NEGOTIATION27Ivan Magalhaes
1048Johnson N KuskoJapan2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED37Elwin Sharvill
1049Ashley R MacleadAustralia2026-07-23Morlong Associates NEW76Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Costa W SchemmerRussiaAnna Fali QUALIFIED
Salvatore Z NestleIndiaOnyama Limba QUALIFIED
Sinclair H GauchoFranceAmy Elsner PROPOSAL
Maisha X FlosiIndiaAmy Elsner NEGOTIATION
Darci H CampainArgentinaAmy Elsner RENEWAL
Jeanfrancois B BriddickArgentinaIvan Magalhaes NEW
Claire S WaycottItalyXuxue Feng UNQUALIFIED
James G CaudySpainIoni Bowcher RENEWAL
Mayumi G PoquetteUnited KingdomAmy Elsner PROPOSAL
Salvatore H MaletFranceStephen Shaw NEGOTIATION
Izzy B WhobreyFranceIvan Magalhaes NEGOTIATION
Aika J SchemmerBrazilIvan Magalhaes NEW
Ashley L PerinCanadaIoni Bowcher NEGOTIATION
Misaki J BriddickSpainIoni Bowcher RENEWAL
Julie E AlbaresRussiaIoni Bowcher RENEWAL
Jennifer M SaylorsCanadaXuxue Feng PROPOSAL
Misaki H RutaItalyStephen Shaw QUALIFIED
Silvio D BologniaItalyXuxue Feng NEW
Salvatore Y AlbaresJapanBernardo Dominic PROPOSAL
Antonio T ShinkoJapanAnna Fali UNQUALIFIED
Leja A SchemmerBrazilAsiya Javayant NEGOTIATION
Aruna W DoeArgentinaXuxue Feng QUALIFIED
Darci G RoysterAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois Q RoysterCanadaIoni Bowcher QUALIFIED
Ivar F InouyeItalyIvan Magalhaes NEW
Clifford W KuskoArgentinaAmy Elsner RENEWAL
Misaki L DarakjyArgentinaBernardo Dominic NEW
Aditya P FollerFranceElwin Sharvill NEW
Tony T BriddickAustraliaBernardo Dominic UNQUALIFIED
Wickens D DilliardFranceStephen Shaw RENEWAL
Isabel V RutaUnited KingdomAmy Elsner NEW
Munro Y OstroskyAustraliaOnyama Limba PROPOSAL
Adams V SergiRussiaIvan Magalhaes NEW
Murillo H WhobreyArgentinaIvan Magalhaes QUALIFIED
Julie L BowleyGermanyElwin Sharvill QUALIFIED
Jeanfrancois G StockhamBrazilOnyama Limba RENEWAL
Maria H BowleyRussiaBernardo Dominic UNQUALIFIED
Nicolas J ShinkoAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois L NestleSpainIoni Bowcher QUALIFIED
Costa R ChuiBrazilOnyama Limba PROPOSAL
Morrow O DoeSpainAmy Elsner QUALIFIED
Johnson T WhobreyCanadaAnna Fali NEGOTIATION
Sinclair I StockhamAustraliaAmy Elsner UNQUALIFIED
Silvio Z ButtIndiaAmy Elsner UNQUALIFIED
David J NestleUnited KingdomIoni Bowcher PROPOSAL
Aditya J KuskoBrazilOnyama Limba QUALIFIED
Smith Y ButtRussiaOnyama Limba QUALIFIED
Julie Y CampainSpainStephen Shaw RENEWAL
Nicolas S SaylorsSpainAnna Fali RENEWAL
Antonio H ButtCanadaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Arvin G Waycott
Ricardo W Caldarera
Julie S Shinko
Octavia M Sergi
Jefferson V Ferencz
David W Rim
Faith J Schemmer
Chavez C Nestle
Aditya Q Kolmetz
Juan L Stockham
Jefferson M Shinko
Maria T Campain
Ricardo Y Nicka
Jones P Poquette
James V Tollner
Deepesh V Darakjy
Deepesh G Marrier
Arvin J Kusko
Darci S Rulapaugh
Mayumi N Venere
Ashley A Rulapaugh
Silvio R Whobrey
Murillo W Stenseth
Murillo X Shinko
Munro K Butt
Alejandro S Gillian
Darci M Amigon
Julie B Ferencz
Leon S Oldroyd
Julie D Saylors
Salvatore V Perin
Leon E Slusarski
David Q Rim
Jones I Albares
Juan C Ostrosky
Stacey X Caldarera
Deepesh C Poquette
Mujtaba E Bolognia
Mayumi E Nestle
Ivar L Maclead
Clifford J Stenseth
Izzy J Maclead
Wickens D Paprocki
Murillo Z Flosi
Jones E Butt
Misaki H Doe
Morrow U Whobrey
Costa A Waycott
Salvatore D Venere
Deepesh H Sergi
IdCountryDate
1000Russia2026-07-09
1001India2026-06-28
1002Germany2026-07-16
1003Russia2026-07-13
1004Brazil2026-07-13
1005United Kingdom2026-07-18
1006Australia2026-07-11
1007Brazil2026-07-24
1008Argentina2026-07-07
1009Germany2026-06-30
1010Spain2026-07-25
1011India2026-07-21
1012United Kingdom2026-07-01
1013Russia2026-07-08
1014Brazil2026-07-11
1015Australia2026-07-13
1016France2026-07-27
1017Germany2026-07-09
1018Spain2026-07-24
1019United Kingdom2026-07-14
1020Russia2026-07-11
1021Germany2026-07-14
1022India2026-07-03
1023Spain2026-07-25
1024France2026-07-05
1025Germany2026-07-13
1026Russia2026-07-19
1027Australia2026-07-26
1028Russia2026-07-25
1029France2026-07-21
1030Japan2026-07-05
1031Australia2026-07-11
1032Spain2026-06-30
1033India2026-07-18
1034Australia2026-07-24
1035Argentina2026-07-06
1036Spain2026-07-22
1037Russia2026-07-27
1038Australia2026-07-01
1039Germany2026-07-12
1040Germany2026-07-16
1041Russia2026-07-05
1042United Kingdom2026-07-09
1043Japan2026-07-16
1044Brazil2026-07-16
1045Argentina2026-07-08
1046Germany2026-07-02
1047India2026-07-06
1048Brazil2026-07-11
1049Brazil2026-06-28

On-Demand Data

NameIdCountryDate
Ashley D Marrier1000Australia2026-07-13
Darci A Marrier1001United Kingdom2026-07-27
Emily S Stockham1002Germany2026-07-11
Salvatore L Rim1003Italy2026-07-21
Aruna D Ostrosky1004Canada2026-07-14
Murillo E Albares1005Spain2026-07-02
Misaki P Kusko1006Argentina2026-07-12
Jeanfrancois T Briddick1007Italy2026-07-01
Jennifer V Stockham1008Japan2026-07-19
James W Gaucho1009Spain2026-07-09
Aruna U Nicka1010Japan2026-07-24
Isabel Q Venere1011Spain2026-07-24
Rodrigues O Butt1012Italy2026-07-12
Ivar N Ruta1013Italy2026-07-08
Claire M Gillian1014Spain2026-07-22
Leja O Rulapaugh1015Japan2026-07-07
Jennifer Q Perin1016India2026-07-05
Silvio I Wieser1017Russia2026-07-13
Morrow L Perin1018Japan2026-07-16
Costa K Glick1019Italy2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez L ShinkoCanadaElwin Sharvill NEGOTIATION
Kadeem P PoquetteJapanBernardo Dominic NEGOTIATION
Aditya L AmigonIndiaElwin Sharvill QUALIFIED
Adams H CaudyRussiaOnyama Limba QUALIFIED
Johnson T MorascaJapanStephen Shaw NEGOTIATION
Aruna X KuskoCanadaIoni Bowcher NEW
Rodrigues S SchemmerSpainElwin Sharvill UNQUALIFIED
James B InouyeBrazilAnna Fali QUALIFIED
David Q FlosiAustraliaAmy Elsner NEW
Mujtaba V PerinJapanBernardo Dominic UNQUALIFIED
Mujtaba X MaletJapanElwin Sharvill NEGOTIATION
Kaitlin E CampainAustraliaElwin Sharvill NEW
Izzy V PaprockiCanadaIvan Magalhaes UNQUALIFIED
Misaki A PaprockiBrazilXuxue Feng NEW
Clifford R SergiFranceOnyama Limba UNQUALIFIED
Maria A SergiRussiaAnna Fali NEGOTIATION
Leon R MarrierJapanAsiya Javayant RENEWAL
James T RoysterUnited KingdomIoni Bowcher NEGOTIATION
Alejandro X GauchoJapanOnyama Limba RENEWAL
Rodrigues R MarrierCanadaAsiya Javayant NEW
Leja C WieserIndiaStephen Shaw NEW
Aditya O BologniaFranceAsiya Javayant NEW
Mujtaba Q SergiJapanAsiya Javayant NEW
David Y OstroskyRussiaStephen Shaw UNQUALIFIED
Stacey K VenereUnited KingdomIvan Magalhaes QUALIFIED
Clifford R SaylorsBrazilAnna Fali NEGOTIATION
Rodrigues R PaprockiJapanXuxue Feng NEW
Emily M GarufiGermanyIoni Bowcher PROPOSAL
David S ShinkoGermanyIoni Bowcher UNQUALIFIED
Octavia G ButtCanadaStephen Shaw QUALIFIED
Jeanfrancois K MarrierSpainAmy Elsner RENEWAL
Munro J VenereRussiaElwin Sharvill NEGOTIATION
Kadeem S MaletCanadaXuxue Feng PROPOSAL
Jones G MacleadFranceIoni Bowcher QUALIFIED
Wickens V AmigonArgentinaElwin Sharvill NEW
Nicolas U CaldareraFranceAnna Fali PROPOSAL
Deepesh O DarakjyGermanyIoni Bowcher QUALIFIED
Aika V SergiAustraliaBernardo Dominic NEW
Aditya Q WhobreySpainElwin Sharvill UNQUALIFIED
Sinclair Y CaldareraItalyIvan Magalhaes NEW

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