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
Jeanfrancois E AlbaresJapanElwin Sharvill NEW
Greenwood R BowleyGermanyIvan Magalhaes RENEWAL
Sinclair C NickaRussiaOnyama Limba RENEWAL
Jefferson X OstroskyItalyBernardo Dominic RENEWAL
Adams U ButtIndiaOnyama Limba NEW
Maisha R NickaRussiaOnyama Limba NEGOTIATION
Maria F MorascaCanadaOnyama Limba QUALIFIED
Darci R SlusarskiFranceIvan Magalhaes NEW
Isabel I BriddickAustraliaIvan Magalhaes PROPOSAL
Isabel O DilliardArgentinaAmy Elsner NEW
Morrow J SergiSpainBernardo Dominic NEW
Silvio N MaletIndiaBernardo Dominic UNQUALIFIED
Leja B ChuiSpainIvan Magalhaes UNQUALIFIED
Emily O RimAustraliaAnna Fali RENEWAL
Rodrigues T GauchoArgentinaIoni Bowcher PROPOSAL
Tony V GauchoUnited KingdomStephen Shaw NEW
Arvin N TollnerGermanyAmy Elsner QUALIFIED
Kaitlin W CaldareraSpainBernardo Dominic RENEWAL
Adams R CaudyAustraliaIoni Bowcher RENEWAL
Leon B WaycottUnited KingdomStephen Shaw NEGOTIATION
Sinclair C MarrierJapanAsiya Javayant PROPOSAL
Ricardo I FigeroaArgentinaAnna Fali UNQUALIFIED
Munro T PoquetteUnited KingdomOnyama Limba NEGOTIATION
Silvio Q MaletItalyStephen Shaw NEGOTIATION
Julie Z CaudyBrazilAsiya Javayant QUALIFIED
Arvin Z RutaSpainElwin Sharvill NEW
Jennifer A TollnerRussiaAnna Fali UNQUALIFIED
Smith S MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Clifford G TollnerJapanAsiya Javayant UNQUALIFIED
Ricardo N RulapaughAustraliaStephen Shaw UNQUALIFIED
Jones V TollnerGermanyStephen Shaw UNQUALIFIED
Francesco O FollerIndiaOnyama Limba QUALIFIED
Maisha W BriddickCanadaBernardo Dominic NEGOTIATION
Francesco Q NestleIndiaStephen Shaw NEW
Francesco K OldroydAustraliaBernardo Dominic PROPOSAL
Ivar O PerinGermanyStephen Shaw NEGOTIATION
Aika X AmigonRussiaAsiya Javayant NEGOTIATION
Juan L BriddickArgentinaElwin Sharvill QUALIFIED
Jefferson S SergiAustraliaXuxue Feng UNQUALIFIED
Izzy V StensethUnited KingdomAnna Fali UNQUALIFIED
Juan V CampainItalyAnna Fali NEGOTIATION
Morrow R NickaJapanAnna Fali NEW
Mujtaba V DilliardArgentinaStephen Shaw UNQUALIFIED
Johnson O TollnerArgentinaAmy Elsner NEGOTIATION
Smith G KuskoSpainIoni Bowcher UNQUALIFIED
Nicolas Q NestleSpainOnyama Limba NEGOTIATION
Julie T RutaFranceAsiya Javayant UNQUALIFIED
Wickens C FollerGermanyIoni Bowcher RENEWAL
Ashley F GillianJapanElwin Sharvill QUALIFIED
Arvin P BologniaIndiaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody X PaprockiGermanyElwin Sharvill UNQUALIFIED
Antonio T InouyeGermanyIoni Bowcher PROPOSAL
Costa O WhobreyItalyOnyama Limba UNQUALIFIED
Johnson T WaycottIndiaAnna Fali QUALIFIED
Sinclair S BowleyRussiaAsiya Javayant PROPOSAL
Arvin Z MorascaAustraliaIoni Bowcher QUALIFIED
Alejandro P OstroskyFranceStephen Shaw UNQUALIFIED
Johnson A MorascaBrazilBernardo Dominic QUALIFIED
Jeanfrancois T GlickRussiaBernardo Dominic PROPOSAL
Aruna Q RutaIndiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro R DoeUnited Kingdom2025-04-18Chapman, Ross E Esq NEW67Amy Elsner
1001Wickens Q CampainArgentina2025-04-21Commercial Press NEGOTIATION46Bernardo Dominic
1002Silvio V GauchoIndia2025-05-05Chemel, James L Cpa NEW96Onyama Limba
1003Juan L SlusarskiUnited Kingdom2025-04-26Truhlar And Truhlar Attys RENEWAL31Stephen Shaw
1004Johnson N AlbaresRussia2025-04-26Buckley Miller Wright UNQUALIFIED54Ioni Bowcher
1005Nicolas G KolmetzArgentina2025-04-29King, Christopher A Esq QUALIFIED62Ioni Bowcher
1006Deepesh J FlosiItaly2025-04-15Feltz Printing Service UNQUALIFIED40Ioni Bowcher
1007Deepesh P ButtJapan2025-04-21Chemel, James L Cpa PROPOSAL70Elwin Sharvill
1008Kaitlin V SaylorsRussia2025-04-28Feiner Bros RENEWAL26Asiya Javayant
1009Aika L GarufiIndia2025-04-27Chapman, Ross E Esq QUALIFIED45Anna Fali
1010Faith H GauchoCanada2025-04-09Feiner Bros NEGOTIATION34Stephen Shaw
1011Stacey J DarakjyUnited Kingdom2025-04-28Dorl, James J Esq PROPOSAL33Ivan Magalhaes
1012Silvio I InouyeItaly2025-04-30Chapman, Ross E Esq UNQUALIFIED45Bernardo Dominic
1013Clifford P RutaRussia2025-04-23Feiner Bros QUALIFIED95Xuxue Feng
1014Adams P BowleyCanada2025-04-10Feltz Printing Service QUALIFIED50Amy Elsner
1015Julie W CaudyAustralia2025-04-25Dorl, James J Esq PROPOSAL69Anna Fali
1016Greenwood M SlusarskiRussia2025-04-22Chanay, Jeffrey A Esq QUALIFIED55Elwin Sharvill
1017Rodrigues O GauchoRussia2025-04-26Dorl, James J Esq NEW54Xuxue Feng
1018Clifford T VenereBrazil2025-04-13Feiner Bros NEGOTIATION46Bernardo Dominic
1019Smith O IturbideIndia2025-04-21Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1020Mayumi D KuskoFrance2025-05-05Morlong Associates UNQUALIFIED53Ivan Magalhaes
1021Maisha B FigeroaFrance2025-04-18Feiner Bros QUALIFIED90Amy Elsner
1022Kaitlin Y BologniaFrance2025-04-27Dorl, James J Esq NEGOTIATION24Elwin Sharvill
1023Alejandro M CampainGermany2025-04-17Dorl, James J Esq PROPOSAL45Xuxue Feng
1024Jeanfrancois J GillianAustralia2025-05-03King, Christopher A Esq NEGOTIATION67Elwin Sharvill
1025Nicolas G MacleadFrance2025-05-08Dorl, James J Esq QUALIFIED66Asiya Javayant
1026Wickens V SaylorsAustralia2025-04-23Rangoni Of Florence QUALIFIED54Xuxue Feng
1027Adams T MacleadSpain2025-04-11Chemel, James L Cpa UNQUALIFIED30Ioni Bowcher
1028Kaitlin S FigeroaBrazil2025-05-06Chapman, Ross E Esq PROPOSAL69Ioni Bowcher
1029Adams Q MaletUnited Kingdom2025-05-05Rousseaux, Michael Esq UNQUALIFIED35Asiya Javayant
1030Claire Q NestleFrance2025-04-24Chemel, James L Cpa NEW81Elwin Sharvill
1031Emily J GarufiAustralia2025-04-28Buckley Miller Wright QUALIFIED51Ivan Magalhaes
1032Munro M RutaJapan2025-04-16Feltz Printing Service PROPOSAL35Stephen Shaw
1033Rodrigues O StensethAustralia2025-04-27Benton, John B Jr PROPOSAL97Ioni Bowcher
1034Tony N BriddickJapan2025-04-27Chapman, Ross E Esq PROPOSAL90Amy Elsner
1035Mayumi L NestleIndia2025-05-04Buckley Miller Wright NEW82Stephen Shaw
1036Murillo I GarufiGermany2025-04-23Rangoni Of Florence PROPOSAL68Amy Elsner
1037Juan Y VenereRussia2025-04-24Feltz Printing Service PROPOSAL9Ioni Bowcher
1038Maisha A RoysterArgentina2025-04-26Commercial Press NEW37Bernardo Dominic
1039Ricardo L StensethBrazil2025-05-06Chanay, Jeffrey A Esq PROPOSAL7Amy Elsner
1040David P MacleadBrazil2025-04-23Rousseaux, Michael Esq NEW87Bernardo Dominic
1041Jones I BologniaSpain2025-04-30Chemel, James L Cpa RENEWAL38Ioni Bowcher
1042Aditya S FollerSpain2025-04-10Morlong Associates NEW28Asiya Javayant
1043Kadeem N MorascaSpain2025-05-01Benton, John B Jr UNQUALIFIED79Onyama Limba
1044James N NickaIndia2025-05-04Printing Dimensions UNQUALIFIED34Bernardo Dominic
1045Leja O BriddickItaly2025-04-10Chanay, Jeffrey A Esq UNQUALIFIED95Ioni Bowcher
1046Maria Z PerinArgentina2025-04-27Dorl, James J Esq QUALIFIED87Elwin Sharvill
1047Costa W ShinkoFrance2025-04-19Chapman, Ross E Esq NEGOTIATION45Amy Elsner
1048Kaitlin B PaprockiAustralia2025-04-25Feltz Printing Service QUALIFIED35Anna Fali
1049Deepesh D MorascaRussia2025-04-26Printing Dimensions NEW48Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aika E NestleSpainBernardo Dominic QUALIFIED
James V FlosiRussiaAnna Fali NEGOTIATION
Darci W FerenczAustraliaAsiya Javayant NEW
Ivar L BriddickGermanyElwin Sharvill NEGOTIATION
Aika C RulapaughArgentinaStephen Shaw RENEWAL
Salvatore E WieserFranceElwin Sharvill UNQUALIFIED
Johnson N FlosiIndiaStephen Shaw NEGOTIATION
Kadeem B WieserUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin R WaycottAustraliaElwin Sharvill RENEWAL
Morrow G CampainAustraliaAsiya Javayant NEW
Julie L RoysterRussiaOnyama Limba RENEWAL
Arvin Z BriddickIndiaXuxue Feng NEGOTIATION
Jeanfrancois Q DoeArgentinaIoni Bowcher QUALIFIED
Alejandro A CaldareraSpainOnyama Limba PROPOSAL
Leon J AmigonArgentinaAnna Fali UNQUALIFIED
Jeanfrancois F MorascaUnited KingdomXuxue Feng NEGOTIATION
Clifford E OstroskyArgentinaAsiya Javayant PROPOSAL
Sinclair C NestleIndiaElwin Sharvill NEGOTIATION
Maria Z MarrierIndiaXuxue Feng PROPOSAL
Clifford Y AlbaresAustraliaXuxue Feng PROPOSAL
Isabel G MaletBrazilStephen Shaw NEGOTIATION
Mujtaba R RulapaughRussiaIvan Magalhaes QUALIFIED
Munro X CampainBrazilBernardo Dominic RENEWAL
Claire U RulapaughUnited KingdomAnna Fali RENEWAL
Faith H WaycottAustraliaAmy Elsner NEW
Emily T DilliardJapanIoni Bowcher NEGOTIATION
Smith V WaycottIndiaAsiya Javayant QUALIFIED
Murillo S SaylorsUnited KingdomIoni Bowcher NEW
Deepesh X BowleyAustraliaAmy Elsner UNQUALIFIED
Mujtaba K FerenczItalyOnyama Limba RENEWAL
Darci O PaprockiJapanIoni Bowcher QUALIFIED
Emily P TollnerSpainAmy Elsner RENEWAL
Jeanfrancois R FigeroaUnited KingdomAmy Elsner QUALIFIED
Stacey Y SergiIndiaStephen Shaw NEGOTIATION
Stacey L FerenczFranceXuxue Feng UNQUALIFIED
Faith J RutaIndiaAmy Elsner PROPOSAL
Rodrigues Z MarrierArgentinaIvan Magalhaes NEW
Ricardo K NickaSpainXuxue Feng NEGOTIATION
Silvio I RimRussiaStephen Shaw RENEWAL
Sinclair X RoysterItalyIoni Bowcher QUALIFIED
Mujtaba Z SchemmerRussiaIoni Bowcher RENEWAL
Jennifer O PaprockiRussiaAnna Fali NEW
Ricardo Y RimGermanyIvan Magalhaes NEW
Jefferson M SchemmerCanadaAmy Elsner NEW
Greenwood Z DoeAustraliaOnyama Limba NEGOTIATION
Leon P ButtBrazilAmy Elsner RENEWAL
Octavia J ChuiArgentinaIvan Magalhaes PROPOSAL
Aruna F IturbideGermanyAmy Elsner PROPOSAL
Octavia R MacleadRussiaAsiya Javayant NEGOTIATION
Nicolas H GauchoItalyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Leon R Vocelka
Adams I Briddick
Murillo J Briddick
James K Nicka
Jeanfrancois U Kusko
Maisha T Amigon
Salvatore X Malet
Leon V Gillian
Jeanfrancois N Amigon
Tony E Wieser
Faith V Amigon
Murillo N Wieser
Chavez M Figeroa
Adams C Rulapaugh
Aditya N Poquette
Cody H Briddick
Misaki U Ruta
Aditya O Nicka
Tony C Wieser
Jones U Campain
Cody V Gaucho
Cody S Morasca
Costa V Shinko
Rodrigues F Kusko
Kadeem J Garufi
Smith Y Nicka
David Q Figeroa
Silvio H Morasca
Arvin A Bolognia
Salvatore X Iturbide
Jones W Stenseth
Maria T Malet
James O Doe
Antonio V Gillian
Claire K Venere
Leon V Gillian
Antonio S Vocelka
Antonio I Saylors
Cody S Shinko
Clifford B Maclead
Wickens Y Ostrosky
Stacey L Paprocki
Claire M Caudy
Tony Q Iturbide
Chavez R Maclead
Alejandro G Caldarera
Claire D Gillian
Jennifer Q Malet
Jones R Caldarera
Aruna T Nestle
IdCountryDate
1000Brazil2025-05-01
1001Japan2025-05-08
1002Australia2025-05-01
1003India2025-04-25
1004Russia2025-04-19
1005Brazil2025-04-18
1006Brazil2025-04-15
1007Germany2025-05-02
1008France2025-04-17
1009Russia2025-04-17
1010France2025-04-11
1011Spain2025-04-11
1012Australia2025-04-23
1013Australia2025-04-27
1014Russia2025-04-20
1015United Kingdom2025-05-05
1016United Kingdom2025-04-29
1017Brazil2025-04-19
1018Brazil2025-04-13
1019France2025-04-15
1020Australia2025-05-03
1021United Kingdom2025-05-02
1022Canada2025-05-05
1023Italy2025-04-29
1024Italy2025-04-11
1025India2025-04-29
1026Italy2025-04-30
1027Spain2025-05-05
1028Italy2025-04-21
1029Canada2025-05-07
1030Spain2025-05-08
1031Australia2025-04-20
1032United Kingdom2025-04-22
1033Argentina2025-05-07
1034Russia2025-04-23
1035United Kingdom2025-04-23
1036Russia2025-04-15
1037United Kingdom2025-04-17
1038Russia2025-04-23
1039Japan2025-04-14
1040India2025-04-09
1041Australia2025-05-08
1042United Kingdom2025-05-07
1043Japan2025-04-16
1044Argentina2025-04-27
1045United Kingdom2025-04-22
1046India2025-04-17
1047Canada2025-04-24
1048United Kingdom2025-05-07
1049India2025-04-26

On-Demand Data

NameIdCountryDate
Emily J Stockham1000India2025-04-15
Costa B Whobrey1001Canada2025-04-09
Ricardo M Venere1002Germany2025-04-26
Jeanfrancois N Briddick1003United Kingdom2025-04-22
Octavia C Vocelka1004Japan2025-04-25
Salvatore I Saylors1005Brazil2025-04-26
Rodrigues Q Garufi1006Australia2025-04-26
Leja N Ostrosky1007India2025-05-07
Francesco L Malet1008Argentina2025-04-24
Arvin U Marrier1009Germany2025-04-14
Cody O Wieser1010Russia2025-05-08
Alejandro H Campain1011Brazil2025-04-28
Deepesh O Maclead1012Russia2025-04-13
Jones Z Morasca1013Germany2025-04-20
Maisha C Dilliard1014Russia2025-04-29
Ricardo X Gillian1015Germany2025-04-22
Silvio W Slusarski1016Japan2025-04-30
Misaki Q Inouye1017Argentina2025-04-19
Aika X Ostrosky1018India2025-04-14
Antonio A Waycott1019Brazil2025-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh D FigeroaJapanElwin Sharvill RENEWAL
Nicolas U PaprockiArgentinaAmy Elsner QUALIFIED
Morrow V MaletArgentinaAnna Fali NEGOTIATION
Munro B NickaFranceXuxue Feng NEW
Munro U KolmetzIndiaAmy Elsner RENEWAL
Julie V FlosiArgentinaIvan Magalhaes NEW
Costa P BowleyAustraliaAnna Fali UNQUALIFIED
Tony N OldroydGermanyElwin Sharvill RENEWAL
Octavia V SlusarskiGermanyAmy Elsner NEGOTIATION
Sinclair Z WieserJapanAmy Elsner UNQUALIFIED
Silvio E PoquetteArgentinaIvan Magalhaes PROPOSAL
Izzy V GlickItalyBernardo Dominic QUALIFIED
Wickens M KuskoBrazilElwin Sharvill RENEWAL
Tony P SlusarskiAustraliaXuxue Feng NEW
Misaki G WhobreyArgentinaIoni Bowcher NEW
Chavez Z PoquetteArgentinaXuxue Feng NEGOTIATION
Emily O DarakjyArgentinaAsiya Javayant NEGOTIATION
Sinclair N StensethAustraliaStephen Shaw PROPOSAL
Faith Q SlusarskiAustraliaXuxue Feng NEGOTIATION
Tony R ChuiSpainOnyama Limba NEW
David G GarufiSpainAmy Elsner NEGOTIATION
Isabel F StockhamJapanAsiya Javayant UNQUALIFIED
Maisha U MarrierAustraliaIoni Bowcher NEW
Aditya X NestleFranceBernardo Dominic RENEWAL
Greenwood F PoquetteIndiaIoni Bowcher UNQUALIFIED
Ricardo T WieserSpainBernardo Dominic QUALIFIED
Misaki Q BriddickItalyElwin Sharvill NEGOTIATION
Jeanfrancois E BologniaArgentinaIvan Magalhaes NEW
Antonio F BowleyItalyBernardo Dominic NEW
Silvio J NestleUnited KingdomStephen Shaw NEW
Jennifer Y GarufiIndiaStephen Shaw NEW
Arvin L SlusarskiBrazilIvan Magalhaes NEGOTIATION
Morrow E NickaGermanyAnna Fali NEGOTIATION
Morrow W GauchoFranceXuxue Feng NEGOTIATION
Claire W PaprockiRussiaAnna Fali NEGOTIATION
Nicolas V SlusarskiAustraliaIoni Bowcher QUALIFIED
Sinclair Q PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Stacey V NestleUnited KingdomStephen Shaw NEW
Kadeem P DilliardCanadaBernardo Dominic RENEWAL
Smith D ChuiIndiaOnyama 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>