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
Murillo O IturbideRussiaAnna Fali PROPOSAL
Ivar J KolmetzIndiaElwin Sharvill RENEWAL
Munro G MaletAustraliaIvan Magalhaes UNQUALIFIED
Costa M PerinUnited KingdomXuxue Feng NEGOTIATION
Isabel C MacleadUnited KingdomXuxue Feng PROPOSAL
Stacey R RoysterFranceXuxue Feng QUALIFIED
Johnson W CaldareraIndiaBernardo Dominic NEW
Emily C IturbideCanadaAnna Fali PROPOSAL
Clifford W StockhamAustraliaAsiya Javayant NEGOTIATION
Adams U RutaJapanXuxue Feng RENEWAL
Aditya L GarufiAustraliaXuxue Feng NEGOTIATION
Octavia P GauchoBrazilBernardo Dominic QUALIFIED
Aditya S CaudyRussiaIoni Bowcher RENEWAL
Alejandro P InouyeGermanyOnyama Limba NEGOTIATION
Rodrigues J GauchoFranceElwin Sharvill NEW
Faith A GillianItalyBernardo Dominic UNQUALIFIED
Juan X DoeGermanyElwin Sharvill QUALIFIED
Stacey N CampainAustraliaAsiya Javayant NEW
Leja X DarakjyGermanyAsiya Javayant PROPOSAL
Aika D MaletUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois K PoquetteFranceElwin Sharvill NEGOTIATION
Jeanfrancois I MacleadJapanStephen Shaw NEGOTIATION
Izzy M IturbideAustraliaIvan Magalhaes NEGOTIATION
Aruna O FollerCanadaAmy Elsner PROPOSAL
Nicolas G PaprockiGermanyAnna Fali NEW
Sinclair D WhobreyRussiaElwin Sharvill RENEWAL
Clifford U PoquetteCanadaIvan Magalhaes RENEWAL
Tony V KolmetzJapanIvan Magalhaes NEGOTIATION
Leja W AlbaresArgentinaAmy Elsner UNQUALIFIED
Octavia A KuskoRussiaXuxue Feng QUALIFIED
David O SlusarskiArgentinaOnyama Limba UNQUALIFIED
Adams K WieserAustraliaAmy Elsner UNQUALIFIED
Maisha T PaprockiBrazilAnna Fali PROPOSAL
Alejandro A RoysterFranceOnyama Limba NEW
Cody N SergiSpainAnna Fali UNQUALIFIED
Munro M NickaCanadaAnna Fali RENEWAL
Arvin Q RimItalyAnna Fali PROPOSAL
Salvatore I NickaAustraliaAnna Fali QUALIFIED
Jones N AmigonIndiaIoni Bowcher QUALIFIED
Mujtaba D DilliardIndiaAnna Fali NEW
Adams N RimCanadaOnyama Limba PROPOSAL
Jeanfrancois T NestleItalyStephen Shaw QUALIFIED
Aditya B ChuiItalyIvan Magalhaes RENEWAL
Antonio Q WieserFranceElwin Sharvill NEGOTIATION
Maria M SchemmerSpainIoni Bowcher UNQUALIFIED
Aditya U FollerJapanAnna Fali PROPOSAL
Izzy R WhobreyFranceBernardo Dominic UNQUALIFIED
Cody H PaprockiIndiaOnyama Limba NEW
Juan D FigeroaSpainXuxue Feng NEW
Cody T PaprockiJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin D TollnerAustraliaIoni Bowcher QUALIFIED
Adams E FollerBrazilAmy Elsner NEGOTIATION
Costa U ShinkoFranceIoni Bowcher NEGOTIATION
Claire E KolmetzJapanOnyama Limba NEGOTIATION
Arvin U NestleArgentinaOnyama Limba NEGOTIATION
Ricardo M RutaGermanyBernardo Dominic UNQUALIFIED
Mayumi M PaprockiSpainAsiya Javayant NEW
Cody I DoeSpainStephen Shaw PROPOSAL
Leon J ButtArgentinaIoni Bowcher NEGOTIATION
Greenwood A GarufiFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem J GlickItaly2026-06-20Chapman, Ross E Esq NEW50Asiya Javayant
1001Stacey M PaprockiBrazil2026-06-18Feiner Bros QUALIFIED61Anna Fali
1002Leon D OstroskyArgentina2026-06-17Benton, John B Jr RENEWAL94Onyama Limba
1003Mayumi A MarrierBrazil2026-06-27Commercial Press RENEWAL36Bernardo Dominic
1004Emily K RoysterArgentina2026-07-04Chemel, James L Cpa UNQUALIFIED27Onyama Limba
1005Silvio E MorascaCanada2026-06-21Chapman, Ross E Esq PROPOSAL46Xuxue Feng
1006Costa T RoysterFrance2026-07-10Dorl, James J Esq UNQUALIFIED43Asiya Javayant
1007Francesco H BriddickFrance2026-07-07Rangoni Of Florence NEW7Stephen Shaw
1008Chavez E SaylorsFrance2026-06-13Rousseaux, Michael Esq UNQUALIFIED76Ivan Magalhaes
1009Francesco O BriddickAustralia2026-06-25Chapman, Ross E Esq UNQUALIFIED37Asiya Javayant
1010Leon T KolmetzGermany2026-06-15Feiner Bros UNQUALIFIED21Asiya Javayant
1011Adams W SaylorsFrance2026-06-21Chemel, James L Cpa QUALIFIED71Ioni Bowcher
1012Maria X GarufiGermany2026-07-12Rousseaux, Michael Esq NEW14Amy Elsner
1013Tony V PoquetteAustralia2026-06-14Truhlar And Truhlar Attys UNQUALIFIED23Ioni Bowcher
1014Izzy A RutaIndia2026-07-12Printing Dimensions NEGOTIATION46Ioni Bowcher
1015Jones T VocelkaBrazil2026-06-24Feiner Bros PROPOSAL36Ioni Bowcher
1016Leja L RimItaly2026-07-05Rangoni Of Florence UNQUALIFIED0Asiya Javayant
1017Aika C StockhamFrance2026-06-29Printing Dimensions NEW49Ioni Bowcher
1018David U WaycottUnited Kingdom2026-07-05Commercial Press NEW38Xuxue Feng
1019Francesco W FlosiIndia2026-06-28Truhlar And Truhlar Attys NEGOTIATION75Bernardo Dominic
1020Octavia F MorascaAustralia2026-06-28Truhlar And Truhlar Attys QUALIFIED30Stephen Shaw
1021Kadeem A StensethUnited Kingdom2026-06-17Chanay, Jeffrey A Esq NEGOTIATION70Ioni Bowcher
1022Arvin Z MacleadRussia2026-07-08Chemel, James L Cpa RENEWAL96Amy Elsner
1023Salvatore D SlusarskiSpain2026-07-12Chemel, James L Cpa PROPOSAL21Amy Elsner
1024Tony C RutaUnited Kingdom2026-07-06Feltz Printing Service UNQUALIFIED60Onyama Limba
1025David O RoysterJapan2026-07-08King, Christopher A Esq QUALIFIED75Anna Fali
1026Silvio L AlbaresUnited Kingdom2026-07-02Chemel, James L Cpa NEGOTIATION46Bernardo Dominic
1027Jennifer O GillianIndia2026-06-25Chanay, Jeffrey A Esq PROPOSAL96Ioni Bowcher
1028Izzy P SergiCanada2026-06-30Dorl, James J Esq UNQUALIFIED40Elwin Sharvill
1029Kaitlin Z DarakjyArgentina2026-06-15Chapman, Ross E Esq PROPOSAL59Xuxue Feng
1030Claire N PoquetteCanada2026-06-15Commercial Press RENEWAL2Ioni Bowcher
1031Aruna W FollerItaly2026-06-28Commercial Press RENEWAL90Ioni Bowcher
1032Kadeem K ButtArgentina2026-07-10Buckley Miller Wright NEW40Ioni Bowcher
1033Darci T WaycottSpain2026-07-01Rousseaux, Michael Esq RENEWAL10Ioni Bowcher
1034Jones T FlosiUnited Kingdom2026-07-01Truhlar And Truhlar Attys PROPOSAL56Xuxue Feng
1035Isabel S FerenczRussia2026-06-21Rousseaux, Michael Esq NEGOTIATION73Bernardo Dominic
1036Sinclair C MorascaIndia2026-06-20Feltz Printing Service NEGOTIATION62Anna Fali
1037Antonio K ShinkoBrazil2026-06-21Chapman, Ross E Esq NEGOTIATION46Ivan Magalhaes
1038Antonio L AlbaresRussia2026-06-14Morlong Associates NEGOTIATION34Onyama Limba
1039Jefferson L StockhamBrazil2026-07-02Feltz Printing Service PROPOSAL73Asiya Javayant
1040Johnson P WhobreySpain2026-06-18Rousseaux, Michael Esq QUALIFIED11Elwin Sharvill
1041Maisha F PaprockiSpain2026-06-17Chapman, Ross E Esq NEGOTIATION11Onyama Limba
1042Ashley I NickaAustralia2026-06-13Chemel, James L Cpa NEGOTIATION53Ioni Bowcher
1043Jennifer Y StensethArgentina2026-06-28Chapman, Ross E Esq NEW44Amy Elsner
1044Mujtaba T SergiGermany2026-07-08Printing Dimensions RENEWAL12Xuxue Feng
1045Emily C SchemmerUnited Kingdom2026-07-11Printing Dimensions NEGOTIATION52Amy Elsner
1046Aruna O ShinkoBrazil2026-06-30Rangoni Of Florence PROPOSAL21Asiya Javayant
1047Leon Q MacleadBrazil2026-07-02Chemel, James L Cpa RENEWAL37Elwin Sharvill
1048Costa G ButtBrazil2026-06-29Rousseaux, Michael Esq NEW52Onyama Limba
1049Nicolas Z GillianItaly2026-07-03Chemel, James L Cpa QUALIFIED72Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas G DoeFranceAsiya Javayant NEW
Tony G NestleArgentinaBernardo Dominic NEGOTIATION
Wickens J FlosiFranceAmy Elsner PROPOSAL
Misaki A GillianIndiaElwin Sharvill PROPOSAL
Jefferson C SaylorsBrazilOnyama Limba PROPOSAL
James D PoquetteIndiaXuxue Feng PROPOSAL
Ivar F SlusarskiSpainBernardo Dominic NEGOTIATION
Darci W GarufiUnited KingdomIoni Bowcher NEW
Misaki V MaletItalyAnna Fali UNQUALIFIED
Leon I AmigonRussiaAmy Elsner NEW
Morrow P BriddickFranceIvan Magalhaes RENEWAL
Maria X MaletAustraliaAnna Fali PROPOSAL
Greenwood N StockhamCanadaIvan Magalhaes PROPOSAL
Arvin R AlbaresUnited KingdomElwin Sharvill RENEWAL
Antonio X SlusarskiSpainIvan Magalhaes NEW
Aditya L FollerArgentinaBernardo Dominic UNQUALIFIED
Clifford H AmigonUnited KingdomOnyama Limba NEW
Silvio Z RimGermanyAsiya Javayant PROPOSAL
Jeanfrancois Z CampainIndiaAnna Fali NEGOTIATION
James C SlusarskiJapanXuxue Feng PROPOSAL
Ashley B RutaUnited KingdomIoni Bowcher NEGOTIATION
Tony I StensethRussiaAsiya Javayant PROPOSAL
Adams K SchemmerIndiaElwin Sharvill QUALIFIED
Francesco B PoquetteGermanyBernardo Dominic RENEWAL
Cody B GlickGermanyAsiya Javayant UNQUALIFIED
Isabel Q BriddickBrazilIoni Bowcher QUALIFIED
Sinclair P InouyeAustraliaXuxue Feng UNQUALIFIED
Emily V FerenczItalyBernardo Dominic QUALIFIED
Clifford Q WaycottItalyBernardo Dominic PROPOSAL
Ivar X GauchoItalyAnna Fali UNQUALIFIED
Cody M OstroskySpainIoni Bowcher NEGOTIATION
Isabel S ButtUnited KingdomXuxue Feng RENEWAL
Izzy W FlosiArgentinaXuxue Feng NEGOTIATION
Maisha V FlosiFranceAsiya Javayant QUALIFIED
Mayumi L NickaAustraliaIoni Bowcher NEW
Costa S AmigonBrazilBernardo Dominic QUALIFIED
Deepesh E RimGermanyIvan Magalhaes NEW
Sinclair Y StensethArgentinaOnyama Limba PROPOSAL
Ricardo U SaylorsBrazilBernardo Dominic NEGOTIATION
Sinclair Q StensethItalyAmy Elsner NEW
Julie M FollerItalyAmy Elsner NEGOTIATION
Leon B IturbideAustraliaBernardo Dominic NEW
James L RoysterJapanBernardo Dominic UNQUALIFIED
Jeanfrancois V RimRussiaBernardo Dominic QUALIFIED
Julie L DarakjyGermanyBernardo Dominic PROPOSAL
Cody E FerenczAustraliaOnyama Limba UNQUALIFIED
Johnson I VenereSpainAsiya Javayant UNQUALIFIED
Deepesh Y CampainRussiaAnna Fali PROPOSAL
Costa G FigeroaUnited KingdomStephen Shaw PROPOSAL
Aika C ButtSpainOnyama Limba RENEWAL
Frozen Columns
Name
Misaki Z Bolognia
Stacey M Malet
Stacey S Nestle
Alejandro U Slusarski
Murillo G Butt
Deepesh X Rim
Wickens H Maclead
Maria H Chui
James A Marrier
Isabel X Whobrey
Wickens Q Ferencz
Silvio I Garufi
Leja J Maclead
Morrow L Tollner
Arvin A Morasca
Costa L Tollner
Munro X Shinko
Deepesh T Malet
Cody A Butt
Cody J Bowley
David H Campain
Smith F Ferencz
Kadeem V Rim
David V Royster
Mayumi C Amigon
Faith I Malet
Nicolas L Iturbide
Aditya X Dilliard
Tony E Butt
Faith M Poquette
Leon D Schemmer
Tony V Briddick
Morrow X Amigon
Alejandro G Campain
Chavez A Stenseth
Morrow Q Kusko
Stacey X Ferencz
Adams H Kusko
Ivar A Nestle
Johnson H Butt
Rodrigues N Caudy
Costa V Shinko
Deepesh R Flosi
Clifford L Venere
Kaitlin H Waycott
Silvio V Schemmer
Aruna Z Royster
Faith F Rim
Johnson D Flosi
James T Gaucho
IdCountryDate
1000Australia2026-06-28
1001Brazil2026-06-26
1002Italy2026-06-17
1003Italy2026-06-30
1004Italy2026-07-08
1005Australia2026-07-02
1006Russia2026-06-27
1007France2026-06-13
1008France2026-06-26
1009Canada2026-07-12
1010Russia2026-06-20
1011Russia2026-06-28
1012Australia2026-06-13
1013United Kingdom2026-07-06
1014Canada2026-07-05
1015Japan2026-07-03
1016France2026-06-16
1017Australia2026-07-09
1018India2026-06-13
1019India2026-06-21
1020Italy2026-06-15
1021Italy2026-06-13
1022Canada2026-06-15
1023United Kingdom2026-06-24
1024Italy2026-06-16
1025Japan2026-06-22
1026Australia2026-07-12
1027Spain2026-07-03
1028Argentina2026-06-29
1029India2026-06-27
1030United Kingdom2026-07-11
1031France2026-06-24
1032Australia2026-06-30
1033Italy2026-06-15
1034Argentina2026-06-23
1035Brazil2026-06-22
1036Brazil2026-07-04
1037Japan2026-07-04
1038Spain2026-06-17
1039Argentina2026-07-08
1040Argentina2026-07-10
1041Brazil2026-06-27
1042Canada2026-07-07
1043Germany2026-07-10
1044Japan2026-06-28
1045Germany2026-07-06
1046Brazil2026-06-25
1047United Kingdom2026-07-10
1048Russia2026-06-22
1049Japan2026-06-17

On-Demand Data

NameIdCountryDate
Francesco H Tollner1000Japan2026-06-30
Maisha G Perin1001Japan2026-07-04
Stacey N Bolognia1002Brazil2026-07-08
Mujtaba W Stenseth1003India2026-06-27
Ashley R Bolognia1004Brazil2026-06-26
Ashley K Maclead1005Germany2026-06-27
Jones Y Slusarski1006India2026-07-01
Alejandro Q Shinko1007Italy2026-06-28
Misaki G Kusko1008Argentina2026-06-28
David O Venere1009Brazil2026-07-11
Juan H Ruta1010Germany2026-06-24
Alejandro S Bowley1011Canada2026-07-01
Isabel N Foller1012Brazil2026-06-30
Isabel S Caudy1013Germany2026-07-02
Mujtaba H Ferencz1014India2026-06-17
Aika M Figeroa1015Germany2026-06-19
James R Flosi1016Canada2026-06-26
Arvin T Dilliard1017India2026-07-08
Wickens B Glick1018France2026-06-21
Costa X Ostrosky1019Italy2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia D BowleySpainStephen Shaw UNQUALIFIED
Alejandro J OstroskyJapanIoni Bowcher NEW
Aditya S TollnerBrazilIvan Magalhaes NEGOTIATION
Arvin H SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Kaitlin U GlickAustraliaXuxue Feng UNQUALIFIED
Rodrigues C PerinJapanAmy Elsner UNQUALIFIED
Johnson T SchemmerArgentinaXuxue Feng PROPOSAL
Darci K WieserItalyElwin Sharvill NEW
Nicolas G WaycottArgentinaIoni Bowcher UNQUALIFIED
Izzy L ChuiUnited KingdomElwin Sharvill NEGOTIATION
Deepesh P StensethUnited KingdomIoni Bowcher PROPOSAL
Munro B MaletUnited KingdomBernardo Dominic NEW
Morrow J PaprockiJapanXuxue Feng NEGOTIATION
Aruna A MarrierBrazilAnna Fali QUALIFIED
Mayumi V AmigonRussiaAmy Elsner PROPOSAL
Juan S MaletBrazilStephen Shaw NEW
Jeanfrancois I RimSpainIoni Bowcher PROPOSAL
Emily A OldroydRussiaStephen Shaw PROPOSAL
Antonio A SchemmerBrazilAsiya Javayant NEW
Jennifer O MorascaUnited KingdomAmy Elsner NEW
Kadeem T FollerBrazilAsiya Javayant QUALIFIED
Aruna G PoquetteCanadaElwin Sharvill NEGOTIATION
Juan F PerinAustraliaStephen Shaw NEGOTIATION
Clifford Y DoeBrazilAnna Fali RENEWAL
James U MarrierBrazilIvan Magalhaes QUALIFIED
Costa N GauchoCanadaXuxue Feng NEGOTIATION
Jefferson O VocelkaSpainAnna Fali PROPOSAL
Francesco F DoeFranceElwin Sharvill QUALIFIED
Aruna A RutaGermanyXuxue Feng UNQUALIFIED
Jones U CampainBrazilStephen Shaw NEW
Emily Q NestleAustraliaElwin Sharvill QUALIFIED
Leja X CampainCanadaIvan Magalhaes PROPOSAL
Tony G ChuiItalyBernardo Dominic PROPOSAL
Munro F AmigonAustraliaXuxue Feng NEGOTIATION
David Z NestleGermanyIvan Magalhaes NEW
Cody Q AmigonFranceXuxue Feng NEW
Ashley W BriddickAustraliaBernardo Dominic NEGOTIATION
James X VocelkaFranceAmy Elsner PROPOSAL
Mujtaba N FigeroaFranceElwin Sharvill PROPOSAL
Wickens Z FlosiCanadaStephen 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>