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
Aditya F FerenczItalyOnyama Limba QUALIFIED
Isabel K GarufiSpainAnna Fali NEGOTIATION
Julie N StockhamAustraliaElwin Sharvill RENEWAL
James S MorascaBrazilXuxue Feng NEW
Ashley V MarrierSpainAnna Fali NEW
Aika M GlickRussiaXuxue Feng QUALIFIED
Aika L StockhamBrazilStephen Shaw RENEWAL
Silvio W InouyeBrazilXuxue Feng NEGOTIATION
Izzy I NickaItalyStephen Shaw NEGOTIATION
Smith A PaprockiGermanyElwin Sharvill UNQUALIFIED
Leja I WieserJapanIoni Bowcher UNQUALIFIED
Sinclair Q StockhamAustraliaStephen Shaw NEW
Mayumi Q TollnerArgentinaStephen Shaw RENEWAL
Stacey J RutaCanadaStephen Shaw NEW
Francesco A GillianAustraliaOnyama Limba NEGOTIATION
Arvin A AmigonGermanyAnna Fali NEGOTIATION
Maisha J SaylorsRussiaIvan Magalhaes PROPOSAL
Sinclair M ButtGermanyAmy Elsner PROPOSAL
Chavez G VenereArgentinaAsiya Javayant NEW
Antonio M AlbaresFranceIoni Bowcher NEGOTIATION
Antonio R MorascaJapanOnyama Limba UNQUALIFIED
Antonio O GauchoJapanStephen Shaw UNQUALIFIED
Jennifer D SchemmerCanadaAmy Elsner QUALIFIED
Clifford D OstroskyJapanAsiya Javayant NEGOTIATION
Aditya N MaletJapanOnyama Limba PROPOSAL
Deepesh Q MacleadArgentinaStephen Shaw UNQUALIFIED
Munro F BologniaIndiaXuxue Feng NEW
Aditya Q CampainGermanyIoni Bowcher NEGOTIATION
Sinclair U NestleArgentinaBernardo Dominic QUALIFIED
Ashley O BriddickFranceIvan Magalhaes UNQUALIFIED
Kadeem K ChuiGermanyOnyama Limba QUALIFIED
Isabel Z VocelkaCanadaAsiya Javayant NEGOTIATION
Jeanfrancois E InouyeJapanIoni Bowcher NEW
Morrow Q MaletGermanyOnyama Limba PROPOSAL
Alejandro Z GlickCanadaBernardo Dominic RENEWAL
Clifford A MorascaBrazilAnna Fali NEW
Kadeem W DilliardJapanXuxue Feng NEGOTIATION
Jennifer Z BowleyUnited KingdomXuxue Feng RENEWAL
Isabel Y BowleyJapanBernardo Dominic UNQUALIFIED
Leja T NestleGermanyAsiya Javayant NEGOTIATION
Francesco F DarakjyArgentinaIoni Bowcher QUALIFIED
Tony U CaldareraAustraliaBernardo Dominic NEW
Octavia J NickaGermanyAsiya Javayant RENEWAL
Julie E ButtSpainBernardo Dominic PROPOSAL
Nicolas P DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Misaki P FlosiJapanOnyama Limba PROPOSAL
Jeanfrancois N WieserGermanyBernardo Dominic NEW
Antonio O IturbideJapanOnyama Limba NEW
Aditya M IturbideGermanyAmy Elsner RENEWAL
Deepesh D ChuiItalyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Smith F PerinUnited KingdomOnyama Limba UNQUALIFIED
Mayumi W WaycottUnited KingdomIvan Magalhaes RENEWAL
Smith O TollnerCanadaOnyama Limba PROPOSAL
Izzy H BologniaFranceAnna Fali NEW
Misaki R WieserRussiaIoni Bowcher NEGOTIATION
Salvatore E TollnerGermanyIvan Magalhaes PROPOSAL
Murillo Q OstroskyArgentinaAnna Fali PROPOSAL
Antonio O NestleGermanyIoni Bowcher QUALIFIED
Adams V DoeArgentinaElwin Sharvill PROPOSAL
Darci P GlickIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley C OldroydSpain2026-08-04Dorl, James J Esq QUALIFIED54Ioni Bowcher
1001Kaitlin D CaudyRussia2026-07-27Benton, John B Jr PROPOSAL43Ioni Bowcher
1002Antonio S DoeIndia2026-07-15Chanay, Jeffrey A Esq NEGOTIATION25Asiya Javayant
1003Claire Y TollnerUnited Kingdom2026-07-17Chanay, Jeffrey A Esq NEW81Anna Fali
1004Alejandro G ButtIndia2026-07-14Chemel, James L Cpa QUALIFIED91Stephen Shaw
1005Cody Y CaldareraItaly2026-07-28Benton, John B Jr PROPOSAL85Ioni Bowcher
1006Aika U CaudyGermany2026-07-22King, Christopher A Esq RENEWAL37Anna Fali
1007Ricardo F AlbaresGermany2026-07-14Benton, John B Jr QUALIFIED40Anna Fali
1008Alejandro V RulapaughRussia2026-07-20Buckley Miller Wright PROPOSAL42Asiya Javayant
1009Chavez M WhobreyJapan2026-07-27Morlong Associates QUALIFIED3Anna Fali
1010Kadeem Q CampainGermany2026-07-29Dorl, James J Esq UNQUALIFIED35Asiya Javayant
1011Mayumi N CaldareraRussia2026-07-28Rangoni Of Florence UNQUALIFIED68Stephen Shaw
1012Silvio D IturbideUnited Kingdom2026-07-10Commercial Press NEGOTIATION4Amy Elsner
1013Claire G StockhamUnited Kingdom2026-07-20Buckley Miller Wright UNQUALIFIED89Bernardo Dominic
1014Claire Z MacleadRussia2026-08-06Feltz Printing Service NEW37Bernardo Dominic
1015Mayumi C FollerCanada2026-08-01Chemel, James L Cpa RENEWAL34Stephen Shaw
1016Stacey K InouyeCanada2026-07-28Feltz Printing Service PROPOSAL14Anna Fali
1017Sinclair U PoquetteArgentina2026-08-01Benton, John B Jr NEGOTIATION89Ioni Bowcher
1018Clifford X RulapaughGermany2026-07-19Truhlar And Truhlar Attys NEW8Amy Elsner
1019Johnson D WieserRussia2026-07-11King, Christopher A Esq PROPOSAL99Xuxue Feng
1020James O PoquetteBrazil2026-07-10Feltz Printing Service UNQUALIFIED11Ivan Magalhaes
1021Nicolas K RimSpain2026-07-15Printing Dimensions NEGOTIATION23Stephen Shaw
1022Salvatore A GillianIndia2026-07-27Benton, John B Jr UNQUALIFIED29Anna Fali
1023Maria E OstroskyItaly2026-07-30Rousseaux, Michael Esq NEGOTIATION69Elwin Sharvill
1024Murillo Y PoquetteGermany2026-07-20Commercial Press NEW31Amy Elsner
1025Ashley Z GlickJapan2026-08-02Dorl, James J Esq NEW18Ivan Magalhaes
1026Izzy D MaletIndia2026-07-21King, Christopher A Esq NEGOTIATION62Xuxue Feng
1027Alejandro R PerinCanada2026-07-29Dorl, James J Esq UNQUALIFIED16Anna Fali
1028Aruna X OldroydCanada2026-07-20Printing Dimensions RENEWAL19Ivan Magalhaes
1029Adams E BriddickCanada2026-07-17Commercial Press NEW23Asiya Javayant
1030Kadeem Z BowleyIndia2026-07-15Commercial Press NEGOTIATION56Ioni Bowcher
1031Maria W WaycottGermany2026-07-14Dorl, James J Esq NEGOTIATION49Bernardo Dominic
1032Nicolas K GarufiCanada2026-07-13Printing Dimensions QUALIFIED87Anna Fali
1033Cody P RutaCanada2026-07-10Chemel, James L Cpa NEGOTIATION63Elwin Sharvill
1034Munro O GarufiArgentina2026-07-16Commercial Press PROPOSAL77Asiya Javayant
1035Murillo N CampainJapan2026-08-06Feiner Bros PROPOSAL18Xuxue Feng
1036Nicolas T MorascaAustralia2026-07-28Truhlar And Truhlar Attys NEW52Ioni Bowcher
1037Greenwood H PerinGermany2026-07-14Chapman, Ross E Esq RENEWAL32Bernardo Dominic
1038Faith V MacleadSpain2026-07-19Benton, John B Jr NEW48Asiya Javayant
1039Juan N FollerJapan2026-07-11Benton, John B Jr RENEWAL41Ioni Bowcher
1040Kadeem O WaycottJapan2026-07-24Rangoni Of Florence QUALIFIED40Amy Elsner
1041Mayumi O IturbideItaly2026-07-31Rangoni Of Florence UNQUALIFIED78Ivan Magalhaes
1042Ashley I GarufiCanada2026-07-29Chanay, Jeffrey A Esq RENEWAL26Xuxue Feng
1043Silvio V TollnerGermany2026-07-16Truhlar And Truhlar Attys UNQUALIFIED93Ivan Magalhaes
1044Nicolas M FigeroaIndia2026-08-01King, Christopher A Esq NEGOTIATION5Onyama Limba
1045Faith V WhobreyUnited Kingdom2026-07-22Dorl, James J Esq PROPOSAL49Ivan Magalhaes
1046Misaki X FlosiIndia2026-07-27Commercial Press QUALIFIED18Ioni Bowcher
1047Deepesh E SergiBrazil2026-07-17Printing Dimensions PROPOSAL24Elwin Sharvill
1048Jefferson C StensethJapan2026-08-07King, Christopher A Esq QUALIFIED45Ioni Bowcher
1049Jeanfrancois M BowleyRussia2026-07-30Dorl, James J Esq RENEWAL73Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aditya S VenereGermanyOnyama Limba NEGOTIATION
Mujtaba V MarrierRussiaOnyama Limba NEGOTIATION
Maisha E WhobreyAustraliaAsiya Javayant RENEWAL
Emily X DarakjyJapanIvan Magalhaes QUALIFIED
Johnson Q SchemmerUnited KingdomStephen Shaw NEGOTIATION
Misaki E SaylorsSpainElwin Sharvill UNQUALIFIED
Maria O DilliardArgentinaElwin Sharvill UNQUALIFIED
Faith Q GauchoArgentinaStephen Shaw UNQUALIFIED
Clifford A MorascaArgentinaAmy Elsner NEW
Kaitlin W GauchoArgentinaAsiya Javayant QUALIFIED
Mayumi H VenereCanadaAsiya Javayant RENEWAL
Jennifer O GauchoCanadaOnyama Limba UNQUALIFIED
David B ShinkoArgentinaElwin Sharvill NEGOTIATION
Johnson M TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba B FerenczCanadaStephen Shaw QUALIFIED
Julie G MacleadSpainIoni Bowcher QUALIFIED
Jefferson M MorascaAustraliaElwin Sharvill QUALIFIED
Izzy V WieserRussiaOnyama Limba NEW
David E CaldareraJapanAmy Elsner NEGOTIATION
Leon S PoquetteCanadaIvan Magalhaes RENEWAL
Emily W RulapaughJapanIoni Bowcher PROPOSAL
Mayumi Q DoeBrazilStephen Shaw QUALIFIED
Misaki U BowleyItalyAsiya Javayant RENEWAL
Tony Z WaycottIndiaElwin Sharvill QUALIFIED
Faith D StensethArgentinaElwin Sharvill NEW
Munro U CaudyBrazilIvan Magalhaes NEW
Deepesh U FlosiArgentinaAnna Fali UNQUALIFIED
Aika L BowleyIndiaXuxue Feng NEW
Aruna G DilliardSpainAmy Elsner UNQUALIFIED
Ivar B StensethCanadaStephen Shaw NEGOTIATION
Isabel Q MorascaUnited KingdomElwin Sharvill RENEWAL
Arvin A GillianArgentinaXuxue Feng NEW
Johnson J DarakjyBrazilOnyama Limba NEGOTIATION
Aditya N FerenczIndiaBernardo Dominic QUALIFIED
James Q MacleadFranceElwin Sharvill PROPOSAL
Faith X BowleyFranceAsiya Javayant NEGOTIATION
Smith P GillianCanadaOnyama Limba QUALIFIED
Ivar B MarrierIndiaOnyama Limba NEGOTIATION
Octavia O WhobreyGermanyAnna Fali QUALIFIED
Ricardo J BowleyCanadaBernardo Dominic QUALIFIED
Costa Z CampainFranceElwin Sharvill PROPOSAL
Mayumi V CampainUnited KingdomAmy Elsner NEGOTIATION
Munro N IturbideGermanyBernardo Dominic RENEWAL
Nicolas Z FollerUnited KingdomStephen Shaw NEW
Octavia R KuskoFranceElwin Sharvill NEGOTIATION
Ashley J PaprockiFranceIoni Bowcher QUALIFIED
Stacey M PaprockiGermanyAnna Fali QUALIFIED
Ivar Q NickaUnited KingdomAnna Fali PROPOSAL
Kadeem K OstroskyCanadaAnna Fali UNQUALIFIED
Aika S DarakjySpainAsiya Javayant QUALIFIED
Frozen Columns
Name
Aditya D Schemmer
Silvio L Nicka
David S Doe
Morrow N Flosi
Aditya P Sergi
Francesco R Rulapaugh
Clifford R Doe
Misaki U Albares
Mujtaba G Ferencz
Aditya B Glick
Johnson X Tollner
Kadeem Q Saylors
Kadeem X Butt
Silvio M Butt
Alejandro P Dilliard
Izzy Q Campain
Ashley A Saylors
Kaitlin V Malet
David O Ostrosky
Silvio Y Oldroyd
Faith X Amigon
Jefferson Q Rulapaugh
Rodrigues U Doe
Rodrigues D Iturbide
Deepesh B Dilliard
Salvatore L Bowley
Claire H Wieser
Costa X Vocelka
Ashley Z Oldroyd
Isabel W Wieser
Maisha T Kolmetz
Leon K Slusarski
Isabel W Garufi
Sinclair E Garufi
Claire C Chui
Stacey J Darakjy
Chavez S Chui
Mayumi N Sergi
Chavez E Tollner
Salvatore I Perin
Deepesh Y Oldroyd
David O Flosi
Smith D Malet
Ashley G Tollner
David C Ferencz
Costa M Inouye
Jefferson S Paprocki
Mujtaba D Ruta
Kaitlin L Kusko
Maisha S Whobrey
IdCountryDate
1000Australia2026-08-01
1001United Kingdom2026-07-21
1002Brazil2026-07-24
1003Russia2026-07-15
1004Russia2026-07-25
1005Spain2026-07-27
1006Argentina2026-07-22
1007Germany2026-07-22
1008United Kingdom2026-08-06
1009France2026-07-26
1010Australia2026-07-19
1011Argentina2026-08-05
1012France2026-07-18
1013Spain2026-07-10
1014Canada2026-07-11
1015Brazil2026-07-27
1016Canada2026-07-16
1017Italy2026-07-30
1018Australia2026-07-21
1019United Kingdom2026-08-07
1020Italy2026-07-30
1021Canada2026-07-12
1022Argentina2026-07-19
1023Argentina2026-07-12
1024Spain2026-07-21
1025Brazil2026-07-17
1026Spain2026-07-11
1027Brazil2026-07-14
1028Japan2026-07-26
1029India2026-07-11
1030Argentina2026-08-02
1031Italy2026-07-17
1032France2026-07-30
1033Germany2026-07-26
1034India2026-07-15
1035United Kingdom2026-08-06
1036France2026-07-10
1037Russia2026-07-16
1038United Kingdom2026-07-28
1039Canada2026-07-31
1040Argentina2026-07-13
1041United Kingdom2026-07-12
1042India2026-07-22
1043France2026-08-06
1044Argentina2026-07-22
1045Spain2026-08-03
1046India2026-07-11
1047Russia2026-07-14
1048Japan2026-08-07
1049Argentina2026-07-31

On-Demand Data

NameIdCountryDate
Jeanfrancois A Glick1000Russia2026-07-14
Chavez T Albares1001Germany2026-08-07
Antonio L Amigon1002Brazil2026-08-01
Cody N Whobrey1003Argentina2026-08-03
Leja W Whobrey1004United Kingdom2026-07-10
Munro D Rulapaugh1005Spain2026-07-27
Jeanfrancois O Iturbide1006Italy2026-08-05
Chavez J Slusarski1007United Kingdom2026-07-17
Emily N Malet1008France2026-08-01
Mujtaba U Nestle1009India2026-07-28
Juan D Perin1010Argentina2026-07-12
Francesco I Garufi1011Argentina2026-07-15
Deepesh F Schemmer1012Japan2026-07-10
Johnson P Paprocki1013Russia2026-07-19
Chavez Z Nestle1014Germany2026-07-27
Adams M Ostrosky1015Argentina2026-08-04
Greenwood M Kusko1016Canada2026-08-08
Ricardo L Flosi1017United Kingdom2026-07-19
Jeanfrancois W Albares1018Spain2026-07-24
Julie C Waycott1019Canada2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith S AmigonItalyStephen Shaw QUALIFIED
Mujtaba U VenereItalyAsiya Javayant UNQUALIFIED
Juan P IturbideSpainBernardo Dominic QUALIFIED
Juan C GarufiIndiaAmy Elsner NEW
Ashley B PerinGermanyXuxue Feng NEW
Aruna V NestleJapanBernardo Dominic RENEWAL
Greenwood E DilliardJapanAsiya Javayant PROPOSAL
Murillo P BriddickIndiaAmy Elsner UNQUALIFIED
Morrow F FollerUnited KingdomBernardo Dominic QUALIFIED
Morrow H MaletAustraliaElwin Sharvill UNQUALIFIED
Aditya X AmigonItalyOnyama Limba NEW
Rodrigues C ButtJapanXuxue Feng RENEWAL
Jefferson D ButtJapanStephen Shaw RENEWAL
Isabel K SergiFranceOnyama Limba NEGOTIATION
Juan K PoquetteIndiaOnyama Limba NEW
Aruna C AmigonBrazilAsiya Javayant NEGOTIATION
Julie E RimJapanAmy Elsner NEW
Nicolas R StockhamArgentinaOnyama Limba PROPOSAL
Costa H ChuiJapanOnyama Limba NEW
Johnson G GillianAustraliaBernardo Dominic QUALIFIED
Ivar Y IturbideJapanAsiya Javayant RENEWAL
Murillo V WaycottIndiaIvan Magalhaes NEGOTIATION
Mayumi J OstroskyCanadaIoni Bowcher NEW
Wickens D ChuiUnited KingdomOnyama Limba RENEWAL
Arvin P MarrierJapanAnna Fali UNQUALIFIED
Rodrigues J FollerSpainXuxue Feng RENEWAL
Jefferson T InouyeCanadaAmy Elsner UNQUALIFIED
Leon G CampainBrazilXuxue Feng PROPOSAL
Mayumi F MaletJapanOnyama Limba QUALIFIED
Clifford Z CampainItalyAsiya Javayant RENEWAL
Jones K AlbaresFranceStephen Shaw QUALIFIED
Clifford F FigeroaIndiaAnna Fali PROPOSAL
Sinclair X RimBrazilAnna Fali NEGOTIATION
Mayumi I FlosiBrazilIvan Magalhaes UNQUALIFIED
Rodrigues D PoquetteCanadaBernardo Dominic RENEWAL
Costa B MorascaFranceAsiya Javayant UNQUALIFIED
Clifford Z FerenczUnited KingdomOnyama Limba QUALIFIED
Aika J AmigonGermanyAsiya Javayant PROPOSAL
Emily N MaletSpainElwin Sharvill RENEWAL
Jefferson D VocelkaItalyStephen Shaw 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>