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
Aika L BologniaBrazilStephen Shaw UNQUALIFIED
Leon W MaletAustraliaAnna Fali NEW
David A WhobreyFranceXuxue Feng QUALIFIED
Munro L OldroydIndiaIvan Magalhaes NEGOTIATION
Izzy Y MacleadItalyOnyama Limba NEW
Darci G StockhamSpainIvan Magalhaes QUALIFIED
Munro F OldroydRussiaAmy Elsner NEW
Juan U MaletBrazilBernardo Dominic UNQUALIFIED
Aika C FigeroaRussiaBernardo Dominic RENEWAL
David E TollnerBrazilIvan Magalhaes NEW
Clifford J RulapaughRussiaBernardo Dominic NEGOTIATION
Aditya H WaycottCanadaAmy Elsner QUALIFIED
Aruna K InouyeGermanyBernardo Dominic PROPOSAL
Aika Q MorascaUnited KingdomXuxue Feng NEGOTIATION
Aruna E KolmetzIndiaIvan Magalhaes NEGOTIATION
Kadeem C WhobreyGermanyAnna Fali PROPOSAL
Jones D SaylorsAustraliaAsiya Javayant RENEWAL
Isabel W BologniaFranceIvan Magalhaes UNQUALIFIED
Aika C TollnerJapanBernardo Dominic UNQUALIFIED
Claire O GlickFranceBernardo Dominic PROPOSAL
Chavez K NickaArgentinaElwin Sharvill QUALIFIED
Leja O GarufiBrazilIoni Bowcher RENEWAL
Antonio R SchemmerFranceOnyama Limba NEGOTIATION
Chavez L BologniaIndiaAsiya Javayant QUALIFIED
Stacey E StockhamJapanStephen Shaw RENEWAL
Stacey Y FlosiFranceBernardo Dominic UNQUALIFIED
Maisha W PoquetteAustraliaIvan Magalhaes NEW
Wickens Z MarrierFranceAnna Fali PROPOSAL
Kadeem Z WieserCanadaAnna Fali PROPOSAL
Aika Z FlosiJapanXuxue Feng NEW
Claire O IturbideItalyElwin Sharvill NEW
Francesco S TollnerCanadaAnna Fali NEW
Deepesh X GillianGermanyStephen Shaw PROPOSAL
Jeanfrancois H RulapaughArgentinaStephen Shaw UNQUALIFIED
Aruna I SchemmerSpainElwin Sharvill RENEWAL
Wickens K BowleyRussiaXuxue Feng NEGOTIATION
Murillo K MorascaAustraliaAsiya Javayant NEGOTIATION
James P FlosiRussiaAsiya Javayant RENEWAL
Mujtaba O WhobreyArgentinaStephen Shaw QUALIFIED
Aruna P RimUnited KingdomStephen Shaw NEW
Adams D WieserCanadaElwin Sharvill NEGOTIATION
Izzy R GillianRussiaBernardo Dominic RENEWAL
Leja J GarufiSpainElwin Sharvill RENEWAL
Jennifer A RoysterItalyOnyama Limba RENEWAL
Deepesh Z WaycottCanadaBernardo Dominic UNQUALIFIED
James C SlusarskiFranceAsiya Javayant QUALIFIED
Octavia H IturbideFranceOnyama Limba QUALIFIED
Leja R IturbideUnited KingdomStephen Shaw PROPOSAL
Izzy B WhobreyFranceAsiya Javayant UNQUALIFIED
Faith W StensethFranceAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki Q StensethJapanAmy Elsner PROPOSAL
Octavia X MarrierCanadaStephen Shaw UNQUALIFIED
Jeanfrancois O BowleyJapanBernardo Dominic UNQUALIFIED
Johnson W MacleadUnited KingdomIvan Magalhaes PROPOSAL
Julie W DarakjyAustraliaAsiya Javayant NEGOTIATION
Deepesh N SaylorsFranceOnyama Limba NEGOTIATION
Stacey M StensethArgentinaXuxue Feng NEGOTIATION
Antonio O FigeroaBrazilAsiya Javayant UNQUALIFIED
Antonio Q AmigonItalyAnna Fali RENEWAL
Munro C SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire K FlosiArgentina2024-05-23King, Christopher A Esq NEW56Xuxue Feng
1001Mayumi Q SergiItaly2024-06-17Rangoni Of Florence NEGOTIATION85Amy Elsner
1002Salvatore I PaprockiFrance2024-05-26Morlong Associates PROPOSAL53Stephen Shaw
1003Julie V AlbaresArgentina2024-05-23Rangoni Of Florence NEW79Asiya Javayant
1004Sinclair P IturbideGermany2024-06-15Printing Dimensions UNQUALIFIED85Bernardo Dominic
1005Darci L BriddickFrance2024-05-23Commercial Press UNQUALIFIED97Elwin Sharvill
1006Faith H FerenczRussia2024-05-27Chemel, James L Cpa QUALIFIED5Ioni Bowcher
1007Morrow Y WieserBrazil2024-05-29Buckley Miller Wright UNQUALIFIED20Asiya Javayant
1008Mayumi M SergiFrance2024-06-02Chemel, James L Cpa UNQUALIFIED11Stephen Shaw
1009David V IturbideIndia2024-06-03Truhlar And Truhlar Attys NEW13Bernardo Dominic
1010Julie B FigeroaCanada2024-06-13Commercial Press NEW68Xuxue Feng
1011Ashley U StensethJapan2024-05-23Chemel, James L Cpa NEGOTIATION63Stephen Shaw
1012Faith W CaldareraItaly2024-05-28Benton, John B Jr QUALIFIED21Ioni Bowcher
1013Clifford N PerinAustralia2024-05-30Benton, John B Jr UNQUALIFIED32Elwin Sharvill
1014Jones W SchemmerGermany2024-06-05Feiner Bros PROPOSAL60Onyama Limba
1015Faith Z DilliardJapan2024-06-11King, Christopher A Esq QUALIFIED63Onyama Limba
1016Aika R SlusarskiItaly2024-06-21Morlong Associates NEGOTIATION86Asiya Javayant
1017Smith J FlosiGermany2024-06-03Printing Dimensions NEW21Onyama Limba
1018Isabel P RoysterGermany2024-05-26Chapman, Ross E Esq PROPOSAL24Onyama Limba
1019Nicolas L PerinJapan2024-06-06Chapman, Ross E Esq NEGOTIATION71Bernardo Dominic
1020Smith Q FerenczGermany2024-06-13Printing Dimensions NEW88Ivan Magalhaes
1021Darci V BologniaBrazil2024-05-23Rangoni Of Florence UNQUALIFIED19Ioni Bowcher
1022Kaitlin B CaudyArgentina2024-06-13Commercial Press RENEWAL0Elwin Sharvill
1023Smith G MacleadCanada2024-06-13Feltz Printing Service NEW29Asiya Javayant
1024Aditya E NestleBrazil2024-06-12Buckley Miller Wright NEW78Xuxue Feng
1025Salvatore E MacleadItaly2024-05-24Chemel, James L Cpa NEGOTIATION57Elwin Sharvill
1026Tony R WieserJapan2024-06-05Truhlar And Truhlar Attys QUALIFIED26Elwin Sharvill
1027Morrow T VenereFrance2024-05-24Morlong Associates QUALIFIED89Amy Elsner
1028Maisha H DilliardBrazil2024-05-28Commercial Press UNQUALIFIED89Ioni Bowcher
1029Maria H WieserCanada2024-06-11Benton, John B Jr NEGOTIATION20Anna Fali
1030Alejandro L GauchoFrance2024-06-15Benton, John B Jr QUALIFIED21Onyama Limba
1031Jeanfrancois G GauchoUnited Kingdom2024-06-09Chapman, Ross E Esq RENEWAL5Ivan Magalhaes
1032Johnson J SchemmerArgentina2024-06-14Morlong Associates NEGOTIATION50Asiya Javayant
1033Octavia O KolmetzArgentina2024-06-08Buckley Miller Wright QUALIFIED24Xuxue Feng
1034Morrow X DoeArgentina2024-05-24Printing Dimensions QUALIFIED96Bernardo Dominic
1035Morrow X VenereAustralia2024-05-26Morlong Associates UNQUALIFIED77Ioni Bowcher
1036Morrow I BowleySpain2024-06-05Feltz Printing Service NEW53Asiya Javayant
1037Jennifer I BowleyBrazil2024-06-18Chanay, Jeffrey A Esq NEW91Amy Elsner
1038David R WhobreyIndia2024-06-06Chemel, James L Cpa NEW3Amy Elsner
1039Munro D FlosiFrance2024-06-08Rousseaux, Michael Esq NEW51Elwin Sharvill
1040Cody I MarrierUnited Kingdom2024-06-15King, Christopher A Esq RENEWAL50Ivan Magalhaes
1041Ricardo X GlickGermany2024-05-26Buckley Miller Wright PROPOSAL35Ioni Bowcher
1042Mayumi Z MarrierAustralia2024-05-23Rousseaux, Michael Esq NEGOTIATION49Bernardo Dominic
1043Claire I ShinkoBrazil2024-06-18Benton, John B Jr UNQUALIFIED80Asiya Javayant
1044David B IturbideArgentina2024-05-29Dorl, James J Esq RENEWAL66Elwin Sharvill
1045Nicolas Z AmigonFrance2024-05-28Rangoni Of Florence PROPOSAL45Ioni Bowcher
1046David N ChuiJapan2024-06-11Dorl, James J Esq QUALIFIED15Ioni Bowcher
1047Julie F CampainJapan2024-05-23King, Christopher A Esq UNQUALIFIED14Elwin Sharvill
1048Misaki Q RoysterIndia2024-06-02Rangoni Of Florence RENEWAL0Onyama Limba
1049Jeanfrancois R FerenczFrance2024-05-29Buckley Miller Wright RENEWAL81Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jennifer X GauchoFranceXuxue Feng NEW
Maria L PoquetteItalyIoni Bowcher UNQUALIFIED
Mayumi D RimIndiaElwin Sharvill UNQUALIFIED
Faith G DilliardArgentinaIoni Bowcher UNQUALIFIED
Chavez A WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Ashley D RimArgentinaBernardo Dominic PROPOSAL
Salvatore H SaylorsArgentinaAmy Elsner RENEWAL
Wickens E RoysterIndiaXuxue Feng QUALIFIED
Leon Z SchemmerGermanyIoni Bowcher PROPOSAL
Isabel J DilliardCanadaAsiya Javayant PROPOSAL
Juan N CampainArgentinaAnna Fali PROPOSAL
Aruna M GillianFranceIoni Bowcher NEGOTIATION
Izzy S KolmetzArgentinaAsiya Javayant QUALIFIED
Morrow U NickaBrazilOnyama Limba PROPOSAL
Aruna F RimIndiaIvan Magalhaes PROPOSAL
Ricardo S ShinkoIndiaXuxue Feng QUALIFIED
Darci P ButtAustraliaAsiya Javayant NEW
Antonio X VenereGermanyXuxue Feng PROPOSAL
Greenwood O SlusarskiItalyIoni Bowcher PROPOSAL
Johnson V FigeroaAustraliaStephen Shaw NEW
Ricardo R FigeroaArgentinaAmy Elsner QUALIFIED
Octavia I ButtJapanBernardo Dominic NEGOTIATION
Tony A AmigonUnited KingdomIvan Magalhaes RENEWAL
Ashley C WieserFranceStephen Shaw RENEWAL
Wickens O SlusarskiFranceBernardo Dominic QUALIFIED
Faith R KolmetzRussiaOnyama Limba NEGOTIATION
Cody V MarrierJapanAsiya Javayant PROPOSAL
Chavez Q SergiUnited KingdomOnyama Limba NEGOTIATION
Ivar D GarufiRussiaStephen Shaw UNQUALIFIED
Mujtaba C ShinkoSpainAsiya Javayant NEGOTIATION
Aruna U GillianItalyAnna Fali RENEWAL
Isabel T PaprockiRussiaAmy Elsner PROPOSAL
Ivar V AmigonCanadaAsiya Javayant UNQUALIFIED
Morrow F StensethBrazilIvan Magalhaes NEW
Sinclair I FlosiItalyOnyama Limba PROPOSAL
Arvin P StockhamSpainXuxue Feng RENEWAL
Arvin N BologniaAustraliaXuxue Feng NEGOTIATION
Chavez U MorascaGermanyStephen Shaw RENEWAL
Stacey O OstroskyCanadaXuxue Feng RENEWAL
Misaki W FlosiBrazilBernardo Dominic QUALIFIED
Leon G KuskoFranceBernardo Dominic QUALIFIED
Deepesh W BowleyRussiaAnna Fali NEGOTIATION
Octavia Q VenereIndiaIoni Bowcher UNQUALIFIED
Wickens R BowleyJapanIoni Bowcher RENEWAL
Misaki C CampainArgentinaAnna Fali QUALIFIED
Maria O TollnerUnited KingdomXuxue Feng UNQUALIFIED
Francesco F PerinJapanBernardo Dominic QUALIFIED
Izzy F AmigonJapanElwin Sharvill RENEWAL
Emily F ShinkoIndiaIoni Bowcher UNQUALIFIED
Rodrigues R MacleadArgentinaElwin Sharvill QUALIFIED
Frozen Columns
Name
Munro R Caudy
Faith Z Nestle
Murillo A Slusarski
James Z Maclead
Wickens S Schemmer
Sinclair F Figeroa
Jefferson E Saylors
Claire I Inouye
Ashley F Schemmer
Salvatore Y Royster
Jefferson U Iturbide
Sinclair A Ruta
Alejandro Q Albares
Faith X Wieser
Chavez U Inouye
Kaitlin C Albares
Ashley E Garufi
Maisha L Gaucho
Antonio Z Gillian
Tony E Slusarski
Julie C Caudy
Octavia Y Doe
Wickens C Flosi
Izzy L Caudy
Ashley N Flosi
Clifford Q Figeroa
Leja N Bowley
Cody T Inouye
Smith H Caldarera
Ashley M Marrier
Jennifer I Saylors
Tony F Butt
David S Kusko
Salvatore H Vocelka
Leja B Maclead
Julie A Stenseth
Aruna O Tollner
Jones C Garufi
Kaitlin I Dilliard
Salvatore J Butt
Misaki O Kolmetz
Munro L Campain
Ivar M Nestle
Antonio X Darakjy
Kadeem A Royster
Izzy J Poquette
Sinclair F Stenseth
Isabel U Butt
Ivar U Stenseth
Rodrigues B Gillian
IdCountryDate
1000Australia2024-06-16
1001France2024-06-10
1002Russia2024-06-07
1003Spain2024-06-04
1004Japan2024-06-16
1005India2024-05-24
1006Brazil2024-06-04
1007Japan2024-06-13
1008United Kingdom2024-06-19
1009Russia2024-06-19
1010Italy2024-06-16
1011Spain2024-05-30
1012India2024-06-08
1013France2024-05-29
1014Spain2024-06-11
1015Spain2024-06-13
1016Germany2024-06-17
1017Australia2024-06-18
1018India2024-06-12
1019Australia2024-06-01
1020United Kingdom2024-06-19
1021Brazil2024-06-02
1022Canada2024-06-21
1023Canada2024-05-23
1024Canada2024-06-02
1025Japan2024-06-06
1026Canada2024-06-14
1027United Kingdom2024-06-13
1028Spain2024-06-05
1029Spain2024-06-15
1030India2024-05-31
1031Germany2024-06-21
1032Canada2024-05-29
1033Canada2024-06-02
1034Japan2024-05-27
1035Australia2024-06-01
1036Spain2024-06-05
1037United Kingdom2024-06-12
1038Germany2024-06-14
1039United Kingdom2024-06-19
1040Canada2024-06-13
1041Italy2024-05-24
1042Canada2024-06-21
1043India2024-05-23
1044France2024-05-31
1045Spain2024-06-09
1046Australia2024-05-25
1047Canada2024-05-30
1048United Kingdom2024-06-01
1049France2024-05-27

On-Demand Data

NameIdCountryDate
Rodrigues E Maclead1000Argentina2024-06-02
Kadeem C Gaucho1001Canada2024-05-26
Cody C Foller1002France2024-06-04
Maria N Dilliard1003Spain2024-06-13
Sinclair Q Butt1004Germany2024-05-29
Arvin Q Figeroa1005India2024-06-11
Sinclair R Stockham1006Italy2024-06-13
Clifford B Tollner1007United Kingdom2024-06-10
Arvin D Bolognia1008Japan2024-06-15
Rodrigues E Iturbide1009Australia2024-06-21
Nicolas F Wieser1010Australia2024-06-03
Mayumi F Wieser1011Australia2024-06-06
Rodrigues N Vocelka1012Germany2024-06-13
Cody I Briddick1013Argentina2024-06-20
Rodrigues T Kusko1014Spain2024-06-07
Munro K Sergi1015United Kingdom2024-05-29
Jeanfrancois J Campain1016Germany2024-05-28
Chavez N Inouye1017Italy2024-05-26
Kadeem X Darakjy1018Brazil2024-06-06
Jeanfrancois W Nicka1019United Kingdom2024-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily F NickaItalyAsiya Javayant RENEWAL
Kadeem C OstroskyFranceOnyama Limba QUALIFIED
Leon F MorascaJapanElwin Sharvill NEGOTIATION
Faith Z GillianSpainAsiya Javayant PROPOSAL
Adams L RimGermanyAmy Elsner NEW
Adams T DarakjyCanadaIvan Magalhaes UNQUALIFIED
James I SaylorsSpainIvan Magalhaes UNQUALIFIED
Nicolas U GillianItalyBernardo Dominic QUALIFIED
Ricardo X MorascaArgentinaStephen Shaw NEW
Aditya M GillianIndiaOnyama Limba NEGOTIATION
Aika F ChuiBrazilBernardo Dominic NEW
Sinclair O DilliardBrazilStephen Shaw RENEWAL
Antonio H RulapaughCanadaAnna Fali QUALIFIED
Kaitlin C WaycottIndiaIoni Bowcher RENEWAL
Darci N PerinFranceOnyama Limba QUALIFIED
Alejandro D PoquetteGermanyOnyama Limba QUALIFIED
Kaitlin T ChuiFranceAmy Elsner NEW
Julie T VocelkaArgentinaXuxue Feng UNQUALIFIED
Aruna G BologniaIndiaAsiya Javayant QUALIFIED
Alejandro V TollnerSpainElwin Sharvill PROPOSAL
Isabel G WaycottRussiaAsiya Javayant NEGOTIATION
Costa M MarrierBrazilAmy Elsner NEW
Jeanfrancois T VenereGermanyXuxue Feng UNQUALIFIED
Claire B NestleJapanStephen Shaw NEGOTIATION
David M MorascaCanadaBernardo Dominic QUALIFIED
Octavia T ButtGermanyAmy Elsner NEGOTIATION
Jennifer W AmigonArgentinaAmy Elsner UNQUALIFIED
Ivar Y AlbaresIndiaAsiya Javayant PROPOSAL
Misaki I FerenczSpainAsiya Javayant NEGOTIATION
Deepesh L VocelkaBrazilAsiya Javayant NEW
James T GlickRussiaStephen Shaw QUALIFIED
Francesco Q AlbaresAustraliaIoni Bowcher UNQUALIFIED
Faith I WieserJapanAnna Fali UNQUALIFIED
Salvatore G SlusarskiFranceAmy Elsner RENEWAL
Juan T FigeroaBrazilIoni Bowcher NEGOTIATION
Morrow C VenereAustraliaElwin Sharvill NEGOTIATION
Murillo G SchemmerJapanBernardo Dominic PROPOSAL
Morrow C SaylorsIndiaIoni Bowcher QUALIFIED
Leon O AlbaresSpainAsiya Javayant NEGOTIATION
Ashley G MacleadCanadaStephen Shaw 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>