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
Rodrigues M WaycottItalyAnna Fali UNQUALIFIED
James A KuskoItalyAnna Fali QUALIFIED
Tony E GarufiBrazilIvan Magalhaes RENEWAL
Maisha P MacleadAustraliaStephen Shaw UNQUALIFIED
Claire R SaylorsBrazilOnyama Limba NEW
Darci U MarrierArgentinaXuxue Feng NEW
Aditya V SlusarskiCanadaIoni Bowcher UNQUALIFIED
Smith Q InouyeArgentinaIoni Bowcher UNQUALIFIED
Antonio W AmigonCanadaXuxue Feng NEW
Johnson V PerinCanadaStephen Shaw PROPOSAL
David C ShinkoAustraliaAmy Elsner UNQUALIFIED
Jennifer M AlbaresJapanStephen Shaw QUALIFIED
Darci I GauchoItalyAnna Fali RENEWAL
Johnson Y GarufiItalyStephen Shaw PROPOSAL
Mayumi W MaletUnited KingdomXuxue Feng RENEWAL
Izzy Y InouyeJapanIvan Magalhaes PROPOSAL
Adams Z WieserArgentinaIvan Magalhaes UNQUALIFIED
Jennifer O FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Julie X CampainArgentinaElwin Sharvill PROPOSAL
Maisha P CampainArgentinaXuxue Feng QUALIFIED
Wickens A NestleArgentinaAnna Fali NEW
Arvin A ShinkoAustraliaIoni Bowcher PROPOSAL
Tony Y PaprockiFranceXuxue Feng UNQUALIFIED
David S RutaJapanElwin Sharvill RENEWAL
Juan R WieserSpainAmy Elsner UNQUALIFIED
Kadeem P ButtAustraliaXuxue Feng UNQUALIFIED
Morrow S StensethBrazilIoni Bowcher QUALIFIED
Adams V KuskoJapanStephen Shaw NEW
Faith Q WhobreyIndiaStephen Shaw UNQUALIFIED
Francesco X ButtBrazilStephen Shaw NEW
Alejandro P NickaSpainXuxue Feng UNQUALIFIED
James B GlickFranceIvan Magalhaes UNQUALIFIED
Aika G GauchoItalyXuxue Feng UNQUALIFIED
Julie H RimUnited KingdomXuxue Feng PROPOSAL
Francesco T StensethJapanBernardo Dominic UNQUALIFIED
Aika E GillianIndiaAsiya Javayant UNQUALIFIED
Jones A SchemmerSpainXuxue Feng NEW
Ricardo Q NickaCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois I RutaRussiaIoni Bowcher RENEWAL
Cody J VenereAustraliaElwin Sharvill NEW
Juan N DarakjyRussiaAmy Elsner UNQUALIFIED
Deepesh U CaldareraBrazilElwin Sharvill QUALIFIED
Morrow K MaletJapanIoni Bowcher RENEWAL
Francesco G GillianGermanyXuxue Feng RENEWAL
Jennifer G PerinAustraliaAmy Elsner UNQUALIFIED
Isabel J AlbaresJapanAsiya Javayant NEGOTIATION
Costa P StensethAustraliaAmy Elsner UNQUALIFIED
Aruna Z DilliardArgentinaAnna Fali PROPOSAL
Emily E ChuiBrazilAmy Elsner RENEWAL
Smith E FerenczRussiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire X DoeJapanAsiya Javayant NEGOTIATION
Mayumi P BowleySpainIvan Magalhaes UNQUALIFIED
Arvin L MaletBrazilIvan Magalhaes NEGOTIATION
Silvio C PaprockiItalyBernardo Dominic NEGOTIATION
Clifford B NestleArgentinaBernardo Dominic RENEWAL
Kadeem J IturbideAustraliaBernardo Dominic NEW
Jennifer I TollnerUnited KingdomXuxue Feng QUALIFIED
Leon Q FlosiItalyBernardo Dominic UNQUALIFIED
Costa Q BowleyFranceStephen Shaw NEGOTIATION
Munro Q OldroydFranceIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson S KuskoFrance2025-04-29Commercial Press NEW44Elwin Sharvill
1001Adams W KuskoSpain2025-04-26King, Christopher A Esq QUALIFIED87Xuxue Feng
1002Clifford S ShinkoArgentina2025-04-14Rousseaux, Michael Esq PROPOSAL95Onyama Limba
1003Alejandro O RoysterCanada2025-04-24Rangoni Of Florence QUALIFIED24Elwin Sharvill
1004Rodrigues E BowleyJapan2025-04-04Truhlar And Truhlar Attys UNQUALIFIED84Stephen Shaw
1005Izzy T InouyeItaly2025-04-16Buckley Miller Wright UNQUALIFIED5Ioni Bowcher
1006Clifford G StockhamAustralia2025-04-20Commercial Press NEW36Anna Fali
1007Ashley Z MarrierUnited Kingdom2025-04-16Commercial Press QUALIFIED62Amy Elsner
1008Francesco N VenereArgentina2025-04-18Rangoni Of Florence NEW52Amy Elsner
1009Smith K FerenczBrazil2025-04-19Truhlar And Truhlar Attys QUALIFIED37Xuxue Feng
1010Munro C BriddickFrance2025-04-01Feiner Bros UNQUALIFIED33Anna Fali
1011Jennifer M PoquetteJapan2025-04-24Chapman, Ross E Esq NEW32Onyama Limba
1012Izzy S BriddickSpain2025-04-12Rousseaux, Michael Esq NEGOTIATION59Asiya Javayant
1013Adams Q RutaBrazil2025-04-09King, Christopher A Esq QUALIFIED51Bernardo Dominic
1014Smith Y VenereItaly2025-04-21Truhlar And Truhlar Attys RENEWAL18Anna Fali
1015Darci W WieserIndia2025-04-28Benton, John B Jr PROPOSAL10Ioni Bowcher
1016Wickens I FerenczRussia2025-04-03Dorl, James J Esq QUALIFIED2Anna Fali
1017Maisha H GauchoRussia2025-04-18Feiner Bros PROPOSAL31Asiya Javayant
1018Deepesh H RutaFrance2025-04-01Feltz Printing Service NEW54Stephen Shaw
1019Arvin E WieserFrance2025-04-12Commercial Press NEW62Stephen Shaw
1020Jefferson K DoeGermany2025-04-12Rangoni Of Florence NEGOTIATION46Anna Fali
1021Jones G IturbideBrazil2025-04-21Buckley Miller Wright QUALIFIED48Anna Fali
1022Clifford N AlbaresUnited Kingdom2025-04-14Buckley Miller Wright NEGOTIATION82Ivan Magalhaes
1023Jefferson S RoysterRussia2025-04-06King, Christopher A Esq NEGOTIATION34Onyama Limba
1024Salvatore J FlosiCanada2025-04-15Truhlar And Truhlar Attys PROPOSAL70Onyama Limba
1025Deepesh V PerinJapan2025-04-07Rousseaux, Michael Esq PROPOSAL56Anna Fali
1026James N RulapaughItaly2025-04-07Rousseaux, Michael Esq RENEWAL75Xuxue Feng
1027Isabel P DarakjyAustralia2025-04-04Morlong Associates UNQUALIFIED5Ioni Bowcher
1028Smith E CaudySpain2025-04-08Feiner Bros NEW90Elwin Sharvill
1029Sinclair S CaudyIndia2025-04-27Rangoni Of Florence NEW2Asiya Javayant
1030Murillo Y MaletRussia2025-04-18Feltz Printing Service NEGOTIATION63Stephen Shaw
1031Chavez X CaldareraUnited Kingdom2025-04-03Dorl, James J Esq NEW57Ioni Bowcher
1032Nicolas A BowleyItaly2025-04-20Feiner Bros RENEWAL12Asiya Javayant
1033Murillo M SergiFrance2025-04-12Chapman, Ross E Esq NEW47Ivan Magalhaes
1034Tony X SchemmerIndia2025-04-27Chapman, Ross E Esq UNQUALIFIED13Ioni Bowcher
1035Alejandro V VenereGermany2025-04-18Rangoni Of Florence PROPOSAL25Ioni Bowcher
1036Emily D ShinkoIndia2025-04-22King, Christopher A Esq QUALIFIED20Onyama Limba
1037Leon Z CampainGermany2025-04-03Truhlar And Truhlar Attys NEW58Onyama Limba
1038Julie V OldroydAustralia2025-04-13Feltz Printing Service PROPOSAL73Amy Elsner
1039Stacey O GarufiAustralia2025-04-19Buckley Miller Wright RENEWAL23Ivan Magalhaes
1040Francesco A DoeSpain2025-04-10Feltz Printing Service PROPOSAL77Onyama Limba
1041Leja O InouyeRussia2025-04-19Truhlar And Truhlar Attys PROPOSAL46Bernardo Dominic
1042Claire U CaldareraCanada2025-04-01Truhlar And Truhlar Attys PROPOSAL94Ivan Magalhaes
1043Jeanfrancois A TollnerArgentina2025-04-18Rangoni Of Florence RENEWAL85Bernardo Dominic
1044Jefferson H BowleyBrazil2025-04-16Chemel, James L Cpa RENEWAL63Ioni Bowcher
1045Juan A SaylorsIndia2025-04-18Truhlar And Truhlar Attys RENEWAL60Asiya Javayant
1046Jennifer W ChuiArgentina2025-04-05Chanay, Jeffrey A Esq NEGOTIATION70Bernardo Dominic
1047Kadeem M ButtArgentina2025-04-08Rousseaux, Michael Esq UNQUALIFIED64Ioni Bowcher
1048Octavia S VocelkaSpain2025-04-08Rangoni Of Florence QUALIFIED19Ioni Bowcher
1049Maisha H GillianItaly2025-04-04Dorl, James J Esq RENEWAL83Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo P BologniaGermanyBernardo Dominic QUALIFIED
Wickens O PerinUnited KingdomIoni Bowcher UNQUALIFIED
Jones K WhobreyRussiaAmy Elsner PROPOSAL
Aruna J StockhamSpainIoni Bowcher UNQUALIFIED
Ricardo G RoysterGermanyStephen Shaw NEGOTIATION
Jones S AlbaresRussiaElwin Sharvill RENEWAL
Juan B VocelkaRussiaAmy Elsner RENEWAL
Isabel X RimUnited KingdomAnna Fali PROPOSAL
Stacey A BowleyItalyStephen Shaw PROPOSAL
Maria G ChuiUnited KingdomOnyama Limba RENEWAL
Isabel W StockhamItalyElwin Sharvill PROPOSAL
Murillo D GauchoJapanAmy Elsner PROPOSAL
Darci Y PerinSpainXuxue Feng PROPOSAL
Jeanfrancois O CaudyArgentinaOnyama Limba NEGOTIATION
Cody I ButtJapanAnna Fali PROPOSAL
Alejandro Y GauchoIndiaAmy Elsner NEGOTIATION
Aruna I PaprockiAustraliaOnyama Limba QUALIFIED
Juan Z RutaCanadaElwin Sharvill RENEWAL
Francesco D GlickRussiaBernardo Dominic NEW
Smith J DilliardItalyAmy Elsner PROPOSAL
Ricardo J StensethCanadaIoni Bowcher UNQUALIFIED
Jones Y WieserJapanAsiya Javayant NEGOTIATION
Aika Q KuskoFranceAmy Elsner PROPOSAL
Misaki R FollerGermanyIoni Bowcher UNQUALIFIED
Darci R SergiAustraliaAsiya Javayant QUALIFIED
Jefferson A PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford M ButtSpainAmy Elsner NEGOTIATION
Claire I GauchoSpainAmy Elsner QUALIFIED
Leja V NickaIndiaStephen Shaw NEGOTIATION
Mujtaba H CaldareraArgentinaIvan Magalhaes PROPOSAL
Ashley J BowleyItalyElwin Sharvill NEW
Misaki U ChuiBrazilAnna Fali UNQUALIFIED
Munro T NestleCanadaElwin Sharvill NEW
Wickens K FlosiItalyStephen Shaw RENEWAL
Faith X TollnerFranceStephen Shaw RENEWAL
Mayumi P IturbideGermanyIoni Bowcher UNQUALIFIED
Tony N VenereBrazilIvan Magalhaes NEGOTIATION
Octavia C FerenczCanadaAnna Fali QUALIFIED
Ashley Q GlickCanadaIvan Magalhaes NEW
Izzy C NestleItalyAmy Elsner QUALIFIED
Costa O SchemmerIndiaBernardo Dominic RENEWAL
Jeanfrancois G CampainBrazilStephen Shaw QUALIFIED
Silvio C NickaAustraliaAnna Fali NEGOTIATION
Claire V DilliardBrazilOnyama Limba RENEWAL
Morrow P BriddickArgentinaStephen Shaw UNQUALIFIED
Tony X GillianItalyAsiya Javayant PROPOSAL
Emily I GarufiRussiaIvan Magalhaes PROPOSAL
Costa I OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Ivar L CaudyFranceBernardo Dominic UNQUALIFIED
Juan A MacleadUnited KingdomStephen Shaw RENEWAL
Frozen Columns
Name
Sinclair I Darakjy
Mayumi Q Foller
Aika L Rim
Francesco M Kusko
Antonio W Kolmetz
Wickens O Caudy
Johnson L Stockham
Izzy J Shinko
Aika D Stockham
Salvatore S Dilliard
Nicolas Q Royster
Mayumi V Maclead
Jefferson I Butt
Mayumi O Butt
Deepesh G Figeroa
Claire X Waycott
Faith M Rim
Sinclair D Butt
Alejandro W Kolmetz
Ivar Q Ferencz
Kadeem R Ferencz
Ashley H Oldroyd
Claire E Albares
Misaki W Saylors
Arvin D Maclead
Maria B Poquette
Ashley U Venere
Tony X Bowley
Ashley O Darakjy
Ashley Z Doe
Ashley L Shinko
Antonio M Rulapaugh
Mayumi U Foller
Juan E Royster
Greenwood X Malet
Claire O Bolognia
Leon N Caudy
Julie P Campain
Ivar P Chui
Antonio M Nestle
James A Oldroyd
Alejandro K Maclead
Kadeem D Stenseth
Aika U Perin
Adams H Tollner
Ivar R Darakjy
Antonio D Garufi
Jones H Bowley
Mujtaba Z Maclead
Leon L Nicka
IdCountryDate
1000Italy2025-04-07
1001Canada2025-04-20
1002Russia2025-04-01
1003Russia2025-04-12
1004Spain2025-04-08
1005United Kingdom2025-04-12
1006Spain2025-04-15
1007Canada2025-04-07
1008Russia2025-04-10
1009Spain2025-04-20
1010Italy2025-04-20
1011Japan2025-04-29
1012Brazil2025-04-10
1013India2025-04-09
1014Brazil2025-04-01
1015Germany2025-04-13
1016France2025-04-11
1017Australia2025-04-21
1018Japan2025-04-07
1019France2025-04-07
1020Italy2025-04-19
1021Argentina2025-04-04
1022Russia2025-04-28
1023Spain2025-04-22
1024India2025-04-16
1025Spain2025-04-17
1026Japan2025-03-31
1027Spain2025-04-24
1028Australia2025-04-05
1029Japan2025-04-29
1030Spain2025-04-07
1031Italy2025-04-08
1032India2025-04-07
1033France2025-04-05
1034France2025-04-25
1035Italy2025-04-16
1036France2025-04-17
1037France2025-04-16
1038India2025-04-22
1039Germany2025-04-07
1040Germany2025-04-02
1041Australia2025-04-15
1042Canada2025-04-08
1043Canada2025-04-24
1044Japan2025-04-06
1045Russia2025-04-20
1046India2025-04-17
1047Germany2025-04-19
1048India2025-04-20
1049Germany2025-04-13

On-Demand Data

NameIdCountryDate
Tony K Glick1000Spain2025-04-02
Salvatore B Poquette1001Canada2025-04-14
Octavia Z Figeroa1002United Kingdom2025-04-09
Costa W Garufi1003Russia2025-04-10
Rodrigues O Inouye1004Brazil2025-04-04
Maria P Wieser1005Spain2025-04-21
Clifford S Nestle1006Spain2025-03-31
Aika K Venere1007Italy2025-04-23
Faith V Briddick1008Japan2025-04-03
Darci V Gillian1009France2025-04-08
Maisha B Whobrey1010India2025-04-26
Kadeem F Perin1011Brazil2025-04-14
Juan D Venere1012Spain2025-04-24
Munro Q Darakjy1013Italy2025-04-23
Johnson S Dilliard1014United Kingdom2025-04-18
Misaki M Rim1015France2025-04-25
Mujtaba P Poquette1016Spain2025-04-18
Juan S Ferencz1017Japan2025-04-28
Cody T Ruta1018Brazil2025-04-25
Kaitlin L Gillian1019Spain2025-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin X GillianRussiaAmy Elsner NEGOTIATION
Rodrigues M NestleFranceElwin Sharvill NEGOTIATION
Izzy U RutaRussiaElwin Sharvill QUALIFIED
Leja F CaudyAustraliaAsiya Javayant NEGOTIATION
Johnson O WaycottGermanyAsiya Javayant RENEWAL
Johnson U GauchoAustraliaIvan Magalhaes PROPOSAL
Rodrigues E MorascaAustraliaAmy Elsner QUALIFIED
Kaitlin V ChuiCanadaOnyama Limba QUALIFIED
Misaki A WieserUnited KingdomElwin Sharvill RENEWAL
Kaitlin Q MaletGermanyXuxue Feng QUALIFIED
Aika Q DilliardArgentinaOnyama Limba NEGOTIATION
Arvin N RulapaughArgentinaXuxue Feng QUALIFIED
Tony P IturbideCanadaStephen Shaw UNQUALIFIED
Maria Q DilliardAustraliaElwin Sharvill UNQUALIFIED
Johnson W CampainSpainAnna Fali NEGOTIATION
Ricardo E PerinSpainStephen Shaw QUALIFIED
Aruna R MacleadFranceStephen Shaw RENEWAL
Emily A RoysterItalyAmy Elsner NEW
Mayumi J FerenczBrazilIvan Magalhaes NEW
Ashley K WieserBrazilStephen Shaw NEGOTIATION
Darci R WhobreyFranceAsiya Javayant QUALIFIED
Darci L FlosiItalyBernardo Dominic QUALIFIED
Salvatore Y BowleyUnited KingdomIvan Magalhaes PROPOSAL
Mayumi N GarufiGermanyStephen Shaw RENEWAL
Smith T DarakjyArgentinaAsiya Javayant PROPOSAL
Emily W ChuiUnited KingdomAnna Fali NEGOTIATION
Munro V RoysterItalyOnyama Limba NEGOTIATION
Izzy U SchemmerIndiaIvan Magalhaes RENEWAL
Stacey T VenereBrazilBernardo Dominic NEW
Emily X FollerUnited KingdomIoni Bowcher RENEWAL
Mujtaba Z ShinkoGermanyStephen Shaw UNQUALIFIED
Silvio K RulapaughItalyAmy Elsner UNQUALIFIED
Isabel H GlickItalyIvan Magalhaes UNQUALIFIED
Rodrigues N AmigonBrazilXuxue Feng PROPOSAL
Silvio B MaletFranceIvan Magalhaes NEW
Jefferson K DilliardSpainXuxue Feng NEGOTIATION
Chavez X KuskoGermanyElwin Sharvill NEGOTIATION
Emily Y TollnerCanadaAsiya Javayant NEGOTIATION
Wickens P StockhamBrazilXuxue Feng NEW
Claire O DarakjyRussiaBernardo Dominic QUALIFIED

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