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
Stacey P VenereSpainAsiya Javayant QUALIFIED
Mujtaba G RulapaughCanadaAsiya Javayant UNQUALIFIED
Alejandro C DoeItalyBernardo Dominic NEGOTIATION
Izzy G WaycottArgentinaAnna Fali QUALIFIED
Kaitlin M OstroskyCanadaAmy Elsner NEGOTIATION
Nicolas J VenereJapanAsiya Javayant NEGOTIATION
Tony N OstroskyRussiaXuxue Feng NEW
Salvatore D InouyeJapanAmy Elsner RENEWAL
Wickens D FerenczJapanBernardo Dominic QUALIFIED
Nicolas E GauchoRussiaElwin Sharvill NEW
Francesco Z BriddickSpainAnna Fali NEW
Misaki Q PerinAustraliaStephen Shaw NEW
Greenwood H CaudySpainIoni Bowcher QUALIFIED
Jennifer A PaprockiSpainBernardo Dominic NEGOTIATION
Morrow H FlosiJapanIvan Magalhaes PROPOSAL
Johnson F DilliardFranceStephen Shaw RENEWAL
Greenwood A ChuiBrazilElwin Sharvill PROPOSAL
Jefferson B WhobreyJapanOnyama Limba UNQUALIFIED
Deepesh R TollnerSpainXuxue Feng NEGOTIATION
Costa X MaletRussiaBernardo Dominic PROPOSAL
Arvin R RutaArgentinaAmy Elsner UNQUALIFIED
Sinclair Y GillianItalyAnna Fali UNQUALIFIED
Adams W PerinUnited KingdomAnna Fali RENEWAL
Smith W InouyeFranceElwin Sharvill QUALIFIED
Darci M SergiGermanyAmy Elsner PROPOSAL
Mujtaba R MarrierRussiaAsiya Javayant UNQUALIFIED
Maria O TollnerCanadaBernardo Dominic QUALIFIED
Isabel O NestleItalyOnyama Limba NEGOTIATION
Aditya C AmigonItalyXuxue Feng RENEWAL
Sinclair Q BologniaBrazilAnna Fali UNQUALIFIED
Silvio U BowleySpainStephen Shaw RENEWAL
Octavia Q VocelkaSpainAnna Fali UNQUALIFIED
Jefferson J GauchoFranceStephen Shaw UNQUALIFIED
Chavez I CaldareraAustraliaXuxue Feng NEW
Tony L InouyeItalyStephen Shaw NEGOTIATION
Juan O AlbaresAustraliaIoni Bowcher NEGOTIATION
Maria F ButtItalyIvan Magalhaes NEW
Rodrigues M PoquetteGermanyAnna Fali QUALIFIED
Aika H DoeRussiaElwin Sharvill PROPOSAL
Stacey N MacleadUnited KingdomXuxue Feng NEGOTIATION
Claire Z BologniaSpainXuxue Feng UNQUALIFIED
Nicolas V BowleyArgentinaXuxue Feng QUALIFIED
Maria R GauchoArgentinaIvan Magalhaes QUALIFIED
Antonio R MaletFranceElwin Sharvill NEGOTIATION
Ivar V FigeroaUnited KingdomOnyama Limba PROPOSAL
Smith J OldroydItalyAsiya Javayant NEGOTIATION
Jefferson D MarrierSpainAmy Elsner UNQUALIFIED
Jefferson J CaldareraGermanyAsiya Javayant NEW
Silvio J GauchoFranceXuxue Feng PROPOSAL
Kaitlin L NickaBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues N MarrierFranceAsiya Javayant NEW
Ivar S StensethUnited KingdomBernardo Dominic NEW
Faith D AlbaresCanadaOnyama Limba UNQUALIFIED
Ashley M RulapaughIndiaIoni Bowcher PROPOSAL
Maria K MaletJapanIoni Bowcher UNQUALIFIED
Sinclair P ChuiJapanAsiya Javayant NEW
Chavez R GillianAustraliaAnna Fali NEW
Aditya C PerinFranceXuxue Feng NEGOTIATION
Izzy V CaudyJapanAsiya Javayant NEGOTIATION
Nicolas N DarakjyIndiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa E VocelkaItaly2026-07-19Rousseaux, Michael Esq PROPOSAL89Bernardo Dominic
1001Octavia T SlusarskiUnited Kingdom2026-06-28Feltz Printing Service RENEWAL77Asiya Javayant
1002Adams I SlusarskiUnited Kingdom2026-06-27Commercial Press NEW73Onyama Limba
1003Emily Z RimArgentina2026-07-21Chemel, James L Cpa UNQUALIFIED74Xuxue Feng
1004Cody K ShinkoSpain2026-06-23King, Christopher A Esq NEW17Amy Elsner
1005Cody Q KuskoAustralia2026-07-02King, Christopher A Esq PROPOSAL25Amy Elsner
1006Maisha B FlosiFrance2026-07-03Feiner Bros NEW0Xuxue Feng
1007Nicolas R CaldareraItaly2026-07-21Truhlar And Truhlar Attys UNQUALIFIED35Anna Fali
1008Cody N BowleyRussia2026-06-25Feltz Printing Service QUALIFIED45Amy Elsner
1009Silvio G DoeItaly2026-06-22Chanay, Jeffrey A Esq QUALIFIED42Stephen Shaw
1010Smith C VocelkaGermany2026-07-02Printing Dimensions NEW11Elwin Sharvill
1011Octavia M RimSpain2026-07-18Printing Dimensions NEW42Bernardo Dominic
1012Faith S OldroydGermany2026-07-08Rangoni Of Florence QUALIFIED40Ivan Magalhaes
1013Sinclair R SlusarskiFrance2026-07-14Dorl, James J Esq NEW73Stephen Shaw
1014Claire M CaldareraIndia2026-06-26Feltz Printing Service RENEWAL84Asiya Javayant
1015Adams I BriddickItaly2026-07-03Rangoni Of Florence UNQUALIFIED24Elwin Sharvill
1016Jennifer Z BowleyGermany2026-07-09Truhlar And Truhlar Attys QUALIFIED92Anna Fali
1017James N PoquetteIndia2026-06-30Benton, John B Jr PROPOSAL43Xuxue Feng
1018Nicolas W SlusarskiRussia2026-06-22Printing Dimensions NEGOTIATION89Stephen Shaw
1019Salvatore S NestleBrazil2026-07-17King, Christopher A Esq PROPOSAL43Ioni Bowcher
1020James R StensethItaly2026-06-29Morlong Associates NEGOTIATION12Elwin Sharvill
1021Leja P SergiGermany2026-07-09Rangoni Of Florence NEW11Stephen Shaw
1022Darci S GarufiIndia2026-07-08Chapman, Ross E Esq PROPOSAL99Onyama Limba
1023Emily K VenereAustralia2026-06-27Buckley Miller Wright NEW52Onyama Limba
1024Mujtaba X RimAustralia2026-07-11Commercial Press NEW7Anna Fali
1025Jefferson G AlbaresIndia2026-07-06Chemel, James L Cpa RENEWAL89Asiya Javayant
1026Johnson X GillianFrance2026-07-06Chapman, Ross E Esq PROPOSAL88Elwin Sharvill
1027Arvin F DoeArgentina2026-06-27Benton, John B Jr UNQUALIFIED94Anna Fali
1028Misaki Z FigeroaItaly2026-07-05Buckley Miller Wright RENEWAL80Stephen Shaw
1029Jennifer L RoysterRussia2026-07-01Buckley Miller Wright UNQUALIFIED53Elwin Sharvill
1030Greenwood L FigeroaFrance2026-07-08Commercial Press NEW45Xuxue Feng
1031Jefferson N SlusarskiItaly2026-06-22King, Christopher A Esq NEW83Onyama Limba
1032Ashley J FigeroaBrazil2026-06-28Chapman, Ross E Esq UNQUALIFIED6Ioni Bowcher
1033David M FlosiSpain2026-07-02Benton, John B Jr UNQUALIFIED43Xuxue Feng
1034Kadeem L GarufiGermany2026-07-16Feiner Bros NEGOTIATION35Amy Elsner
1035Arvin A WieserCanada2026-07-10King, Christopher A Esq RENEWAL44Ivan Magalhaes
1036Arvin N OldroydRussia2026-06-26Buckley Miller Wright UNQUALIFIED15Anna Fali
1037Ricardo B NestleSpain2026-07-21Printing Dimensions RENEWAL38Anna Fali
1038Ricardo S FlosiAustralia2026-07-14Chanay, Jeffrey A Esq QUALIFIED1Onyama Limba
1039Alejandro I FerenczCanada2026-07-20Truhlar And Truhlar Attys NEGOTIATION62Onyama Limba
1040Maria V FlosiSpain2026-07-21Buckley Miller Wright NEW74Ivan Magalhaes
1041Leja P MarrierIndia2026-07-07Feiner Bros NEW40Asiya Javayant
1042Leja H StensethCanada2026-07-16King, Christopher A Esq PROPOSAL99Stephen Shaw
1043David X InouyeGermany2026-07-01Chanay, Jeffrey A Esq PROPOSAL63Amy Elsner
1044Jeanfrancois X WhobreyJapan2026-06-25Feiner Bros RENEWAL91Anna Fali
1045Ashley S PerinItaly2026-06-25Chapman, Ross E Esq PROPOSAL24Xuxue Feng
1046Stacey A GarufiUnited Kingdom2026-07-15King, Christopher A Esq NEGOTIATION58Xuxue Feng
1047Julie S OstroskyGermany2026-07-05Truhlar And Truhlar Attys RENEWAL64Bernardo Dominic
1048Alejandro L NickaItaly2026-07-09Buckley Miller Wright QUALIFIED29Anna Fali
1049Aika M MarrierRussia2026-07-06Benton, John B Jr NEGOTIATION59Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba F AmigonArgentinaIoni Bowcher PROPOSAL
Ashley I CampainCanadaIoni Bowcher UNQUALIFIED
Jones Y NestleIndiaIvan Magalhaes QUALIFIED
Leja Y FigeroaRussiaIoni Bowcher QUALIFIED
Cody T TollnerFranceAnna Fali QUALIFIED
Stacey S TollnerJapanXuxue Feng NEW
Leon G WieserItalyIoni Bowcher NEW
Jennifer Z MaletSpainAmy Elsner UNQUALIFIED
Smith L AlbaresAustraliaElwin Sharvill NEGOTIATION
Mayumi Y FerenczFranceAsiya Javayant NEGOTIATION
Deepesh V PaprockiJapanAmy Elsner UNQUALIFIED
Leon P FlosiArgentinaIvan Magalhaes NEW
Sinclair R CampainUnited KingdomStephen Shaw QUALIFIED
Francesco K GillianFranceStephen Shaw NEW
Clifford P TollnerJapanOnyama Limba QUALIFIED
Smith S BologniaBrazilAnna Fali NEGOTIATION
Sinclair E ButtItalyElwin Sharvill NEW
Mayumi N FollerAustraliaElwin Sharvill PROPOSAL
Murillo O KolmetzIndiaXuxue Feng QUALIFIED
Darci C SlusarskiArgentinaIoni Bowcher NEGOTIATION
Munro D InouyeAustraliaStephen Shaw NEGOTIATION
Claire O FlosiItalyElwin Sharvill NEGOTIATION
Antonio J SlusarskiAustraliaOnyama Limba UNQUALIFIED
Leon B BowleyGermanyAnna Fali PROPOSAL
Chavez N SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Aditya N BologniaBrazilElwin Sharvill UNQUALIFIED
Mujtaba A NestleAustraliaElwin Sharvill NEW
Maria T OstroskyIndiaOnyama Limba NEW
Stacey T OldroydFranceStephen Shaw RENEWAL
Kadeem C SlusarskiArgentinaOnyama Limba NEW
Rodrigues W FlosiArgentinaElwin Sharvill NEGOTIATION
Maria V SaylorsRussiaOnyama Limba NEGOTIATION
Clifford X MarrierAustraliaAsiya Javayant QUALIFIED
Tony G NickaIndiaBernardo Dominic NEGOTIATION
Jeanfrancois C DilliardItalyIoni Bowcher NEW
Aruna L NestleJapanOnyama Limba UNQUALIFIED
Kadeem X DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Chavez V SlusarskiGermanyOnyama Limba UNQUALIFIED
Leon B SlusarskiSpainOnyama Limba QUALIFIED
Maisha M BowleyItalyStephen Shaw RENEWAL
Morrow D OstroskyIndiaIoni Bowcher PROPOSAL
Misaki D WieserBrazilAmy Elsner RENEWAL
Maria E MarrierCanadaStephen Shaw NEGOTIATION
Jefferson N SaylorsSpainAnna Fali PROPOSAL
Aditya H StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Jones T FigeroaBrazilAmy Elsner UNQUALIFIED
Silvio X WaycottJapanOnyama Limba QUALIFIED
Antonio C PerinArgentinaElwin Sharvill PROPOSAL
Jefferson I DoeItalyBernardo Dominic RENEWAL
Tony M DilliardCanadaAnna Fali PROPOSAL
Frozen Columns
Name
Mujtaba X Rim
Maria X Nestle
Antonio R Royster
Kaitlin Z Figeroa
Leja W Paprocki
Alejandro N Flosi
Johnson V Whobrey
David N Iturbide
Jones R Venere
Jeanfrancois O Figeroa
Kaitlin F Inouye
Greenwood K Marrier
Aruna F Slusarski
Jefferson J Venere
Salvatore K Marrier
Mujtaba N Marrier
Jones Q Morasca
Morrow S Oldroyd
Stacey Q Ostrosky
Ashley Z Marrier
Antonio Q Slusarski
Darci C Shinko
Wickens F Nestle
Wickens M Ferencz
Alejandro P Caldarera
Cody X Oldroyd
Octavia D Tollner
Jefferson U Poquette
Leon M Iturbide
Rodrigues N Nicka
Leja Q Nestle
Greenwood L Stockham
Morrow A Darakjy
Stacey L Kusko
Francesco O Tollner
Munro E Malet
Julie W Wieser
Greenwood H Vocelka
Rodrigues H Venere
Maria B Albares
Aditya R Stockham
Faith Z Schemmer
Maria L Ostrosky
Octavia N Bolognia
Aditya B Albares
Aruna M Kolmetz
Isabel Q Dilliard
Faith D Stenseth
Julie P Schemmer
James M Kusko
IdCountryDate
1000Italy2026-07-08
1001United Kingdom2026-07-18
1002United Kingdom2026-06-27
1003India2026-07-07
1004Japan2026-07-02
1005India2026-06-27
1006Italy2026-07-10
1007Argentina2026-07-04
1008India2026-07-20
1009Spain2026-07-21
1010France2026-06-24
1011Brazil2026-07-09
1012Brazil2026-07-08
1013Germany2026-07-08
1014Russia2026-06-22
1015Argentina2026-07-20
1016Italy2026-07-01
1017Brazil2026-06-28
1018Japan2026-07-03
1019Spain2026-07-13
1020Italy2026-07-19
1021India2026-07-15
1022France2026-06-25
1023Germany2026-07-09
1024Italy2026-06-27
1025Spain2026-07-04
1026France2026-07-06
1027Russia2026-07-19
1028United Kingdom2026-07-13
1029Japan2026-06-23
1030India2026-06-23
1031Italy2026-06-22
1032Brazil2026-06-24
1033Australia2026-07-01
1034Russia2026-06-28
1035Italy2026-07-13
1036Spain2026-07-06
1037United Kingdom2026-07-05
1038Russia2026-06-24
1039Spain2026-06-26
1040Italy2026-07-06
1041Australia2026-06-22
1042Japan2026-07-21
1043Spain2026-06-22
1044France2026-07-07
1045United Kingdom2026-07-06
1046United Kingdom2026-07-21
1047Brazil2026-07-10
1048Germany2026-06-30
1049United Kingdom2026-07-08

On-Demand Data

NameIdCountryDate
Leja M Dilliard1000Spain2026-06-25
Mayumi D Caudy1001Russia2026-07-01
Aika S Schemmer1002Russia2026-06-24
Jeanfrancois Y Flosi1003Russia2026-06-22
Arvin Y Rim1004Spain2026-07-03
Greenwood J Gillian1005Canada2026-07-19
Arvin X Nestle1006Brazil2026-07-20
Claire K Stenseth1007Argentina2026-06-26
Aika T Vocelka1008India2026-07-11
Clifford M Kolmetz1009Italy2026-06-22
Maisha T Vocelka1010Argentina2026-07-10
Ashley I Caldarera1011Russia2026-07-01
Ashley E Perin1012Argentina2026-06-23
Mayumi W Paprocki1013Germany2026-07-19
Maria H Marrier1014Argentina2026-06-29
Mujtaba H Rim1015Italy2026-06-28
Aika S Waycott1016Brazil2026-07-04
Silvio O Wieser1017Japan2026-07-09
Misaki D Stockham1018Italy2026-07-02
Ricardo X Kolmetz1019Japan2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki H ButtAustraliaAmy Elsner NEW
Alejandro K PoquetteUnited KingdomOnyama Limba RENEWAL
Faith J DarakjyItalyAnna Fali UNQUALIFIED
Octavia O BowleyCanadaXuxue Feng NEW
Murillo D CaudyRussiaAsiya Javayant QUALIFIED
Mayumi F MorascaAustraliaIvan Magalhaes RENEWAL
Sinclair C WaycottFranceStephen Shaw NEW
Alejandro L WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey U AlbaresItalyAmy Elsner RENEWAL
Aika C SlusarskiGermanyStephen Shaw RENEWAL
Misaki T GillianIndiaXuxue Feng RENEWAL
Deepesh O ShinkoAustraliaAnna Fali NEGOTIATION
Tony B CampainSpainAnna Fali PROPOSAL
Darci O FerenczUnited KingdomIvan Magalhaes RENEWAL
Ashley K BowleyUnited KingdomXuxue Feng QUALIFIED
Ashley O PerinSpainStephen Shaw PROPOSAL
Sinclair T PerinIndiaXuxue Feng QUALIFIED
Kaitlin B WhobreyBrazilStephen Shaw RENEWAL
Maria B BowleySpainIvan Magalhaes RENEWAL
Jefferson M SergiGermanyAmy Elsner UNQUALIFIED
Aditya B VenereGermanyBernardo Dominic RENEWAL
Salvatore Z SaylorsGermanyIvan Magalhaes NEW
Salvatore Q WaycottJapanXuxue Feng NEGOTIATION
Deepesh V OldroydRussiaAnna Fali NEGOTIATION
Maria P MacleadJapanAsiya Javayant QUALIFIED
Faith T StensethSpainOnyama Limba NEGOTIATION
Clifford L StockhamIndiaAmy Elsner PROPOSAL
Julie C NestleArgentinaBernardo Dominic RENEWAL
Ricardo B SaylorsIndiaBernardo Dominic NEW
Ivar P WhobreyRussiaAmy Elsner RENEWAL
Tony Z MorascaAustraliaOnyama Limba UNQUALIFIED
Jennifer K RoysterItalyStephen Shaw NEGOTIATION
Tony N SchemmerAustraliaAmy Elsner PROPOSAL
Deepesh R WhobreyFranceAnna Fali RENEWAL
Mujtaba D OldroydBrazilOnyama Limba RENEWAL
Jeanfrancois H FigeroaSpainIvan Magalhaes NEGOTIATION
Antonio D ButtRussiaAmy Elsner QUALIFIED
Smith C KuskoFranceAnna Fali RENEWAL
Smith R MarrierSpainIoni Bowcher UNQUALIFIED
Jones I StensethRussiaElwin Sharvill UNQUALIFIED

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