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
Antonio E SaylorsUnited KingdomBernardo Dominic RENEWAL
Rodrigues X MaletSpainXuxue Feng NEW
Izzy B MarrierItalyIvan Magalhaes NEGOTIATION
Silvio O SaylorsCanadaElwin Sharvill UNQUALIFIED
Maisha Y CampainCanadaIvan Magalhaes RENEWAL
Kadeem L RulapaughItalyAsiya Javayant RENEWAL
Leon D StockhamAustraliaStephen Shaw RENEWAL
Kadeem K StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Aika Z PaprockiCanadaElwin Sharvill PROPOSAL
Costa E StockhamArgentinaIoni Bowcher NEW
Sinclair H OstroskySpainAmy Elsner PROPOSAL
Chavez G CampainFranceBernardo Dominic PROPOSAL
Julie U RutaUnited KingdomAsiya Javayant NEW
Munro L ButtFranceIoni Bowcher PROPOSAL
Morrow D InouyeUnited KingdomElwin Sharvill NEGOTIATION
Leja F StockhamRussiaXuxue Feng PROPOSAL
Murillo O SaylorsBrazilXuxue Feng PROPOSAL
Tony T BologniaItalyElwin Sharvill QUALIFIED
James Q CaldareraFranceAnna Fali RENEWAL
Smith D ButtArgentinaElwin Sharvill QUALIFIED
Misaki N VocelkaArgentinaIoni Bowcher NEGOTIATION
Mayumi J AmigonUnited KingdomIvan Magalhaes NEW
Costa C FlosiBrazilAsiya Javayant NEW
Ashley N NestleJapanAnna Fali UNQUALIFIED
Alejandro Z AmigonGermanyBernardo Dominic PROPOSAL
Tony Q SlusarskiItalyIoni Bowcher QUALIFIED
Leja P IturbideGermanyElwin Sharvill UNQUALIFIED
Jones G PoquetteCanadaBernardo Dominic RENEWAL
Julie L CaldareraSpainStephen Shaw NEW
Sinclair X ButtIndiaAnna Fali QUALIFIED
Octavia T VocelkaUnited KingdomElwin Sharvill QUALIFIED
Johnson Z AmigonArgentinaIvan Magalhaes NEW
Clifford E InouyeFranceAnna Fali PROPOSAL
Stacey T StensethRussiaXuxue Feng NEGOTIATION
Chavez B DoeUnited KingdomAsiya Javayant NEGOTIATION
Leon P WieserJapanAsiya Javayant PROPOSAL
Aruna N AmigonBrazilOnyama Limba NEW
Izzy T DarakjyRussiaOnyama Limba NEGOTIATION
Misaki O SchemmerArgentinaBernardo Dominic RENEWAL
Greenwood I KolmetzCanadaXuxue Feng NEGOTIATION
Stacey H BowleyUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba D RutaJapanIvan Magalhaes PROPOSAL
Munro Z ChuiAustraliaAmy Elsner QUALIFIED
Morrow B AmigonSpainAmy Elsner RENEWAL
Rodrigues W SlusarskiAustraliaAsiya Javayant PROPOSAL
Wickens G SaylorsAustraliaStephen Shaw RENEWAL
Greenwood Q FlosiBrazilAmy Elsner PROPOSAL
Jones K PoquetteBrazilBernardo Dominic UNQUALIFIED
Stacey E RulapaughSpainIoni Bowcher NEW
Morrow L SergiRussiaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire U DoeArgentinaIvan Magalhaes RENEWAL
Cody D WhobreyCanadaIvan Magalhaes UNQUALIFIED
Aditya L BowleySpainStephen Shaw UNQUALIFIED
Leja I FollerIndiaBernardo Dominic NEGOTIATION
Maisha M BologniaSpainXuxue Feng QUALIFIED
Aruna H DilliardFranceBernardo Dominic PROPOSAL
Jones X KuskoRussiaAsiya Javayant QUALIFIED
Jones O VocelkaGermanyAnna Fali QUALIFIED
Ricardo S GarufiJapanOnyama Limba QUALIFIED
Juan B SaylorsGermanyAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie A MaletJapan2026-07-02King, Christopher A Esq NEW77Amy Elsner
1001Jones O OldroydSpain2026-07-12Morlong Associates NEW37Bernardo Dominic
1002Kaitlin P GlickRussia2026-06-28Benton, John B Jr QUALIFIED34Xuxue Feng
1003Ricardo K RoysterIndia2026-07-05Morlong Associates NEGOTIATION43Ioni Bowcher
1004Aruna B IturbideFrance2026-07-02Buckley Miller Wright NEW51Xuxue Feng
1005Maisha U FollerBrazil2026-06-17Truhlar And Truhlar Attys NEW29Elwin Sharvill
1006Sinclair Z InouyeBrazil2026-07-09Feiner Bros NEGOTIATION5Amy Elsner
1007Tony W VocelkaFrance2026-07-10Morlong Associates UNQUALIFIED6Ivan Magalhaes
1008Darci D InouyeFrance2026-06-30Rousseaux, Michael Esq QUALIFIED36Ioni Bowcher
1009Adams B RutaIndia2026-07-05Chemel, James L Cpa RENEWAL16Anna Fali
1010Jones P OstroskyArgentina2026-07-05Chemel, James L Cpa NEGOTIATION87Elwin Sharvill
1011Arvin J GillianIndia2026-07-13Chapman, Ross E Esq NEGOTIATION55Amy Elsner
1012Morrow H ChuiBrazil2026-07-04Buckley Miller Wright QUALIFIED13Bernardo Dominic
1013Misaki C DarakjyGermany2026-06-19Chemel, James L Cpa PROPOSAL2Anna Fali
1014Salvatore E NickaCanada2026-07-14Chemel, James L Cpa RENEWAL32Onyama Limba
1015Juan G OstroskyFrance2026-07-02Commercial Press UNQUALIFIED75Anna Fali
1016Kaitlin M VenereCanada2026-06-21Printing Dimensions NEGOTIATION88Stephen Shaw
1017Ricardo Q DarakjyRussia2026-06-26Chapman, Ross E Esq PROPOSAL75Bernardo Dominic
1018Murillo N FollerItaly2026-06-16Chanay, Jeffrey A Esq QUALIFIED94Elwin Sharvill
1019David D GarufiAustralia2026-07-10Commercial Press NEGOTIATION1Elwin Sharvill
1020Adams G AlbaresAustralia2026-07-14Truhlar And Truhlar Attys UNQUALIFIED75Xuxue Feng
1021Aika Y PoquetteIndia2026-06-16Buckley Miller Wright PROPOSAL71Stephen Shaw
1022Stacey T ShinkoFrance2026-06-15King, Christopher A Esq QUALIFIED24Stephen Shaw
1023Octavia J MacleadUnited Kingdom2026-07-01Rangoni Of Florence RENEWAL39Ioni Bowcher
1024Adams X VocelkaBrazil2026-07-01Truhlar And Truhlar Attys NEGOTIATION69Elwin Sharvill
1025Deepesh D MorascaUnited Kingdom2026-07-13Morlong Associates NEW70Ioni Bowcher
1026Tony G WaycottJapan2026-07-14Rangoni Of Florence QUALIFIED79Amy Elsner
1027Aika F BowleyAustralia2026-07-07Rangoni Of Florence NEW55Elwin Sharvill
1028Tony G StockhamCanada2026-07-10Buckley Miller Wright QUALIFIED59Anna Fali
1029Ashley S WaycottAustralia2026-06-21Morlong Associates PROPOSAL1Stephen Shaw
1030Claire D CaldareraArgentina2026-07-09Dorl, James J Esq QUALIFIED98Asiya Javayant
1031David Y BriddickGermany2026-06-28Rousseaux, Michael Esq NEW49Stephen Shaw
1032Aika O MaletBrazil2026-06-28Rousseaux, Michael Esq QUALIFIED1Amy Elsner
1033Nicolas I GlickCanada2026-07-14Chanay, Jeffrey A Esq NEW39Onyama Limba
1034Rodrigues N WaycottArgentina2026-07-07Truhlar And Truhlar Attys NEGOTIATION81Elwin Sharvill
1035Johnson D WaycottGermany2026-06-17King, Christopher A Esq UNQUALIFIED61Stephen Shaw
1036Arvin M WhobreySpain2026-06-29Buckley Miller Wright UNQUALIFIED13Amy Elsner
1037Ashley C DilliardItaly2026-06-16Buckley Miller Wright QUALIFIED41Amy Elsner
1038Leon Z RimBrazil2026-07-05Chapman, Ross E Esq NEGOTIATION92Asiya Javayant
1039Darci W VocelkaRussia2026-07-03Commercial Press UNQUALIFIED97Xuxue Feng
1040Mayumi S MorascaJapan2026-06-27Rangoni Of Florence QUALIFIED45Stephen Shaw
1041Maria P RulapaughFrance2026-07-07Feiner Bros PROPOSAL11Ioni Bowcher
1042Ricardo H StockhamUnited Kingdom2026-07-07Feiner Bros UNQUALIFIED33Onyama Limba
1043Izzy T CaudyRussia2026-07-14Truhlar And Truhlar Attys NEW82Amy Elsner
1044Mujtaba W RutaJapan2026-07-07King, Christopher A Esq PROPOSAL21Ioni Bowcher
1045David C SergiRussia2026-06-29Morlong Associates NEGOTIATION38Ivan Magalhaes
1046Maisha M RutaArgentina2026-06-15Morlong Associates UNQUALIFIED28Elwin Sharvill
1047Johnson P RoysterBrazil2026-07-13Chapman, Ross E Esq UNQUALIFIED3Elwin Sharvill
1048Munro S InouyeGermany2026-06-28Rangoni Of Florence NEW54Ivan Magalhaes
1049Wickens X AmigonUnited Kingdom2026-06-18Benton, John B Jr NEGOTIATION94Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro W StockhamJapanXuxue Feng NEGOTIATION
Stacey W ButtRussiaElwin Sharvill UNQUALIFIED
Morrow P CaudyItalyStephen Shaw RENEWAL
Mayumi Y SergiAustraliaAmy Elsner NEGOTIATION
Maisha K MorascaFranceOnyama Limba RENEWAL
Leja Q RulapaughJapanBernardo Dominic NEGOTIATION
Faith Q MorascaJapanAmy Elsner UNQUALIFIED
Aruna Z OldroydSpainOnyama Limba PROPOSAL
Alejandro V ShinkoBrazilAmy Elsner QUALIFIED
Silvio W BriddickRussiaStephen Shaw NEGOTIATION
Mayumi K FerenczFranceAmy Elsner UNQUALIFIED
Emily Z BologniaItalyBernardo Dominic PROPOSAL
Maria Z ButtArgentinaAnna Fali UNQUALIFIED
Sinclair J GillianRussiaOnyama Limba NEW
Leon P WhobreyCanadaIoni Bowcher NEGOTIATION
Kaitlin Q StensethIndiaElwin Sharvill UNQUALIFIED
Maisha Y RulapaughArgentinaAsiya Javayant RENEWAL
Jones O GarufiGermanyIoni Bowcher NEW
Deepesh L GarufiCanadaAmy Elsner QUALIFIED
Jefferson K AmigonRussiaAnna Fali QUALIFIED
Faith P SergiSpainIoni Bowcher UNQUALIFIED
Clifford R CaudyIndiaAsiya Javayant NEW
Julie O DoeGermanyIoni Bowcher NEGOTIATION
Leja J BologniaCanadaIvan Magalhaes PROPOSAL
Salvatore Y CampainRussiaAsiya Javayant PROPOSAL
Maisha N RutaAustraliaAnna Fali UNQUALIFIED
Emily O ShinkoFranceIoni Bowcher PROPOSAL
Leon Z FollerUnited KingdomAnna Fali NEGOTIATION
Kadeem U WaycottGermanyAmy Elsner QUALIFIED
Murillo R IturbideGermanyAmy Elsner UNQUALIFIED
Kaitlin L RutaItalyElwin Sharvill NEW
Rodrigues L PoquetteUnited KingdomOnyama Limba RENEWAL
Aika J RutaGermanyElwin Sharvill UNQUALIFIED
Arvin K MaletArgentinaOnyama Limba NEW
Tony A GillianUnited KingdomStephen Shaw QUALIFIED
Misaki U SergiJapanElwin Sharvill RENEWAL
Julie Q NickaGermanyIoni Bowcher RENEWAL
Murillo H DarakjyGermanyStephen Shaw NEW
Maria R KuskoArgentinaAsiya Javayant RENEWAL
Misaki V OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Maria U SchemmerJapanStephen Shaw QUALIFIED
David D WhobreyArgentinaBernardo Dominic RENEWAL
Aditya Q FollerAustraliaAmy Elsner NEGOTIATION
Kadeem G IturbideRussiaAnna Fali RENEWAL
Silvio W FollerRussiaOnyama Limba UNQUALIFIED
Antonio O FlosiBrazilIoni Bowcher QUALIFIED
Ashley J FollerIndiaIoni Bowcher NEGOTIATION
Darci K DarakjyItalyIvan Magalhaes PROPOSAL
Kadeem N CaldareraGermanyAnna Fali UNQUALIFIED
Murillo A MaletIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Mayumi Z Garufi
Mujtaba L Ostrosky
Johnson M Darakjy
Izzy Z Butt
Mayumi R Inouye
Jefferson Q Nestle
Mayumi E Shinko
Izzy N Butt
Emily L Schemmer
Adams N Butt
Ivar C Kusko
Arvin Y Poquette
Sinclair Y Garufi
Stacey T Bowley
Greenwood W Rim
Aruna L Briddick
Isabel F Briddick
Nicolas L Flosi
Ricardo V Whobrey
Juan I Foller
Ashley J Paprocki
Aditya O Figeroa
Sinclair T Royster
Jefferson C Caudy
Mujtaba P Ostrosky
Deepesh O Venere
Juan D Oldroyd
Silvio O Slusarski
Alejandro Z Stockham
Emily N Caldarera
Clifford E Garufi
Jeanfrancois H Doe
Jeanfrancois O Stenseth
Costa V Stenseth
Wickens X Butt
Jeanfrancois Q Doe
Silvio F Ostrosky
Deepesh H Nicka
Murillo L Briddick
Murillo K Campain
Smith M Inouye
Emily Q Gillian
Silvio G Campain
Jones S Sergi
David O Caldarera
Aika C Campain
Ashley S Nicka
Wickens W Malet
Leon E Darakjy
David U Waycott
IdCountryDate
1000Spain2026-06-26
1001Germany2026-07-06
1002France2026-06-16
1003India2026-06-29
1004Brazil2026-07-01
1005Russia2026-07-02
1006Brazil2026-06-23
1007France2026-06-23
1008France2026-07-06
1009Canada2026-07-01
1010Argentina2026-06-15
1011Argentina2026-07-12
1012France2026-07-06
1013Brazil2026-07-11
1014Argentina2026-06-30
1015Japan2026-07-02
1016Germany2026-07-01
1017Argentina2026-06-29
1018France2026-06-25
1019Brazil2026-07-04
1020France2026-06-22
1021Australia2026-07-09
1022Spain2026-07-11
1023United Kingdom2026-07-12
1024Australia2026-07-01
1025Australia2026-07-10
1026Brazil2026-06-26
1027Brazil2026-06-17
1028Italy2026-06-20
1029Japan2026-06-30
1030Spain2026-07-04
1031Italy2026-07-07
1032Russia2026-06-30
1033Russia2026-06-30
1034Germany2026-07-10
1035India2026-06-25
1036United Kingdom2026-07-03
1037Australia2026-07-07
1038Spain2026-06-16
1039Italy2026-06-21
1040France2026-07-05
1041Russia2026-07-13
1042Russia2026-06-20
1043Spain2026-06-21
1044Spain2026-07-14
1045Argentina2026-06-24
1046Canada2026-07-07
1047Russia2026-07-06
1048Brazil2026-06-15
1049Germany2026-06-27

On-Demand Data

NameIdCountryDate
Izzy W Rim1000Canada2026-07-14
Munro R Perin1001France2026-07-12
Ashley H Vocelka1002France2026-07-05
Tony F Nestle1003India2026-07-14
Ashley L Malet1004Argentina2026-06-18
Kadeem A Glick1005Brazil2026-06-24
Claire O Inouye1006Argentina2026-06-20
Clifford N Sergi1007Spain2026-07-09
Johnson L Nicka1008Spain2026-06-17
Adams X Poquette1009India2026-07-02
Leon U Dilliard1010Canada2026-06-20
Aruna Y Vocelka1011Brazil2026-06-28
Costa X Whobrey1012Australia2026-07-05
Kadeem V Wieser1013Germany2026-07-14
Silvio U Kolmetz1014Argentina2026-07-01
Greenwood D Morasca1015Germany2026-06-23
Claire S Sergi1016Germany2026-07-08
Smith G Oldroyd1017Argentina2026-06-21
James J Whobrey1018Italy2026-07-02
Izzy Q Shinko1019Russia2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues J GlickCanadaOnyama Limba PROPOSAL
David C RutaBrazilAmy Elsner QUALIFIED
Johnson A FollerSpainBernardo Dominic NEW
Izzy A NickaGermanyXuxue Feng NEW
Morrow G MorascaArgentinaXuxue Feng RENEWAL
Jennifer K SchemmerRussiaStephen Shaw RENEWAL
Murillo H DoeAustraliaAmy Elsner RENEWAL
Kadeem R BologniaAustraliaStephen Shaw NEGOTIATION
Nicolas C MacleadFranceElwin Sharvill UNQUALIFIED
Sinclair E SchemmerRussiaElwin Sharvill UNQUALIFIED
Alejandro B OldroydAustraliaElwin Sharvill NEGOTIATION
James S ShinkoArgentinaAmy Elsner PROPOSAL
Maria K FerenczArgentinaElwin Sharvill NEGOTIATION
Jennifer E RulapaughGermanyIvan Magalhaes PROPOSAL
Salvatore I RulapaughCanadaOnyama Limba UNQUALIFIED
Deepesh H FerenczFranceAsiya Javayant NEW
Smith I SaylorsRussiaStephen Shaw NEGOTIATION
Mayumi X GillianBrazilIoni Bowcher UNQUALIFIED
Smith A PerinBrazilIoni Bowcher UNQUALIFIED
Mujtaba C FlosiItalyElwin Sharvill PROPOSAL
Salvatore I MaletAustraliaAnna Fali UNQUALIFIED
Jefferson D PaprockiIndiaBernardo Dominic PROPOSAL
Tony W ButtAustraliaElwin Sharvill UNQUALIFIED
Stacey A PaprockiIndiaElwin Sharvill PROPOSAL
Cody J ButtArgentinaBernardo Dominic RENEWAL
Adams A WhobreyIndiaOnyama Limba NEGOTIATION
Kadeem B MacleadAustraliaAmy Elsner UNQUALIFIED
Greenwood A CampainJapanOnyama Limba NEGOTIATION
Juan L FollerItalyBernardo Dominic NEW
Stacey L VenereSpainAsiya Javayant NEGOTIATION
Maria Q WieserGermanyStephen Shaw PROPOSAL
Nicolas C SchemmerBrazilOnyama Limba NEGOTIATION
Johnson Y GauchoFranceOnyama Limba RENEWAL
Ashley Z WhobreyItalyXuxue Feng PROPOSAL
Tony F DarakjyItalyStephen Shaw PROPOSAL
Greenwood Q DarakjyFranceAnna Fali RENEWAL
Jennifer S CaudyIndiaAsiya Javayant QUALIFIED
Cody O VocelkaBrazilOnyama Limba UNQUALIFIED
Sinclair L ShinkoBrazilAmy Elsner NEGOTIATION
Nicolas L FollerJapanElwin Sharvill PROPOSAL

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