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
Wickens U BriddickItalyOnyama Limba RENEWAL
Isabel E GillianSpainOnyama Limba NEW
Ashley G GillianItalyAsiya Javayant NEGOTIATION
Smith O CaldareraCanadaAsiya Javayant UNQUALIFIED
Arvin F MaletBrazilXuxue Feng PROPOSAL
Jefferson L MarrierUnited KingdomElwin Sharvill RENEWAL
Deepesh R IturbideAustraliaBernardo Dominic PROPOSAL
Smith V ShinkoGermanyAmy Elsner NEW
Leja P MaletSpainAsiya Javayant PROPOSAL
Clifford Z InouyeArgentinaAnna Fali UNQUALIFIED
Alejandro W KuskoCanadaXuxue Feng UNQUALIFIED
Alejandro E IturbideBrazilIoni Bowcher UNQUALIFIED
Costa Q CaldareraRussiaStephen Shaw UNQUALIFIED
Johnson T FigeroaJapanAmy Elsner NEW
Jeanfrancois S AlbaresGermanyIoni Bowcher QUALIFIED
Morrow L ButtCanadaAmy Elsner QUALIFIED
Julie O WieserGermanyIvan Magalhaes NEW
Costa N InouyeCanadaIvan Magalhaes PROPOSAL
Adams R FigeroaGermanyOnyama Limba QUALIFIED
Misaki M AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood X SlusarskiSpainAnna Fali NEGOTIATION
Francesco M AlbaresRussiaBernardo Dominic NEW
Silvio C WhobreyItalyOnyama Limba NEW
Jones T VocelkaItalyElwin Sharvill UNQUALIFIED
Jefferson B ButtRussiaIvan Magalhaes QUALIFIED
Alejandro V CaudyAustraliaElwin Sharvill QUALIFIED
Aruna F RulapaughBrazilIoni Bowcher NEGOTIATION
Aruna Q WieserUnited KingdomElwin Sharvill PROPOSAL
Aruna D RoysterArgentinaAmy Elsner NEW
Leon C AmigonGermanyElwin Sharvill QUALIFIED
Stacey L FlosiAustraliaAmy Elsner RENEWAL
Aika H BriddickAustraliaIoni Bowcher UNQUALIFIED
Munro T ButtGermanyXuxue Feng PROPOSAL
Johnson A AmigonItalyStephen Shaw RENEWAL
Leja J FlosiBrazilAnna Fali NEGOTIATION
David N DarakjyIndiaElwin Sharvill NEGOTIATION
Jones U PaprockiArgentinaIoni Bowcher UNQUALIFIED
James L ChuiAustraliaXuxue Feng NEW
Salvatore Y RoysterBrazilOnyama Limba NEGOTIATION
Mayumi S ButtCanadaAnna Fali RENEWAL
Arvin H CampainSpainIoni Bowcher NEW
Greenwood A CaldareraCanadaIvan Magalhaes NEW
Rodrigues O ShinkoIndiaBernardo Dominic PROPOSAL
Aika E RutaSpainAnna Fali NEW
Juan O SlusarskiGermanyIoni Bowcher RENEWAL
Nicolas C PerinIndiaBernardo Dominic QUALIFIED
Arvin B SchemmerAustraliaXuxue Feng NEW
Rodrigues O KuskoIndiaStephen Shaw NEGOTIATION
Adams Q KolmetzArgentinaStephen Shaw NEGOTIATION
Tony W CaldareraRussiaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Murillo K GillianIndiaXuxue Feng NEGOTIATION
Cody U NestleItalyStephen Shaw NEW
Faith B KolmetzUnited KingdomXuxue Feng NEGOTIATION
Murillo H VocelkaCanadaAnna Fali PROPOSAL
Johnson R SergiJapanAsiya Javayant QUALIFIED
Greenwood T DarakjyRussiaStephen Shaw PROPOSAL
Wickens Z BriddickCanadaAsiya Javayant QUALIFIED
Jennifer F FollerUnited KingdomElwin Sharvill NEW
Kadeem X GauchoJapanElwin Sharvill NEGOTIATION
Clifford Q StensethGermanyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy O SergiBrazil2025-05-24Benton, John B Jr PROPOSAL36Ivan Magalhaes
1001Smith Z BowleyAustralia2025-05-20Dorl, James J Esq RENEWAL35Anna Fali
1002Johnson G RimRussia2025-05-26Chanay, Jeffrey A Esq PROPOSAL57Elwin Sharvill
1003Francesco D BowleyJapan2025-06-11Chemel, James L Cpa RENEWAL56Stephen Shaw
1004Arvin W AlbaresFrance2025-05-20Chanay, Jeffrey A Esq RENEWAL34Xuxue Feng
1005Silvio P KolmetzRussia2025-06-03Feiner Bros RENEWAL80Elwin Sharvill
1006Salvatore M SergiRussia2025-06-10King, Christopher A Esq NEW40Ioni Bowcher
1007Morrow C PoquetteCanada2025-06-07Buckley Miller Wright UNQUALIFIED95Asiya Javayant
1008Octavia A RoysterUnited Kingdom2025-06-14Truhlar And Truhlar Attys QUALIFIED8Ivan Magalhaes
1009Francesco K NestleAustralia2025-05-23Chemel, James L Cpa QUALIFIED45Stephen Shaw
1010Munro X MacleadBrazil2025-06-07Truhlar And Truhlar Attys UNQUALIFIED7Amy Elsner
1011Juan Q InouyeGermany2025-06-09Commercial Press NEW44Bernardo Dominic
1012Greenwood P TollnerBrazil2025-05-29Commercial Press NEGOTIATION15Anna Fali
1013Stacey M WhobreyCanada2025-06-07Printing Dimensions RENEWAL43Xuxue Feng
1014Cody J StockhamFrance2025-05-24Feiner Bros NEW31Onyama Limba
1015Salvatore K StensethJapan2025-06-12Commercial Press RENEWAL16Amy Elsner
1016Jennifer D SchemmerAustralia2025-06-08Benton, John B Jr UNQUALIFIED24Elwin Sharvill
1017Wickens R GlickArgentina2025-06-15Feltz Printing Service QUALIFIED56Xuxue Feng
1018Julie U MacleadRussia2025-06-05Rousseaux, Michael Esq QUALIFIED82Ioni Bowcher
1019Kadeem C KolmetzItaly2025-06-02Chapman, Ross E Esq QUALIFIED49Onyama Limba
1020Morrow D AmigonSpain2025-06-13Truhlar And Truhlar Attys PROPOSAL76Stephen Shaw
1021Wickens X PerinItaly2025-06-01Chapman, Ross E Esq UNQUALIFIED26Ivan Magalhaes
1022Jeanfrancois K FlosiItaly2025-06-06Buckley Miller Wright NEGOTIATION80Anna Fali
1023Francesco D AmigonSpain2025-06-15Chemel, James L Cpa RENEWAL97Ioni Bowcher
1024Costa J FollerBrazil2025-06-01Feiner Bros NEW48Asiya Javayant
1025Salvatore A AlbaresJapan2025-06-02Commercial Press QUALIFIED81Amy Elsner
1026Salvatore U RutaIndia2025-05-27Chapman, Ross E Esq PROPOSAL37Xuxue Feng
1027Jefferson B MorascaAustralia2025-06-04Morlong Associates QUALIFIED35Bernardo Dominic
1028Ricardo D RoysterArgentina2025-05-25Morlong Associates NEGOTIATION10Onyama Limba
1029Isabel B NestleCanada2025-05-25Dorl, James J Esq NEGOTIATION32Xuxue Feng
1030Aika H MaletCanada2025-05-19Printing Dimensions RENEWAL26Xuxue Feng
1031Cody E DilliardIndia2025-06-15Morlong Associates QUALIFIED36Anna Fali
1032Ivar V MacleadItaly2025-05-27King, Christopher A Esq QUALIFIED39Anna Fali
1033Antonio O GillianSpain2025-06-08Buckley Miller Wright RENEWAL19Bernardo Dominic
1034Julie D WhobreyAustralia2025-06-14Commercial Press NEW26Ivan Magalhaes
1035Darci T FigeroaSpain2025-05-23Benton, John B Jr UNQUALIFIED58Onyama Limba
1036Izzy A StensethGermany2025-05-17Rangoni Of Florence RENEWAL17Asiya Javayant
1037Octavia O KolmetzArgentina2025-06-08Commercial Press NEW23Elwin Sharvill
1038Jennifer J GillianAustralia2025-05-17Rousseaux, Michael Esq QUALIFIED15Xuxue Feng
1039Francesco U FlosiItaly2025-06-15Chemel, James L Cpa NEW61Onyama Limba
1040Octavia G ShinkoGermany2025-06-08Buckley Miller Wright NEW69Amy Elsner
1041Misaki E RulapaughAustralia2025-05-31Dorl, James J Esq UNQUALIFIED91Amy Elsner
1042David I FlosiRussia2025-06-01Rangoni Of Florence UNQUALIFIED53Xuxue Feng
1043Ivar J SlusarskiIndia2025-06-03Buckley Miller Wright NEW91Elwin Sharvill
1044Leja E SlusarskiGermany2025-06-14Buckley Miller Wright UNQUALIFIED31Amy Elsner
1045Francesco K FlosiIndia2025-05-25Benton, John B Jr RENEWAL93Xuxue Feng
1046Mujtaba S TollnerArgentina2025-06-01Rangoni Of Florence RENEWAL1Asiya Javayant
1047Faith O CampainFrance2025-06-13Rangoni Of Florence PROPOSAL86Onyama Limba
1048Isabel Y MorascaFrance2025-06-01Dorl, James J Esq RENEWAL38Elwin Sharvill
1049Emily E MarrierBrazil2025-06-15Printing Dimensions PROPOSAL36Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Wickens X GarufiRussiaXuxue Feng NEGOTIATION
Ivar N GlickIndiaElwin Sharvill NEW
Misaki N TollnerRussiaAmy Elsner QUALIFIED
Munro Y CaudyArgentinaBernardo Dominic RENEWAL
Leon U NickaRussiaStephen Shaw NEW
Octavia E MaletArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois O FollerUnited KingdomXuxue Feng RENEWAL
Stacey A RulapaughArgentinaOnyama Limba NEGOTIATION
Maria G SchemmerJapanOnyama Limba UNQUALIFIED
Jones M FollerBrazilAnna Fali NEGOTIATION
Munro K GlickIndiaAsiya Javayant UNQUALIFIED
Ivar M MaletFranceAmy Elsner QUALIFIED
Jefferson Q OldroydIndiaIvan Magalhaes NEGOTIATION
Tony U DoeItalyElwin Sharvill PROPOSAL
Aika Q SchemmerUnited KingdomXuxue Feng NEGOTIATION
Morrow K PerinIndiaStephen Shaw PROPOSAL
Darci P RutaAustraliaElwin Sharvill RENEWAL
Adams M FollerItalyIoni Bowcher NEW
Juan R InouyeFranceIoni Bowcher UNQUALIFIED
Smith M VocelkaCanadaAnna Fali NEW
Emily T ButtArgentinaXuxue Feng PROPOSAL
Chavez R InouyeArgentinaBernardo Dominic QUALIFIED
Wickens Y BowleyFranceOnyama Limba UNQUALIFIED
Ivar Z PaprockiFranceIvan Magalhaes QUALIFIED
James U MacleadCanadaIvan Magalhaes RENEWAL
Francesco N DoeJapanAnna Fali UNQUALIFIED
Kadeem D FollerCanadaXuxue Feng UNQUALIFIED
Chavez L WhobreyFranceXuxue Feng RENEWAL
Rodrigues U RutaFranceElwin Sharvill NEW
Julie D ShinkoFranceAnna Fali PROPOSAL
Maisha E TollnerIndiaXuxue Feng NEW
Smith T SergiArgentinaIvan Magalhaes NEGOTIATION
Mayumi F KuskoSpainAmy Elsner RENEWAL
Johnson I GauchoCanadaIoni Bowcher NEW
Wickens Y CaudySpainOnyama Limba UNQUALIFIED
Francesco L RulapaughFranceElwin Sharvill NEGOTIATION
Claire O GauchoUnited KingdomStephen Shaw NEW
Darci K KolmetzFranceAmy Elsner RENEWAL
Stacey R RimRussiaElwin Sharvill QUALIFIED
Aruna T InouyeSpainAsiya Javayant PROPOSAL
Deepesh B OldroydFranceAmy Elsner NEGOTIATION
Rodrigues W GillianUnited KingdomOnyama Limba NEW
Adams J FollerArgentinaStephen Shaw NEW
Mujtaba I CaudyGermanyIvan Magalhaes NEGOTIATION
Juan K StensethGermanyAnna Fali UNQUALIFIED
Deepesh J KuskoUnited KingdomIoni Bowcher NEW
Salvatore R InouyeSpainAnna Fali PROPOSAL
Smith E BowleyArgentinaAmy Elsner PROPOSAL
Darci U MorascaGermanyIvan Magalhaes UNQUALIFIED
Maria M SergiGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Silvio L Caldarera
Deepesh L Kusko
Izzy X Rim
Ashley U Flosi
Leon B Schemmer
Leon P Albares
Isabel X Doe
Munro M Venere
Aruna T Schemmer
Juan D Chui
Izzy A Bowley
Jones V Campain
Cody P Waycott
Ivar L Kolmetz
Mayumi E Tollner
Adams L Gaucho
Johnson G Maclead
Tony R Stockham
Stacey B Malet
Chavez M Nicka
Rodrigues L Paprocki
Ivar V Stenseth
Wickens W Maclead
Leja G Perin
Aika E Caldarera
Kadeem D Malet
Wickens Y Oldroyd
Aika Q Wieser
Wickens O Morasca
Greenwood U Butt
Claire K Chui
Antonio M Campain
Johnson M Kolmetz
Faith L Vocelka
Octavia C Flosi
Morrow V Glick
Greenwood R Perin
Greenwood Y Caudy
Munro E Gillian
Ricardo Z Rulapaugh
Silvio I Waycott
Julie S Venere
Aika S Slusarski
Jones A Stenseth
Greenwood T Flosi
Cody R Butt
Leja Q Inouye
Juan G Ferencz
Tony I Glick
Costa P Marrier
IdCountryDate
1000Japan2025-05-29
1001Italy2025-06-08
1002Germany2025-06-02
1003Canada2025-05-28
1004Brazil2025-05-17
1005Germany2025-06-06
1006Argentina2025-06-10
1007India2025-05-18
1008Japan2025-06-03
1009Italy2025-05-29
1010Japan2025-06-12
1011Spain2025-06-12
1012Italy2025-06-06
1013Spain2025-06-14
1014France2025-06-04
1015Argentina2025-05-24
1016Australia2025-05-18
1017Italy2025-06-09
1018Spain2025-06-01
1019Japan2025-05-18
1020United Kingdom2025-06-06
1021Australia2025-06-09
1022Canada2025-06-09
1023India2025-06-03
1024Germany2025-05-23
1025Japan2025-06-15
1026Japan2025-06-03
1027Japan2025-06-08
1028France2025-05-23
1029Italy2025-05-26
1030Germany2025-05-25
1031United Kingdom2025-05-28
1032Italy2025-05-22
1033Brazil2025-05-20
1034Germany2025-06-02
1035India2025-06-08
1036France2025-06-01
1037India2025-06-03
1038Russia2025-06-05
1039Italy2025-06-10
1040Japan2025-06-12
1041Japan2025-06-03
1042Canada2025-05-30
1043Japan2025-06-13
1044India2025-05-25
1045Japan2025-06-11
1046Spain2025-06-09
1047Russia2025-06-11
1048Spain2025-05-21
1049Germany2025-06-06

On-Demand Data

NameIdCountryDate
Adams B Gaucho1000United Kingdom2025-06-06
Jones U Vocelka1001Germany2025-05-31
Arvin R Slusarski1002Argentina2025-05-31
Cody V Kolmetz1003India2025-05-20
Jeanfrancois G Bowley1004Russia2025-05-25
Leon T Venere1005Germany2025-05-31
Misaki W Briddick1006Australia2025-06-09
Chavez Z Ruta1007Germany2025-06-12
Silvio T Vocelka1008Italy2025-05-29
Jeanfrancois S Schemmer1009Italy2025-05-25
Silvio W Gaucho1010Australia2025-05-24
Octavia S Wieser1011Italy2025-06-11
Rodrigues E Sergi1012India2025-05-24
Kadeem R Paprocki1013Canada2025-06-08
Kadeem R Ferencz1014Germany2025-05-22
Darci P Caldarera1015Russia2025-06-08
Stacey V Schemmer1016India2025-06-10
Mujtaba D Whobrey1017France2025-05-26
Darci O Nestle1018India2025-05-25
Darci I Briddick1019Brazil2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco S StockhamFranceStephen Shaw UNQUALIFIED
Cody T KuskoSpainAmy Elsner NEW
Chavez I ChuiIndiaBernardo Dominic PROPOSAL
Salvatore B BologniaAustraliaBernardo Dominic NEGOTIATION
Costa A GillianSpainIvan Magalhaes NEW
Johnson F DoeGermanyOnyama Limba UNQUALIFIED
Mujtaba W RulapaughUnited KingdomIoni Bowcher RENEWAL
Chavez C RutaRussiaElwin Sharvill NEW
Izzy E InouyeUnited KingdomStephen Shaw NEGOTIATION
Leon F InouyeArgentinaAnna Fali UNQUALIFIED
Francesco I SergiUnited KingdomOnyama Limba RENEWAL
Jefferson H GillianUnited KingdomAmy Elsner NEGOTIATION
David E KolmetzArgentinaAnna Fali UNQUALIFIED
Claire R MaletArgentinaBernardo Dominic RENEWAL
Aika S RoysterBrazilOnyama Limba NEW
Ricardo B OstroskyAustraliaAmy Elsner QUALIFIED
Faith F IturbideCanadaOnyama Limba RENEWAL
Rodrigues H MaletArgentinaStephen Shaw QUALIFIED
Rodrigues N NestleJapanStephen Shaw PROPOSAL
Jeanfrancois Q GillianSpainXuxue Feng NEGOTIATION
Deepesh B StensethGermanyAsiya Javayant RENEWAL
David V MorascaAustraliaAmy Elsner NEW
Maria G RulapaughJapanAnna Fali NEW
Leja H WhobreyBrazilAsiya Javayant NEGOTIATION
Greenwood P SlusarskiAustraliaIvan Magalhaes RENEWAL
Greenwood Z MarrierBrazilElwin Sharvill NEW
Juan X AlbaresJapanIoni Bowcher RENEWAL
Maisha Z FerenczCanadaBernardo Dominic NEGOTIATION
Francesco Z WieserItalyStephen Shaw RENEWAL
Mayumi E RutaIndiaBernardo Dominic UNQUALIFIED
Alejandro L GarufiIndiaOnyama Limba UNQUALIFIED
Wickens B SergiJapanOnyama Limba UNQUALIFIED
Francesco K KuskoArgentinaStephen Shaw QUALIFIED
Aruna L WieserBrazilBernardo Dominic NEW
Mayumi J WieserAustraliaAmy Elsner PROPOSAL
Ivar Z DoeCanadaBernardo Dominic NEW
Isabel N CampainCanadaAnna Fali QUALIFIED
Jeanfrancois Y TollnerGermanyStephen Shaw QUALIFIED
Mayumi S VocelkaUnited KingdomElwin Sharvill QUALIFIED
Nicolas H VenereBrazilIvan Magalhaes NEGOTIATION

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