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
Costa X RulapaughUnited KingdomAsiya Javayant PROPOSAL
Isabel H NickaJapanIvan Magalhaes QUALIFIED
Silvio H InouyeGermanyXuxue Feng RENEWAL
Darci C RutaUnited KingdomAmy Elsner NEGOTIATION
Maisha B NickaItalyElwin Sharvill NEGOTIATION
Jeanfrancois Q GlickItalyAnna Fali RENEWAL
Sinclair P PoquetteJapanIoni Bowcher NEW
Wickens H WaycottIndiaAsiya Javayant QUALIFIED
Wickens L ShinkoIndiaBernardo Dominic NEGOTIATION
Jennifer Q MaletJapanIvan Magalhaes QUALIFIED
Mujtaba J KuskoSpainOnyama Limba RENEWAL
Morrow A WaycottUnited KingdomIvan Magalhaes QUALIFIED
Costa B ChuiArgentinaBernardo Dominic QUALIFIED
Silvio H VenereSpainIoni Bowcher RENEWAL
Kaitlin B VocelkaItalyAsiya Javayant NEW
Leon G WaycottItalyAnna Fali PROPOSAL
Maisha E RimGermanyAsiya Javayant RENEWAL
Costa E MaletIndiaIoni Bowcher NEGOTIATION
Jefferson H FollerFranceAsiya Javayant QUALIFIED
Julie N MaletAustraliaOnyama Limba NEGOTIATION
Chavez J NickaRussiaAmy Elsner UNQUALIFIED
Salvatore W RimBrazilIoni Bowcher UNQUALIFIED
Adams V GarufiArgentinaBernardo Dominic UNQUALIFIED
Faith C RutaArgentinaXuxue Feng NEGOTIATION
Stacey S PerinAustraliaElwin Sharvill RENEWAL
Morrow C KuskoGermanyElwin Sharvill PROPOSAL
Aditya A FollerCanadaBernardo Dominic NEGOTIATION
Aruna Z ShinkoGermanyStephen Shaw NEW
Isabel F DarakjyBrazilXuxue Feng RENEWAL
Aruna Y WhobreyCanadaBernardo Dominic QUALIFIED
Octavia K SergiSpainXuxue Feng UNQUALIFIED
Emily L FerenczFranceElwin Sharvill QUALIFIED
Morrow N WieserUnited KingdomBernardo Dominic NEW
Morrow S ChuiGermanyOnyama Limba NEGOTIATION
Emily H RimRussiaAmy Elsner NEGOTIATION
Aruna G ShinkoJapanAsiya Javayant UNQUALIFIED
Octavia I CaudyFranceElwin Sharvill QUALIFIED
Aruna C KuskoGermanyOnyama Limba PROPOSAL
Isabel G RimGermanyAmy Elsner QUALIFIED
Claire D VocelkaJapanIvan Magalhaes UNQUALIFIED
Darci N TollnerIndiaElwin Sharvill RENEWAL
Aika J MaletJapanAsiya Javayant PROPOSAL
Jeanfrancois Q RimJapanIoni Bowcher RENEWAL
Emily J StockhamItalyStephen Shaw NEGOTIATION
Costa R MaletFranceAsiya Javayant RENEWAL
Emily F GlickJapanBernardo Dominic NEW
Maisha T PoquetteCanadaIvan Magalhaes UNQUALIFIED
Greenwood X FigeroaSpainOnyama Limba RENEWAL
Johnson D MarrierGermanyBernardo Dominic UNQUALIFIED
Ricardo B CampainArgentinaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Ashley I MaletIndiaBernardo Dominic QUALIFIED
Octavia Y RutaSpainStephen Shaw UNQUALIFIED
Julie G ButtGermanyAsiya Javayant NEGOTIATION
Darci L MorascaJapanAsiya Javayant NEW
Murillo C MorascaGermanyOnyama Limba QUALIFIED
Jennifer G KolmetzAustraliaAnna Fali NEW
Darci T PerinIndiaAmy Elsner RENEWAL
Isabel T BologniaBrazilOnyama Limba NEGOTIATION
Rodrigues T WieserSpainBernardo Dominic PROPOSAL
Rodrigues Q SaylorsRussiaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi L FlosiAustralia2025-05-27Morlong Associates QUALIFIED14Anna Fali
1001Salvatore F GauchoGermany2025-06-16Buckley Miller Wright UNQUALIFIED55Ioni Bowcher
1002Smith A RoysterJapan2025-06-13Buckley Miller Wright RENEWAL26Xuxue Feng
1003Antonio F BriddickFrance2025-05-27Commercial Press PROPOSAL35Stephen Shaw
1004Johnson U SaylorsJapan2025-06-03Truhlar And Truhlar Attys NEGOTIATION19Amy Elsner
1005Jennifer W MaletUnited Kingdom2025-05-31King, Christopher A Esq RENEWAL9Stephen Shaw
1006Deepesh G CampainAustralia2025-06-07Morlong Associates NEW18Bernardo Dominic
1007Rodrigues L NestleFrance2025-05-28Commercial Press UNQUALIFIED71Elwin Sharvill
1008Rodrigues Z VocelkaIndia2025-06-11Rousseaux, Michael Esq NEW34Xuxue Feng
1009Julie W DilliardRussia2025-06-12Chapman, Ross E Esq UNQUALIFIED83Ioni Bowcher
1010Sinclair H ShinkoSpain2025-06-11Rousseaux, Michael Esq RENEWAL13Elwin Sharvill
1011Ivar Z RoysterCanada2025-06-13Chapman, Ross E Esq NEGOTIATION63Onyama Limba
1012Alejandro D DoeUnited Kingdom2025-05-31Benton, John B Jr PROPOSAL96Ioni Bowcher
1013Misaki G FollerRussia2025-06-10Rangoni Of Florence UNQUALIFIED15Amy Elsner
1014Maria R BowleyJapan2025-06-09King, Christopher A Esq NEGOTIATION87Bernardo Dominic
1015Darci I MacleadItaly2025-06-03Chanay, Jeffrey A Esq QUALIFIED21Stephen Shaw
1016Antonio L GarufiBrazil2025-06-14Rangoni Of Florence QUALIFIED36Stephen Shaw
1017Julie Y FollerSpain2025-06-06Rousseaux, Michael Esq QUALIFIED35Asiya Javayant
1018Mujtaba Q GlickGermany2025-06-11Truhlar And Truhlar Attys NEW94Xuxue Feng
1019Johnson M OstroskyArgentina2025-05-19Rousseaux, Michael Esq QUALIFIED43Xuxue Feng
1020Kadeem J MacleadBrazil2025-06-13Feltz Printing Service RENEWAL65Ioni Bowcher
1021Kadeem G MarrierAustralia2025-06-06Rousseaux, Michael Esq PROPOSAL75Stephen Shaw
1022Leon I WieserSpain2025-05-23Chapman, Ross E Esq NEW47Bernardo Dominic
1023Jeanfrancois R BowleyRussia2025-06-01Dorl, James J Esq NEW2Ioni Bowcher
1024Rodrigues M StockhamBrazil2025-06-02Chemel, James L Cpa RENEWAL10Ivan Magalhaes
1025Chavez B OstroskySpain2025-05-19Truhlar And Truhlar Attys NEW35Ioni Bowcher
1026Leja Z SlusarskiFrance2025-06-08Commercial Press UNQUALIFIED22Xuxue Feng
1027Tony R IturbideArgentina2025-06-09Printing Dimensions PROPOSAL92Asiya Javayant
1028Mujtaba O FollerArgentina2025-06-03Rousseaux, Michael Esq RENEWAL50Onyama Limba
1029Maisha Y RutaSpain2025-06-16King, Christopher A Esq RENEWAL0Bernardo Dominic
1030Mujtaba E GarufiAustralia2025-06-02Dorl, James J Esq QUALIFIED64Anna Fali
1031Maria T CaudyIndia2025-06-10Benton, John B Jr NEW41Ivan Magalhaes
1032Ashley Z DoeRussia2025-05-18Chemel, James L Cpa QUALIFIED12Stephen Shaw
1033Cody J RimCanada2025-06-03Dorl, James J Esq PROPOSAL18Ioni Bowcher
1034Aruna I IturbideCanada2025-06-03Buckley Miller Wright NEW75Amy Elsner
1035Jeanfrancois H BriddickCanada2025-05-25Printing Dimensions QUALIFIED37Ivan Magalhaes
1036Jeanfrancois C MaletUnited Kingdom2025-06-12Buckley Miller Wright NEW64Elwin Sharvill
1037Greenwood J ChuiUnited Kingdom2025-06-09Rousseaux, Michael Esq PROPOSAL4Ioni Bowcher
1038Maisha V ShinkoSpain2025-05-20Printing Dimensions QUALIFIED75Elwin Sharvill
1039Chavez R FlosiSpain2025-05-28Printing Dimensions UNQUALIFIED0Stephen Shaw
1040Maisha F CaldareraBrazil2025-06-14Feiner Bros PROPOSAL28Onyama Limba
1041Mujtaba S SaylorsAustralia2025-05-27Printing Dimensions PROPOSAL30Xuxue Feng
1042Salvatore N FollerArgentina2025-05-31Morlong Associates UNQUALIFIED2Ivan Magalhaes
1043Alejandro S ShinkoCanada2025-05-23Chemel, James L Cpa QUALIFIED6Onyama Limba
1044Chavez I DilliardArgentina2025-05-20Truhlar And Truhlar Attys QUALIFIED28Stephen Shaw
1045Misaki G OstroskyUnited Kingdom2025-05-30Dorl, James J Esq QUALIFIED63Anna Fali
1046Maisha S DoeItaly2025-05-29Chapman, Ross E Esq PROPOSAL28Ivan Magalhaes
1047Rodrigues Z StensethJapan2025-06-07Printing Dimensions NEW63Stephen Shaw
1048Jeanfrancois Z SlusarskiBrazil2025-05-18Buckley Miller Wright UNQUALIFIED0Amy Elsner
1049Leon H NickaIndia2025-05-21Truhlar And Truhlar Attys PROPOSAL13Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
David E GarufiBrazilOnyama Limba PROPOSAL
Munro C VenereGermanyAmy Elsner RENEWAL
Salvatore D IturbideBrazilBernardo Dominic PROPOSAL
David X VenereJapanIvan Magalhaes NEGOTIATION
Claire M PaprockiJapanOnyama Limba QUALIFIED
Ricardo S VenereAustraliaStephen Shaw PROPOSAL
Octavia Y CampainAustraliaIvan Magalhaes RENEWAL
Aruna G SchemmerUnited KingdomStephen Shaw RENEWAL
Cody C RulapaughRussiaAmy Elsner RENEWAL
Leon C PaprockiFranceIvan Magalhaes NEGOTIATION
Julie Z PerinFranceElwin Sharvill QUALIFIED
Izzy X PoquetteCanadaBernardo Dominic QUALIFIED
Claire J BriddickJapanIvan Magalhaes NEW
Morrow H VocelkaArgentinaOnyama Limba PROPOSAL
Murillo E CaudyIndiaXuxue Feng NEGOTIATION
Ashley K KuskoFranceXuxue Feng NEGOTIATION
Tony J BologniaItalyIvan Magalhaes UNQUALIFIED
Mayumi Z KuskoJapanIoni Bowcher PROPOSAL
Jennifer A WieserSpainXuxue Feng PROPOSAL
Costa Y GillianRussiaAmy Elsner NEW
Aditya X GarufiIndiaBernardo Dominic PROPOSAL
James Y SlusarskiFranceElwin Sharvill UNQUALIFIED
Smith V TollnerCanadaBernardo Dominic PROPOSAL
Stacey H PaprockiBrazilAsiya Javayant PROPOSAL
Aruna R PerinBrazilIoni Bowcher QUALIFIED
Aruna B PaprockiJapanXuxue Feng NEGOTIATION
Cody D PaprockiAustraliaElwin Sharvill NEGOTIATION
Faith E GlickJapanXuxue Feng NEW
Claire R StensethGermanyIvan Magalhaes RENEWAL
Salvatore S DarakjyAustraliaOnyama Limba QUALIFIED
Kadeem H RulapaughSpainIoni Bowcher QUALIFIED
Smith S SaylorsSpainAmy Elsner UNQUALIFIED
Maisha D StensethIndiaElwin Sharvill PROPOSAL
Nicolas D VocelkaBrazilAnna Fali PROPOSAL
Arvin I StockhamSpainAmy Elsner RENEWAL
Deepesh D CaldareraFranceAsiya Javayant QUALIFIED
Greenwood H GlickJapanOnyama Limba UNQUALIFIED
Aruna L GlickJapanElwin Sharvill NEGOTIATION
Jennifer L SergiIndiaBernardo Dominic UNQUALIFIED
David B AmigonItalyIoni Bowcher QUALIFIED
Tony U DoeItalyElwin Sharvill PROPOSAL
Leja T MarrierGermanyAnna Fali UNQUALIFIED
Tony R CaudyRussiaElwin Sharvill NEGOTIATION
Aika B SchemmerUnited KingdomAmy Elsner PROPOSAL
David T OldroydItalyAsiya Javayant QUALIFIED
Jennifer T NestleUnited KingdomAsiya Javayant RENEWAL
Munro J SaylorsBrazilAsiya Javayant NEGOTIATION
Johnson N MarrierItalyOnyama Limba NEW
Darci K ButtSpainXuxue Feng QUALIFIED
Greenwood V FlosiAustraliaBernardo Dominic PROPOSAL
Frozen Columns
Name
Jones B Nicka
Aditya Y Darakjy
Isabel A Wieser
Smith H Darakjy
Julie M Rim
Morrow S Royster
Silvio H Chui
Ivar O Ruta
Leja B Stockham
Costa Y Whobrey
Silvio O Flosi
Salvatore C Stenseth
Tony F Marrier
Misaki I Stockham
Ivar Z Marrier
Wickens E Slusarski
Aruna M Morasca
Costa L Flosi
Adams M Caldarera
Munro Y Bowley
Isabel V Malet
Francesco G Campain
Wickens M Bowley
Aditya B Caudy
Mayumi S Poquette
Misaki P Maclead
Octavia L Stenseth
Francesco Q Maclead
Leja N Tollner
Chavez O Foller
Adams V Vocelka
Aditya H Stenseth
Faith G Albares
Aika V Perin
Munro D Doe
Adams C Malet
Nicolas A Maclead
Ricardo L Caldarera
James I Figeroa
Jefferson X Vocelka
Chavez N Doe
Francesco I Butt
Deepesh H Amigon
Aruna G Ruta
Antonio X Venere
Maisha X Paprocki
Munro U Bowley
Costa T Morasca
Aika M Tollner
David B Iturbide
IdCountryDate
1000Italy2025-06-04
1001Spain2025-05-18
1002Brazil2025-05-29
1003Italy2025-06-07
1004Canada2025-05-29
1005Argentina2025-05-22
1006United Kingdom2025-06-07
1007Italy2025-05-26
1008Canada2025-05-29
1009Spain2025-05-20
1010Spain2025-05-21
1011Australia2025-06-14
1012Australia2025-05-31
1013Canada2025-06-09
1014Argentina2025-06-07
1015Argentina2025-06-03
1016Italy2025-05-20
1017Germany2025-05-19
1018Japan2025-06-14
1019United Kingdom2025-06-01
1020Spain2025-05-31
1021Italy2025-06-06
1022Canada2025-06-08
1023Italy2025-06-02
1024Argentina2025-06-13
1025France2025-05-30
1026Brazil2025-06-13
1027Argentina2025-06-16
1028Brazil2025-06-03
1029Germany2025-05-20
1030Russia2025-05-29
1031India2025-05-28
1032India2025-05-22
1033Japan2025-06-01
1034Brazil2025-05-27
1035Spain2025-05-21
1036United Kingdom2025-05-21
1037Russia2025-05-20
1038Japan2025-06-08
1039Japan2025-05-23
1040Canada2025-05-24
1041United Kingdom2025-06-06
1042Italy2025-06-01
1043Argentina2025-06-12
1044Spain2025-05-23
1045Brazil2025-05-26
1046Germany2025-06-07
1047Australia2025-05-19
1048Spain2025-06-11
1049Italy2025-06-01

On-Demand Data

NameIdCountryDate
Morrow U Rim1000India2025-06-01
Silvio D Inouye1001Italy2025-05-21
Maisha V Paprocki1002India2025-05-28
Octavia R Royster1003Italy2025-06-07
Antonio W Maclead1004Russia2025-06-05
Leon Z Rulapaugh1005Australia2025-05-23
Francesco C Flosi1006Canada2025-05-26
Faith K Royster1007Spain2025-05-28
Maisha M Dilliard1008Canada2025-05-23
Octavia O Darakjy1009Spain2025-05-23
Maria C Nicka1010Canada2025-05-27
Misaki C Butt1011Italy2025-05-24
Ashley Z Kolmetz1012Japan2025-05-30
Julie J Flosi1013Italy2025-06-14
Leja R Ostrosky1014France2025-06-12
Leja H Caudy1015Spain2025-05-22
Leon R Slusarski1016Australia2025-05-30
Antonio G Malet1017United Kingdom2025-05-29
Kaitlin O Glick1018Germany2025-06-02
Sinclair M Paprocki1019Canada2025-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez E DilliardUnited KingdomOnyama Limba RENEWAL
Nicolas O GarufiCanadaAmy Elsner NEW
Izzy C MarrierArgentinaAnna Fali NEW
Tony O PoquetteArgentinaAsiya Javayant NEGOTIATION
Jefferson G DarakjyAustraliaStephen Shaw QUALIFIED
Deepesh K VenereItalyOnyama Limba QUALIFIED
Sinclair N GlickCanadaBernardo Dominic NEGOTIATION
Cody Z PaprockiFranceIvan Magalhaes RENEWAL
Maria D RutaBrazilXuxue Feng NEGOTIATION
Misaki P NickaRussiaElwin Sharvill NEGOTIATION
Mujtaba V WieserItalyBernardo Dominic RENEWAL
Stacey R SlusarskiUnited KingdomAnna Fali NEW
Tony V MaletFranceAmy Elsner QUALIFIED
Silvio Z SlusarskiFranceIoni Bowcher NEGOTIATION
Isabel T ButtJapanOnyama Limba RENEWAL
Maria R PerinItalyAmy Elsner RENEWAL
Misaki V MaletArgentinaAsiya Javayant UNQUALIFIED
Rodrigues A WieserBrazilAmy Elsner NEGOTIATION
Costa B RulapaughIndiaStephen Shaw QUALIFIED
Ashley K CampainCanadaAnna Fali QUALIFIED
Deepesh B VocelkaCanadaOnyama Limba UNQUALIFIED
Johnson G PoquetteItalyStephen Shaw PROPOSAL
Ivar Q VenereBrazilIoni Bowcher PROPOSAL
Sinclair R ChuiRussiaIvan Magalhaes UNQUALIFIED
Munro A CampainIndiaAmy Elsner RENEWAL
Arvin N OldroydUnited KingdomAsiya Javayant QUALIFIED
Kadeem Z RimUnited KingdomBernardo Dominic QUALIFIED
Isabel L BologniaIndiaIvan Magalhaes PROPOSAL
Mujtaba J CampainCanadaOnyama Limba PROPOSAL
Costa S RoysterUnited KingdomAmy Elsner UNQUALIFIED
Morrow E MarrierArgentinaElwin Sharvill QUALIFIED
Costa L FlosiItalyAsiya Javayant QUALIFIED
Aruna K FollerIndiaBernardo Dominic NEW
Aditya F VenereUnited KingdomElwin Sharvill RENEWAL
Darci T SaylorsItalyBernardo Dominic UNQUALIFIED
Julie A BriddickBrazilBernardo Dominic NEGOTIATION
Murillo T KuskoIndiaStephen Shaw NEGOTIATION
Leon I MaletRussiaAnna Fali NEGOTIATION
Ivar Y RimFranceBernardo Dominic NEGOTIATION
Greenwood X GlickSpainBernardo Dominic 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>