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
Silvio B StockhamBrazilIoni Bowcher UNQUALIFIED
Francesco W OldroydFranceXuxue Feng QUALIFIED
Claire H RoysterIndiaElwin Sharvill QUALIFIED
Stacey Y BriddickIndiaAnna Fali NEW
Leon G OldroydBrazilIoni Bowcher RENEWAL
Aditya S FlosiJapanXuxue Feng PROPOSAL
Ricardo N StockhamCanadaAnna Fali NEW
Jeanfrancois H FlosiFranceElwin Sharvill RENEWAL
Jones M WaycottAustraliaStephen Shaw NEW
Ricardo L SlusarskiJapanIoni Bowcher QUALIFIED
Ricardo O IturbideBrazilAmy Elsner RENEWAL
Rodrigues X FlosiArgentinaBernardo Dominic NEGOTIATION
Mujtaba O AlbaresAustraliaOnyama Limba QUALIFIED
Sinclair M MarrierCanadaIoni Bowcher NEW
Nicolas G PerinAustraliaElwin Sharvill NEGOTIATION
Isabel P FerenczIndiaBernardo Dominic RENEWAL
Morrow E KolmetzRussiaIoni Bowcher PROPOSAL
Misaki E PerinFranceBernardo Dominic NEW
Aditya L GillianFranceIvan Magalhaes RENEWAL
David E RimJapanIvan Magalhaes QUALIFIED
Stacey X MorascaGermanyIvan Magalhaes NEGOTIATION
Greenwood T GillianSpainElwin Sharvill NEW
Ricardo Q GarufiItalyBernardo Dominic NEGOTIATION
Mayumi E DilliardIndiaAsiya Javayant UNQUALIFIED
Jefferson X FigeroaIndiaBernardo Dominic NEW
Murillo P InouyeBrazilAnna Fali UNQUALIFIED
Kaitlin S GillianGermanyBernardo Dominic UNQUALIFIED
Rodrigues W ChuiItalyAnna Fali PROPOSAL
Alejandro G GlickRussiaXuxue Feng PROPOSAL
Cody A PaprockiAustraliaAsiya Javayant NEGOTIATION
Tony B WaycottArgentinaAsiya Javayant NEW
David H PaprockiBrazilOnyama Limba NEW
Leon N FerenczBrazilIvan Magalhaes NEW
Aditya T IturbideCanadaIoni Bowcher PROPOSAL
Izzy V FerenczCanadaAsiya Javayant NEGOTIATION
Kadeem H GarufiAustraliaAnna Fali QUALIFIED
Leja X VocelkaItalyAmy Elsner NEW
Arvin X ButtJapanXuxue Feng NEW
Isabel I SergiCanadaAsiya Javayant RENEWAL
Claire U CaldareraIndiaOnyama Limba NEW
Salvatore E FerenczSpainIvan Magalhaes RENEWAL
Francesco N DarakjyFranceIvan Magalhaes NEGOTIATION
Alejandro W PaprockiAustraliaBernardo Dominic UNQUALIFIED
Costa I DarakjySpainIoni Bowcher UNQUALIFIED
Jones J NestleRussiaAsiya Javayant RENEWAL
Ashley M VocelkaSpainBernardo Dominic NEGOTIATION
Claire S OstroskyCanadaAsiya Javayant QUALIFIED
Arvin L PoquetteBrazilElwin Sharvill RENEWAL
Clifford W RoysterAustraliaAsiya Javayant PROPOSAL
Maisha H BriddickSpainElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Smith X StockhamRussiaIvan Magalhaes QUALIFIED
Julie X GarufiFranceBernardo Dominic PROPOSAL
Silvio V InouyeCanadaBernardo Dominic NEW
Misaki A DilliardArgentinaOnyama Limba PROPOSAL
Johnson K DilliardAustraliaStephen Shaw PROPOSAL
Darci R DilliardItalyStephen Shaw QUALIFIED
Munro D ShinkoJapanStephen Shaw RENEWAL
Juan G SergiAustraliaElwin Sharvill NEW
Claire L WhobreyJapanAsiya Javayant QUALIFIED
Alejandro S SchemmerArgentinaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez R BologniaBrazil2026-07-15Chapman, Ross E Esq NEGOTIATION21Ioni Bowcher
1001Faith D StockhamItaly2026-07-08Benton, John B Jr UNQUALIFIED21Stephen Shaw
1002Rodrigues S VenereFrance2026-06-29Chapman, Ross E Esq NEGOTIATION89Bernardo Dominic
1003Ricardo A FollerRussia2026-07-19King, Christopher A Esq QUALIFIED59Amy Elsner
1004Francesco D ShinkoAustralia2026-07-09Chemel, James L Cpa PROPOSAL93Ioni Bowcher
1005Isabel O BowleyBrazil2026-07-12Feiner Bros RENEWAL24Anna Fali
1006Maria S DilliardItaly2026-07-08Morlong Associates PROPOSAL49Amy Elsner
1007Chavez S NickaRussia2026-07-05Feiner Bros QUALIFIED8Elwin Sharvill
1008Munro T MorascaRussia2026-07-26Chemel, James L Cpa RENEWAL86Elwin Sharvill
1009Octavia Z VocelkaRussia2026-07-28Dorl, James J Esq NEW64Stephen Shaw
1010Emily J WhobreyUnited Kingdom2026-07-03Commercial Press QUALIFIED13Onyama Limba
1011Cody T CampainFrance2026-07-16Truhlar And Truhlar Attys UNQUALIFIED49Elwin Sharvill
1012Adams L OldroydJapan2026-07-24King, Christopher A Esq QUALIFIED50Ioni Bowcher
1013Aruna E AlbaresCanada2026-07-03King, Christopher A Esq QUALIFIED35Onyama Limba
1014Maria K KolmetzSpain2026-07-07Chanay, Jeffrey A Esq PROPOSAL45Amy Elsner
1015Stacey I WaycottBrazil2026-07-05Feltz Printing Service UNQUALIFIED88Elwin Sharvill
1016Clifford Z CaldareraGermany2026-07-06Chapman, Ross E Esq RENEWAL42Xuxue Feng
1017Leja L BologniaCanada2026-07-08King, Christopher A Esq QUALIFIED33Ioni Bowcher
1018Clifford A PaprockiBrazil2026-07-08Morlong Associates NEGOTIATION68Anna Fali
1019Munro M RimAustralia2026-07-06Chanay, Jeffrey A Esq NEW36Anna Fali
1020Chavez L WieserGermany2026-07-27Chemel, James L Cpa RENEWAL39Bernardo Dominic
1021Aruna U AlbaresSpain2026-07-01Morlong Associates PROPOSAL4Anna Fali
1022Ricardo Y PoquetteFrance2026-07-10Commercial Press NEGOTIATION57Xuxue Feng
1023Emily D GillianCanada2026-07-15Feltz Printing Service UNQUALIFIED51Anna Fali
1024Smith O OstroskySpain2026-07-12Chanay, Jeffrey A Esq QUALIFIED38Bernardo Dominic
1025Johnson V IturbideUnited Kingdom2026-06-30Printing Dimensions NEW32Amy Elsner
1026Maria F RimArgentina2026-07-28Morlong Associates QUALIFIED3Amy Elsner
1027Ivar B VocelkaGermany2026-07-28Dorl, James J Esq UNQUALIFIED28Ivan Magalhaes
1028Morrow X CaldareraArgentina2026-07-03King, Christopher A Esq QUALIFIED28Ivan Magalhaes
1029Deepesh S PoquetteGermany2026-07-16Chapman, Ross E Esq NEGOTIATION51Onyama Limba
1030Leja D BriddickIndia2026-07-05Benton, John B Jr RENEWAL95Ioni Bowcher
1031Antonio L IturbideIndia2026-07-24Feltz Printing Service NEW36Anna Fali
1032Ricardo Q ButtRussia2026-07-02Chanay, Jeffrey A Esq PROPOSAL49Elwin Sharvill
1033Munro F WhobreyAustralia2026-07-06Benton, John B Jr UNQUALIFIED95Ivan Magalhaes
1034Aditya X ChuiAustralia2026-07-03King, Christopher A Esq NEGOTIATION81Anna Fali
1035Stacey L MaletArgentina2026-07-10Chanay, Jeffrey A Esq NEGOTIATION51Stephen Shaw
1036Wickens F FlosiSpain2026-07-03Feltz Printing Service UNQUALIFIED73Anna Fali
1037Smith T CaldareraIndia2026-07-15King, Christopher A Esq UNQUALIFIED33Ivan Magalhaes
1038Arvin F StockhamAustralia2026-07-28Truhlar And Truhlar Attys NEW53Elwin Sharvill
1039Stacey L SlusarskiCanada2026-07-21Buckley Miller Wright NEW25Asiya Javayant
1040Leja B GlickArgentina2026-07-11Chapman, Ross E Esq UNQUALIFIED95Onyama Limba
1041Juan K WhobreyItaly2026-07-28Rangoni Of Florence NEGOTIATION82Stephen Shaw
1042Mayumi S GauchoFrance2026-07-24Truhlar And Truhlar Attys QUALIFIED17Amy Elsner
1043Octavia B VocelkaAustralia2026-07-18Chanay, Jeffrey A Esq NEW90Stephen Shaw
1044Smith G StensethGermany2026-07-26Chapman, Ross E Esq QUALIFIED15Onyama Limba
1045Emily H SaylorsRussia2026-07-16Truhlar And Truhlar Attys NEGOTIATION59Asiya Javayant
1046Silvio J NestleJapan2026-07-19Dorl, James J Esq QUALIFIED86Stephen Shaw
1047Jones Q MaletBrazil2026-07-15Feltz Printing Service QUALIFIED85Amy Elsner
1048Misaki Z OldroydItaly2026-07-10Morlong Associates NEW91Bernardo Dominic
1049Jones G MorascaAustralia2026-07-11King, Christopher A Esq RENEWAL1Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Octavia I TollnerRussiaAnna Fali NEW
Cody D FigeroaFranceXuxue Feng UNQUALIFIED
Costa T IturbideFranceAsiya Javayant UNQUALIFIED
Silvio I DoeIndiaAmy Elsner NEW
Alejandro B WaycottJapanOnyama Limba NEGOTIATION
Emily R SaylorsArgentinaXuxue Feng NEW
Leja H BriddickIndiaElwin Sharvill NEGOTIATION
Jeanfrancois B SergiBrazilXuxue Feng PROPOSAL
Wickens A PoquetteItalyXuxue Feng RENEWAL
Misaki Y MaletUnited KingdomAnna Fali NEGOTIATION
Octavia A SaylorsSpainAnna Fali NEGOTIATION
Mayumi C BriddickBrazilOnyama Limba NEGOTIATION
Maisha O FollerAustraliaIvan Magalhaes UNQUALIFIED
Octavia K WaycottCanadaAsiya Javayant PROPOSAL
Silvio H SaylorsCanadaAnna Fali QUALIFIED
Darci C PerinSpainStephen Shaw RENEWAL
Aditya Y MarrierItalyXuxue Feng RENEWAL
Clifford I FlosiArgentinaOnyama Limba UNQUALIFIED
Juan K RimUnited KingdomBernardo Dominic RENEWAL
Emily R FlosiUnited KingdomAnna Fali PROPOSAL
Cody C RoysterItalyAmy Elsner UNQUALIFIED
Wickens Q WaycottArgentinaOnyama Limba UNQUALIFIED
Clifford Z NickaItalyAnna Fali RENEWAL
Silvio F GillianFranceBernardo Dominic NEW
Silvio D BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Smith A MorascaBrazilAnna Fali NEW
Stacey J FlosiAustraliaElwin Sharvill PROPOSAL
Juan R SergiAustraliaElwin Sharvill NEGOTIATION
Ashley P ShinkoSpainXuxue Feng PROPOSAL
Maisha J SaylorsUnited KingdomElwin Sharvill PROPOSAL
Ricardo N DilliardSpainElwin Sharvill NEW
Sinclair T NestleArgentinaElwin Sharvill UNQUALIFIED
Aditya M CaudyGermanyIoni Bowcher QUALIFIED
Ricardo I BologniaJapanIvan Magalhaes RENEWAL
Deepesh R FlosiArgentinaOnyama Limba UNQUALIFIED
Murillo H GarufiIndiaOnyama Limba PROPOSAL
Salvatore J AmigonArgentinaElwin Sharvill RENEWAL
Johnson E VenereCanadaElwin Sharvill QUALIFIED
Leja P StensethCanadaOnyama Limba NEGOTIATION
Rodrigues F RulapaughCanadaIvan Magalhaes PROPOSAL
Sinclair R GillianCanadaElwin Sharvill RENEWAL
Leja K OldroydGermanyOnyama Limba QUALIFIED
Aika S PerinJapanIvan Magalhaes UNQUALIFIED
Smith S TollnerRussiaStephen Shaw QUALIFIED
Leon Z RutaUnited KingdomStephen Shaw QUALIFIED
Leja X NestleCanadaAnna Fali PROPOSAL
Ashley H AmigonGermanyOnyama Limba PROPOSAL
Aika N BriddickArgentinaAsiya Javayant QUALIFIED
Maisha U RoysterFranceAnna Fali QUALIFIED
Tony D StockhamJapanXuxue Feng UNQUALIFIED
Frozen Columns
Name
Smith D Bolognia
Ashley B Caudy
Wickens M Tollner
Aruna O Maclead
Darci H Shinko
Antonio F Whobrey
Izzy I Whobrey
Rodrigues K Vocelka
Jennifer W Schemmer
Silvio R Maclead
Misaki G Stenseth
Emily L Caudy
Arvin H Iturbide
Kadeem Q Saylors
Tony F Rim
Stacey S Ferencz
Costa K Malet
James W Chui
Greenwood J Ferencz
Faith O Bolognia
Adams M Foller
Misaki L Flosi
Faith S Royster
Jefferson X Glick
Jennifer K Amigon
James D Butt
Sinclair W Amigon
Cody Q Nicka
Alejandro O Bolognia
Claire V Glick
Kaitlin R Morasca
Octavia M Ruta
Leon Q Maclead
Ivar Z Rulapaugh
Jones C Ostrosky
Aditya J Paprocki
Johnson F Stenseth
Aruna Z Nestle
Octavia I Caudy
Kaitlin B Wieser
Adams V Oldroyd
Maria B Campain
Mujtaba P Darakjy
Morrow A Gaucho
Alejandro M Maclead
James W Caudy
Jones X Kolmetz
Mujtaba C Caudy
Clifford T Poquette
Mayumi R Iturbide
IdCountryDate
1000Canada2026-07-08
1001India2026-07-26
1002India2026-07-15
1003Brazil2026-06-30
1004Italy2026-07-11
1005United Kingdom2026-07-12
1006Germany2026-07-09
1007India2026-06-30
1008Argentina2026-07-18
1009Australia2026-07-21
1010United Kingdom2026-07-13
1011Argentina2026-07-26
1012Russia2026-07-11
1013India2026-07-28
1014Australia2026-07-08
1015Canada2026-07-15
1016Japan2026-07-02
1017Australia2026-07-26
1018United Kingdom2026-07-19
1019United Kingdom2026-07-23
1020India2026-07-01
1021Australia2026-07-14
1022India2026-06-29
1023India2026-07-10
1024Brazil2026-06-29
1025India2026-07-03
1026Germany2026-07-16
1027India2026-07-16
1028Canada2026-07-16
1029Russia2026-07-24
1030Italy2026-07-16
1031Germany2026-07-15
1032Italy2026-07-21
1033Spain2026-07-11
1034Germany2026-07-14
1035Spain2026-07-01
1036Australia2026-07-13
1037Canada2026-07-27
1038India2026-07-15
1039Brazil2026-06-29
1040Australia2026-07-16
1041Australia2026-07-10
1042Australia2026-07-07
1043Brazil2026-07-19
1044France2026-07-24
1045Argentina2026-07-10
1046Germany2026-07-22
1047Spain2026-07-19
1048Argentina2026-07-11
1049United Kingdom2026-07-04

On-Demand Data

NameIdCountryDate
Ashley G Dilliard1000Japan2026-07-02
Mayumi K Nicka1001Germany2026-07-09
Maisha P Nicka1002Italy2026-07-13
Jefferson Q Sergi1003Argentina2026-07-27
Smith S Glick1004Spain2026-07-11
Clifford A Caudy1005Russia2026-07-25
Stacey B Caldarera1006Spain2026-07-12
Darci U Malet1007Australia2026-07-24
Adams S Vocelka1008Brazil2026-07-06
Jones V Stenseth1009Australia2026-07-07
Mayumi H Saylors1010India2026-07-26
Isabel V Kolmetz1011Canada2026-07-03
Mayumi D Wieser1012Argentina2026-07-15
Tony M Malet1013India2026-07-23
Leja N Butt1014Italy2026-07-01
Salvatore Z Albares1015India2026-07-18
Stacey A Kolmetz1016Argentina2026-07-12
Claire U Marrier1017Australia2026-07-01
Jefferson F Ostrosky1018France2026-07-10
Jennifer A Paprocki1019Brazil2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo B WieserGermanyBernardo Dominic UNQUALIFIED
David D FigeroaIndiaStephen Shaw UNQUALIFIED
Francesco O StensethArgentinaElwin Sharvill RENEWAL
Rodrigues D RutaGermanyIvan Magalhaes NEGOTIATION
Francesco U DoeCanadaAsiya Javayant RENEWAL
Isabel R BologniaItalyIoni Bowcher NEGOTIATION
Jeanfrancois H DoeGermanyIvan Magalhaes RENEWAL
Isabel W MarrierAustraliaAsiya Javayant NEGOTIATION
Chavez T KolmetzItalyAnna Fali NEGOTIATION
Juan P FollerJapanAnna Fali UNQUALIFIED
Emily O CampainGermanyIoni Bowcher UNQUALIFIED
Darci G MaletArgentinaIoni Bowcher NEGOTIATION
Leja W CampainRussiaStephen Shaw QUALIFIED
Jennifer G TollnerUnited KingdomStephen Shaw NEGOTIATION
Tony O WhobreyCanadaStephen Shaw UNQUALIFIED
Ivar T MaletBrazilOnyama Limba PROPOSAL
Tony H BowleyGermanyAmy Elsner UNQUALIFIED
Alejandro L MarrierSpainAsiya Javayant PROPOSAL
Nicolas V SaylorsFranceElwin Sharvill UNQUALIFIED
Kaitlin R MorascaSpainAsiya Javayant NEW
Deepesh B StensethIndiaIoni Bowcher UNQUALIFIED
Mujtaba A KolmetzFranceIvan Magalhaes NEW
Adams V ShinkoJapanBernardo Dominic NEGOTIATION
Morrow Q MorascaRussiaOnyama Limba RENEWAL
Juan Z FlosiSpainAmy Elsner NEW
Mayumi G DilliardSpainAnna Fali RENEWAL
Mayumi R KuskoJapanStephen Shaw NEW
Leja G DoeBrazilAsiya Javayant NEW
Juan T BowleyJapanIoni Bowcher UNQUALIFIED
Kaitlin W ButtBrazilAnna Fali UNQUALIFIED
Claire I NickaIndiaAnna Fali NEGOTIATION
Stacey D GlickRussiaAsiya Javayant NEW
Aruna B RoysterJapanStephen Shaw RENEWAL
Darci W MaletGermanyIvan Magalhaes UNQUALIFIED
Maisha R OstroskyGermanyAmy Elsner RENEWAL
Arvin L StockhamArgentinaIoni Bowcher UNQUALIFIED
Greenwood Q SchemmerRussiaXuxue Feng PROPOSAL
Octavia S RimArgentinaOnyama Limba UNQUALIFIED
Ivar D FollerSpainIoni Bowcher RENEWAL
Julie Y RimGermanyBernardo Dominic 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>