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
Misaki G MaletGermanyElwin Sharvill QUALIFIED
Claire Z SergiFranceAsiya Javayant RENEWAL
Salvatore W SlusarskiItalyAmy Elsner NEGOTIATION
Arvin T InouyeFranceAnna Fali RENEWAL
Francesco I ButtJapanAmy Elsner QUALIFIED
Adams X ButtItalyOnyama Limba NEGOTIATION
Alejandro E FerenczBrazilBernardo Dominic PROPOSAL
Silvio N GauchoIndiaElwin Sharvill QUALIFIED
Isabel P ShinkoUnited KingdomElwin Sharvill PROPOSAL
Aditya Y RoysterArgentinaAmy Elsner QUALIFIED
Claire Y CampainAustraliaBernardo Dominic UNQUALIFIED
Jennifer I WieserRussiaAnna Fali UNQUALIFIED
Deepesh R KuskoRussiaAmy Elsner NEGOTIATION
Mayumi U OstroskyBrazilXuxue Feng RENEWAL
Aruna R MacleadItalyAmy Elsner NEW
Mujtaba T BologniaAustraliaAnna Fali PROPOSAL
Darci H FerenczItalyBernardo Dominic NEW
Arvin Y StockhamUnited KingdomIvan Magalhaes NEW
Salvatore R OldroydIndiaAsiya Javayant PROPOSAL
Jeanfrancois F ButtArgentinaBernardo Dominic UNQUALIFIED
Silvio Q FigeroaArgentinaElwin Sharvill RENEWAL
Cody U StockhamAustraliaStephen Shaw PROPOSAL
Alejandro M SaylorsCanadaOnyama Limba NEGOTIATION
Wickens G VocelkaRussiaStephen Shaw UNQUALIFIED
Greenwood V StensethRussiaIoni Bowcher NEW
Octavia R CaldareraIndiaXuxue Feng PROPOSAL
Cody M ShinkoRussiaIoni Bowcher NEW
Sinclair N MaletJapanOnyama Limba NEGOTIATION
Stacey L GarufiItalyXuxue Feng RENEWAL
Faith T FlosiIndiaAmy Elsner NEGOTIATION
Aruna C MaletSpainBernardo Dominic RENEWAL
Deepesh M WieserCanadaStephen Shaw QUALIFIED
Octavia A GlickJapanAnna Fali PROPOSAL
Nicolas H SlusarskiBrazilAsiya Javayant PROPOSAL
David N MaletItalyIvan Magalhaes NEGOTIATION
Kadeem A StensethGermanyAnna Fali UNQUALIFIED
Octavia Y BowleySpainElwin Sharvill PROPOSAL
Mayumi A KuskoItalyOnyama Limba QUALIFIED
Kaitlin V NickaBrazilAnna Fali PROPOSAL
Ashley F SaylorsAustraliaOnyama Limba RENEWAL
Aruna R GillianFranceAmy Elsner NEGOTIATION
Adams T DarakjyBrazilOnyama Limba PROPOSAL
Silvio K DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Maisha I RoysterItalyAnna Fali PROPOSAL
Greenwood M DilliardFranceXuxue Feng NEW
Jones U SergiSpainAsiya Javayant PROPOSAL
Jones H BologniaSpainXuxue Feng PROPOSAL
Jefferson D ShinkoFranceXuxue Feng QUALIFIED
Silvio P GauchoUnited KingdomIoni Bowcher NEGOTIATION
Johnson A VenereAustraliaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith Q IturbideItalyXuxue Feng NEGOTIATION
Sinclair E WieserRussiaStephen Shaw UNQUALIFIED
Ricardo C CaudySpainOnyama Limba NEGOTIATION
Darci X PaprockiSpainStephen Shaw RENEWAL
Adams R BologniaBrazilIoni Bowcher PROPOSAL
Cody I PaprockiUnited KingdomOnyama Limba NEGOTIATION
Darci I FerenczJapanAsiya Javayant NEGOTIATION
Jones F WaycottBrazilAmy Elsner UNQUALIFIED
Johnson L StensethRussiaBernardo Dominic PROPOSAL
Salvatore T GarufiCanadaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair T PerinArgentina2026-08-23Feiner Bros RENEWAL37Onyama Limba
1001Emily X IturbideIndia2026-08-03Commercial Press RENEWAL58Elwin Sharvill
1002Greenwood D RulapaughBrazil2026-08-03Feiner Bros NEGOTIATION85Anna Fali
1003Jennifer K GauchoIndia2026-08-17Feiner Bros QUALIFIED89Bernardo Dominic
1004Ashley X SchemmerRussia2026-08-19Buckley Miller Wright QUALIFIED14Xuxue Feng
1005Emily H InouyeRussia2026-08-14Benton, John B Jr QUALIFIED78Asiya Javayant
1006Aditya W KolmetzFrance2026-08-01Chapman, Ross E Esq NEGOTIATION55Stephen Shaw
1007Izzy A DarakjyFrance2026-08-25Truhlar And Truhlar Attys PROPOSAL31Amy Elsner
1008Arvin T WhobreyGermany2026-08-16Rangoni Of Florence UNQUALIFIED55Anna Fali
1009Munro W GlickUnited Kingdom2026-08-07Buckley Miller Wright QUALIFIED77Stephen Shaw
1010Jefferson I CampainSpain2026-08-18Commercial Press NEW97Amy Elsner
1011Murillo R SergiUnited Kingdom2026-08-05Chanay, Jeffrey A Esq RENEWAL87Onyama Limba
1012Tony W WieserItaly2026-08-26Morlong Associates PROPOSAL1Stephen Shaw
1013Antonio X CampainGermany2026-08-16King, Christopher A Esq QUALIFIED67Amy Elsner
1014Maisha N StensethCanada2026-08-20Chanay, Jeffrey A Esq PROPOSAL40Xuxue Feng
1015Nicolas N DilliardRussia2026-08-02Commercial Press NEW56Ioni Bowcher
1016Juan O RutaGermany2026-08-25Commercial Press RENEWAL63Stephen Shaw
1017Ivar K SaylorsRussia2026-08-20Buckley Miller Wright NEGOTIATION64Asiya Javayant
1018Ivar N PaprockiArgentina2026-08-04Chapman, Ross E Esq NEW31Xuxue Feng
1019Jefferson B BowleyRussia2026-08-17Rangoni Of Florence QUALIFIED63Amy Elsner
1020Darci Q KuskoRussia2026-08-23Truhlar And Truhlar Attys PROPOSAL77Onyama Limba
1021Greenwood X OstroskyGermany2026-08-22Feiner Bros QUALIFIED72Elwin Sharvill
1022Stacey B DoeBrazil2026-08-07Buckley Miller Wright RENEWAL53Asiya Javayant
1023Rodrigues G RutaSpain2026-08-09Rousseaux, Michael Esq UNQUALIFIED32Xuxue Feng
1024Jefferson P DilliardJapan2026-08-28Commercial Press PROPOSAL17Elwin Sharvill
1025Aika K DoeCanada2026-08-15Rangoni Of Florence NEGOTIATION47Elwin Sharvill
1026Tony E AmigonItaly2026-08-20Dorl, James J Esq NEGOTIATION60Ioni Bowcher
1027Cody W RulapaughArgentina2026-08-03Feiner Bros NEGOTIATION39Elwin Sharvill
1028Costa M VocelkaRussia2026-08-21Dorl, James J Esq NEW63Amy Elsner
1029Salvatore L NickaGermany2026-08-26Chemel, James L Cpa UNQUALIFIED38Onyama Limba
1030Smith M TollnerIndia2026-08-02Chapman, Ross E Esq UNQUALIFIED62Elwin Sharvill
1031James G RulapaughSpain2026-08-11Chanay, Jeffrey A Esq PROPOSAL88Ivan Magalhaes
1032Kaitlin W CaudyGermany2026-08-01Rangoni Of Florence NEW96Stephen Shaw
1033Maisha J DilliardBrazil2026-08-07Rangoni Of Florence PROPOSAL37Bernardo Dominic
1034Kaitlin L FigeroaJapan2026-08-03King, Christopher A Esq RENEWAL98Stephen Shaw
1035Octavia X ChuiAustralia2026-08-24Chanay, Jeffrey A Esq QUALIFIED27Ivan Magalhaes
1036Julie O MarrierItaly2026-08-27Buckley Miller Wright UNQUALIFIED49Anna Fali
1037Ivar X FigeroaSpain2026-08-02Chemel, James L Cpa NEW68Stephen Shaw
1038Mayumi J BowleyIndia2026-08-23Rousseaux, Michael Esq NEW20Bernardo Dominic
1039Wickens D SlusarskiBrazil2026-08-18Rousseaux, Michael Esq RENEWAL77Amy Elsner
1040Mujtaba N VocelkaSpain2026-08-27Buckley Miller Wright QUALIFIED47Anna Fali
1041Emily C StensethBrazil2026-08-06Rangoni Of Florence NEW10Anna Fali
1042Rodrigues P MarrierArgentina2026-08-19Buckley Miller Wright UNQUALIFIED47Bernardo Dominic
1043Ricardo B VenereRussia2026-08-04Feltz Printing Service UNQUALIFIED86Bernardo Dominic
1044Darci G ChuiGermany2026-08-15Rousseaux, Michael Esq UNQUALIFIED68Elwin Sharvill
1045Octavia S MaletCanada2026-08-08Rousseaux, Michael Esq NEW58Stephen Shaw
1046Leon L BowleyCanada2026-08-28Benton, John B Jr RENEWAL61Bernardo Dominic
1047Maisha K StensethAustralia2026-08-06Morlong Associates QUALIFIED46Asiya Javayant
1048David Q FigeroaArgentina2026-08-14Chemel, James L Cpa PROPOSAL45Elwin Sharvill
1049Antonio Z KuskoIndia2026-08-27Feiner Bros UNQUALIFIED24Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci B BriddickRussiaStephen Shaw NEGOTIATION
Isabel Z PaprockiItalyIvan Magalhaes NEW
Cody O VocelkaCanadaBernardo Dominic UNQUALIFIED
Ricardo L NickaItalyIvan Magalhaes RENEWAL
Jefferson X FollerUnited KingdomElwin Sharvill QUALIFIED
Sinclair I MaletCanadaIoni Bowcher PROPOSAL
Maisha K CaldareraFranceOnyama Limba UNQUALIFIED
Isabel C GlickGermanyIvan Magalhaes QUALIFIED
Johnson N VocelkaBrazilOnyama Limba UNQUALIFIED
David W MorascaJapanBernardo Dominic PROPOSAL
Mayumi O RimSpainAmy Elsner RENEWAL
Costa J GillianJapanAnna Fali PROPOSAL
Jennifer F MacleadAustraliaIoni Bowcher PROPOSAL
Mayumi Y OldroydArgentinaElwin Sharvill NEW
Aika M MacleadBrazilStephen Shaw NEW
Ricardo I MaletJapanElwin Sharvill NEW
Greenwood Y SchemmerIndiaAnna Fali PROPOSAL
Johnson X FerenczCanadaElwin Sharvill RENEWAL
Ivar C RulapaughCanadaElwin Sharvill NEGOTIATION
Emily Y FigeroaAustraliaXuxue Feng UNQUALIFIED
Aditya W RulapaughAustraliaAnna Fali QUALIFIED
Francesco D SergiAustraliaStephen Shaw RENEWAL
Tony O IturbideAustraliaIoni Bowcher PROPOSAL
Chavez M VenereRussiaAmy Elsner NEW
Ivar O VenereJapanElwin Sharvill NEGOTIATION
Izzy I MorascaUnited KingdomAmy Elsner UNQUALIFIED
Munro L StensethIndiaStephen Shaw UNQUALIFIED
Leja A MaletArgentinaBernardo Dominic UNQUALIFIED
Maria V SlusarskiItalyAsiya Javayant UNQUALIFIED
Ricardo X MacleadGermanyAmy Elsner NEW
Kadeem K MacleadCanadaOnyama Limba NEW
Chavez G MaletJapanIvan Magalhaes UNQUALIFIED
Kadeem X RimJapanIoni Bowcher RENEWAL
Silvio U NestleArgentinaIoni Bowcher NEGOTIATION
Maisha B VocelkaBrazilXuxue Feng UNQUALIFIED
Leja B FigeroaFranceElwin Sharvill NEW
Cody Y CaudyArgentinaXuxue Feng NEGOTIATION
Murillo L GlickBrazilIvan Magalhaes UNQUALIFIED
Stacey G NickaFranceBernardo Dominic RENEWAL
Darci N PoquetteArgentinaOnyama Limba RENEWAL
Claire J RimFranceAnna Fali PROPOSAL
Maria Z PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois X FigeroaCanadaAsiya Javayant RENEWAL
Jeanfrancois N BologniaGermanyStephen Shaw PROPOSAL
Johnson F NickaArgentinaAsiya Javayant QUALIFIED
David K AlbaresGermanyBernardo Dominic NEGOTIATION
Mayumi H WaycottSpainElwin Sharvill UNQUALIFIED
Tony C PaprockiSpainOnyama Limba QUALIFIED
Cody Q BriddickSpainAmy Elsner NEW
Juan U MorascaArgentinaAmy Elsner RENEWAL
Frozen Columns
Name
Johnson J Bolognia
Murillo B Iturbide
Mujtaba P Kusko
Smith I Flosi
Greenwood R Malet
Julie A Dilliard
Jones L Chui
Octavia E Saylors
Kaitlin F Gaucho
Salvatore M Waycott
Wickens N Kusko
Munro I Campain
Juan L Oldroyd
Juan O Waycott
Morrow Q Albares
Kaitlin S Paprocki
Sinclair F Marrier
Claire I Ruta
Misaki P Poquette
Adams E Caudy
Greenwood B Garufi
Adams R Foller
Kaitlin B Briddick
Juan X Sergi
Deepesh E Flosi
Aika E Stockham
Jefferson N Darakjy
David S Schemmer
Kadeem M Chui
Stacey K Gaucho
Smith J Shinko
Jefferson K Gillian
Ashley C Saylors
Leja P Amigon
Smith R Whobrey
Juan G Maclead
Maisha L Whobrey
Murillo M Whobrey
Costa T Nicka
Jeanfrancois U Whobrey
Jefferson P Albares
Jefferson Q Figeroa
Leon E Rulapaugh
Deepesh P Waycott
Isabel U Kusko
Jeanfrancois R Maclead
Silvio N Poquette
Maria R Paprocki
Ricardo X Venere
Mujtaba R Marrier
IdCountryDate
1000Canada2026-08-25
1001France2026-08-08
1002Russia2026-08-03
1003India2026-08-22
1004Argentina2026-08-14
1005Brazil2026-08-29
1006Spain2026-08-05
1007Spain2026-08-25
1008Italy2026-08-21
1009Japan2026-08-22
1010Australia2026-08-22
1011Germany2026-08-12
1012France2026-08-26
1013Spain2026-08-29
1014India2026-07-31
1015Brazil2026-08-09
1016Japan2026-08-01
1017India2026-08-25
1018Australia2026-08-08
1019United Kingdom2026-08-27
1020United Kingdom2026-08-05
1021Italy2026-08-29
1022Australia2026-08-28
1023Germany2026-08-05
1024Brazil2026-08-28
1025France2026-08-17
1026Russia2026-08-12
1027Germany2026-07-31
1028Russia2026-08-14
1029India2026-08-08
1030France2026-08-02
1031Germany2026-08-14
1032Canada2026-08-26
1033France2026-08-06
1034Argentina2026-07-31
1035Russia2026-08-09
1036Australia2026-08-02
1037France2026-08-10
1038Russia2026-08-21
1039Russia2026-08-23
1040United Kingdom2026-08-24
1041India2026-08-03
1042Italy2026-08-24
1043Argentina2026-08-18
1044Italy2026-08-02
1045India2026-07-31
1046United Kingdom2026-08-07
1047Australia2026-08-15
1048Germany2026-08-07
1049Italy2026-08-29

On-Demand Data

NameIdCountryDate
Aika W Ferencz1000India2026-08-17
Adams B Bolognia1001Russia2026-08-24
Stacey N Shinko1002Canada2026-08-11
Clifford E Shinko1003Italy2026-08-01
Clifford V Inouye1004France2026-08-13
Johnson D Darakjy1005Russia2026-08-21
Jones D Caudy1006India2026-08-05
Maisha Q Malet1007Italy2026-08-07
Jones C Stenseth1008Argentina2026-08-02
Jeanfrancois J Garufi1009Argentina2026-08-17
Aika W Malet1010France2026-08-09
David X Paprocki1011Argentina2026-08-09
Emily T Iturbide1012Canada2026-08-19
Ashley P Figeroa1013Germany2026-08-25
Octavia S Caldarera1014Spain2026-08-21
Morrow H Darakjy1015Italy2026-08-09
Ashley T Bolognia1016France2026-08-22
Octavia P Foller1017Brazil2026-08-04
Sinclair C Stockham1018Brazil2026-08-07
Salvatore S Butt1019Canada2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon U DarakjyAustraliaIoni Bowcher QUALIFIED
Ivar Y AmigonRussiaOnyama Limba NEW
Antonio K MacleadRussiaIoni Bowcher QUALIFIED
Arvin M BriddickItalyXuxue Feng RENEWAL
Juan Q MarrierAustraliaIoni Bowcher NEW
Chavez F MaletIndiaIoni Bowcher RENEWAL
Octavia A RutaGermanyBernardo Dominic PROPOSAL
Kaitlin X MarrierUnited KingdomStephen Shaw NEGOTIATION
Murillo X KolmetzUnited KingdomAnna Fali QUALIFIED
Francesco S InouyeAustraliaIvan Magalhaes UNQUALIFIED
David S AmigonIndiaIoni Bowcher NEW
Silvio X AmigonItalyBernardo Dominic RENEWAL
Francesco K OldroydRussiaAmy Elsner QUALIFIED
Murillo K FerenczArgentinaAsiya Javayant UNQUALIFIED
Misaki M NickaItalyAnna Fali RENEWAL
Mujtaba F AmigonSpainElwin Sharvill NEW
Murillo V BriddickCanadaAmy Elsner QUALIFIED
Salvatore V GillianAustraliaElwin Sharvill NEW
Cody J WieserItalyAsiya Javayant UNQUALIFIED
Adams R SaylorsCanadaXuxue Feng RENEWAL
Ricardo R SaylorsAustraliaElwin Sharvill NEGOTIATION
Rodrigues G TollnerUnited KingdomElwin Sharvill PROPOSAL
Isabel O IturbideJapanAnna Fali RENEWAL
David Z NestleArgentinaAnna Fali RENEWAL
Kaitlin W StockhamRussiaIvan Magalhaes NEGOTIATION
Francesco I WieserRussiaAsiya Javayant NEGOTIATION
Clifford A FollerRussiaOnyama Limba UNQUALIFIED
Maisha R NickaFranceAmy Elsner NEGOTIATION
Alejandro G NickaBrazilAsiya Javayant PROPOSAL
Sinclair S PerinItalyAmy Elsner UNQUALIFIED
David X NickaItalyAnna Fali NEW
Kaitlin W RimUnited KingdomIoni Bowcher UNQUALIFIED
Murillo F VenereAustraliaOnyama Limba NEGOTIATION
Silvio O BowleyFranceElwin Sharvill QUALIFIED
Jennifer A InouyeFranceAnna Fali UNQUALIFIED
Tony D FigeroaItalyIoni Bowcher UNQUALIFIED
Emily S RutaAustraliaElwin Sharvill QUALIFIED
Izzy A ChuiJapanOnyama Limba RENEWAL
Nicolas S WhobreyArgentinaOnyama Limba NEW
Leon I GlickFranceElwin Sharvill 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>