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
Greenwood D DarakjyFranceAsiya Javayant PROPOSAL
Arvin X WaycottJapanElwin Sharvill UNQUALIFIED
Isabel X ShinkoCanadaIvan Magalhaes UNQUALIFIED
Ashley T StensethGermanyBernardo Dominic QUALIFIED
Chavez M MacleadCanadaBernardo Dominic RENEWAL
Adams N DarakjyAustraliaStephen Shaw UNQUALIFIED
Isabel S AmigonGermanyElwin Sharvill RENEWAL
Darci M VenereUnited KingdomStephen Shaw QUALIFIED
Adams H CampainCanadaStephen Shaw RENEWAL
Faith U DilliardFranceElwin Sharvill PROPOSAL
Jeanfrancois C TollnerJapanElwin Sharvill UNQUALIFIED
Kaitlin L AlbaresIndiaIoni Bowcher NEGOTIATION
Alejandro M SchemmerUnited KingdomIoni Bowcher PROPOSAL
Leja P SchemmerRussiaIvan Magalhaes UNQUALIFIED
Kaitlin D MorascaItalyElwin Sharvill PROPOSAL
Ivar W RulapaughItalyBernardo Dominic RENEWAL
Jefferson O FigeroaCanadaXuxue Feng UNQUALIFIED
Aruna K GarufiUnited KingdomStephen Shaw UNQUALIFIED
Cody U RutaArgentinaOnyama Limba RENEWAL
Leja O MorascaGermanyOnyama Limba NEGOTIATION
Kadeem R DoeBrazilAsiya Javayant UNQUALIFIED
Arvin Z FlosiAustraliaXuxue Feng NEW
Sinclair S ButtJapanXuxue Feng PROPOSAL
Emily T GlickGermanyXuxue Feng RENEWAL
Salvatore T SergiCanadaAmy Elsner PROPOSAL
Tony O RulapaughAustraliaAnna Fali RENEWAL
Salvatore A VenereCanadaIvan Magalhaes NEGOTIATION
Faith F InouyeArgentinaXuxue Feng NEW
Ashley Y CampainJapanAmy Elsner NEGOTIATION
Ricardo D KuskoCanadaXuxue Feng RENEWAL
Ricardo G CaudyCanadaOnyama Limba PROPOSAL
Costa L FlosiJapanIoni Bowcher NEW
Leon L CaldareraArgentinaIoni Bowcher NEW
Tony Y RoysterJapanBernardo Dominic NEW
Arvin B VocelkaFranceXuxue Feng QUALIFIED
Claire C PaprockiCanadaAmy Elsner PROPOSAL
Darci I CampainCanadaAmy Elsner QUALIFIED
Jennifer P MaletBrazilAsiya Javayant NEGOTIATION
Johnson N RoysterUnited KingdomIoni Bowcher QUALIFIED
Smith Z RimCanadaBernardo Dominic UNQUALIFIED
Izzy P FerenczJapanOnyama Limba UNQUALIFIED
Tony T RulapaughUnited KingdomAmy Elsner NEW
Salvatore J RimSpainBernardo Dominic NEGOTIATION
Jones G GarufiBrazilXuxue Feng NEGOTIATION
Francesco N NickaArgentinaOnyama Limba NEGOTIATION
Smith U GauchoFranceAmy Elsner NEW
Francesco L OldroydGermanyAsiya Javayant NEGOTIATION
Stacey U DilliardFranceXuxue Feng QUALIFIED
Clifford Y DoeGermanyIvan Magalhaes NEW
Silvio M VocelkaIndiaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Juan U MaletGermanyAmy Elsner NEGOTIATION
Juan G RulapaughGermanyElwin Sharvill RENEWAL
James P GarufiSpainStephen Shaw PROPOSAL
Jeanfrancois G FigeroaItalyOnyama Limba NEGOTIATION
Aruna E OldroydJapanBernardo Dominic PROPOSAL
Adams J FigeroaFranceElwin Sharvill QUALIFIED
Izzy Q CaudyCanadaAsiya Javayant PROPOSAL
Nicolas W MarrierGermanyIoni Bowcher RENEWAL
Adams C CampainRussiaOnyama Limba NEGOTIATION
Ricardo N SchemmerSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair J FollerAustralia2026-07-09Feiner Bros PROPOSAL70Asiya Javayant
1001Silvio C OldroydUnited Kingdom2026-07-16Printing Dimensions PROPOSAL86Stephen Shaw
1002Maria O DarakjyUnited Kingdom2026-07-03Truhlar And Truhlar Attys RENEWAL91Elwin Sharvill
1003Jeanfrancois M RoysterRussia2026-07-10Chemel, James L Cpa UNQUALIFIED57Asiya Javayant
1004Izzy G FigeroaAustralia2026-07-08Rousseaux, Michael Esq NEW22Xuxue Feng
1005Misaki R MacleadFrance2026-07-25Feiner Bros NEW3Ivan Magalhaes
1006Tony Q MorascaSpain2026-07-24Dorl, James J Esq NEGOTIATION15Xuxue Feng
1007Nicolas N SergiItaly2026-07-21Rousseaux, Michael Esq QUALIFIED63Amy Elsner
1008Aditya O IturbideSpain2026-06-27Morlong Associates PROPOSAL56Amy Elsner
1009Arvin J BriddickAustralia2026-07-04Morlong Associates NEGOTIATION36Stephen Shaw
1010Emily B SaylorsItaly2026-07-06Chemel, James L Cpa QUALIFIED70Elwin Sharvill
1011Jennifer G MaletUnited Kingdom2026-07-12Buckley Miller Wright UNQUALIFIED56Amy Elsner
1012Arvin N PaprockiCanada2026-07-06Feltz Printing Service QUALIFIED59Ivan Magalhaes
1013Ricardo T VenereJapan2026-07-17Commercial Press NEGOTIATION73Elwin Sharvill
1014Johnson L SaylorsItaly2026-07-21Rousseaux, Michael Esq NEGOTIATION42Elwin Sharvill
1015Adams Z FigeroaSpain2026-07-11Commercial Press RENEWAL77Xuxue Feng
1016Adams U RulapaughArgentina2026-07-16Benton, John B Jr UNQUALIFIED48Ioni Bowcher
1017Isabel Q GillianRussia2026-07-04Benton, John B Jr RENEWAL50Ivan Magalhaes
1018Jones C MorascaUnited Kingdom2026-07-07Rangoni Of Florence NEGOTIATION38Amy Elsner
1019Leon M KolmetzArgentina2026-07-13Benton, John B Jr RENEWAL29Ioni Bowcher
1020Costa H ButtUnited Kingdom2026-07-01Chapman, Ross E Esq UNQUALIFIED47Onyama Limba
1021Stacey P GlickUnited Kingdom2026-06-28Chapman, Ross E Esq NEW31Amy Elsner
1022Jones Z VenereItaly2026-07-18Feiner Bros PROPOSAL43Asiya Javayant
1023Claire G SaylorsArgentina2026-06-30Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1024Izzy P InouyeSpain2026-07-09Commercial Press UNQUALIFIED59Ioni Bowcher
1025Sinclair D GlickSpain2026-06-30Truhlar And Truhlar Attys UNQUALIFIED47Onyama Limba
1026Kaitlin D FigeroaUnited Kingdom2026-07-20King, Christopher A Esq RENEWAL3Bernardo Dominic
1027Mayumi K DilliardItaly2026-07-01Chanay, Jeffrey A Esq QUALIFIED92Amy Elsner
1028Tony P RimGermany2026-07-03Chanay, Jeffrey A Esq RENEWAL58Amy Elsner
1029Leon O MorascaUnited Kingdom2026-07-01Buckley Miller Wright UNQUALIFIED72Onyama Limba
1030Rodrigues B BriddickItaly2026-07-22Benton, John B Jr NEW18Amy Elsner
1031Emily A FollerFrance2026-07-09Buckley Miller Wright UNQUALIFIED63Ioni Bowcher
1032Jefferson J VocelkaGermany2026-07-12Commercial Press NEW40Asiya Javayant
1033Julie N KuskoUnited Kingdom2026-07-22King, Christopher A Esq NEW31Ioni Bowcher
1034Chavez Y OstroskyFrance2026-07-03Rousseaux, Michael Esq RENEWAL37Amy Elsner
1035Johnson I BowleyJapan2026-07-11Feiner Bros NEW92Stephen Shaw
1036Leon L SaylorsFrance2026-06-29King, Christopher A Esq QUALIFIED95Bernardo Dominic
1037Salvatore H GarufiBrazil2026-07-03Dorl, James J Esq QUALIFIED46Xuxue Feng
1038Claire P VenereArgentina2026-07-14Chanay, Jeffrey A Esq NEW28Asiya Javayant
1039Cody T RulapaughArgentina2026-06-30Chapman, Ross E Esq UNQUALIFIED74Elwin Sharvill
1040Clifford R DoeIndia2026-07-14Feltz Printing Service UNQUALIFIED7Bernardo Dominic
1041Alejandro G RutaJapan2026-06-28Chapman, Ross E Esq PROPOSAL1Stephen Shaw
1042Johnson D PoquetteBrazil2026-07-17Chemel, James L Cpa UNQUALIFIED5Ivan Magalhaes
1043Leon R ChuiItaly2026-06-30Benton, John B Jr PROPOSAL53Stephen Shaw
1044Alejandro N PoquetteArgentina2026-06-29Benton, John B Jr NEW7Elwin Sharvill
1045Misaki D TollnerGermany2026-06-30Dorl, James J Esq UNQUALIFIED96Amy Elsner
1046Deepesh G MacleadGermany2026-07-07Dorl, James J Esq NEW94Ivan Magalhaes
1047Ashley A FerenczFrance2026-07-01Benton, John B Jr QUALIFIED90Ivan Magalhaes
1048Clifford M CampainFrance2026-07-15Rangoni Of Florence PROPOSAL39Elwin Sharvill
1049Faith Q FollerJapan2026-07-18Buckley Miller Wright RENEWAL24Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois J SergiItalyAmy Elsner NEW
Isabel G TollnerCanadaElwin Sharvill RENEWAL
Darci I PerinBrazilOnyama Limba PROPOSAL
Deepesh F RutaBrazilAnna Fali NEGOTIATION
Julie G GarufiGermanyIoni Bowcher RENEWAL
Jennifer W SchemmerBrazilBernardo Dominic UNQUALIFIED
Cody X PoquetteRussiaStephen Shaw UNQUALIFIED
Adams C WaycottFranceBernardo Dominic PROPOSAL
Jennifer H ButtFranceXuxue Feng NEGOTIATION
Murillo Y FerenczIndiaAmy Elsner UNQUALIFIED
James A ShinkoIndiaAnna Fali UNQUALIFIED
Kadeem X OstroskyItalyOnyama Limba UNQUALIFIED
Mayumi O SlusarskiJapanIoni Bowcher NEGOTIATION
Adams L OstroskySpainElwin Sharvill NEGOTIATION
Aruna Z ChuiCanadaAmy Elsner NEW
Izzy O TollnerIndiaIoni Bowcher PROPOSAL
Stacey X BowleyFranceIvan Magalhaes NEW
Claire G MaletGermanyBernardo Dominic QUALIFIED
Arvin U OldroydUnited KingdomAmy Elsner NEW
Arvin W MacleadRussiaBernardo Dominic RENEWAL
Octavia T WieserBrazilIvan Magalhaes UNQUALIFIED
Misaki E ShinkoItalyXuxue Feng UNQUALIFIED
Smith I SergiFranceXuxue Feng NEGOTIATION
Jeanfrancois Q VenereGermanyAsiya Javayant UNQUALIFIED
Rodrigues I GarufiItalyElwin Sharvill PROPOSAL
David N NestleItalyBernardo Dominic NEGOTIATION
Adams K VenereSpainBernardo Dominic NEGOTIATION
Francesco Y NestleFranceXuxue Feng UNQUALIFIED
Emily J AlbaresIndiaOnyama Limba NEW
Izzy I PoquetteGermanyStephen Shaw PROPOSAL
Costa P MaletIndiaIoni Bowcher NEW
Jones B FigeroaIndiaBernardo Dominic QUALIFIED
Johnson E InouyeRussiaBernardo Dominic RENEWAL
Aditya C GlickArgentinaIvan Magalhaes NEW
Claire N DilliardSpainOnyama Limba UNQUALIFIED
Aruna R VenereJapanXuxue Feng NEW
Jones A DarakjyCanadaIoni Bowcher NEW
Munro G GarufiBrazilXuxue Feng PROPOSAL
Jefferson H SergiIndiaAmy Elsner QUALIFIED
Arvin Q BologniaBrazilAnna Fali PROPOSAL
Rodrigues Y StockhamBrazilAnna Fali RENEWAL
Izzy H DoeCanadaXuxue Feng NEGOTIATION
Arvin E NickaJapanStephen Shaw PROPOSAL
Ashley Z PaprockiSpainIoni Bowcher NEW
Julie H AlbaresArgentinaBernardo Dominic QUALIFIED
Juan S MaletItalyAsiya Javayant NEW
Nicolas B SlusarskiBrazilXuxue Feng UNQUALIFIED
Francesco E PerinCanadaIoni Bowcher NEW
Clifford G FigeroaUnited KingdomIoni Bowcher NEW
Jefferson W PerinBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Murillo Z Stenseth
Costa B Caldarera
Jones O Oldroyd
Murillo Y Rulapaugh
Maria L Amigon
Maria R Wieser
David V Poquette
Octavia T Vocelka
Darci J Figeroa
Jefferson X Sergi
Deepesh R Gillian
Maria X Dilliard
Kaitlin B Marrier
Cody Z Figeroa
Maisha S Saylors
James X Chui
Cody G Maclead
Alejandro R Rulapaugh
Jeanfrancois Q Kusko
Ivar T Kusko
David B Oldroyd
Jefferson M Stockham
Jennifer O Saylors
Salvatore C Glick
Rodrigues I Slusarski
Kaitlin Y Ostrosky
Mujtaba X Stockham
Juan A Malet
Aruna M Venere
Alejandro B Saylors
Wickens J Kusko
Greenwood Q Caudy
Leon G Bowley
Smith I Nestle
Claire K Iturbide
James E Rim
Clifford E Maclead
Claire G Bowley
Misaki N Ruta
Isabel G Royster
Aika D Garufi
Munro B Schemmer
Mayumi R Poquette
Ricardo A Chui
Aika J Chui
Isabel S Gaucho
Jefferson R Waycott
Johnson Z Maclead
Leja E Campain
Salvatore E Flosi
IdCountryDate
1000Germany2026-07-18
1001France2026-07-05
1002Spain2026-07-22
1003Russia2026-06-30
1004Japan2026-07-22
1005Australia2026-07-18
1006United Kingdom2026-07-24
1007Spain2026-06-30
1008India2026-07-11
1009Japan2026-07-07
1010Japan2026-07-21
1011United Kingdom2026-07-20
1012India2026-07-18
1013Brazil2026-06-28
1014Spain2026-07-09
1015Canada2026-07-05
1016India2026-07-12
1017Brazil2026-07-20
1018Australia2026-07-15
1019Australia2026-07-22
1020India2026-07-03
1021Australia2026-06-28
1022Germany2026-07-07
1023Japan2026-07-10
1024India2026-07-08
1025France2026-07-17
1026United Kingdom2026-07-06
1027Japan2026-07-10
1028Russia2026-07-22
1029Brazil2026-07-03
1030Australia2026-07-21
1031France2026-07-05
1032Brazil2026-07-02
1033Germany2026-07-26
1034Canada2026-07-17
1035Germany2026-07-05
1036Australia2026-07-23
1037India2026-07-22
1038Argentina2026-07-20
1039Argentina2026-07-26
1040Germany2026-07-07
1041Brazil2026-07-13
1042Spain2026-07-03
1043United Kingdom2026-07-01
1044Russia2026-07-24
1045Spain2026-07-19
1046United Kingdom2026-07-23
1047India2026-07-16
1048Spain2026-07-09
1049Germany2026-07-10

On-Demand Data

NameIdCountryDate
Munro Z Wieser1000Spain2026-07-18
Faith S Stenseth1001France2026-07-25
Stacey J Stenseth1002Russia2026-07-06
Ashley M Flosi1003Argentina2026-07-10
Darci L Poquette1004Canada2026-07-23
Aditya F Caldarera1005United Kingdom2026-07-22
Ashley B Sergi1006France2026-06-28
Smith H Perin1007Canada2026-07-16
Leja Y Sergi1008Australia2026-07-02
Deepesh X Stockham1009Brazil2026-07-22
Nicolas Z Bowley1010Italy2026-07-26
Costa B Darakjy1011Spain2026-06-27
Murillo S Caldarera1012United Kingdom2026-07-15
Kadeem Q Vocelka1013Russia2026-07-14
Adams A Flosi1014Russia2026-07-22
Maisha V Dilliard1015Spain2026-07-14
Clifford H Dilliard1016Russia2026-07-23
Ricardo Q Briddick1017Japan2026-06-29
Cody R Gillian1018United Kingdom2026-07-09
Nicolas J Whobrey1019Canada2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson E StockhamSpainElwin Sharvill NEW
Octavia J MacleadIndiaStephen Shaw QUALIFIED
Chavez E RoysterCanadaElwin Sharvill UNQUALIFIED
Leja X WhobreyIndiaAsiya Javayant QUALIFIED
Leon B VenereJapanXuxue Feng QUALIFIED
Izzy P RoysterSpainIoni Bowcher UNQUALIFIED
Faith J MaletArgentinaStephen Shaw UNQUALIFIED
Tony V WhobreyRussiaBernardo Dominic NEW
Maisha N BologniaItalyXuxue Feng UNQUALIFIED
Jefferson M RutaArgentinaAmy Elsner QUALIFIED
Jones V FollerGermanyAsiya Javayant RENEWAL
Aruna G AlbaresRussiaXuxue Feng NEW
Nicolas T IturbideIndiaIoni Bowcher PROPOSAL
Salvatore H ButtIndiaAmy Elsner UNQUALIFIED
Munro P GlickFranceBernardo Dominic QUALIFIED
Juan A SlusarskiFranceStephen Shaw NEW
Tony Z StensethBrazilIvan Magalhaes QUALIFIED
Johnson D WaycottGermanyOnyama Limba NEGOTIATION
Juan P AlbaresFranceAmy Elsner PROPOSAL
Claire I MorascaUnited KingdomAmy Elsner NEW
Kaitlin C KolmetzUnited KingdomIoni Bowcher NEW
Tony F NestleFranceXuxue Feng NEGOTIATION
Claire A GauchoBrazilBernardo Dominic RENEWAL
Sinclair V DarakjyItalyBernardo Dominic UNQUALIFIED
Ricardo J OldroydAustraliaXuxue Feng UNQUALIFIED
Clifford W PoquetteGermanyAnna Fali NEGOTIATION
Darci L PerinSpainIoni Bowcher QUALIFIED
Maisha F MaletBrazilIvan Magalhaes RENEWAL
Deepesh F MacleadCanadaStephen Shaw RENEWAL
Faith E BriddickFranceAmy Elsner PROPOSAL
Jeanfrancois F FerenczCanadaElwin Sharvill RENEWAL
Misaki G CampainUnited KingdomElwin Sharvill NEW
Izzy B FlosiGermanyBernardo Dominic QUALIFIED
Ivar R PoquetteRussiaXuxue Feng QUALIFIED
Nicolas M VocelkaCanadaBernardo Dominic PROPOSAL
Chavez Y VenereItalyAsiya Javayant QUALIFIED
Faith W NestleIndiaAmy Elsner RENEWAL
Izzy V WhobreyArgentinaBernardo Dominic NEGOTIATION
Mujtaba S RutaRussiaOnyama Limba RENEWAL
Kadeem P DoeJapanAsiya Javayant 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>