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 Y DoeArgentinaAmy Elsner RENEWAL
Leon Z FollerCanadaAmy Elsner PROPOSAL
Mayumi W WieserSpainBernardo Dominic NEGOTIATION
Adams Z StockhamBrazilAmy Elsner RENEWAL
Misaki Z MaletUnited KingdomBernardo Dominic QUALIFIED
Maria Y WhobreyArgentinaOnyama Limba NEW
Izzy B MaletBrazilAnna Fali NEW
Julie F TollnerSpainBernardo Dominic RENEWAL
Jennifer V OldroydCanadaAsiya Javayant NEGOTIATION
Sinclair W PerinBrazilStephen Shaw PROPOSAL
Stacey C GarufiUnited KingdomAnna Fali RENEWAL
Jones T MarrierFranceOnyama Limba NEW
Silvio E BriddickBrazilAmy Elsner NEW
Morrow R CaldareraGermanyAmy Elsner PROPOSAL
Julie G ShinkoIndiaAmy Elsner UNQUALIFIED
Costa A GillianFranceOnyama Limba RENEWAL
Aika W SaylorsJapanStephen Shaw NEGOTIATION
Salvatore S GarufiItalyBernardo Dominic NEW
Costa T PaprockiGermanyAnna Fali UNQUALIFIED
Arvin E RutaIndiaElwin Sharvill RENEWAL
Ivar G FlosiJapanIoni Bowcher RENEWAL
Francesco A GarufiSpainOnyama Limba NEGOTIATION
Salvatore O GarufiUnited KingdomOnyama Limba RENEWAL
Aika L MorascaUnited KingdomAnna Fali QUALIFIED
Chavez A MorascaFranceAnna Fali NEW
Claire F ChuiSpainOnyama Limba RENEWAL
Sinclair D CaudyCanadaAmy Elsner NEW
Darci S InouyeCanadaBernardo Dominic UNQUALIFIED
Jennifer I DilliardBrazilOnyama Limba NEGOTIATION
Sinclair W OstroskyJapanOnyama Limba NEGOTIATION
Stacey Q MarrierItalyElwin Sharvill RENEWAL
Faith H MorascaCanadaOnyama Limba UNQUALIFIED
Cody Y BologniaCanadaAnna Fali QUALIFIED
Nicolas Y PaprockiJapanAmy Elsner PROPOSAL
Antonio X CaudySpainAnna Fali UNQUALIFIED
Wickens C CampainIndiaAnna Fali UNQUALIFIED
Kaitlin R NestleJapanElwin Sharvill UNQUALIFIED
Leja F OldroydIndiaAnna Fali NEGOTIATION
Leon V BologniaFranceXuxue Feng NEW
Claire F MorascaBrazilElwin Sharvill QUALIFIED
Greenwood J SaylorsCanadaAsiya Javayant QUALIFIED
Jones K NickaArgentinaAmy Elsner NEW
Chavez Z WaycottIndiaAmy Elsner UNQUALIFIED
Jeanfrancois Y GillianAustraliaOnyama Limba NEGOTIATION
Jennifer H DilliardSpainBernardo Dominic RENEWAL
Deepesh Q SaylorsSpainIvan Magalhaes NEW
Clifford A TollnerArgentinaStephen Shaw RENEWAL
Julie H KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Nicolas J StensethItalyIvan Magalhaes PROPOSAL
Salvatore U GlickUnited KingdomStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh S DilliardJapanIoni Bowcher QUALIFIED
Nicolas I MorascaAustraliaOnyama Limba QUALIFIED
Alejandro S MarrierUnited KingdomAmy Elsner NEW
Wickens F SchemmerAustraliaIvan Magalhaes QUALIFIED
Adams N PoquetteBrazilOnyama Limba QUALIFIED
Nicolas Z GillianArgentinaIvan Magalhaes QUALIFIED
Leon I IturbideItalyAnna Fali UNQUALIFIED
Antonio K WaycottJapanIoni Bowcher PROPOSAL
Leja Q VocelkaCanadaAsiya Javayant NEGOTIATION
Jennifer Y KuskoRussiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo O DarakjyAustralia2026-08-04Rousseaux, Michael Esq QUALIFIED48Elwin Sharvill
1001Chavez A MaletArgentina2026-08-16Commercial Press RENEWAL39Xuxue Feng
1002Juan C OstroskyFrance2026-07-25Feltz Printing Service PROPOSAL49Anna Fali
1003Johnson Y OldroydBrazil2026-07-30Rousseaux, Michael Esq NEW28Elwin Sharvill
1004Faith O FigeroaIndia2026-08-12Truhlar And Truhlar Attys QUALIFIED87Stephen Shaw
1005Aruna N PerinIndia2026-08-10Chapman, Ross E Esq QUALIFIED67Bernardo Dominic
1006Mayumi P SchemmerUnited Kingdom2026-08-04Rangoni Of Florence QUALIFIED28Bernardo Dominic
1007Mayumi L StensethGermany2026-07-20Morlong Associates QUALIFIED98Ivan Magalhaes
1008Mujtaba M BowleyGermany2026-08-14Chemel, James L Cpa NEW48Ioni Bowcher
1009Misaki P RutaJapan2026-08-01Rousseaux, Michael Esq PROPOSAL80Asiya Javayant
1010Costa X IturbideAustralia2026-07-29Rousseaux, Michael Esq UNQUALIFIED69Elwin Sharvill
1011Stacey F DilliardJapan2026-07-25Printing Dimensions NEW76Xuxue Feng
1012Deepesh Y ChuiArgentina2026-08-08Feltz Printing Service NEW58Stephen Shaw
1013Adams Z ShinkoRussia2026-07-26Rousseaux, Michael Esq NEW4Bernardo Dominic
1014Munro J AlbaresRussia2026-07-20King, Christopher A Esq NEGOTIATION41Ioni Bowcher
1015Faith A KuskoBrazil2026-08-07Morlong Associates QUALIFIED34Asiya Javayant
1016Leja N BowleyGermany2026-08-13Rousseaux, Michael Esq NEW72Onyama Limba
1017Greenwood K SergiCanada2026-08-14Dorl, James J Esq UNQUALIFIED25Elwin Sharvill
1018Arvin B MaletFrance2026-07-22Truhlar And Truhlar Attys QUALIFIED72Onyama Limba
1019Costa U AmigonJapan2026-08-15Benton, John B Jr NEGOTIATION71Stephen Shaw
1020Kaitlin D FerenczUnited Kingdom2026-07-31Chanay, Jeffrey A Esq QUALIFIED14Ivan Magalhaes
1021Emily A StockhamCanada2026-08-15Printing Dimensions QUALIFIED46Ivan Magalhaes
1022Murillo M InouyeJapan2026-07-30Benton, John B Jr QUALIFIED72Elwin Sharvill
1023Adams F GillianIndia2026-07-29Rangoni Of Florence UNQUALIFIED2Bernardo Dominic
1024Sinclair W KolmetzIndia2026-08-13Morlong Associates RENEWAL55Asiya Javayant
1025Aditya D WaycottAustralia2026-08-14Morlong Associates NEGOTIATION67Onyama Limba
1026Clifford G DoeArgentina2026-08-04Feiner Bros NEGOTIATION87Ivan Magalhaes
1027Kaitlin L SaylorsFrance2026-08-11Chanay, Jeffrey A Esq PROPOSAL68Stephen Shaw
1028Emily F BriddickUnited Kingdom2026-07-27Chemel, James L Cpa PROPOSAL47Ioni Bowcher
1029James R WaycottUnited Kingdom2026-07-28Benton, John B Jr QUALIFIED8Elwin Sharvill
1030Jennifer F MacleadJapan2026-08-16Printing Dimensions UNQUALIFIED54Ioni Bowcher
1031Darci R IturbideAustralia2026-08-10Printing Dimensions RENEWAL31Anna Fali
1032Isabel A SergiIndia2026-07-22Truhlar And Truhlar Attys RENEWAL67Bernardo Dominic
1033Kaitlin E GlickGermany2026-08-09Truhlar And Truhlar Attys NEGOTIATION4Elwin Sharvill
1034Adams C FerenczRussia2026-08-14Printing Dimensions NEW89Ioni Bowcher
1035Julie Q FlosiCanada2026-07-24Chemel, James L Cpa RENEWAL72Onyama Limba
1036Chavez G RutaFrance2026-08-11Rousseaux, Michael Esq UNQUALIFIED68Anna Fali
1037Sinclair X OldroydJapan2026-08-09Morlong Associates RENEWAL82Elwin Sharvill
1038Stacey F PaprockiRussia2026-07-29Morlong Associates QUALIFIED3Amy Elsner
1039Jennifer M KolmetzItaly2026-08-09Commercial Press RENEWAL25Xuxue Feng
1040Clifford W ChuiJapan2026-07-19Truhlar And Truhlar Attys RENEWAL0Stephen Shaw
1041Cody Z WaycottSpain2026-07-30Feiner Bros PROPOSAL75Bernardo Dominic
1042Misaki Z OldroydItaly2026-08-15King, Christopher A Esq UNQUALIFIED14Asiya Javayant
1043Jones T MaletUnited Kingdom2026-07-19Chapman, Ross E Esq QUALIFIED18Ioni Bowcher
1044Aika P DarakjyRussia2026-07-27Feltz Printing Service NEW8Amy Elsner
1045Aruna K PaprockiUnited Kingdom2026-07-29Printing Dimensions NEGOTIATION1Ioni Bowcher
1046Faith V CampainBrazil2026-08-06Rangoni Of Florence NEGOTIATION61Ivan Magalhaes
1047Deepesh J CampainUnited Kingdom2026-08-06Chanay, Jeffrey A Esq NEGOTIATION35Anna Fali
1048Morrow E BriddickSpain2026-07-30Morlong Associates QUALIFIED76Onyama Limba
1049Jefferson H GauchoJapan2026-07-18Dorl, James J Esq RENEWAL74Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leja X SlusarskiGermanyStephen Shaw QUALIFIED
Jeanfrancois K KolmetzIndiaXuxue Feng NEW
Stacey U ButtGermanyOnyama Limba PROPOSAL
Arvin G AmigonUnited KingdomStephen Shaw NEW
Rodrigues M WhobreyGermanyIoni Bowcher NEGOTIATION
Morrow Z SchemmerArgentinaOnyama Limba RENEWAL
Maria H DilliardRussiaAsiya Javayant QUALIFIED
Emily X RulapaughItalyStephen Shaw NEW
Chavez I TollnerAustraliaElwin Sharvill RENEWAL
Silvio N CampainJapanIvan Magalhaes NEW
Julie M ChuiItalyIoni Bowcher NEGOTIATION
Salvatore F DilliardUnited KingdomXuxue Feng UNQUALIFIED
Johnson Y KuskoRussiaStephen Shaw UNQUALIFIED
Misaki P DilliardUnited KingdomXuxue Feng PROPOSAL
Darci O GillianGermanyAsiya Javayant NEW
Julie T ChuiGermanyElwin Sharvill PROPOSAL
Mayumi Z WieserJapanOnyama Limba QUALIFIED
Kadeem D PoquetteGermanyOnyama Limba PROPOSAL
Kadeem V NestleRussiaElwin Sharvill PROPOSAL
Arvin P AmigonUnited KingdomAmy Elsner UNQUALIFIED
Nicolas R WhobreyIndiaBernardo Dominic NEGOTIATION
Julie B FollerGermanyOnyama Limba PROPOSAL
Darci S VocelkaJapanIvan Magalhaes UNQUALIFIED
Maisha F FerenczIndiaIvan Magalhaes UNQUALIFIED
Aika U BologniaArgentinaAmy Elsner NEW
David Z DoeArgentinaAsiya Javayant PROPOSAL
Ashley Q WieserAustraliaIoni Bowcher RENEWAL
Octavia H PoquetteItalyBernardo Dominic QUALIFIED
Aruna T OstroskyIndiaIoni Bowcher NEW
Clifford K GlickArgentinaOnyama Limba QUALIFIED
Sinclair V ChuiAustraliaXuxue Feng NEGOTIATION
Antonio W MaletUnited KingdomElwin Sharvill RENEWAL
Emily S SlusarskiBrazilElwin Sharvill UNQUALIFIED
David D MaletAustraliaAnna Fali NEW
Munro Z IturbideJapanAsiya Javayant NEGOTIATION
Smith N CampainBrazilAnna Fali UNQUALIFIED
Arvin R DilliardRussiaIoni Bowcher NEGOTIATION
Aditya R FlosiFranceOnyama Limba PROPOSAL
Salvatore I RimBrazilAmy Elsner NEGOTIATION
Adams L MaletCanadaAnna Fali QUALIFIED
Alejandro B RimItalyAnna Fali QUALIFIED
Antonio D StensethIndiaIoni Bowcher PROPOSAL
Julie R WaycottItalyAsiya Javayant UNQUALIFIED
Juan S WieserRussiaElwin Sharvill PROPOSAL
Chavez G PerinBrazilAnna Fali UNQUALIFIED
Murillo S CaldareraGermanyElwin Sharvill NEGOTIATION
Chavez Z RulapaughCanadaIoni Bowcher NEW
Jones R StensethGermanyXuxue Feng NEW
Deepesh W MaletIndiaAmy Elsner PROPOSAL
Emily N FerenczAustraliaXuxue Feng PROPOSAL
Frozen Columns
Name
Aika O Albares
Jefferson Y Morasca
Jeanfrancois K Vocelka
Maria E Royster
Ricardo W Venere
Nicolas U Ostrosky
David S Caldarera
Juan D Briddick
Salvatore F Schemmer
Murillo M Rim
Alejandro I Garufi
Jefferson T Stockham
Murillo O Paprocki
Izzy D Campain
Jefferson H Flosi
Nicolas U Slusarski
Emily A Albares
Octavia Z Ferencz
Costa O Slusarski
Maria D Poquette
Deepesh W Vocelka
Leon V Nicka
Jefferson D Foller
Izzy T Chui
Silvio W Nicka
Emily I Rulapaugh
Cody Z Maclead
Claire G Inouye
Faith F Schemmer
Octavia A Stenseth
Kaitlin I Stockham
Salvatore A Darakjy
Jennifer W Garufi
Francesco H Campain
Sinclair Z Gaucho
Chavez J Vocelka
Mujtaba G Stenseth
Emily T Schemmer
Munro I Dilliard
Deepesh K Rulapaugh
Rodrigues F Bolognia
David Y Stockham
Leon Q Ostrosky
Antonio P Bolognia
Chavez N Butt
Ashley Z Figeroa
Leon U Ostrosky
Adams X Shinko
Claire Q Slusarski
Leon U Morasca
IdCountryDate
1000Canada2026-08-05
1001France2026-07-30
1002Russia2026-07-28
1003Japan2026-08-03
1004Canada2026-07-19
1005Brazil2026-08-12
1006Russia2026-08-04
1007France2026-08-13
1008Germany2026-07-24
1009Russia2026-07-24
1010Australia2026-07-25
1011Spain2026-07-21
1012Australia2026-08-09
1013France2026-07-26
1014United Kingdom2026-08-06
1015Japan2026-07-26
1016Russia2026-07-24
1017Germany2026-08-14
1018Spain2026-08-06
1019France2026-08-02
1020Canada2026-08-05
1021India2026-07-27
1022Russia2026-07-30
1023Italy2026-08-05
1024France2026-08-12
1025United Kingdom2026-07-30
1026France2026-07-19
1027France2026-07-30
1028Italy2026-08-13
1029India2026-07-19
1030Brazil2026-08-05
1031India2026-08-09
1032India2026-07-19
1033Japan2026-07-31
1034India2026-08-09
1035India2026-07-29
1036Russia2026-08-04
1037Germany2026-07-22
1038France2026-07-31
1039Canada2026-07-30
1040United Kingdom2026-08-02
1041Australia2026-07-30
1042Russia2026-07-22
1043Italy2026-08-07
1044Argentina2026-08-02
1045India2026-07-22
1046Argentina2026-07-28
1047France2026-07-30
1048India2026-08-08
1049Italy2026-08-06

On-Demand Data

NameIdCountryDate
Maisha P Schemmer1000Spain2026-07-25
Greenwood M Sergi1001France2026-07-31
Mayumi E Morasca1002France2026-08-03
Leon Q Sergi1003Australia2026-08-05
Kadeem J Butt1004Australia2026-08-15
Stacey U Butt1005Spain2026-07-23
Darci I Foller1006Australia2026-07-26
Aditya L Oldroyd1007Argentina2026-08-16
Julie A Darakjy1008Japan2026-08-01
Smith A Slusarski1009Argentina2026-07-31
Leja O Butt1010Italy2026-08-02
Aruna K Figeroa1011Italy2026-07-23
Alejandro B Flosi1012United Kingdom2026-08-12
Smith O Darakjy1013Argentina2026-07-20
Maisha Z Morasca1014France2026-07-21
Jones T Tollner1015United Kingdom2026-07-24
Aditya E Gaucho1016Australia2026-08-09
Costa Y Iturbide1017Australia2026-08-13
Ricardo J Royster1018Spain2026-08-14
Aika L Gaucho1019India2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson S GlickSpainIvan Magalhaes NEGOTIATION
Aditya U ChuiFranceXuxue Feng QUALIFIED
Darci L MarrierCanadaElwin Sharvill QUALIFIED
Maisha N RulapaughSpainIoni Bowcher RENEWAL
Jennifer W WaycottJapanAmy Elsner PROPOSAL
Aditya E FlosiUnited KingdomIoni Bowcher PROPOSAL
Salvatore A MaletItalyAmy Elsner NEW
Alejandro Q RoysterCanadaOnyama Limba RENEWAL
James F SchemmerCanadaAnna Fali UNQUALIFIED
Misaki L WhobreyItalyIoni Bowcher NEGOTIATION
Juan B RimIndiaIvan Magalhaes RENEWAL
Leja D WaycottRussiaAsiya Javayant RENEWAL
Mujtaba L FlosiCanadaAsiya Javayant PROPOSAL
Leja W CaldareraItalyAnna Fali RENEWAL
Cody E FigeroaJapanAnna Fali QUALIFIED
Aika Y NickaJapanStephen Shaw NEGOTIATION
Aditya Y SergiAustraliaAnna Fali UNQUALIFIED
David Z WieserUnited KingdomIvan Magalhaes NEW
Leon O FigeroaRussiaAnna Fali PROPOSAL
Mujtaba O AmigonSpainAmy Elsner RENEWAL
Nicolas I GarufiAustraliaOnyama Limba NEGOTIATION
Leon Q MaletBrazilElwin Sharvill QUALIFIED
Munro Z GlickArgentinaIoni Bowcher NEGOTIATION
Alejandro O MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Morrow C StockhamFranceAmy Elsner RENEWAL
Julie Z NickaAustraliaAnna Fali NEGOTIATION
Misaki F VenereAustraliaIvan Magalhaes UNQUALIFIED
Jennifer A BologniaCanadaAmy Elsner PROPOSAL
Isabel S GarufiItalyAmy Elsner QUALIFIED
Tony S TollnerAustraliaBernardo Dominic NEW
Kaitlin R ButtUnited KingdomStephen Shaw PROPOSAL
Deepesh F PoquetteFranceIvan Magalhaes NEW
Clifford D ShinkoJapanAmy Elsner QUALIFIED
Aruna L NickaGermanyElwin Sharvill UNQUALIFIED
Adams D RoysterAustraliaXuxue Feng PROPOSAL
Aika D SergiSpainXuxue Feng PROPOSAL
Ricardo W MorascaJapanAmy Elsner UNQUALIFIED
Izzy P OldroydArgentinaIvan Magalhaes QUALIFIED
Rodrigues J CaudyRussiaStephen Shaw QUALIFIED
Costa C IturbideCanadaElwin Sharvill 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>