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
Leon P GarufiAustraliaIoni Bowcher QUALIFIED
Mayumi H FerenczRussiaStephen Shaw QUALIFIED
Greenwood J StensethAustraliaXuxue Feng PROPOSAL
Leja B AlbaresGermanyIoni Bowcher NEW
Mayumi T SlusarskiAustraliaXuxue Feng NEGOTIATION
Tony I KuskoUnited KingdomIvan Magalhaes NEW
Jefferson B VenereBrazilAmy Elsner RENEWAL
Francesco W StensethFranceIvan Magalhaes RENEWAL
Juan A OldroydRussiaIvan Magalhaes NEGOTIATION
Jennifer L DilliardFranceElwin Sharvill QUALIFIED
Munro F FlosiJapanIoni Bowcher NEGOTIATION
Maisha Q PoquetteRussiaElwin Sharvill NEGOTIATION
Jefferson Q ShinkoFranceElwin Sharvill QUALIFIED
James V MacleadUnited KingdomElwin Sharvill QUALIFIED
Costa E PaprockiBrazilBernardo Dominic UNQUALIFIED
Morrow A WhobreyCanadaIoni Bowcher PROPOSAL
David K WhobreyArgentinaAnna Fali QUALIFIED
David D WaycottJapanElwin Sharvill NEW
Francesco B SlusarskiArgentinaStephen Shaw NEW
Chavez P OstroskyIndiaIoni Bowcher PROPOSAL
Greenwood U CampainGermanyAmy Elsner RENEWAL
Leon X FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Silvio D CampainAustraliaIoni Bowcher QUALIFIED
Silvio P RoysterIndiaAnna Fali NEW
Wickens C SchemmerItalyOnyama Limba NEGOTIATION
Johnson P BriddickCanadaAsiya Javayant RENEWAL
Kaitlin O KolmetzIndiaAsiya Javayant NEW
Aditya J WaycottGermanyAsiya Javayant RENEWAL
Chavez D NickaSpainAnna Fali RENEWAL
Ricardo J KolmetzJapanIoni Bowcher NEGOTIATION
Aditya Y StensethCanadaXuxue Feng NEGOTIATION
Smith L DarakjyArgentinaIoni Bowcher NEW
Leon R RimIndiaAnna Fali UNQUALIFIED
Maria M ChuiArgentinaIoni Bowcher PROPOSAL
Stacey Y CampainArgentinaAmy Elsner NEW
Aditya R TollnerAustraliaAmy Elsner QUALIFIED
Arvin I AlbaresSpainIoni Bowcher PROPOSAL
Emily Q BologniaCanadaAnna Fali NEGOTIATION
Izzy Z BologniaBrazilElwin Sharvill PROPOSAL
Francesco Q SchemmerJapanOnyama Limba PROPOSAL
Rodrigues J MacleadBrazilElwin Sharvill NEW
Maisha W MarrierArgentinaAnna Fali RENEWAL
Jennifer N MaletAustraliaBernardo Dominic NEGOTIATION
Juan D SchemmerCanadaStephen Shaw RENEWAL
Darci M WieserSpainOnyama Limba RENEWAL
Jennifer E GillianBrazilBernardo Dominic PROPOSAL
Chavez J OstroskyIndiaAmy Elsner UNQUALIFIED
Antonio L MacleadCanadaXuxue Feng NEGOTIATION
Julie B IturbideUnited KingdomOnyama Limba RENEWAL
Darci Q WieserUnited KingdomIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo D BriddickCanadaBernardo Dominic NEGOTIATION
Alejandro D WhobreyArgentinaElwin Sharvill PROPOSAL
Maisha F MaletGermanyBernardo Dominic QUALIFIED
Alejandro X GauchoJapanElwin Sharvill NEGOTIATION
Murillo Z InouyeIndiaBernardo Dominic UNQUALIFIED
Claire C RoysterSpainIoni Bowcher RENEWAL
Cody I TollnerGermanyBernardo Dominic PROPOSAL
Kaitlin F RulapaughIndiaStephen Shaw UNQUALIFIED
Murillo P RutaIndiaXuxue Feng PROPOSAL
Tony Q GillianFranceOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa R VenereGermany2026-06-08Printing Dimensions PROPOSAL77Elwin Sharvill
1001Julie N VocelkaGermany2026-06-10Morlong Associates UNQUALIFIED9Bernardo Dominic
1002Arvin L GillianRussia2026-06-14Buckley Miller Wright RENEWAL95Xuxue Feng
1003Octavia V ButtSpain2026-06-10Morlong Associates NEGOTIATION67Xuxue Feng
1004Silvio M MarrierArgentina2026-06-27Chemel, James L Cpa NEGOTIATION5Elwin Sharvill
1005David M WieserSpain2026-06-23Dorl, James J Esq PROPOSAL29Anna Fali
1006Juan E PaprockiFrance2026-06-24Printing Dimensions RENEWAL54Stephen Shaw
1007Adams Q RimSpain2026-06-28Dorl, James J Esq QUALIFIED71Xuxue Feng
1008Misaki V MaletBrazil2026-06-10Dorl, James J Esq RENEWAL37Bernardo Dominic
1009Aika Z CampainArgentina2026-06-20Rangoni Of Florence QUALIFIED9Bernardo Dominic
1010Maisha E FerenczBrazil2026-06-19Rangoni Of Florence PROPOSAL99Xuxue Feng
1011Murillo C DilliardRussia2026-06-21Commercial Press UNQUALIFIED30Ivan Magalhaes
1012Smith P PaprockiJapan2026-06-17Truhlar And Truhlar Attys QUALIFIED47Xuxue Feng
1013Smith T ChuiFrance2026-06-30Commercial Press QUALIFIED87Onyama Limba
1014Deepesh A RimArgentina2026-06-18Benton, John B Jr UNQUALIFIED30Amy Elsner
1015Johnson F MacleadAustralia2026-06-28Feiner Bros PROPOSAL75Asiya Javayant
1016Smith A BriddickUnited Kingdom2026-06-14King, Christopher A Esq QUALIFIED4Bernardo Dominic
1017Cody I PoquetteBrazil2026-06-27Dorl, James J Esq RENEWAL44Onyama Limba
1018Johnson G DarakjyAustralia2026-06-11Morlong Associates QUALIFIED5Bernardo Dominic
1019Maria R CaudyIndia2026-06-15Rangoni Of Florence UNQUALIFIED21Ivan Magalhaes
1020Rodrigues O VocelkaItaly2026-06-10Feiner Bros PROPOSAL52Elwin Sharvill
1021Adams S BowleyJapan2026-06-20Chemel, James L Cpa PROPOSAL8Onyama Limba
1022Silvio A AlbaresItaly2026-06-15Rangoni Of Florence UNQUALIFIED77Stephen Shaw
1023Murillo V AmigonFrance2026-07-03Chapman, Ross E Esq PROPOSAL50Amy Elsner
1024Rodrigues H RutaCanada2026-06-25Truhlar And Truhlar Attys PROPOSAL31Amy Elsner
1025Murillo R PerinItaly2026-07-06Feiner Bros PROPOSAL21Amy Elsner
1026Greenwood U CampainJapan2026-06-09Rangoni Of Florence NEW89Anna Fali
1027James N NestleItaly2026-06-08King, Christopher A Esq UNQUALIFIED22Onyama Limba
1028Emily K BowleyAustralia2026-06-09Rousseaux, Michael Esq NEW76Anna Fali
1029Johnson I OldroydSpain2026-06-30Feltz Printing Service RENEWAL57Anna Fali
1030Smith K SlusarskiCanada2026-06-16Chemel, James L Cpa RENEWAL37Elwin Sharvill
1031Aika Y RulapaughArgentina2026-06-29Feiner Bros NEGOTIATION90Anna Fali
1032Wickens A FollerUnited Kingdom2026-06-11Printing Dimensions PROPOSAL77Onyama Limba
1033Maria E GauchoIndia2026-07-03Buckley Miller Wright UNQUALIFIED29Stephen Shaw
1034Adams Q MaletRussia2026-06-12Chanay, Jeffrey A Esq QUALIFIED90Anna Fali
1035Jeanfrancois D GillianAustralia2026-06-08King, Christopher A Esq NEGOTIATION28Stephen Shaw
1036Chavez H VocelkaRussia2026-07-01Feltz Printing Service NEGOTIATION84Ivan Magalhaes
1037Wickens W StockhamGermany2026-06-13Feltz Printing Service QUALIFIED28Stephen Shaw
1038Darci L GauchoGermany2026-06-22Chapman, Ross E Esq PROPOSAL19Anna Fali
1039Ashley M BriddickAustralia2026-06-11Dorl, James J Esq NEW15Bernardo Dominic
1040Rodrigues W RoysterRussia2026-07-06King, Christopher A Esq UNQUALIFIED3Amy Elsner
1041Clifford Y ShinkoSpain2026-07-03Chanay, Jeffrey A Esq NEGOTIATION39Stephen Shaw
1042Jones E DilliardCanada2026-06-10Truhlar And Truhlar Attys NEW73Onyama Limba
1043Darci O DarakjyIndia2026-07-03Printing Dimensions UNQUALIFIED92Elwin Sharvill
1044Nicolas T DilliardAustralia2026-06-28Chanay, Jeffrey A Esq PROPOSAL11Stephen Shaw
1045Ashley M AmigonIndia2026-07-01Chemel, James L Cpa UNQUALIFIED50Anna Fali
1046Silvio M ButtCanada2026-06-24Feiner Bros PROPOSAL27Xuxue Feng
1047Tony F KolmetzJapan2026-06-30Truhlar And Truhlar Attys NEGOTIATION86Onyama Limba
1048Aruna K FollerUnited Kingdom2026-06-25Truhlar And Truhlar Attys UNQUALIFIED60Elwin Sharvill
1049David E MarrierArgentina2026-06-25Morlong Associates NEW43Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Claire A InouyeIndiaAmy Elsner NEGOTIATION
Costa B VocelkaJapanXuxue Feng RENEWAL
Stacey R GillianBrazilOnyama Limba PROPOSAL
Johnson L StockhamAustraliaStephen Shaw NEGOTIATION
Kadeem O SaylorsJapanAnna Fali PROPOSAL
Deepesh M AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Jones W SergiSpainXuxue Feng RENEWAL
Antonio Q FlosiSpainBernardo Dominic PROPOSAL
Aika S CampainGermanyIoni Bowcher NEGOTIATION
Mayumi U RutaUnited KingdomOnyama Limba RENEWAL
Morrow K SaylorsGermanyStephen Shaw NEGOTIATION
Claire C SaylorsGermanyIvan Magalhaes PROPOSAL
Deepesh U RoysterCanadaStephen Shaw UNQUALIFIED
Emily H NestleCanadaAmy Elsner PROPOSAL
Kadeem M PerinGermanyAsiya Javayant QUALIFIED
Aika X RulapaughRussiaBernardo Dominic QUALIFIED
Emily E GarufiArgentinaOnyama Limba RENEWAL
Deepesh B BologniaGermanyAnna Fali NEW
Alejandro W NickaFranceIoni Bowcher PROPOSAL
Emily A BriddickGermanyAsiya Javayant NEGOTIATION
Clifford V KuskoFranceStephen Shaw NEW
Chavez O GarufiJapanOnyama Limba QUALIFIED
Morrow H WhobreySpainIvan Magalhaes PROPOSAL
Jeanfrancois G CaldareraUnited KingdomElwin Sharvill PROPOSAL
Mayumi H RimArgentinaBernardo Dominic NEW
Emily Q KolmetzCanadaBernardo Dominic PROPOSAL
Silvio I MaletArgentinaElwin Sharvill PROPOSAL
Adams T KuskoBrazilOnyama Limba RENEWAL
Morrow T NestleIndiaStephen Shaw UNQUALIFIED
Aika L RoysterItalyStephen Shaw PROPOSAL
Stacey P GarufiCanadaAsiya Javayant NEW
Ivar S RoysterArgentinaElwin Sharvill NEW
Francesco M BriddickFranceBernardo Dominic NEW
Alejandro C KolmetzArgentinaIvan Magalhaes PROPOSAL
Julie D StensethAustraliaBernardo Dominic QUALIFIED
Sinclair M BriddickArgentinaAsiya Javayant UNQUALIFIED
Ivar S ButtJapanAsiya Javayant NEGOTIATION
Isabel W WieserGermanyBernardo Dominic UNQUALIFIED
Costa Z ChuiCanadaAnna Fali UNQUALIFIED
Jeanfrancois V MarrierBrazilXuxue Feng RENEWAL
Emily F IturbideUnited KingdomAmy Elsner QUALIFIED
Mujtaba L DoeFranceAnna Fali PROPOSAL
Faith V TollnerCanadaIoni Bowcher NEGOTIATION
James H AlbaresFranceOnyama Limba PROPOSAL
Maria O SlusarskiAustraliaStephen Shaw NEW
Aruna G PaprockiAustraliaIvan Magalhaes RENEWAL
Ashley H CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Aditya P MacleadCanadaElwin Sharvill UNQUALIFIED
Ivar T AmigonAustraliaAmy Elsner NEGOTIATION
James C MaletFranceAmy Elsner RENEWAL
Frozen Columns
Name
Kaitlin A Waycott
Jeanfrancois P Sergi
Kaitlin J Foller
Jennifer E Figeroa
Francesco K Oldroyd
Silvio T Sergi
Julie V Marrier
Morrow J Venere
Francesco B Flosi
Adams B Rim
Salvatore C Stockham
Mujtaba N Ferencz
Nicolas C Poquette
Cody W Amigon
Antonio K Ostrosky
Mayumi Q Butt
Rodrigues W Caldarera
Silvio K Butt
Salvatore M Gillian
Munro V Ruta
Faith R Kolmetz
Murillo U Waycott
Kadeem Z Royster
Stacey S Flosi
Francesco B Kusko
Morrow F Oldroyd
Morrow B Schemmer
Nicolas H Butt
Julie G Schemmer
Maisha V Paprocki
Julie C Rim
Antonio C Caudy
David R Perin
Francesco Q Figeroa
Jeanfrancois E Schemmer
Munro H Schemmer
Rodrigues P Butt
Aruna Z Wieser
Claire H Chui
Alejandro Y Darakjy
Misaki M Paprocki
Murillo T Tollner
Ashley V Chui
Misaki S Glick
Ivar P Kusko
Julie L Inouye
Izzy J Marrier
Chavez V Briddick
David M Maclead
Ricardo Q Sergi
IdCountryDate
1000Russia2026-07-01
1001Canada2026-06-19
1002Argentina2026-06-08
1003India2026-06-24
1004France2026-06-17
1005Brazil2026-06-12
1006France2026-06-28
1007Australia2026-06-19
1008Germany2026-06-18
1009Australia2026-06-14
1010Argentina2026-06-10
1011Canada2026-07-01
1012Russia2026-06-13
1013Argentina2026-06-16
1014Japan2026-06-16
1015Australia2026-07-02
1016France2026-06-28
1017Spain2026-07-04
1018France2026-06-20
1019United Kingdom2026-06-17
1020Italy2026-06-11
1021Spain2026-06-29
1022Brazil2026-06-07
1023Brazil2026-06-29
1024Canada2026-06-16
1025Japan2026-06-20
1026Argentina2026-07-05
1027Japan2026-06-26
1028Russia2026-06-27
1029Brazil2026-06-10
1030Germany2026-06-19
1031Canada2026-06-21
1032Russia2026-07-03
1033Russia2026-07-06
1034Australia2026-06-20
1035Italy2026-06-08
1036India2026-07-01
1037France2026-06-25
1038Russia2026-07-06
1039Australia2026-06-30
1040Germany2026-06-25
1041Australia2026-06-16
1042Japan2026-06-07
1043India2026-06-22
1044France2026-07-03
1045Canada2026-06-12
1046Spain2026-07-03
1047Spain2026-06-10
1048United Kingdom2026-06-10
1049Japan2026-06-22

On-Demand Data

NameIdCountryDate
Nicolas V Malet1000Italy2026-06-18
James J Figeroa1001Germany2026-06-28
Chavez W Doe1002Italy2026-06-29
Jefferson U Kolmetz1003Brazil2026-06-26
Darci F Caudy1004Australia2026-06-17
Faith P Chui1005Russia2026-06-16
Stacey D Morasca1006France2026-06-16
Jeanfrancois B Kolmetz1007Japan2026-06-15
Alejandro N Caldarera1008Germany2026-06-28
Ashley C Campain1009Canada2026-06-12
Juan Z Morasca1010Canada2026-06-18
Juan H Flosi1011Russia2026-06-19
Costa D Caldarera1012Canada2026-06-09
Leja C Chui1013Argentina2026-06-13
Munro A Amigon1014Japan2026-07-01
Murillo E Venere1015Australia2026-07-02
Maria U Bowley1016Canada2026-06-15
Murillo U Stockham1017Canada2026-07-01
Morrow G Caudy1018Argentina2026-06-12
Aruna X Doe1019Spain2026-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel T MacleadBrazilStephen Shaw UNQUALIFIED
Antonio R DilliardItalyBernardo Dominic NEW
Salvatore W ShinkoArgentinaAmy Elsner QUALIFIED
Darci X GlickItalyBernardo Dominic NEW
Salvatore G KolmetzArgentinaStephen Shaw QUALIFIED
Francesco K AlbaresAustraliaElwin Sharvill NEW
Stacey Y AlbaresBrazilBernardo Dominic PROPOSAL
James M OstroskyItalyOnyama Limba RENEWAL
Cody X IturbideJapanIvan Magalhaes NEW
Smith L RulapaughSpainAnna Fali NEGOTIATION
Aruna E InouyeBrazilXuxue Feng RENEWAL
Nicolas R AmigonUnited KingdomXuxue Feng UNQUALIFIED
Misaki B OldroydArgentinaAnna Fali QUALIFIED
Jefferson A MorascaGermanyStephen Shaw NEW
Francesco D BriddickSpainIvan Magalhaes UNQUALIFIED
Johnson V DilliardGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois M BriddickCanadaAsiya Javayant NEGOTIATION
Munro W KuskoAustraliaStephen Shaw PROPOSAL
Aditya X KolmetzIndiaIvan Magalhaes NEW
Francesco F SaylorsItalyAnna Fali UNQUALIFIED
Jennifer A CaudyBrazilStephen Shaw NEW
Rodrigues X KolmetzSpainElwin Sharvill QUALIFIED
Leja Q DarakjyItalyAsiya Javayant NEGOTIATION
Morrow I AmigonSpainOnyama Limba QUALIFIED
Costa Y MarrierItalyAnna Fali NEW
Misaki A RulapaughItalyAsiya Javayant PROPOSAL
Ashley A CampainSpainStephen Shaw RENEWAL
Smith T CampainItalyAnna Fali QUALIFIED
Jefferson D PaprockiRussiaElwin Sharvill UNQUALIFIED
Maria M KolmetzUnited KingdomAsiya Javayant RENEWAL
Munro F CampainCanadaAmy Elsner NEGOTIATION
Leja M BriddickIndiaAnna Fali RENEWAL
Aika H CampainArgentinaXuxue Feng PROPOSAL
Maisha G AmigonArgentinaStephen Shaw NEGOTIATION
Isabel D BologniaRussiaAsiya Javayant UNQUALIFIED
Salvatore Y DoeUnited KingdomAmy Elsner UNQUALIFIED
Costa J DoeBrazilXuxue Feng NEGOTIATION
Leon A SlusarskiRussiaBernardo Dominic PROPOSAL
Arvin O DilliardSpainIoni Bowcher NEGOTIATION
Morrow T SchemmerAustraliaIvan Magalhaes PROPOSAL

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