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
Izzy Y WieserBrazilAsiya Javayant RENEWAL
Darci E StensethSpainAmy Elsner UNQUALIFIED
Deepesh W MaletUnited KingdomOnyama Limba QUALIFIED
Izzy H MarrierIndiaXuxue Feng RENEWAL
Maria X MaletArgentinaBernardo Dominic QUALIFIED
James E SchemmerRussiaIoni Bowcher RENEWAL
Jeanfrancois U ShinkoArgentinaOnyama Limba RENEWAL
Leja I PoquetteFranceIvan Magalhaes QUALIFIED
Arvin U RutaItalyElwin Sharvill QUALIFIED
Claire X RimIndiaIoni Bowcher UNQUALIFIED
Jones F ChuiGermanyBernardo Dominic NEGOTIATION
Emily W FigeroaRussiaBernardo Dominic PROPOSAL
Salvatore E DoeGermanyElwin Sharvill QUALIFIED
Leon H ChuiFranceIvan Magalhaes NEW
Ivar O IturbideArgentinaElwin Sharvill QUALIFIED
Leja O StensethBrazilElwin Sharvill UNQUALIFIED
Maria D WaycottUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois H RulapaughSpainIvan Magalhaes RENEWAL
Wickens F GillianRussiaAsiya Javayant NEGOTIATION
Aika C BriddickCanadaXuxue Feng UNQUALIFIED
Jeanfrancois G RulapaughGermanyStephen Shaw QUALIFIED
Deepesh E GauchoGermanyIvan Magalhaes PROPOSAL
Ashley F CaudyBrazilStephen Shaw UNQUALIFIED
Jeanfrancois E SergiUnited KingdomIvan Magalhaes QUALIFIED
Maria J StockhamUnited KingdomStephen Shaw NEGOTIATION
Octavia R KolmetzRussiaAnna Fali QUALIFIED
Murillo P IturbideCanadaIoni Bowcher UNQUALIFIED
Arvin A RutaIndiaElwin Sharvill NEGOTIATION
David L ButtRussiaXuxue Feng RENEWAL
Jennifer P FlosiRussiaOnyama Limba NEW
Ashley G DarakjyRussiaAnna Fali PROPOSAL
Arvin O CampainArgentinaXuxue Feng NEGOTIATION
Rodrigues A OldroydAustraliaStephen Shaw QUALIFIED
Aruna Z VocelkaUnited KingdomOnyama Limba UNQUALIFIED
Ashley V OldroydCanadaIoni Bowcher NEW
Chavez L GarufiIndiaStephen Shaw RENEWAL
Francesco Q SlusarskiItalyAmy Elsner NEW
Antonio O FlosiBrazilXuxue Feng PROPOSAL
Stacey V WaycottIndiaXuxue Feng UNQUALIFIED
Stacey T MarrierGermanyStephen Shaw PROPOSAL
Aditya O PoquetteFranceBernardo Dominic PROPOSAL
Cody O IturbideGermanyAmy Elsner NEW
Antonio U KolmetzArgentinaStephen Shaw RENEWAL
Aditya V RimIndiaXuxue Feng NEW
Ivar K KolmetzUnited KingdomStephen Shaw NEW
Cody C IturbideCanadaElwin Sharvill PROPOSAL
Octavia T GauchoAustraliaXuxue Feng RENEWAL
Rodrigues V KolmetzFranceXuxue Feng NEGOTIATION
Chavez G AlbaresUnited KingdomAnna Fali QUALIFIED
James V RimAustraliaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem W MacleadUnited KingdomAnna Fali UNQUALIFIED
Leon S SlusarskiBrazilBernardo Dominic PROPOSAL
Octavia T NestleArgentinaAsiya Javayant NEGOTIATION
Faith Q VenereRussiaAsiya Javayant RENEWAL
Munro I WaycottIndiaAsiya Javayant UNQUALIFIED
Mayumi E PerinSpainXuxue Feng NEGOTIATION
Morrow W InouyeAustraliaElwin Sharvill NEGOTIATION
Alejandro K IturbideArgentinaStephen Shaw PROPOSAL
Jefferson P ShinkoGermanyStephen Shaw PROPOSAL
Chavez Z CaudyItalyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez K ShinkoUnited Kingdom2026-08-06Chanay, Jeffrey A Esq NEGOTIATION70Ioni Bowcher
1001Isabel Q InouyeRussia2026-08-11Feltz Printing Service RENEWAL24Bernardo Dominic
1002Murillo W NestleItaly2026-08-17Feltz Printing Service NEW15Anna Fali
1003Rodrigues P DarakjyUnited Kingdom2026-08-09Truhlar And Truhlar Attys UNQUALIFIED53Onyama Limba
1004Chavez A WhobreyBrazil2026-08-17Feiner Bros UNQUALIFIED72Onyama Limba
1005Costa L GillianJapan2026-08-16Printing Dimensions NEW36Ioni Bowcher
1006Leon N CampainIndia2026-08-12Commercial Press NEGOTIATION11Bernardo Dominic
1007Kaitlin Z PaprockiCanada2026-08-18Chemel, James L Cpa QUALIFIED95Ivan Magalhaes
1008Octavia Q DoeIndia2026-08-16Benton, John B Jr NEW34Anna Fali
1009Tony L OldroydCanada2026-08-16Feiner Bros NEW8Ioni Bowcher
1010Mujtaba I WieserAustralia2026-08-11Chapman, Ross E Esq PROPOSAL59Onyama Limba
1011Smith L GlickSpain2026-08-07Morlong Associates QUALIFIED6Bernardo Dominic
1012Francesco G ShinkoGermany2026-08-08Chemel, James L Cpa UNQUALIFIED4Ioni Bowcher
1013Tony A BowleyGermany2026-08-28Printing Dimensions NEGOTIATION0Bernardo Dominic
1014Murillo G FerenczIndia2026-08-19Chemel, James L Cpa UNQUALIFIED82Onyama Limba
1015Tony I CampainCanada2026-08-28Rousseaux, Michael Esq NEW31Elwin Sharvill
1016Antonio G RoysterGermany2026-08-21Morlong Associates NEW79Amy Elsner
1017David E CaldareraIndia2026-08-26Dorl, James J Esq PROPOSAL15Asiya Javayant
1018Emily N DarakjyCanada2026-08-30Chemel, James L Cpa QUALIFIED6Xuxue Feng
1019Smith P VocelkaRussia2026-08-28Dorl, James J Esq UNQUALIFIED83Ioni Bowcher
1020Tony L MaletArgentina2026-08-19Printing Dimensions UNQUALIFIED6Xuxue Feng
1021Misaki E FlosiRussia2026-08-18Printing Dimensions NEGOTIATION54Bernardo Dominic
1022Kaitlin C RulapaughCanada2026-08-08Rousseaux, Michael Esq UNQUALIFIED40Ioni Bowcher
1023Greenwood R KuskoJapan2026-08-30Printing Dimensions PROPOSAL85Ivan Magalhaes
1024Adams Y IturbideArgentina2026-08-03Feltz Printing Service UNQUALIFIED56Bernardo Dominic
1025Stacey G WieserAustralia2026-08-13Buckley Miller Wright UNQUALIFIED5Amy Elsner
1026Leon G NestleItaly2026-08-25Rangoni Of Florence NEW41Amy Elsner
1027Nicolas C MaletAustralia2026-08-17Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1028Salvatore U StockhamItaly2026-08-14Truhlar And Truhlar Attys QUALIFIED99Anna Fali
1029Murillo K AmigonRussia2026-08-02Commercial Press NEGOTIATION56Onyama Limba
1030Ivar J PerinJapan2026-08-06Rangoni Of Florence RENEWAL12Onyama Limba
1031Aruna E TollnerIndia2026-08-18Rousseaux, Michael Esq RENEWAL16Asiya Javayant
1032Murillo A FollerGermany2026-08-27Feltz Printing Service RENEWAL56Bernardo Dominic
1033Antonio Z ChuiSpain2026-08-27Chanay, Jeffrey A Esq QUALIFIED95Ioni Bowcher
1034Jefferson P CaldareraUnited Kingdom2026-08-22Chapman, Ross E Esq PROPOSAL78Xuxue Feng
1035Ashley N GlickSpain2026-08-08Truhlar And Truhlar Attys UNQUALIFIED81Elwin Sharvill
1036Izzy I GlickFrance2026-08-08Feltz Printing Service RENEWAL79Xuxue Feng
1037Silvio Y KuskoGermany2026-08-08Rangoni Of Florence NEW85Onyama Limba
1038Costa K ShinkoGermany2026-08-26Feiner Bros RENEWAL81Asiya Javayant
1039James A SlusarskiArgentina2026-08-20Truhlar And Truhlar Attys RENEWAL54Stephen Shaw
1040Aika H MaletFrance2026-08-11Feltz Printing Service QUALIFIED58Asiya Javayant
1041Juan Q SlusarskiArgentina2026-08-12Buckley Miller Wright NEW90Ivan Magalhaes
1042Isabel M WieserAustralia2026-08-16Printing Dimensions UNQUALIFIED45Xuxue Feng
1043Francesco X SchemmerArgentina2026-08-21Feiner Bros RENEWAL49Ioni Bowcher
1044Jones S OstroskyGermany2026-08-13King, Christopher A Esq PROPOSAL6Ioni Bowcher
1045Munro T CaudyIndia2026-08-13Feiner Bros PROPOSAL1Stephen Shaw
1046Maisha M ShinkoJapan2026-08-15Feiner Bros PROPOSAL63Stephen Shaw
1047Jeanfrancois W DarakjySpain2026-08-26Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1048Kaitlin F RimGermany2026-08-18Truhlar And Truhlar Attys QUALIFIED13Asiya Javayant
1049Mayumi F ButtGermany2026-08-15Chanay, Jeffrey A Esq RENEWAL28Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba M SchemmerArgentinaOnyama Limba NEW
Aruna F SchemmerSpainStephen Shaw QUALIFIED
Stacey E FigeroaAustraliaAmy Elsner NEGOTIATION
Adams C RimBrazilXuxue Feng PROPOSAL
Clifford O DoeFranceAnna Fali QUALIFIED
Costa J BriddickIndiaIvan Magalhaes QUALIFIED
Morrow S SaylorsFranceAnna Fali UNQUALIFIED
Faith P MorascaJapanAsiya Javayant NEGOTIATION
Leja E ShinkoAustraliaElwin Sharvill UNQUALIFIED
Morrow W StensethCanadaAmy Elsner PROPOSAL
Salvatore K SchemmerIndiaStephen Shaw NEW
Wickens O FlosiFranceStephen Shaw NEGOTIATION
Wickens D InouyeCanadaElwin Sharvill UNQUALIFIED
Deepesh T OldroydJapanXuxue Feng RENEWAL
Kadeem L TollnerCanadaElwin Sharvill QUALIFIED
Mayumi S KolmetzArgentinaIvan Magalhaes NEW
Izzy W DoeBrazilXuxue Feng UNQUALIFIED
Wickens U NickaCanadaAmy Elsner PROPOSAL
Jennifer F SaylorsCanadaIvan Magalhaes PROPOSAL
Morrow S MaletRussiaElwin Sharvill NEW
Adams W BologniaSpainXuxue Feng QUALIFIED
Aruna U OstroskyFranceStephen Shaw NEW
Aika H BowleyAustraliaStephen Shaw PROPOSAL
Cody R ButtGermanyAnna Fali RENEWAL
Costa C RoysterItalyIvan Magalhaes PROPOSAL
Aika P CaldareraItalyElwin Sharvill QUALIFIED
Jeanfrancois Y WieserBrazilIvan Magalhaes NEGOTIATION
Aika Y KuskoRussiaOnyama Limba QUALIFIED
David Q BowleyCanadaAnna Fali PROPOSAL
Johnson Y BologniaJapanIvan Magalhaes QUALIFIED
Emily I FigeroaBrazilAsiya Javayant RENEWAL
Francesco V BriddickIndiaOnyama Limba NEW
Izzy E BriddickArgentinaXuxue Feng UNQUALIFIED
Clifford Z NickaJapanXuxue Feng QUALIFIED
Smith Y MacleadFranceAmy Elsner NEW
Leja L MorascaUnited KingdomAmy Elsner NEW
Maria I DilliardArgentinaStephen Shaw NEGOTIATION
Leon I RutaCanadaOnyama Limba UNQUALIFIED
Nicolas N WieserCanadaOnyama Limba UNQUALIFIED
Izzy H ShinkoSpainElwin Sharvill RENEWAL
Tony Z DilliardCanadaElwin Sharvill UNQUALIFIED
Munro L WhobreyRussiaStephen Shaw RENEWAL
Costa Q MaletGermanyIvan Magalhaes QUALIFIED
Ivar F BologniaArgentinaAmy Elsner PROPOSAL
Deepesh H WaycottItalyXuxue Feng UNQUALIFIED
Kaitlin C StockhamCanadaAsiya Javayant NEGOTIATION
Salvatore O WieserAustraliaBernardo Dominic NEGOTIATION
Antonio G AlbaresGermanyOnyama Limba UNQUALIFIED
Kaitlin E CampainFranceIvan Magalhaes NEGOTIATION
Mayumi O CampainItalyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Stacey C Waycott
Cody C Maclead
Costa H Whobrey
Ivar W Wieser
David T Royster
Jennifer J Malet
Misaki O Malet
Kaitlin F Tollner
Julie S Paprocki
Aika Z Schemmer
Juan W Wieser
Faith K Garufi
Adams J Stenseth
Smith B Malet
Ricardo I Perin
Rodrigues C Garufi
Leja E Waycott
Adams Z Nicka
Jennifer Q Saylors
Ashley V Sergi
Clifford O Kusko
Alejandro R Butt
Johnson Z Paprocki
Stacey F Bowley
James Y Stenseth
Darci P Royster
Alejandro U Gaucho
David D Shinko
Maria M Wieser
Salvatore E Vocelka
Cody A Foller
Francesco F Albares
Silvio K Gillian
Silvio W Garufi
David P Marrier
Nicolas K Butt
Ashley N Sergi
Alejandro R Bolognia
Stacey L Rim
Rodrigues I Vocelka
Arvin G Garufi
Francesco I Morasca
Emily U Amigon
Johnson H Wieser
Octavia P Inouye
Stacey G Foller
Morrow Z Shinko
Smith C Flosi
Aditya T Glick
Mujtaba C Caudy
IdCountryDate
1000Canada2026-08-12
1001India2026-08-22
1002United Kingdom2026-08-27
1003Russia2026-08-14
1004United Kingdom2026-08-07
1005United Kingdom2026-08-14
1006Germany2026-08-04
1007Germany2026-08-15
1008India2026-08-18
1009India2026-08-27
1010Brazil2026-08-15
1011Italy2026-08-29
1012Canada2026-08-18
1013France2026-08-23
1014Canada2026-08-06
1015Japan2026-08-09
1016United Kingdom2026-08-06
1017Argentina2026-08-23
1018Canada2026-08-05
1019Spain2026-08-19
1020France2026-08-24
1021France2026-08-05
1022Russia2026-08-30
1023Spain2026-08-14
1024United Kingdom2026-08-08
1025Japan2026-08-21
1026United Kingdom2026-08-06
1027France2026-08-04
1028Brazil2026-08-26
1029France2026-08-20
1030Italy2026-08-17
1031Brazil2026-08-18
1032Italy2026-08-13
1033Australia2026-08-21
1034Italy2026-08-29
1035Russia2026-08-06
1036Italy2026-08-07
1037Germany2026-08-10
1038Argentina2026-08-24
1039France2026-08-30
1040Germany2026-08-09
1041Italy2026-08-13
1042Spain2026-08-07
1043Australia2026-08-29
1044Spain2026-08-16
1045Brazil2026-08-27
1046Russia2026-08-21
1047Spain2026-08-09
1048France2026-08-10
1049Australia2026-08-17

On-Demand Data

NameIdCountryDate
Julie R Chui1000United Kingdom2026-08-27
Francesco S Slusarski1001Argentina2026-08-11
Alejandro W Gaucho1002France2026-08-05
Faith R Gillian1003Australia2026-08-27
Ashley V Flosi1004United Kingdom2026-08-09
Clifford W Stockham1005Japan2026-08-15
Aika S Briddick1006Brazil2026-08-27
Murillo V Albares1007Australia2026-08-22
Nicolas I Kusko1008Italy2026-08-07
Jeanfrancois L Paprocki1009Russia2026-08-16
Aika L Figeroa1010France2026-08-26
Chavez J Morasca1011Germany2026-08-25
Misaki Y Wieser1012Spain2026-08-23
Maisha S Shinko1013Japan2026-08-23
Jeanfrancois V Caudy1014Germany2026-08-29
Arvin X Figeroa1015Germany2026-08-16
Ivar A Amigon1016Argentina2026-08-22
Maria C Paprocki1017Spain2026-08-23
Antonio E Rim1018Spain2026-08-20
Francesco U Malet1019Australia2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon T ButtCanadaOnyama Limba NEGOTIATION
Kaitlin Q CaudyAustraliaIoni Bowcher UNQUALIFIED
Alejandro Y KuskoItalyXuxue Feng NEGOTIATION
Johnson H SchemmerIndiaIvan Magalhaes QUALIFIED
Kaitlin E StensethBrazilIoni Bowcher NEGOTIATION
Greenwood A FerenczSpainOnyama Limba RENEWAL
Izzy C ShinkoRussiaIvan Magalhaes NEGOTIATION
Kaitlin H BologniaRussiaAmy Elsner NEGOTIATION
Claire B PerinAustraliaOnyama Limba RENEWAL
Deepesh Z NickaUnited KingdomIvan Magalhaes QUALIFIED
Salvatore Q NickaAustraliaIvan Magalhaes QUALIFIED
Murillo O FlosiBrazilAmy Elsner NEGOTIATION
Juan N DarakjyCanadaBernardo Dominic UNQUALIFIED
Faith P RoysterItalyBernardo Dominic UNQUALIFIED
Juan B StockhamFranceOnyama Limba NEGOTIATION
Julie F VocelkaIndiaIoni Bowcher NEW
Deepesh I SchemmerArgentinaStephen Shaw PROPOSAL
Leja W WieserRussiaStephen Shaw UNQUALIFIED
Mujtaba O StockhamSpainAsiya Javayant UNQUALIFIED
Wickens T WhobreyCanadaOnyama Limba NEGOTIATION
Aditya T RoysterIndiaElwin Sharvill UNQUALIFIED
Arvin O SergiFranceIoni Bowcher NEW
Sinclair S FigeroaArgentinaIvan Magalhaes NEGOTIATION
Sinclair I StensethJapanStephen Shaw PROPOSAL
Leja C AmigonFranceAmy Elsner PROPOSAL
David S BowleyGermanyAsiya Javayant UNQUALIFIED
Jones Y DoeIndiaStephen Shaw NEGOTIATION
Stacey H VocelkaFranceAnna Fali PROPOSAL
Deepesh G WieserItalyBernardo Dominic NEGOTIATION
Claire K WhobreyGermanyIoni Bowcher PROPOSAL
Juan X SergiFranceBernardo Dominic NEGOTIATION
Greenwood N NestleItalyAmy Elsner UNQUALIFIED
Ricardo H DilliardRussiaAsiya Javayant QUALIFIED
Salvatore U WieserUnited KingdomAnna Fali NEW
Julie V MarrierUnited KingdomOnyama Limba RENEWAL
Costa V GauchoSpainIoni Bowcher QUALIFIED
Leja Y StensethJapanXuxue Feng QUALIFIED
Leja P CampainIndiaAsiya Javayant PROPOSAL
Silvio R SlusarskiFranceAsiya Javayant PROPOSAL
Ashley G KuskoRussiaXuxue Feng 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>