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
Salvatore V GlickItalyBernardo Dominic NEGOTIATION
Smith N PerinGermanyBernardo Dominic UNQUALIFIED
Maisha U VocelkaJapanXuxue Feng PROPOSAL
Mujtaba F GlickRussiaIoni Bowcher NEW
Tony K NestleJapanBernardo Dominic RENEWAL
Sinclair K BowleyJapanStephen Shaw QUALIFIED
Silvio J GauchoFranceAsiya Javayant UNQUALIFIED
Kaitlin U MorascaGermanyBernardo Dominic UNQUALIFIED
Alejandro J BowleyItalyIoni Bowcher NEW
Clifford N StockhamGermanyAsiya Javayant NEGOTIATION
Izzy D RulapaughCanadaElwin Sharvill NEGOTIATION
Johnson S GarufiArgentinaStephen Shaw PROPOSAL
Faith T CaldareraAustraliaOnyama Limba UNQUALIFIED
Costa W ShinkoBrazilBernardo Dominic PROPOSAL
Mujtaba F MorascaBrazilAmy Elsner QUALIFIED
Maria M PaprockiCanadaIoni Bowcher QUALIFIED
Leon Y MorascaSpainIoni Bowcher QUALIFIED
Leja G SchemmerSpainElwin Sharvill NEGOTIATION
Tony C WaycottGermanyBernardo Dominic RENEWAL
Smith V BriddickUnited KingdomStephen Shaw UNQUALIFIED
James H MarrierRussiaIvan Magalhaes NEW
Leon N StockhamItalyAmy Elsner RENEWAL
Adams W KuskoUnited KingdomStephen Shaw PROPOSAL
Faith K WieserJapanStephen Shaw RENEWAL
Jones G DoeJapanStephen Shaw NEGOTIATION
Alejandro Z WieserGermanyStephen Shaw QUALIFIED
Isabel K RutaItalyOnyama Limba NEGOTIATION
Ivar D ShinkoGermanyBernardo Dominic RENEWAL
Salvatore R SlusarskiGermanyIvan Magalhaes PROPOSAL
Julie D SergiRussiaElwin Sharvill QUALIFIED
Alejandro E ShinkoCanadaOnyama Limba UNQUALIFIED
Greenwood W SaylorsItalyIvan Magalhaes UNQUALIFIED
Juan J BologniaAustraliaXuxue Feng QUALIFIED
Johnson P KolmetzItalyStephen Shaw PROPOSAL
Julie T KuskoJapanBernardo Dominic PROPOSAL
Clifford U RutaItalyAmy Elsner NEGOTIATION
Octavia X VenereBrazilBernardo Dominic RENEWAL
Alejandro B WieserGermanyOnyama Limba UNQUALIFIED
Deepesh L RoysterArgentinaIoni Bowcher PROPOSAL
Murillo P PerinBrazilBernardo Dominic PROPOSAL
Mujtaba S GillianArgentinaIvan Magalhaes NEGOTIATION
Ricardo G CaldareraArgentinaXuxue Feng PROPOSAL
Adams H SergiRussiaAmy Elsner NEGOTIATION
James Z PoquetteJapanAmy Elsner UNQUALIFIED
Arvin W CaldareraIndiaIvan Magalhaes NEGOTIATION
Kaitlin A PerinBrazilAnna Fali UNQUALIFIED
Emily G GillianGermanyAsiya Javayant QUALIFIED
Mayumi L BowleyGermanyXuxue Feng PROPOSAL
Mujtaba R ChuiFranceElwin Sharvill PROPOSAL
Emily G InouyeItalyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson K OstroskyIndiaAnna Fali NEW
Julie G DarakjySpainBernardo Dominic RENEWAL
Costa A FollerCanadaAnna Fali NEGOTIATION
Morrow I RutaAustraliaIvan Magalhaes RENEWAL
James J GarufiUnited KingdomIvan Magalhaes RENEWAL
Murillo R MorascaGermanyAnna Fali NEGOTIATION
Ashley S AlbaresIndiaAmy Elsner NEW
Sinclair K NickaIndiaIvan Magalhaes NEW
Smith T StockhamCanadaXuxue Feng RENEWAL
Faith F OldroydJapanAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily J MacleadAustralia2025-06-13King, Christopher A Esq NEGOTIATION35Onyama Limba
1001Antonio G FerenczBrazil2025-06-15Chapman, Ross E Esq PROPOSAL29Ivan Magalhaes
1002Ashley T RimGermany2025-06-09Feiner Bros QUALIFIED79Ivan Magalhaes
1003Octavia J GarufiBrazil2025-06-12Printing Dimensions NEW89Onyama Limba
1004Francesco N GlickArgentina2025-06-06Morlong Associates RENEWAL21Bernardo Dominic
1005Deepesh Q MaletIndia2025-05-29Printing Dimensions RENEWAL15Asiya Javayant
1006Deepesh X FigeroaSpain2025-05-18Rousseaux, Michael Esq NEW44Stephen Shaw
1007Emily F IturbideRussia2025-05-26Chemel, James L Cpa NEW29Anna Fali
1008Mayumi V ShinkoItaly2025-05-27Buckley Miller Wright PROPOSAL73Asiya Javayant
1009Deepesh C GillianCanada2025-05-17Chemel, James L Cpa UNQUALIFIED74Onyama Limba
1010Octavia J IturbideItaly2025-06-05Truhlar And Truhlar Attys NEW49Stephen Shaw
1011Ashley I OldroydAustralia2025-06-14Rangoni Of Florence NEW52Xuxue Feng
1012Aditya J SaylorsRussia2025-06-12Buckley Miller Wright QUALIFIED63Xuxue Feng
1013Leja U GlickUnited Kingdom2025-06-05Rousseaux, Michael Esq NEW34Anna Fali
1014Maisha W BriddickSpain2025-06-05Feiner Bros NEGOTIATION95Xuxue Feng
1015Jennifer U BowleyFrance2025-06-12Chemel, James L Cpa PROPOSAL17Onyama Limba
1016Ashley A StockhamJapan2025-05-26Truhlar And Truhlar Attys NEW18Ioni Bowcher
1017Cody M OldroydCanada2025-06-02Buckley Miller Wright NEW65Stephen Shaw
1018Misaki S FollerGermany2025-05-26Rangoni Of Florence NEGOTIATION78Ioni Bowcher
1019Aruna Q TollnerBrazil2025-06-15Rousseaux, Michael Esq PROPOSAL79Amy Elsner
1020Emily E ShinkoItaly2025-05-31Feiner Bros UNQUALIFIED73Asiya Javayant
1021Deepesh G RimCanada2025-05-18Feiner Bros UNQUALIFIED26Anna Fali
1022Munro T FlosiArgentina2025-05-25Morlong Associates NEW19Amy Elsner
1023Kadeem R DilliardGermany2025-06-08Feiner Bros NEW47Bernardo Dominic
1024Stacey A CaldareraItaly2025-06-10Feltz Printing Service RENEWAL76Elwin Sharvill
1025Isabel Q MorascaBrazil2025-05-21Commercial Press NEW32Ioni Bowcher
1026Smith U MorascaJapan2025-05-30Buckley Miller Wright QUALIFIED39Amy Elsner
1027Ivar L AlbaresJapan2025-05-31Feltz Printing Service QUALIFIED39Xuxue Feng
1028Kadeem I WhobreyCanada2025-06-14Chanay, Jeffrey A Esq NEGOTIATION62Stephen Shaw
1029Jeanfrancois P GlickFrance2025-05-30Buckley Miller Wright NEGOTIATION99Amy Elsner
1030Kaitlin P PoquetteGermany2025-05-17Commercial Press NEGOTIATION89Ivan Magalhaes
1031Jones Q FlosiUnited Kingdom2025-05-22Benton, John B Jr NEW43Ivan Magalhaes
1032Costa K NestleArgentina2025-05-31Truhlar And Truhlar Attys RENEWAL4Bernardo Dominic
1033Octavia I GarufiAustralia2025-05-21Rangoni Of Florence QUALIFIED71Ivan Magalhaes
1034Silvio F GarufiArgentina2025-05-18Rangoni Of Florence NEW46Xuxue Feng
1035Jennifer D WaycottAustralia2025-06-11Chanay, Jeffrey A Esq UNQUALIFIED70Xuxue Feng
1036Murillo S CaldareraJapan2025-06-04Feltz Printing Service RENEWAL46Asiya Javayant
1037Misaki H FerenczBrazil2025-05-20Benton, John B Jr PROPOSAL66Onyama Limba
1038Silvio Z KuskoFrance2025-05-23Feltz Printing Service NEW91Asiya Javayant
1039Deepesh R DoeUnited Kingdom2025-05-17Truhlar And Truhlar Attys PROPOSAL75Stephen Shaw
1040Mujtaba V SchemmerJapan2025-06-07Feiner Bros RENEWAL14Stephen Shaw
1041Cody Z MaletJapan2025-06-06King, Christopher A Esq PROPOSAL31Bernardo Dominic
1042Isabel V PerinAustralia2025-05-30Buckley Miller Wright UNQUALIFIED34Ioni Bowcher
1043Juan V FollerArgentina2025-06-10Truhlar And Truhlar Attys PROPOSAL38Asiya Javayant
1044Kadeem Y AlbaresBrazil2025-06-07Dorl, James J Esq UNQUALIFIED2Elwin Sharvill
1045Rodrigues H CaldareraFrance2025-05-26Commercial Press NEGOTIATION78Elwin Sharvill
1046Kadeem I FlosiGermany2025-06-10King, Christopher A Esq QUALIFIED17Elwin Sharvill
1047Jefferson P AmigonArgentina2025-06-08Printing Dimensions QUALIFIED77Ioni Bowcher
1048Jennifer B VenereGermany2025-06-01Rousseaux, Michael Esq QUALIFIED22Ioni Bowcher
1049Jennifer F SergiCanada2025-05-21Rousseaux, Michael Esq RENEWAL26Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Clifford A GlickSpainAmy Elsner RENEWAL
David V TollnerUnited KingdomBernardo Dominic NEW
Aika G MaletGermanyXuxue Feng NEGOTIATION
Mujtaba A WieserGermanyAnna Fali UNQUALIFIED
Isabel F SchemmerIndiaIvan Magalhaes RENEWAL
Izzy C CampainFranceIvan Magalhaes NEGOTIATION
Jeanfrancois C OstroskyRussiaIoni Bowcher UNQUALIFIED
Mayumi H PerinIndiaXuxue Feng QUALIFIED
Isabel W ButtRussiaAmy Elsner UNQUALIFIED
Chavez Y TollnerItalyAsiya Javayant PROPOSAL
Smith V TollnerArgentinaStephen Shaw PROPOSAL
Aika U CaudyAustraliaBernardo Dominic NEW
Antonio K IturbideAustraliaIoni Bowcher UNQUALIFIED
Smith F FollerItalyElwin Sharvill QUALIFIED
Aruna K BowleyUnited KingdomAmy Elsner UNQUALIFIED
Clifford Q ButtCanadaOnyama Limba UNQUALIFIED
Tony N StockhamUnited KingdomStephen Shaw PROPOSAL
Costa Y GillianArgentinaAmy Elsner UNQUALIFIED
Costa V DoeIndiaIoni Bowcher PROPOSAL
Julie W TollnerIndiaOnyama Limba NEW
Antonio K BologniaFranceBernardo Dominic PROPOSAL
Munro X RimGermanyAmy Elsner NEW
Silvio K WieserRussiaXuxue Feng UNQUALIFIED
Munro B StockhamGermanyIvan Magalhaes QUALIFIED
Tony T ChuiUnited KingdomElwin Sharvill QUALIFIED
Darci S ButtFranceStephen Shaw NEW
Munro I MarrierBrazilElwin Sharvill QUALIFIED
Darci I OstroskyCanadaElwin Sharvill NEW
Sinclair P MarrierUnited KingdomXuxue Feng PROPOSAL
Maria T WhobreyUnited KingdomXuxue Feng NEW
Jeanfrancois U OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Leja I SchemmerGermanyXuxue Feng UNQUALIFIED
Jeanfrancois I FlosiRussiaXuxue Feng NEW
Ivar H KuskoJapanXuxue Feng NEW
Mujtaba H CampainJapanAnna Fali UNQUALIFIED
Isabel D CaldareraFranceAsiya Javayant QUALIFIED
Johnson U FerenczFranceAnna Fali PROPOSAL
Emily W IturbideCanadaOnyama Limba PROPOSAL
Julie Q SchemmerIndiaAnna Fali RENEWAL
Costa U PoquetteSpainBernardo Dominic PROPOSAL
Darci H BologniaUnited KingdomElwin Sharvill QUALIFIED
Leja W GarufiJapanAsiya Javayant NEGOTIATION
Jennifer R FlosiArgentinaStephen Shaw UNQUALIFIED
Mayumi V FollerFranceStephen Shaw NEW
Adams M ButtItalyXuxue Feng RENEWAL
Morrow O KolmetzBrazilIoni Bowcher NEGOTIATION
Mujtaba L GlickCanadaStephen Shaw RENEWAL
Adams F InouyeJapanIvan Magalhaes NEGOTIATION
Ashley F StockhamFranceStephen Shaw UNQUALIFIED
Tony A DoeArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Smith V Glick
Emily J Whobrey
Johnson C Rulapaugh
Antonio O Poquette
Aruna G Albares
Mayumi J Whobrey
Smith E Schemmer
Greenwood M Bowley
Nicolas G Vocelka
Faith S Caudy
Antonio Y Malet
Morrow Q Gaucho
Ashley P Dilliard
Jeanfrancois I Kusko
Stacey L Nicka
Salvatore U Waycott
Adams W Doe
Arvin R Wieser
Rodrigues S Glick
Isabel I Amigon
Stacey K Foller
Kaitlin C Gaucho
Octavia S Briddick
Isabel E Malet
Nicolas H Gillian
Chavez Q Gaucho
Alejandro Q Whobrey
Jennifer Z Glick
Faith Y Stenseth
Wickens S Venere
Isabel L Poquette
Cody T Sergi
Octavia J Albares
Aruna U Kusko
Faith Z Nicka
Maisha Y Chui
Izzy N Shinko
Johnson R Morasca
Kadeem D Butt
Aruna C Nestle
Sinclair K Dilliard
Costa M Ruta
David N Nicka
Greenwood S Butt
Jefferson E Iturbide
Aruna Z Rim
Maria Q Morasca
Antonio Z Malet
Johnson Y Kolmetz
Sinclair Z Ruta
IdCountryDate
1000United Kingdom2025-06-09
1001Canada2025-05-20
1002Russia2025-05-26
1003Argentina2025-06-04
1004Germany2025-06-03
1005Russia2025-05-18
1006Japan2025-05-29
1007Brazil2025-06-05
1008Brazil2025-06-01
1009Spain2025-06-05
1010India2025-06-12
1011Brazil2025-06-10
1012United Kingdom2025-06-06
1013France2025-06-15
1014United Kingdom2025-06-05
1015France2025-05-25
1016Argentina2025-05-27
1017Brazil2025-06-13
1018Japan2025-06-05
1019Australia2025-06-01
1020Argentina2025-06-03
1021Germany2025-06-14
1022Italy2025-06-14
1023United Kingdom2025-06-14
1024Australia2025-05-30
1025Canada2025-05-25
1026Italy2025-05-17
1027India2025-05-22
1028Spain2025-06-03
1029Canada2025-05-17
1030India2025-05-27
1031Italy2025-06-11
1032Germany2025-06-09
1033France2025-06-15
1034Argentina2025-06-14
1035Spain2025-05-18
1036Spain2025-06-01
1037India2025-05-27
1038Australia2025-06-05
1039Brazil2025-06-15
1040India2025-06-14
1041France2025-05-27
1042Spain2025-06-07
1043Canada2025-06-01
1044Argentina2025-05-19
1045Italy2025-06-01
1046France2025-06-08
1047Australia2025-06-08
1048United Kingdom2025-05-26
1049India2025-05-19

On-Demand Data

NameIdCountryDate
Stacey A Albares1000Japan2025-06-07
Jeanfrancois V Briddick1001Brazil2025-06-03
Leja G Vocelka1002United Kingdom2025-06-06
James S Wieser1003Russia2025-06-12
Morrow B Ferencz1004Italy2025-05-29
Jennifer A Foller1005Germany2025-05-20
Alejandro E Caldarera1006Japan2025-06-13
Aruna O Oldroyd1007India2025-05-26
Wickens T Ostrosky1008Russia2025-06-01
David H Dilliard1009Spain2025-05-19
Emily X Bowley1010Argentina2025-05-19
Salvatore K Amigon1011India2025-06-09
Mujtaba R Schemmer1012United Kingdom2025-05-22
Rodrigues Q Perin1013France2025-05-29
Claire R Bolognia1014Russia2025-05-17
Silvio N Malet1015India2025-06-10
Clifford E Figeroa1016Canada2025-05-28
Mujtaba B Tollner1017Argentina2025-06-08
Wickens C Saylors1018Argentina2025-06-14
Arvin Y Doe1019Argentina2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo M RoysterBrazilAnna Fali PROPOSAL
Wickens X InouyeJapanIoni Bowcher NEW
Deepesh W CaldareraBrazilAnna Fali RENEWAL
Alejandro E MarrierSpainAnna Fali QUALIFIED
David P DoeFranceXuxue Feng PROPOSAL
Morrow O SchemmerCanadaOnyama Limba UNQUALIFIED
Mujtaba T MaletJapanAsiya Javayant UNQUALIFIED
Ivar S SergiArgentinaBernardo Dominic QUALIFIED
Costa J DoeSpainAmy Elsner NEGOTIATION
Costa R AlbaresArgentinaOnyama Limba NEGOTIATION
Johnson V WhobreySpainAmy Elsner UNQUALIFIED
Jennifer D AlbaresGermanyAmy Elsner PROPOSAL
James Z FerenczAustraliaOnyama Limba PROPOSAL
Jones N KuskoAustraliaAmy Elsner RENEWAL
Deepesh W AmigonGermanyElwin Sharvill NEGOTIATION
Silvio L IturbideItalyIoni Bowcher QUALIFIED
Darci W RoysterRussiaXuxue Feng RENEWAL
Jeanfrancois H GauchoAustraliaOnyama Limba NEGOTIATION
Costa F AlbaresRussiaAnna Fali QUALIFIED
Claire M StockhamUnited KingdomAsiya Javayant PROPOSAL
Jones S BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Aika Y DarakjyArgentinaStephen Shaw UNQUALIFIED
Salvatore I BologniaIndiaAnna Fali PROPOSAL
Kadeem M IturbideCanadaIvan Magalhaes NEGOTIATION
Sinclair D DoeIndiaXuxue Feng RENEWAL
Smith F OldroydRussiaAsiya Javayant UNQUALIFIED
Jones E MaletArgentinaAnna Fali RENEWAL
Jennifer C AlbaresGermanyAnna Fali QUALIFIED
Costa K FerenczSpainAmy Elsner RENEWAL
Ashley O BologniaArgentinaOnyama Limba NEW
Francesco D CampainCanadaIoni Bowcher UNQUALIFIED
Wickens O SlusarskiCanadaIoni Bowcher NEW
Deepesh R SchemmerCanadaIoni Bowcher UNQUALIFIED
Alejandro Y ShinkoArgentinaAnna Fali RENEWAL
Maisha I ShinkoAustraliaBernardo Dominic NEW
Maria H VenereJapanIvan Magalhaes RENEWAL
Isabel N AlbaresArgentinaOnyama Limba PROPOSAL
Jennifer V VenereJapanBernardo Dominic RENEWAL
Ricardo O NestleSpainXuxue Feng QUALIFIED
Octavia U KolmetzCanadaXuxue Feng 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>