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
Kaitlin D WaycottJapanAnna Fali UNQUALIFIED
Jennifer F OldroydSpainOnyama Limba PROPOSAL
Mujtaba G BologniaFranceAsiya Javayant NEW
Darci F WaycottUnited KingdomAmy Elsner QUALIFIED
Smith F KolmetzUnited KingdomOnyama Limba QUALIFIED
David G AlbaresItalyIvan Magalhaes UNQUALIFIED
Stacey A AmigonFranceAmy Elsner UNQUALIFIED
Claire I KuskoUnited KingdomAsiya Javayant RENEWAL
Faith Y DilliardArgentinaAsiya Javayant QUALIFIED
Deepesh S WhobreyArgentinaXuxue Feng QUALIFIED
David B WaycottSpainAsiya Javayant QUALIFIED
Darci W GauchoJapanXuxue Feng QUALIFIED
Adams O FigeroaCanadaAsiya Javayant RENEWAL
Salvatore Y RulapaughFranceXuxue Feng PROPOSAL
Mayumi L StensethSpainOnyama Limba RENEWAL
Francesco L GarufiIndiaOnyama Limba RENEWAL
Leon N SaylorsCanadaIvan Magalhaes QUALIFIED
Ashley H TollnerAustraliaXuxue Feng QUALIFIED
Murillo F OstroskySpainIoni Bowcher NEGOTIATION
Ashley H StockhamSpainStephen Shaw PROPOSAL
Leja C AmigonArgentinaIoni Bowcher QUALIFIED
Costa L AlbaresRussiaElwin Sharvill NEW
Mujtaba X FollerJapanAnna Fali NEGOTIATION
Leja I DilliardItalyAnna Fali NEGOTIATION
Adams G SlusarskiJapanAnna Fali UNQUALIFIED
Francesco T GarufiGermanyElwin Sharvill QUALIFIED
Jefferson L RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Faith L SlusarskiItalyAsiya Javayant PROPOSAL
Rodrigues F FlosiSpainAmy Elsner QUALIFIED
Francesco E GlickUnited KingdomAnna Fali NEW
Costa F MaletCanadaAnna Fali QUALIFIED
Maria E SergiSpainXuxue Feng RENEWAL
Sinclair E PoquetteJapanXuxue Feng RENEWAL
Clifford R RutaSpainElwin Sharvill PROPOSAL
Faith I OstroskyUnited KingdomElwin Sharvill NEW
Aruna G MaletArgentinaAmy Elsner QUALIFIED
Isabel O RulapaughGermanyIvan Magalhaes PROPOSAL
Mayumi N NickaCanadaIvan Magalhaes PROPOSAL
Deepesh S GarufiIndiaIoni Bowcher QUALIFIED
Alejandro D MorascaAustraliaXuxue Feng NEGOTIATION
Johnson U ChuiArgentinaElwin Sharvill QUALIFIED
Alejandro Y SchemmerGermanyAnna Fali QUALIFIED
Aika Q CampainArgentinaAsiya Javayant RENEWAL
Leon W VocelkaCanadaAmy Elsner RENEWAL
Munro H TollnerUnited KingdomOnyama Limba PROPOSAL
Adams N MaletCanadaElwin Sharvill NEGOTIATION
Jefferson M TollnerCanadaAsiya Javayant RENEWAL
Greenwood D VenereSpainStephen Shaw NEGOTIATION
Aika M FlosiFranceElwin Sharvill NEGOTIATION
Sinclair H StockhamCanadaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Costa B CampainIndiaIvan Magalhaes RENEWAL
Morrow W RimIndiaIoni Bowcher UNQUALIFIED
Darci W RulapaughSpainIoni Bowcher RENEWAL
Leon W FerenczUnited KingdomOnyama Limba NEW
Octavia Y FlosiItalyBernardo Dominic PROPOSAL
Morrow Z AmigonItalyIvan Magalhaes PROPOSAL
Cody C RulapaughAustraliaXuxue Feng UNQUALIFIED
Adams V RutaGermanyAnna Fali NEGOTIATION
Kadeem T SlusarskiFranceOnyama Limba UNQUALIFIED
Johnson E KolmetzSpainAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith L GillianJapan2026-08-18Feiner Bros RENEWAL73Asiya Javayant
1001Maisha A MorascaJapan2026-08-16Printing Dimensions NEGOTIATION18Anna Fali
1002Clifford S VenereArgentina2026-07-29Rangoni Of Florence NEGOTIATION28Ivan Magalhaes
1003Salvatore B TollnerBrazil2026-08-14Chemel, James L Cpa UNQUALIFIED60Ioni Bowcher
1004Aditya C BowleyItaly2026-08-20Benton, John B Jr NEGOTIATION7Xuxue Feng
1005Morrow M MarrierItaly2026-08-18Printing Dimensions UNQUALIFIED23Amy Elsner
1006Rodrigues H IturbideCanada2026-08-02Commercial Press RENEWAL50Stephen Shaw
1007David M MarrierBrazil2026-08-06Benton, John B Jr NEGOTIATION5Ivan Magalhaes
1008Izzy Y IturbideRussia2026-08-11Morlong Associates UNQUALIFIED54Xuxue Feng
1009Leja Y VocelkaSpain2026-08-06Truhlar And Truhlar Attys RENEWAL17Onyama Limba
1010Aruna F FlosiBrazil2026-08-20Chemel, James L Cpa QUALIFIED13Ivan Magalhaes
1011Adams B PerinAustralia2026-08-21Chapman, Ross E Esq QUALIFIED47Bernardo Dominic
1012Kadeem X FlosiRussia2026-08-02Truhlar And Truhlar Attys UNQUALIFIED38Onyama Limba
1013Aditya C IturbideAustralia2026-08-05Rangoni Of Florence UNQUALIFIED32Amy Elsner
1014Faith H MacleadSpain2026-08-27Truhlar And Truhlar Attys NEGOTIATION70Onyama Limba
1015Greenwood H DilliardRussia2026-08-15Chemel, James L Cpa UNQUALIFIED37Xuxue Feng
1016Murillo T BriddickIndia2026-08-01King, Christopher A Esq PROPOSAL23Ioni Bowcher
1017Julie N NestleSpain2026-07-30Benton, John B Jr UNQUALIFIED2Stephen Shaw
1018Costa N MaletGermany2026-08-07Buckley Miller Wright RENEWAL80Bernardo Dominic
1019Aruna D PoquetteCanada2026-08-18Chemel, James L Cpa NEGOTIATION66Asiya Javayant
1020Costa U AlbaresGermany2026-08-21Chanay, Jeffrey A Esq PROPOSAL14Bernardo Dominic
1021Sinclair B ChuiJapan2026-07-31Rousseaux, Michael Esq UNQUALIFIED79Elwin Sharvill
1022Jefferson P CaldareraFrance2026-08-06Morlong Associates UNQUALIFIED14Xuxue Feng
1023Izzy B SchemmerRussia2026-08-24Feltz Printing Service RENEWAL47Xuxue Feng
1024Cody S ShinkoBrazil2026-08-05Chanay, Jeffrey A Esq NEW55Elwin Sharvill
1025Murillo D FollerBrazil2026-08-05Chemel, James L Cpa QUALIFIED19Ivan Magalhaes
1026Rodrigues I AmigonItaly2026-08-16Truhlar And Truhlar Attys UNQUALIFIED46Anna Fali
1027Jennifer A TollnerGermany2026-08-14Printing Dimensions UNQUALIFIED50Stephen Shaw
1028Jeanfrancois U DarakjySpain2026-08-16Printing Dimensions NEGOTIATION69Stephen Shaw
1029Faith P VocelkaArgentina2026-08-19Commercial Press QUALIFIED97Bernardo Dominic
1030Misaki B ChuiFrance2026-08-21Feiner Bros QUALIFIED49Elwin Sharvill
1031Wickens U NestleCanada2026-08-25Truhlar And Truhlar Attys PROPOSAL76Amy Elsner
1032Aika S KuskoItaly2026-08-24Benton, John B Jr QUALIFIED80Ioni Bowcher
1033Julie V DilliardBrazil2026-08-11Buckley Miller Wright RENEWAL26Asiya Javayant
1034Mujtaba D StockhamSpain2026-08-27Morlong Associates NEGOTIATION78Anna Fali
1035Sinclair Z StensethItaly2026-08-18Commercial Press UNQUALIFIED79Stephen Shaw
1036Emily J DoeGermany2026-08-03King, Christopher A Esq NEW56Asiya Javayant
1037Izzy H AmigonCanada2026-08-12King, Christopher A Esq PROPOSAL25Xuxue Feng
1038Emily L FerenczIndia2026-08-06Benton, John B Jr NEW7Xuxue Feng
1039James N SchemmerSpain2026-08-06Benton, John B Jr UNQUALIFIED81Amy Elsner
1040Wickens V VenereAustralia2026-08-21Chanay, Jeffrey A Esq NEGOTIATION86Asiya Javayant
1041Arvin B WieserJapan2026-08-23Rangoni Of Florence NEGOTIATION58Anna Fali
1042Clifford B SlusarskiCanada2026-08-22Buckley Miller Wright NEGOTIATION86Xuxue Feng
1043Aditya L CaldareraJapan2026-08-19King, Christopher A Esq UNQUALIFIED48Amy Elsner
1044Octavia J BriddickBrazil2026-08-20Dorl, James J Esq NEW19Ioni Bowcher
1045Claire H CaldareraItaly2026-08-12Feltz Printing Service PROPOSAL39Xuxue Feng
1046Jefferson S ButtItaly2026-08-01Morlong Associates NEW63Onyama Limba
1047Costa H PoquetteItaly2026-07-31King, Christopher A Esq PROPOSAL31Elwin Sharvill
1048Wickens B StensethSpain2026-08-16Printing Dimensions NEGOTIATION52Onyama Limba
1049Adams Q SergiItaly2026-07-30Morlong Associates PROPOSAL38Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Munro L DarakjyBrazilElwin Sharvill NEGOTIATION
Mujtaba C SaylorsFranceBernardo Dominic NEW
Octavia W FerenczGermanyAnna Fali PROPOSAL
Faith X RulapaughSpainOnyama Limba PROPOSAL
Aruna I FerenczGermanyOnyama Limba UNQUALIFIED
Jeanfrancois B AlbaresGermanyXuxue Feng RENEWAL
Smith A DilliardCanadaAnna Fali UNQUALIFIED
Julie I VenereJapanIoni Bowcher NEGOTIATION
Francesco A InouyeItalyAnna Fali NEGOTIATION
Arvin X ChuiRussiaOnyama Limba QUALIFIED
Julie Y DilliardSpainOnyama Limba PROPOSAL
Clifford G BowleyRussiaIvan Magalhaes NEGOTIATION
Maisha B OldroydItalyXuxue Feng PROPOSAL
Adams X DilliardGermanyOnyama Limba RENEWAL
Adams M SchemmerAustraliaStephen Shaw UNQUALIFIED
Leja A CampainSpainIoni Bowcher NEW
Maisha H MacleadBrazilStephen Shaw PROPOSAL
Ivar N TollnerFranceStephen Shaw QUALIFIED
Leon A WhobreyItalyAmy Elsner UNQUALIFIED
Kaitlin D SaylorsArgentinaElwin Sharvill PROPOSAL
Costa U FerenczUnited KingdomAsiya Javayant QUALIFIED
Jones S SergiIndiaBernardo Dominic NEGOTIATION
Mayumi X MaletBrazilAsiya Javayant NEW
Maisha F BologniaGermanyAmy Elsner NEGOTIATION
Nicolas W FlosiItalyAmy Elsner UNQUALIFIED
Kaitlin L RutaCanadaOnyama Limba NEGOTIATION
Sinclair J RulapaughItalyElwin Sharvill QUALIFIED
Morrow D MorascaItalyBernardo Dominic PROPOSAL
Clifford M StockhamUnited KingdomIvan Magalhaes RENEWAL
Mujtaba R BologniaUnited KingdomXuxue Feng PROPOSAL
Francesco D MorascaArgentinaBernardo Dominic NEGOTIATION
Aika P VenereFranceIvan Magalhaes RENEWAL
Juan Q ButtCanadaAsiya Javayant RENEWAL
Silvio W ChuiIndiaAnna Fali NEGOTIATION
Cody Y CampainAustraliaIvan Magalhaes PROPOSAL
Jennifer S KuskoItalyStephen Shaw NEGOTIATION
Murillo L NickaArgentinaAmy Elsner QUALIFIED
Stacey B MorascaGermanyAnna Fali RENEWAL
Greenwood W RutaUnited KingdomIoni Bowcher UNQUALIFIED
Claire I DoeIndiaElwin Sharvill QUALIFIED
Murillo Y TollnerRussiaXuxue Feng RENEWAL
Ashley R KolmetzJapanStephen Shaw UNQUALIFIED
Jennifer L StockhamRussiaAsiya Javayant UNQUALIFIED
Wickens B WaycottRussiaBernardo Dominic UNQUALIFIED
Jennifer V DarakjyGermanyIoni Bowcher NEGOTIATION
Jennifer K SergiItalyXuxue Feng NEW
Wickens J RoysterCanadaAsiya Javayant QUALIFIED
Adams B IturbideFranceElwin Sharvill UNQUALIFIED
Leja N GlickIndiaBernardo Dominic PROPOSAL
Izzy T VenereAustraliaOnyama Limba NEGOTIATION
Frozen Columns
Name
Costa W Royster
Murillo G Waycott
Ashley U Kusko
Juan E Shinko
Munro D Malet
Izzy D Slusarski
Salvatore Z Nestle
Munro H Amigon
Chavez N Doe
Kadeem Y Shinko
Wickens P Stockham
Faith D Doe
Chavez V Bolognia
Faith E Butt
Francesco X Rulapaugh
Wickens M Kolmetz
Ashley L Rulapaugh
Morrow P Foller
Alejandro X Kolmetz
Emily F Caudy
Munro F Nestle
Misaki S Saylors
Deepesh J Nicka
Alejandro W Gillian
Maria Q Ferencz
Greenwood N Tollner
Aruna W Whobrey
James F Tollner
Smith I Kusko
James M Dilliard
Chavez T Ferencz
Kaitlin W Tollner
Johnson G Maclead
Costa I Albares
Antonio L Malet
Ricardo U Glick
Salvatore G Bowley
Isabel F Rim
Clifford P Gillian
Aika X Ferencz
Jefferson S Saylors
Leon B Glick
Claire M Bowley
Chavez L Slusarski
Juan W Vocelka
Salvatore U Bolognia
Jennifer O Schemmer
Octavia N Gaucho
Francesco U Glick
Cody P Nestle
IdCountryDate
1000Italy2026-08-19
1001Argentina2026-08-25
1002France2026-07-31
1003Australia2026-08-14
1004Germany2026-08-23
1005Spain2026-08-05
1006Germany2026-08-25
1007Japan2026-08-03
1008United Kingdom2026-08-23
1009Russia2026-08-07
1010United Kingdom2026-08-12
1011Australia2026-08-23
1012Australia2026-08-07
1013Germany2026-08-06
1014Australia2026-08-23
1015Canada2026-08-16
1016Canada2026-08-24
1017Argentina2026-08-03
1018Russia2026-08-09
1019Italy2026-08-21
1020Japan2026-08-01
1021Brazil2026-08-20
1022Canada2026-08-27
1023Russia2026-08-10
1024France2026-08-05
1025Spain2026-08-19
1026Russia2026-08-03
1027Argentina2026-08-16
1028Russia2026-08-03
1029Spain2026-07-29
1030Italy2026-08-05
1031France2026-08-22
1032Italy2026-08-26
1033France2026-08-14
1034Italy2026-08-14
1035Brazil2026-08-05
1036United Kingdom2026-08-06
1037Japan2026-08-18
1038Japan2026-08-09
1039Russia2026-08-21
1040Spain2026-08-18
1041Brazil2026-08-01
1042United Kingdom2026-08-21
1043Spain2026-08-06
1044Russia2026-08-11
1045Spain2026-08-03
1046Canada2026-08-01
1047United Kingdom2026-08-13
1048Italy2026-07-29
1049Canada2026-08-17

On-Demand Data

NameIdCountryDate
Salvatore V Rulapaugh1000Brazil2026-08-04
Jennifer W Nicka1001Italy2026-08-22
Arvin S Wieser1002Canada2026-08-11
Isabel D Bowley1003Japan2026-08-01
Costa O Nicka1004Spain2026-08-25
Mujtaba E Nestle1005Spain2026-08-04
David Z Doe1006France2026-08-07
Julie L Shinko1007Australia2026-08-16
Morrow K Oldroyd1008Spain2026-08-16
Izzy I Gaucho1009United Kingdom2026-08-05
Francesco Y Morasca1010Italy2026-07-30
Aika E Whobrey1011Russia2026-08-11
Tony P Garufi1012India2026-08-07
Leon R Kolmetz1013Australia2026-08-07
Jeanfrancois I Gillian1014United Kingdom2026-08-07
Isabel O Caudy1015United Kingdom2026-08-21
Rodrigues V Briddick1016Canada2026-08-01
Rodrigues N Stenseth1017Japan2026-08-27
David T Waycott1018France2026-08-04
Izzy M Gillian1019Spain2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer Z InouyeFranceAsiya Javayant UNQUALIFIED
Aika W MorascaArgentinaAnna Fali NEGOTIATION
Isabel A TollnerUnited KingdomStephen Shaw PROPOSAL
Chavez E DilliardRussiaIoni Bowcher QUALIFIED
Wickens F FollerBrazilAmy Elsner RENEWAL
Jeanfrancois X MarrierJapanElwin Sharvill NEW
Deepesh F FigeroaCanadaAmy Elsner PROPOSAL
Alejandro Q SergiGermanyStephen Shaw RENEWAL
Emily N GauchoItalyIvan Magalhaes UNQUALIFIED
Aika R VenereJapanIvan Magalhaes NEGOTIATION
Silvio L SchemmerSpainXuxue Feng PROPOSAL
Ashley V RoysterFranceElwin Sharvill UNQUALIFIED
Wickens R SaylorsIndiaIvan Magalhaes RENEWAL
James Y PoquetteUnited KingdomIvan Magalhaes NEW
David Q MacleadRussiaIoni Bowcher NEGOTIATION
Murillo D AlbaresFranceStephen Shaw PROPOSAL
Morrow J FollerUnited KingdomIoni Bowcher UNQUALIFIED
Costa C VocelkaJapanIvan Magalhaes PROPOSAL
Mayumi B MaletBrazilAsiya Javayant UNQUALIFIED
Kaitlin Y PoquetteRussiaElwin Sharvill NEGOTIATION
Alejandro M FlosiCanadaIvan Magalhaes PROPOSAL
Costa D GarufiBrazilIvan Magalhaes NEGOTIATION
Alejandro K VenereAustraliaStephen Shaw UNQUALIFIED
Maisha A OstroskyIndiaElwin Sharvill NEW
Smith V TollnerBrazilAnna Fali PROPOSAL
Claire P CaldareraBrazilElwin Sharvill QUALIFIED
Kaitlin K RulapaughCanadaBernardo Dominic NEGOTIATION
Maria K DilliardCanadaIoni Bowcher QUALIFIED
Mayumi N IturbideIndiaAnna Fali RENEWAL
Ricardo B MorascaIndiaXuxue Feng PROPOSAL
Jones S BowleyGermanyBernardo Dominic NEW
Izzy G SlusarskiBrazilIvan Magalhaes UNQUALIFIED
James B FollerArgentinaOnyama Limba NEGOTIATION
Jones I MaletJapanOnyama Limba NEW
Maria O NestleUnited KingdomBernardo Dominic NEW
Stacey B CampainCanadaAsiya Javayant NEW
Sinclair U ChuiIndiaOnyama Limba RENEWAL
Leon G AmigonJapanXuxue Feng NEGOTIATION
Kaitlin K MaletGermanyAnna Fali QUALIFIED
Chavez D SchemmerJapanAsiya Javayant 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>