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
Greenwood M KolmetzItalyOnyama Limba UNQUALIFIED
Tony G DarakjyRussiaStephen Shaw RENEWAL
Greenwood X FlosiUnited KingdomOnyama Limba QUALIFIED
Ashley C GlickAustraliaStephen Shaw RENEWAL
Rodrigues G GauchoAustraliaXuxue Feng QUALIFIED
Leja L FigeroaItalyElwin Sharvill QUALIFIED
Ricardo P WhobreyJapanStephen Shaw NEW
Jones P StockhamRussiaAmy Elsner UNQUALIFIED
Jeanfrancois K TollnerSpainOnyama Limba PROPOSAL
Nicolas N CampainIndiaBernardo Dominic NEW
Ivar L NickaBrazilXuxue Feng PROPOSAL
Cody I MarrierAustraliaAnna Fali QUALIFIED
Johnson W PaprockiAustraliaElwin Sharvill UNQUALIFIED
Chavez I CaldareraSpainXuxue Feng QUALIFIED
Leja R SaylorsBrazilIoni Bowcher RENEWAL
Adams N MacleadFranceAnna Fali NEGOTIATION
Isabel U RutaArgentinaAsiya Javayant NEW
Julie U WieserArgentinaAsiya Javayant NEGOTIATION
Claire N SchemmerIndiaXuxue Feng UNQUALIFIED
Stacey K NestleBrazilElwin Sharvill UNQUALIFIED
Ashley P MarrierArgentinaOnyama Limba UNQUALIFIED
Julie K CaldareraCanadaIvan Magalhaes UNQUALIFIED
Smith H WhobreyCanadaAnna Fali PROPOSAL
Maria R WhobreyBrazilAnna Fali NEGOTIATION
Misaki E KolmetzCanadaStephen Shaw QUALIFIED
Emily V GauchoCanadaOnyama Limba UNQUALIFIED
Faith K KuskoItalyBernardo Dominic QUALIFIED
Tony I RulapaughArgentinaAmy Elsner UNQUALIFIED
Adams A WhobreyUnited KingdomXuxue Feng PROPOSAL
Rodrigues Z FigeroaIndiaIvan Magalhaes QUALIFIED
Nicolas L RoysterIndiaOnyama Limba RENEWAL
Izzy P CaudyBrazilAnna Fali RENEWAL
Deepesh J MacleadFranceBernardo Dominic QUALIFIED
Rodrigues D MarrierFranceAmy Elsner RENEWAL
Maisha H GlickGermanyAsiya Javayant PROPOSAL
Aditya P InouyeCanadaAnna Fali UNQUALIFIED
Chavez E InouyeIndiaAsiya Javayant NEW
Ivar S GlickSpainBernardo Dominic NEW
Ivar G StensethRussiaIoni Bowcher QUALIFIED
Costa W BriddickUnited KingdomIoni Bowcher RENEWAL
David V RoysterUnited KingdomXuxue Feng NEGOTIATION
Emily N NestleItalyStephen Shaw NEGOTIATION
Maisha X WaycottJapanIoni Bowcher RENEWAL
Clifford Q OstroskyFranceAmy Elsner NEGOTIATION
Faith K WhobreyItalyAmy Elsner UNQUALIFIED
Aruna T BowleyAustraliaElwin Sharvill RENEWAL
Kaitlin B OstroskySpainIoni Bowcher PROPOSAL
Aruna P PerinUnited KingdomElwin Sharvill UNQUALIFIED
Costa X KolmetzAustraliaBernardo Dominic UNQUALIFIED
Jefferson E KuskoFranceElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin L RoysterAustraliaAsiya Javayant QUALIFIED
Ashley Y SergiRussiaIoni Bowcher NEGOTIATION
Chavez O BowleyArgentinaStephen Shaw NEW
Misaki X DarakjyJapanOnyama Limba NEGOTIATION
Chavez H NickaCanadaIoni Bowcher UNQUALIFIED
David G InouyeAustraliaAmy Elsner UNQUALIFIED
Ricardo Q PoquetteIndiaAsiya Javayant NEGOTIATION
Rodrigues Q SaylorsGermanyOnyama Limba NEW
Morrow B PerinBrazilElwin Sharvill UNQUALIFIED
Izzy V WaycottRussiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem D RutaSpain2026-07-21Feiner Bros QUALIFIED79Xuxue Feng
1001Ivar G KuskoJapan2026-07-22Benton, John B Jr QUALIFIED1Amy Elsner
1002Stacey I GillianAustralia2026-07-12Morlong Associates NEGOTIATION81Stephen Shaw
1003Salvatore F CampainBrazil2026-08-07Benton, John B Jr NEW13Bernardo Dominic
1004Tony D ChuiUnited Kingdom2026-07-24Commercial Press RENEWAL4Amy Elsner
1005Antonio U ChuiCanada2026-07-26Feiner Bros NEW92Ioni Bowcher
1006Leon U SergiCanada2026-08-08Dorl, James J Esq NEGOTIATION13Amy Elsner
1007Ashley U AmigonArgentina2026-08-06King, Christopher A Esq QUALIFIED16Ivan Magalhaes
1008Emily R ButtRussia2026-07-20Commercial Press UNQUALIFIED60Ioni Bowcher
1009Munro H BriddickUnited Kingdom2026-08-03King, Christopher A Esq UNQUALIFIED45Bernardo Dominic
1010Tony V AmigonItaly2026-07-16Chanay, Jeffrey A Esq NEGOTIATION88Onyama Limba
1011Silvio R RutaArgentina2026-08-04Rousseaux, Michael Esq PROPOSAL19Asiya Javayant
1012Claire M KolmetzAustralia2026-08-09Chanay, Jeffrey A Esq PROPOSAL11Xuxue Feng
1013David Z FlosiItaly2026-08-04Feltz Printing Service UNQUALIFIED66Onyama Limba
1014Tony S AmigonArgentina2026-08-06Dorl, James J Esq PROPOSAL34Stephen Shaw
1015David N GillianRussia2026-08-06Rangoni Of Florence NEGOTIATION56Ioni Bowcher
1016Clifford N WieserIndia2026-07-16Chemel, James L Cpa PROPOSAL43Bernardo Dominic
1017Francesco J ShinkoIndia2026-07-24Morlong Associates PROPOSAL13Xuxue Feng
1018Maisha V NickaGermany2026-07-23Commercial Press QUALIFIED98Bernardo Dominic
1019Nicolas L CaldareraCanada2026-07-13Printing Dimensions UNQUALIFIED37Anna Fali
1020Adams W RimSpain2026-07-17Commercial Press QUALIFIED82Onyama Limba
1021Isabel V WaycottFrance2026-07-14Chapman, Ross E Esq NEGOTIATION8Xuxue Feng
1022Tony H BowleyCanada2026-08-07Commercial Press UNQUALIFIED69Amy Elsner
1023Munro X OldroydSpain2026-08-06Buckley Miller Wright QUALIFIED18Onyama Limba
1024Chavez F MorascaUnited Kingdom2026-07-17King, Christopher A Esq RENEWAL94Ivan Magalhaes
1025Clifford S CaldareraCanada2026-08-01Rangoni Of Florence RENEWAL17Asiya Javayant
1026Jeanfrancois H PoquetteSpain2026-07-20Chanay, Jeffrey A Esq NEW55Elwin Sharvill
1027Antonio V NickaCanada2026-07-15Buckley Miller Wright NEW14Ivan Magalhaes
1028Aruna A VenereUnited Kingdom2026-07-23King, Christopher A Esq QUALIFIED35Ioni Bowcher
1029Misaki G OstroskyGermany2026-07-19Chemel, James L Cpa RENEWAL50Stephen Shaw
1030Wickens Q MacleadAustralia2026-08-06King, Christopher A Esq NEW27Ioni Bowcher
1031Johnson J StensethFrance2026-07-31Buckley Miller Wright PROPOSAL78Amy Elsner
1032Smith P ButtUnited Kingdom2026-08-03Chemel, James L Cpa QUALIFIED15Anna Fali
1033Mayumi O BowleyAustralia2026-07-14Dorl, James J Esq NEGOTIATION95Ivan Magalhaes
1034Aditya C CaudyFrance2026-07-18Truhlar And Truhlar Attys RENEWAL84Anna Fali
1035Misaki K OstroskySpain2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED43Asiya Javayant
1036Ashley W RutaCanada2026-07-23Chemel, James L Cpa NEGOTIATION83Onyama Limba
1037Aruna Z MarrierJapan2026-08-03Rangoni Of Florence RENEWAL30Elwin Sharvill
1038Johnson Y NickaSpain2026-07-23Feltz Printing Service QUALIFIED40Stephen Shaw
1039Ivar Y PoquetteArgentina2026-07-22Commercial Press RENEWAL9Xuxue Feng
1040Antonio Q MaletAustralia2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED22Elwin Sharvill
1041Mujtaba Z DoeRussia2026-07-30Truhlar And Truhlar Attys QUALIFIED37Xuxue Feng
1042Greenwood U WhobreyJapan2026-07-25Benton, John B Jr UNQUALIFIED13Asiya Javayant
1043Tony M FlosiFrance2026-07-26Chanay, Jeffrey A Esq PROPOSAL50Anna Fali
1044Rodrigues K CaudyGermany2026-07-21Commercial Press UNQUALIFIED37Ioni Bowcher
1045Stacey V ButtIndia2026-08-09Rangoni Of Florence NEW41Elwin Sharvill
1046Jefferson T DilliardArgentina2026-07-27Benton, John B Jr UNQUALIFIED65Onyama Limba
1047Deepesh A WhobreyBrazil2026-08-08Feltz Printing Service NEGOTIATION95Asiya Javayant
1048Murillo L MaletItaly2026-07-27Morlong Associates QUALIFIED83Elwin Sharvill
1049Kadeem S BriddickUnited Kingdom2026-07-24Commercial Press UNQUALIFIED81Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leon H BologniaSpainAnna Fali NEGOTIATION
Morrow Z OstroskySpainOnyama Limba NEW
Isabel W KuskoItalyXuxue Feng NEGOTIATION
Wickens E FollerIndiaElwin Sharvill QUALIFIED
Maisha L AlbaresAustraliaAmy Elsner UNQUALIFIED
Leon M SchemmerGermanyAmy Elsner RENEWAL
Isabel E NickaCanadaStephen Shaw UNQUALIFIED
Isabel Q TollnerArgentinaIvan Magalhaes NEGOTIATION
Octavia I PoquetteIndiaOnyama Limba RENEWAL
Jeanfrancois N MorascaIndiaElwin Sharvill NEGOTIATION
Francesco C MorascaItalyBernardo Dominic QUALIFIED
Nicolas N WaycottBrazilAmy Elsner UNQUALIFIED
Aditya S DarakjyUnited KingdomBernardo Dominic RENEWAL
Kaitlin J TollnerJapanXuxue Feng NEGOTIATION
Morrow E VenereItalyAmy Elsner RENEWAL
Darci C ChuiAustraliaBernardo Dominic NEGOTIATION
Misaki N SlusarskiJapanIvan Magalhaes PROPOSAL
Alejandro G MarrierArgentinaStephen Shaw NEGOTIATION
Mujtaba T RulapaughCanadaAnna Fali NEW
Faith W VenereIndiaAsiya Javayant NEGOTIATION
Juan K MaletBrazilElwin Sharvill NEW
Juan P SergiItalyElwin Sharvill NEGOTIATION
Maisha N NickaJapanIoni Bowcher RENEWAL
Aruna Y FlosiJapanIoni Bowcher UNQUALIFIED
David V NickaUnited KingdomStephen Shaw NEGOTIATION
Munro B PoquetteRussiaOnyama Limba NEGOTIATION
David C SlusarskiIndiaAnna Fali PROPOSAL
Mujtaba Y RoysterCanadaBernardo Dominic QUALIFIED
Munro L FollerGermanyBernardo Dominic NEGOTIATION
Clifford A SergiItalyXuxue Feng NEW
Jefferson T RulapaughSpainAnna Fali QUALIFIED
Ashley Y GarufiRussiaAnna Fali RENEWAL
Rodrigues A FollerCanadaIoni Bowcher QUALIFIED
Deepesh K FlosiArgentinaStephen Shaw UNQUALIFIED
James J MorascaUnited KingdomAnna Fali NEW
Kaitlin G CaudyFranceAmy Elsner PROPOSAL
Kaitlin Y MorascaFranceXuxue Feng NEGOTIATION
Arvin M BowleyGermanyAsiya Javayant PROPOSAL
Izzy K NestleItalyIvan Magalhaes QUALIFIED
Jeanfrancois E StensethFranceAnna Fali UNQUALIFIED
Kadeem Q GlickArgentinaAmy Elsner UNQUALIFIED
Adams N NickaBrazilAmy Elsner NEW
Leja V MaletRussiaIvan Magalhaes UNQUALIFIED
Maria I SergiJapanAsiya Javayant PROPOSAL
Antonio N BriddickAustraliaElwin Sharvill RENEWAL
Ivar M GauchoSpainAsiya Javayant PROPOSAL
Rodrigues C OldroydFranceIoni Bowcher RENEWAL
Izzy P MaletGermanyXuxue Feng RENEWAL
David K PerinItalyStephen Shaw NEGOTIATION
Cody R MacleadArgentinaAnna Fali NEGOTIATION
Frozen Columns
Name
Jennifer X Albares
Munro W Perin
Francesco X Ostrosky
Jeanfrancois X Caudy
Silvio J Vocelka
Maria W Oldroyd
Johnson C Sergi
Maisha B Shinko
Arvin G Albares
Sinclair U Briddick
Jones X Amigon
Leja O Saylors
Aika G Gaucho
Aditya O Bowley
Izzy C Vocelka
Jones L Albares
Mayumi X Perin
Maisha T Venere
Alejandro J Stockham
Tony T Butt
Juan S Figeroa
Tony T Caudy
Deepesh N Ruta
Isabel Y Caldarera
Clifford S Poquette
Ricardo V Malet
Jeanfrancois J Tollner
Leja Z Maclead
Costa H Kolmetz
Kadeem H Schemmer
Mujtaba C Chui
Smith S Figeroa
David V Flosi
Ashley T Rim
Kaitlin Y Venere
Kaitlin O Perin
Munro V Gillian
Antonio I Perin
David T Royster
Isabel H Nicka
Isabel P Slusarski
Stacey W Ruta
Mayumi B Slusarski
Deepesh H Figeroa
Rodrigues Q Iturbide
Silvio U Flosi
Jones O Maclead
David L Nestle
Clifford P Kolmetz
Leon V Darakjy
IdCountryDate
1000Brazil2026-07-20
1001Italy2026-08-01
1002Italy2026-07-19
1003India2026-07-15
1004Japan2026-07-30
1005Italy2026-08-03
1006Italy2026-07-30
1007Argentina2026-07-11
1008India2026-07-26
1009Australia2026-07-26
1010Australia2026-08-07
1011France2026-07-23
1012Australia2026-08-04
1013Spain2026-08-06
1014Brazil2026-07-20
1015France2026-07-13
1016Brazil2026-07-15
1017Argentina2026-07-20
1018Australia2026-07-11
1019Italy2026-07-27
1020United Kingdom2026-07-26
1021Spain2026-08-06
1022Brazil2026-07-16
1023Spain2026-07-21
1024France2026-07-21
1025Canada2026-08-09
1026United Kingdom2026-08-05
1027Italy2026-08-02
1028Australia2026-07-23
1029Russia2026-08-03
1030Italy2026-08-01
1031Russia2026-08-03
1032Spain2026-08-04
1033India2026-07-17
1034India2026-08-03
1035Australia2026-07-27
1036Japan2026-07-30
1037Italy2026-07-28
1038France2026-07-25
1039Russia2026-08-01
1040Germany2026-08-02
1041Italy2026-08-05
1042Spain2026-07-29
1043United Kingdom2026-08-06
1044Brazil2026-08-06
1045India2026-07-23
1046Spain2026-07-17
1047Australia2026-07-31
1048Italy2026-07-24
1049France2026-07-28

On-Demand Data

NameIdCountryDate
James G Butt1000Argentina2026-07-25
Jones L Rim1001Australia2026-07-26
Costa N Gillian1002Japan2026-08-06
Jeanfrancois Y Dilliard1003India2026-08-05
Clifford S Maclead1004Spain2026-08-04
Nicolas Z Bowley1005Brazil2026-08-06
Claire M Malet1006Argentina2026-07-18
Rodrigues E Bolognia1007Argentina2026-08-06
Leja C Gaucho1008Argentina2026-08-02
Jefferson E Shinko1009Germany2026-08-05
Jeanfrancois T Rim1010India2026-07-21
Antonio S Ferencz1011Australia2026-07-18
Alejandro G Saylors1012India2026-07-26
Octavia Q Bowley1013Brazil2026-08-06
Maria Z Campain1014Japan2026-07-31
Alejandro P Doe1015United Kingdom2026-08-01
Stacey N Ostrosky1016Argentina2026-07-17
Jefferson N Iturbide1017Germany2026-08-07
Aika V Caldarera1018Russia2026-08-06
Munro R Nestle1019Argentina2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens C FollerJapanAnna Fali NEGOTIATION
Ivar L StensethFranceAmy Elsner QUALIFIED
Mujtaba D GauchoRussiaAsiya Javayant QUALIFIED
Arvin N FollerGermanyAmy Elsner NEW
Octavia P KuskoBrazilOnyama Limba PROPOSAL
Faith Y MorascaRussiaBernardo Dominic NEW
Greenwood G RutaRussiaStephen Shaw UNQUALIFIED
Jennifer D GillianAustraliaElwin Sharvill NEW
Greenwood V NickaUnited KingdomStephen Shaw QUALIFIED
Morrow X BologniaRussiaOnyama Limba PROPOSAL
Salvatore V VenereBrazilIvan Magalhaes RENEWAL
Maisha M MacleadSpainElwin Sharvill UNQUALIFIED
Costa P DoeGermanyOnyama Limba PROPOSAL
Kadeem E SchemmerJapanStephen Shaw NEGOTIATION
Adams H AlbaresCanadaXuxue Feng NEGOTIATION
Francesco W ChuiBrazilStephen Shaw NEGOTIATION
Clifford F KolmetzItalyOnyama Limba PROPOSAL
Costa J CampainIndiaAmy Elsner UNQUALIFIED
Claire E PoquetteItalyElwin Sharvill QUALIFIED
Murillo K MaletItalyAnna Fali RENEWAL
Jeanfrancois U RoysterCanadaIoni Bowcher NEW
Claire E FollerBrazilXuxue Feng RENEWAL
David M NestleItalyOnyama Limba RENEWAL
Morrow S DilliardSpainIvan Magalhaes NEW
Murillo S VenereArgentinaOnyama Limba QUALIFIED
Cody D MarrierItalyStephen Shaw QUALIFIED
Stacey E ShinkoJapanIoni Bowcher UNQUALIFIED
Wickens M FollerCanadaAmy Elsner UNQUALIFIED
Ivar E NestleArgentinaIoni Bowcher NEGOTIATION
Mayumi N PaprockiIndiaXuxue Feng UNQUALIFIED
Aruna J GarufiFranceStephen Shaw NEGOTIATION
Arvin F SergiItalyXuxue Feng NEGOTIATION
Aruna J BowleyRussiaBernardo Dominic PROPOSAL
Silvio I MacleadFranceAmy Elsner UNQUALIFIED
Wickens N GarufiIndiaStephen Shaw RENEWAL
Izzy W AlbaresRussiaXuxue Feng PROPOSAL
Nicolas W MorascaGermanyIvan Magalhaes NEGOTIATION
Kadeem O OldroydRussiaXuxue Feng PROPOSAL
Leja S BologniaJapanAmy Elsner PROPOSAL
Wickens P AmigonFranceAnna Fali 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>