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
Ashley K MacleadAustraliaIvan Magalhaes RENEWAL
Nicolas U FollerSpainIoni Bowcher RENEWAL
Johnson G StockhamAustraliaAnna Fali PROPOSAL
Jefferson Z GlickIndiaOnyama Limba NEGOTIATION
Aika Y FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Silvio H RutaIndiaBernardo Dominic RENEWAL
Cody E OstroskyRussiaXuxue Feng NEW
Nicolas R StensethAustraliaAsiya Javayant NEW
Morrow N RutaRussiaIoni Bowcher NEW
Stacey C IturbideItalyAmy Elsner RENEWAL
Ashley I WieserJapanAnna Fali UNQUALIFIED
Kadeem A SaylorsUnited KingdomAnna Fali RENEWAL
Arvin H SchemmerIndiaElwin Sharvill UNQUALIFIED
Sinclair V TollnerBrazilIoni Bowcher UNQUALIFIED
Salvatore J BologniaUnited KingdomAnna Fali QUALIFIED
Francesco I StockhamSpainIoni Bowcher QUALIFIED
Jennifer I TollnerBrazilIvan Magalhaes NEW
Stacey C VocelkaArgentinaXuxue Feng RENEWAL
Costa J OldroydGermanyIvan Magalhaes RENEWAL
James W SergiAustraliaStephen Shaw RENEWAL
Jones C DarakjyCanadaIvan Magalhaes PROPOSAL
Salvatore Z RulapaughIndiaIoni Bowcher NEGOTIATION
Alejandro E SlusarskiItalyXuxue Feng UNQUALIFIED
Alejandro N MacleadJapanOnyama Limba RENEWAL
Cody I FollerBrazilBernardo Dominic NEW
Tony O ShinkoIndiaXuxue Feng NEGOTIATION
Johnson G WaycottAustraliaBernardo Dominic QUALIFIED
Darci M FollerFranceAnna Fali PROPOSAL
Maisha T WaycottUnited KingdomStephen Shaw NEW
Johnson J RulapaughRussiaAnna Fali RENEWAL
Misaki Z GarufiFranceStephen Shaw NEW
Leja L WhobreyGermanyBernardo Dominic QUALIFIED
Octavia K StensethJapanIvan Magalhaes NEGOTIATION
Smith D RutaJapanIvan Magalhaes NEGOTIATION
Murillo V NestleIndiaIvan Magalhaes PROPOSAL
Ricardo Y MaletArgentinaIoni Bowcher NEW
Silvio O CaldareraBrazilIvan Magalhaes NEGOTIATION
Chavez H VocelkaSpainAsiya Javayant QUALIFIED
Mujtaba S DoeBrazilBernardo Dominic NEGOTIATION
Greenwood T KolmetzCanadaIoni Bowcher QUALIFIED
Arvin G GillianArgentinaOnyama Limba NEGOTIATION
Mujtaba Z DilliardFranceAmy Elsner PROPOSAL
Adams R VocelkaItalyIoni Bowcher NEGOTIATION
Nicolas R ChuiUnited KingdomStephen Shaw NEGOTIATION
Alejandro L WieserFranceAnna Fali PROPOSAL
Faith Y StensethItalyIoni Bowcher NEGOTIATION
Aika E KuskoIndiaElwin Sharvill UNQUALIFIED
Jefferson K AlbaresArgentinaAnna Fali PROPOSAL
Mayumi H WaycottBrazilOnyama Limba UNQUALIFIED
Leja E RulapaughAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin N DoeItalyStephen Shaw NEW
Antonio Z MarrierRussiaIvan Magalhaes NEW
Deepesh U FlosiBrazilOnyama Limba NEW
Silvio T SlusarskiArgentinaIoni Bowcher NEGOTIATION
Leja T PaprockiJapanIoni Bowcher NEW
Arvin Q DarakjyGermanyStephen Shaw NEW
Salvatore X KuskoFranceElwin Sharvill RENEWAL
Munro H SlusarskiSpainAnna Fali NEGOTIATION
Arvin G KolmetzGermanyBernardo Dominic UNQUALIFIED
Mayumi A SlusarskiGermanyAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi D RimSpain2026-06-09King, Christopher A Esq NEW5Stephen Shaw
1001Adams W BologniaBrazil2026-06-05King, Christopher A Esq NEGOTIATION23Elwin Sharvill
1002Aika X SlusarskiArgentina2026-06-21Benton, John B Jr RENEWAL50Amy Elsner
1003Aika U NestleFrance2026-06-30Benton, John B Jr NEW22Asiya Javayant
1004Aruna A GillianBrazil2026-06-05Chemel, James L Cpa RENEWAL87Anna Fali
1005Octavia C WieserAustralia2026-06-27Chapman, Ross E Esq RENEWAL85Elwin Sharvill
1006Ivar H MarrierFrance2026-06-24Commercial Press RENEWAL59Anna Fali
1007Isabel B RulapaughAustralia2026-06-10Feltz Printing Service NEW76Bernardo Dominic
1008Leon R StensethBrazil2026-06-06Rousseaux, Michael Esq NEW76Stephen Shaw
1009Misaki H SergiArgentina2026-06-24Feltz Printing Service QUALIFIED38Amy Elsner
1010Emily P FlosiItaly2026-06-07Rousseaux, Michael Esq NEGOTIATION66Amy Elsner
1011Darci R BowleyItaly2026-06-28Morlong Associates PROPOSAL72Ioni Bowcher
1012Ashley G KuskoItaly2026-06-16Chapman, Ross E Esq NEW29Bernardo Dominic
1013Emily E MacleadJapan2026-06-24Rangoni Of Florence NEW78Anna Fali
1014Sinclair I GauchoBrazil2026-06-19Feltz Printing Service QUALIFIED50Stephen Shaw
1015Nicolas O BriddickCanada2026-06-07Commercial Press RENEWAL90Stephen Shaw
1016Octavia Q MacleadArgentina2026-06-21Chemel, James L Cpa UNQUALIFIED58Asiya Javayant
1017Aditya P PerinCanada2026-06-14Benton, John B Jr UNQUALIFIED72Onyama Limba
1018Salvatore K InouyeRussia2026-06-21Chapman, Ross E Esq PROPOSAL92Bernardo Dominic
1019Maisha A TollnerRussia2026-06-07Morlong Associates RENEWAL74Bernardo Dominic
1020Nicolas I WieserArgentina2026-06-24Feiner Bros QUALIFIED35Stephen Shaw
1021Kaitlin E NestleArgentina2026-06-04Benton, John B Jr RENEWAL93Onyama Limba
1022Deepesh F SergiFrance2026-06-03Printing Dimensions PROPOSAL30Ioni Bowcher
1023Chavez D InouyeJapan2026-06-28Dorl, James J Esq NEW97Stephen Shaw
1024Rodrigues J SlusarskiJapan2026-06-13Printing Dimensions RENEWAL19Elwin Sharvill
1025Kaitlin Y OstroskyUnited Kingdom2026-06-23Truhlar And Truhlar Attys PROPOSAL36Onyama Limba
1026Maria B VenereRussia2026-06-12Rangoni Of Florence NEW2Amy Elsner
1027Misaki S PerinBrazil2026-06-12Buckley Miller Wright NEGOTIATION97Anna Fali
1028Aditya G GarufiItaly2026-06-10Buckley Miller Wright PROPOSAL90Onyama Limba
1029Claire I CaudyGermany2026-06-27King, Christopher A Esq NEW98Ioni Bowcher
1030Clifford E PoquetteItaly2026-06-21Feiner Bros QUALIFIED9Stephen Shaw
1031Nicolas J WhobreyIndia2026-07-01Truhlar And Truhlar Attys NEGOTIATION16Ioni Bowcher
1032Emily A RulapaughAustralia2026-06-24Buckley Miller Wright RENEWAL2Stephen Shaw
1033Adams N IturbideAustralia2026-06-11Buckley Miller Wright PROPOSAL63Bernardo Dominic
1034Claire P KolmetzAustralia2026-06-28Printing Dimensions RENEWAL13Ivan Magalhaes
1035Ashley O GillianItaly2026-06-21Commercial Press NEGOTIATION98Amy Elsner
1036Ashley U SaylorsAustralia2026-06-21Commercial Press RENEWAL68Onyama Limba
1037Maisha M IturbideItaly2026-06-29King, Christopher A Esq NEGOTIATION7Xuxue Feng
1038Aruna Z SlusarskiCanada2026-06-10Feltz Printing Service RENEWAL95Xuxue Feng
1039Jefferson W MorascaAustralia2026-06-16King, Christopher A Esq RENEWAL87Ivan Magalhaes
1040Adams O TollnerCanada2026-06-30Morlong Associates QUALIFIED99Anna Fali
1041Emily H StensethBrazil2026-06-12Printing Dimensions PROPOSAL77Stephen Shaw
1042Mujtaba A StensethArgentina2026-06-14Truhlar And Truhlar Attys QUALIFIED40Stephen Shaw
1043Silvio D AmigonCanada2026-06-22Rangoni Of Florence UNQUALIFIED21Anna Fali
1044Leon R RoysterIndia2026-06-30Printing Dimensions NEW44Amy Elsner
1045Wickens F NickaUnited Kingdom2026-06-08King, Christopher A Esq RENEWAL51Xuxue Feng
1046Morrow I SlusarskiIndia2026-06-23Printing Dimensions PROPOSAL76Bernardo Dominic
1047Greenwood G DarakjyRussia2026-06-16Chapman, Ross E Esq QUALIFIED17Bernardo Dominic
1048Octavia G OldroydIndia2026-06-05Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1049Clifford Y WaycottRussia2026-06-23Dorl, James J Esq NEGOTIATION72Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Tony F PerinSpainAnna Fali NEGOTIATION
Isabel N VenereItalyBernardo Dominic UNQUALIFIED
Juan Y PerinIndiaAsiya Javayant NEW
Misaki L RoysterCanadaAmy Elsner UNQUALIFIED
James G InouyeSpainElwin Sharvill NEGOTIATION
Chavez L RoysterAustraliaBernardo Dominic NEW
Isabel C FerenczUnited KingdomAsiya Javayant RENEWAL
Murillo J SchemmerArgentinaXuxue Feng RENEWAL
Misaki Y DoeFranceXuxue Feng UNQUALIFIED
Mujtaba K PaprockiIndiaAnna Fali QUALIFIED
Deepesh A ShinkoItalyStephen Shaw UNQUALIFIED
Morrow X BologniaCanadaOnyama Limba NEW
Nicolas W DilliardCanadaAmy Elsner RENEWAL
Octavia E MaletSpainOnyama Limba UNQUALIFIED
Izzy S NickaItalyIoni Bowcher NEGOTIATION
Johnson Y DoeBrazilStephen Shaw RENEWAL
Faith O WaycottSpainBernardo Dominic NEGOTIATION
Claire F VocelkaAustraliaAmy Elsner PROPOSAL
Leon J PaprockiBrazilAsiya Javayant PROPOSAL
Clifford N CaudyBrazilIvan Magalhaes NEW
Chavez L SchemmerJapanStephen Shaw PROPOSAL
Ricardo L WaycottJapanIvan Magalhaes QUALIFIED
Aditya O DoeSpainAmy Elsner NEW
Maisha J FigeroaBrazilIoni Bowcher UNQUALIFIED
Juan Y DilliardItalyBernardo Dominic RENEWAL
Sinclair M NickaJapanIvan Magalhaes NEW
Claire F SergiBrazilAsiya Javayant PROPOSAL
Antonio M WieserBrazilElwin Sharvill NEW
Isabel H DoeIndiaAsiya Javayant QUALIFIED
Leon K WaycottFranceStephen Shaw NEGOTIATION
Julie F IturbideSpainElwin Sharvill UNQUALIFIED
Claire Y SergiAustraliaIvan Magalhaes NEW
Antonio E FerenczFranceOnyama Limba RENEWAL
Aruna G OstroskyBrazilIoni Bowcher NEW
Darci Q ButtItalyElwin Sharvill NEGOTIATION
Juan X KuskoGermanyAnna Fali NEW
Kadeem P RimAustraliaAsiya Javayant NEGOTIATION
Aika Y StockhamArgentinaIoni Bowcher QUALIFIED
Jeanfrancois Y MarrierFranceOnyama Limba UNQUALIFIED
Mayumi K FerenczJapanAmy Elsner NEW
Leon C RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Maria T StockhamFranceStephen Shaw QUALIFIED
Wickens T BriddickJapanBernardo Dominic NEW
Isabel W FollerSpainOnyama Limba QUALIFIED
Mujtaba D CaldareraArgentinaXuxue Feng RENEWAL
Francesco K GillianSpainBernardo Dominic NEW
Salvatore G OstroskyFranceAmy Elsner NEW
Aditya F BriddickAustraliaIoni Bowcher UNQUALIFIED
Aruna V MaletAustraliaBernardo Dominic PROPOSAL
Maria Y RoysterRussiaXuxue Feng NEW
Frozen Columns
Name
Chavez T Wieser
Julie O Caudy
Clifford B Rulapaugh
Wickens P Saylors
Cody P Venere
Juan C Flosi
Aruna C Rim
Francesco E Saylors
Clifford U Poquette
Kadeem T Figeroa
Leon J Garufi
Silvio X Ferencz
Stacey K Marrier
Nicolas L Glick
Leon B Morasca
Greenwood S Ostrosky
Maria R Doe
Juan T Paprocki
Deepesh W Dilliard
Stacey H Maclead
Kadeem G Campain
Darci K Schemmer
Antonio G Sergi
Octavia E Nestle
Adams M Sergi
Arvin C Perin
Kaitlin M Marrier
Aruna H Paprocki
Deepesh P Stenseth
Leja V Butt
Aika Z Maclead
Tony Q Tollner
Antonio L Chui
Adams H Caldarera
Octavia J Garufi
Jefferson H Maclead
Aruna O Saylors
Misaki I Stockham
Salvatore H Perin
Arvin R Whobrey
Greenwood T Foller
Silvio L Doe
Nicolas X Nicka
Francesco M Figeroa
Maria G Inouye
David N Oldroyd
Jones R Campain
James L Malet
Francesco U Gaucho
Deepesh J Marrier
IdCountryDate
1000Argentina2026-06-04
1001Russia2026-06-25
1002India2026-06-24
1003United Kingdom2026-06-06
1004United Kingdom2026-06-13
1005Spain2026-06-08
1006Canada2026-06-18
1007Argentina2026-06-15
1008India2026-06-17
1009Canada2026-06-25
1010Australia2026-06-10
1011France2026-06-04
1012France2026-06-14
1013Brazil2026-06-25
1014India2026-06-28
1015Argentina2026-06-28
1016Italy2026-06-20
1017Australia2026-06-09
1018United Kingdom2026-06-26
1019Japan2026-06-25
1020Argentina2026-06-24
1021Japan2026-06-24
1022France2026-06-24
1023Canada2026-06-22
1024Canada2026-06-04
1025United Kingdom2026-06-20
1026Russia2026-06-24
1027Spain2026-06-26
1028Australia2026-06-04
1029Japan2026-06-24
1030Germany2026-06-19
1031Russia2026-06-07
1032Canada2026-06-17
1033United Kingdom2026-06-20
1034United Kingdom2026-06-29
1035Spain2026-06-25
1036Germany2026-06-07
1037India2026-06-10
1038Japan2026-06-17
1039Japan2026-06-09
1040Brazil2026-06-12
1041Italy2026-06-25
1042United Kingdom2026-06-30
1043Australia2026-06-07
1044Brazil2026-06-10
1045France2026-06-26
1046Brazil2026-06-11
1047United Kingdom2026-06-29
1048India2026-06-21
1049France2026-06-19

On-Demand Data

NameIdCountryDate
Tony E Flosi1000Italy2026-06-14
Smith J Royster1001Russia2026-06-03
Wickens N Doe1002Argentina2026-06-15
Ricardo U Ostrosky1003Spain2026-06-04
Octavia H Rulapaugh1004Spain2026-06-03
Adams R Rim1005Russia2026-06-05
Faith K Poquette1006United Kingdom2026-06-13
Chavez W Caldarera1007Italy2026-06-10
Costa Z Stockham1008France2026-06-27
Jeanfrancois Q Perin1009United Kingdom2026-06-13
Faith J Waycott1010Germany2026-06-20
James S Vocelka1011Germany2026-06-09
Misaki I Ostrosky1012Japan2026-06-15
Misaki W Flosi1013United Kingdom2026-06-14
Silvio Q Shinko1014United Kingdom2026-06-09
Emily G Nicka1015Russia2026-06-22
Mujtaba I Sergi1016Australia2026-06-11
Leon G Nestle1017Argentina2026-06-12
Cody Y Whobrey1018Argentina2026-06-21
Tony K Butt1019Italy2026-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh U CampainSpainAsiya Javayant UNQUALIFIED
Silvio P RimSpainAmy Elsner NEGOTIATION
Francesco P BowleyIndiaBernardo Dominic PROPOSAL
Maria J OldroydJapanAmy Elsner PROPOSAL
Aditya U AlbaresGermanyElwin Sharvill PROPOSAL
Juan X SaylorsAustraliaIvan Magalhaes PROPOSAL
Nicolas M ShinkoItalyAmy Elsner UNQUALIFIED
Wickens O DoeIndiaBernardo Dominic PROPOSAL
Aditya B GauchoFranceIvan Magalhaes RENEWAL
Jones L MarrierRussiaXuxue Feng QUALIFIED
Misaki C PerinAustraliaIoni Bowcher UNQUALIFIED
Juan J StensethGermanyElwin Sharvill NEGOTIATION
Chavez X OldroydBrazilAmy Elsner NEGOTIATION
Tony Y AlbaresIndiaElwin Sharvill QUALIFIED
Mayumi D MarrierJapanAmy Elsner PROPOSAL
Smith S CampainGermanyAmy Elsner NEW
Munro F PerinIndiaXuxue Feng PROPOSAL
Morrow R FollerJapanXuxue Feng UNQUALIFIED
Silvio T GauchoJapanIoni Bowcher NEW
Jennifer M NestleCanadaAsiya Javayant UNQUALIFIED
Ivar G TollnerGermanyAsiya Javayant PROPOSAL
Nicolas F StockhamIndiaStephen Shaw NEGOTIATION
Adams S WieserRussiaAmy Elsner RENEWAL
Wickens Y SlusarskiIndiaAsiya Javayant UNQUALIFIED
Mayumi P GarufiSpainOnyama Limba QUALIFIED
Maisha E DilliardGermanyStephen Shaw NEGOTIATION
Jennifer W DilliardArgentinaAmy Elsner NEGOTIATION
Greenwood B PerinArgentinaAnna Fali NEGOTIATION
Francesco U CaldareraItalyAnna Fali UNQUALIFIED
Kaitlin U NestleItalyBernardo Dominic NEGOTIATION
Mayumi N GauchoRussiaStephen Shaw NEW
Leja D MarrierAustraliaAsiya Javayant PROPOSAL
Munro N FigeroaBrazilXuxue Feng PROPOSAL
Darci L DoeSpainIvan Magalhaes NEW
Greenwood P MorascaUnited KingdomIoni Bowcher NEW
Kadeem V StockhamBrazilStephen Shaw RENEWAL
Francesco B RutaCanadaXuxue Feng PROPOSAL
Costa E StockhamUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois C VocelkaItalyOnyama Limba PROPOSAL
Aika T PoquetteUnited KingdomStephen Shaw NEGOTIATION

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