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
Mayumi X WaycottUnited KingdomOnyama Limba PROPOSAL
Darci H WhobreyAustraliaIvan Magalhaes RENEWAL
Costa Z IturbideIndiaXuxue Feng QUALIFIED
Ashley N AlbaresSpainStephen Shaw PROPOSAL
Mujtaba V VocelkaArgentinaAsiya Javayant PROPOSAL
Jones I MarrierUnited KingdomBernardo Dominic RENEWAL
Murillo E PaprockiUnited KingdomOnyama Limba PROPOSAL
Octavia S WhobreyFranceXuxue Feng PROPOSAL
Adams D AlbaresFranceStephen Shaw PROPOSAL
Mujtaba Y MarrierItalyAnna Fali NEGOTIATION
Munro Q FollerAustraliaAnna Fali RENEWAL
Nicolas C RimAustraliaStephen Shaw UNQUALIFIED
Darci W GlickSpainXuxue Feng QUALIFIED
Aruna H ButtRussiaXuxue Feng QUALIFIED
Misaki A AlbaresCanadaIvan Magalhaes UNQUALIFIED
Darci J WaycottGermanyElwin Sharvill NEW
Deepesh W TollnerSpainAnna Fali NEGOTIATION
Juan F CaudyItalyIoni Bowcher PROPOSAL
Chavez Z DarakjyItalyAmy Elsner NEGOTIATION
Octavia Z FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna S GarufiUnited KingdomIvan Magalhaes PROPOSAL
Deepesh X DarakjyFranceXuxue Feng NEGOTIATION
Wickens D GillianFranceIvan Magalhaes NEGOTIATION
Leja Q MacleadIndiaIvan Magalhaes RENEWAL
James Q NestleGermanyAnna Fali QUALIFIED
Chavez E VenereGermanyElwin Sharvill RENEWAL
Maria N IturbideArgentinaAnna Fali RENEWAL
Jeanfrancois I SchemmerCanadaBernardo Dominic RENEWAL
Emily F GauchoUnited KingdomAnna Fali NEGOTIATION
Emily R VocelkaIndiaIvan Magalhaes NEGOTIATION
Kadeem O GlickCanadaAnna Fali NEW
Jennifer Y CampainRussiaAmy Elsner QUALIFIED
Stacey W CaudyCanadaIoni Bowcher QUALIFIED
Chavez X InouyeSpainIoni Bowcher PROPOSAL
Jeanfrancois Y DarakjyArgentinaAsiya Javayant UNQUALIFIED
Ivar G FigeroaAustraliaBernardo Dominic QUALIFIED
Sinclair H OstroskyAustraliaAsiya Javayant NEW
Jones U OstroskyCanadaAsiya Javayant UNQUALIFIED
Ricardo B RoysterArgentinaAmy Elsner RENEWAL
Jennifer F AmigonIndiaBernardo Dominic NEW
Alejandro X OstroskyItalyAsiya Javayant UNQUALIFIED
Deepesh D WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Maria C ButtIndiaOnyama Limba NEW
Faith F SergiGermanyAmy Elsner NEW
Antonio I FlosiAustraliaStephen Shaw RENEWAL
Leon C DoeRussiaElwin Sharvill NEW
Stacey B ChuiGermanyAnna Fali NEW
Darci M DarakjyBrazilOnyama Limba NEW
Sinclair J OstroskyArgentinaAmy Elsner NEW
Maria T NickaUnited KingdomStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel T NestleSpainElwin Sharvill UNQUALIFIED
Misaki U WhobreySpainOnyama Limba NEW
Francesco J TollnerRussiaOnyama Limba UNQUALIFIED
Mujtaba M InouyeBrazilAsiya Javayant RENEWAL
Cody X FollerRussiaAsiya Javayant NEW
Nicolas R VocelkaGermanyIvan Magalhaes UNQUALIFIED
Alejandro T DarakjyGermanyAmy Elsner RENEWAL
Munro Z WieserUnited KingdomAmy Elsner UNQUALIFIED
Aruna R NestleSpainIvan Magalhaes UNQUALIFIED
Munro Z RoysterAustraliaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel R ButtCanada2026-08-03Commercial Press PROPOSAL0Ivan Magalhaes
1001Misaki V RutaAustralia2026-07-13Rousseaux, Michael Esq NEGOTIATION58Stephen Shaw
1002Ivar A RulapaughBrazil2026-07-17Feltz Printing Service PROPOSAL14Ivan Magalhaes
1003Leja X VocelkaRussia2026-07-28Feltz Printing Service QUALIFIED83Stephen Shaw
1004Kadeem M InouyeBrazil2026-07-29Rousseaux, Michael Esq NEW85Amy Elsner
1005Aika G StockhamUnited Kingdom2026-07-25Truhlar And Truhlar Attys PROPOSAL80Ivan Magalhaes
1006Johnson T AlbaresBrazil2026-07-28King, Christopher A Esq PROPOSAL27Ivan Magalhaes
1007Aika X SchemmerItaly2026-07-13Commercial Press NEGOTIATION53Ioni Bowcher
1008Sinclair L BowleyRussia2026-08-02Rangoni Of Florence RENEWAL74Amy Elsner
1009Costa I BowleyGermany2026-07-30Benton, John B Jr UNQUALIFIED1Stephen Shaw
1010Greenwood Q SergiFrance2026-07-31Commercial Press NEGOTIATION72Stephen Shaw
1011Arvin C PerinBrazil2026-07-20Dorl, James J Esq NEGOTIATION55Bernardo Dominic
1012Maria R FerenczArgentina2026-07-24Printing Dimensions RENEWAL21Bernardo Dominic
1013Aika J FlosiArgentina2026-07-26Chapman, Ross E Esq UNQUALIFIED11Xuxue Feng
1014Jeanfrancois N GauchoItaly2026-07-26Buckley Miller Wright RENEWAL8Ioni Bowcher
1015Wickens P TollnerRussia2026-07-26Chapman, Ross E Esq QUALIFIED89Ivan Magalhaes
1016Francesco F DoeBrazil2026-07-26Commercial Press PROPOSAL71Amy Elsner
1017Munro N PaprockiJapan2026-07-29Feiner Bros QUALIFIED5Amy Elsner
1018Jennifer X InouyeAustralia2026-07-13King, Christopher A Esq NEW59Stephen Shaw
1019Tony O RulapaughSpain2026-07-18Chanay, Jeffrey A Esq RENEWAL90Bernardo Dominic
1020Maisha H WaycottIndia2026-07-19King, Christopher A Esq NEW63Onyama Limba
1021Stacey X FigeroaSpain2026-07-18Dorl, James J Esq QUALIFIED35Bernardo Dominic
1022Adams P MorascaIndia2026-07-22Buckley Miller Wright QUALIFIED98Xuxue Feng
1023Aruna J InouyeRussia2026-08-09Dorl, James J Esq UNQUALIFIED67Stephen Shaw
1024Arvin Z GlickUnited Kingdom2026-08-02Printing Dimensions QUALIFIED95Ioni Bowcher
1025Greenwood S BologniaRussia2026-07-14Rangoni Of Florence UNQUALIFIED46Stephen Shaw
1026Rodrigues O WieserFrance2026-07-14Chanay, Jeffrey A Esq QUALIFIED19Ivan Magalhaes
1027David A AlbaresSpain2026-08-06Printing Dimensions PROPOSAL12Xuxue Feng
1028Mayumi N PoquetteGermany2026-07-17Printing Dimensions NEW63Ivan Magalhaes
1029Maisha E VocelkaItaly2026-07-27Morlong Associates NEGOTIATION43Ivan Magalhaes
1030Izzy S PoquetteAustralia2026-07-19Printing Dimensions NEGOTIATION14Anna Fali
1031David R StensethUnited Kingdom2026-07-14Rangoni Of Florence QUALIFIED0Ivan Magalhaes
1032Emily U MaletAustralia2026-07-30Morlong Associates NEGOTIATION46Ioni Bowcher
1033Cody V CaldareraArgentina2026-07-11King, Christopher A Esq QUALIFIED80Stephen Shaw
1034Jefferson G FollerAustralia2026-07-20Printing Dimensions NEGOTIATION19Anna Fali
1035Isabel M ShinkoAustralia2026-07-14Chemel, James L Cpa NEW33Ivan Magalhaes
1036Aruna K ChuiAustralia2026-07-25Rousseaux, Michael Esq PROPOSAL90Anna Fali
1037Darci Q WhobreyCanada2026-07-28Feiner Bros NEGOTIATION57Ivan Magalhaes
1038Kadeem R IturbideBrazil2026-07-16Morlong Associates NEGOTIATION84Anna Fali
1039Sinclair Z KolmetzAustralia2026-07-31Rangoni Of Florence QUALIFIED42Ivan Magalhaes
1040Ashley J RulapaughFrance2026-07-28Feltz Printing Service RENEWAL8Onyama Limba
1041Smith L PaprockiIndia2026-07-30Truhlar And Truhlar Attys NEW69Asiya Javayant
1042Leon E KuskoAustralia2026-08-06Feltz Printing Service PROPOSAL4Xuxue Feng
1043Nicolas G SergiAustralia2026-07-27King, Christopher A Esq NEW20Ivan Magalhaes
1044Jones P WhobreyUnited Kingdom2026-07-22Chemel, James L Cpa RENEWAL82Ivan Magalhaes
1045Juan T FigeroaIndia2026-08-01Rangoni Of Florence NEGOTIATION74Ioni Bowcher
1046Darci J NestleUnited Kingdom2026-07-16Buckley Miller Wright UNQUALIFIED7Onyama Limba
1047Antonio J PerinItaly2026-07-31Rousseaux, Michael Esq QUALIFIED37Stephen Shaw
1048Jones G KolmetzSpain2026-07-27Rousseaux, Michael Esq NEGOTIATION18Onyama Limba
1049Mujtaba K CampainJapan2026-07-23Rousseaux, Michael Esq RENEWAL58Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio O DarakjyFranceOnyama Limba UNQUALIFIED
Leja R NestleSpainIvan Magalhaes PROPOSAL
Ashley Y StensethUnited KingdomIvan Magalhaes PROPOSAL
Aika J PaprockiItalyIvan Magalhaes QUALIFIED
Maisha K IturbideIndiaBernardo Dominic QUALIFIED
Morrow M BologniaArgentinaIvan Magalhaes QUALIFIED
Alejandro I RimArgentinaElwin Sharvill PROPOSAL
Murillo H ChuiBrazilStephen Shaw RENEWAL
Tony B CaldareraItalyAmy Elsner UNQUALIFIED
Kadeem W CaudyJapanBernardo Dominic RENEWAL
Clifford C CaldareraUnited KingdomXuxue Feng RENEWAL
Jeanfrancois A StockhamAustraliaXuxue Feng NEW
Emily S FigeroaRussiaOnyama Limba PROPOSAL
Emily Q RimBrazilElwin Sharvill QUALIFIED
Munro L IturbideRussiaAsiya Javayant PROPOSAL
Francesco U GauchoSpainAsiya Javayant RENEWAL
Leon D FlosiRussiaIvan Magalhaes QUALIFIED
Aditya W NestleRussiaBernardo Dominic NEW
Isabel A MorascaGermanyAnna Fali QUALIFIED
Darci U InouyeSpainAsiya Javayant NEGOTIATION
Ricardo S GillianCanadaXuxue Feng QUALIFIED
Kaitlin H DarakjyArgentinaXuxue Feng NEGOTIATION
Jefferson C DilliardUnited KingdomAsiya Javayant RENEWAL
Darci Q MarrierItalyAmy Elsner NEGOTIATION
Ricardo Y FlosiUnited KingdomIvan Magalhaes PROPOSAL
Chavez U PoquetteFranceXuxue Feng QUALIFIED
Costa J SlusarskiAustraliaStephen Shaw NEGOTIATION
Rodrigues R MacleadIndiaXuxue Feng NEW
Kaitlin I GillianGermanyAsiya Javayant NEGOTIATION
Johnson E AlbaresBrazilElwin Sharvill PROPOSAL
Ashley W BowleyArgentinaElwin Sharvill NEW
Kaitlin A DarakjyJapanAmy Elsner QUALIFIED
Clifford Q IturbideFranceOnyama Limba UNQUALIFIED
Deepesh Q GlickIndiaAsiya Javayant UNQUALIFIED
Adams D SaylorsFranceIoni Bowcher RENEWAL
Clifford K RimItalyAnna Fali RENEWAL
Stacey K ChuiGermanyStephen Shaw NEW
Octavia J MaletGermanyAnna Fali UNQUALIFIED
Isabel U MarrierFranceAmy Elsner RENEWAL
Stacey R FlosiUnited KingdomIvan Magalhaes QUALIFIED
Greenwood G WhobreyRussiaBernardo Dominic PROPOSAL
Leon L MarrierBrazilXuxue Feng NEGOTIATION
Maria F StockhamUnited KingdomStephen Shaw RENEWAL
Aika G WaycottArgentinaBernardo Dominic UNQUALIFIED
Greenwood N OldroydSpainIvan Magalhaes NEW
Arvin H GauchoIndiaElwin Sharvill NEW
Maria L WieserArgentinaElwin Sharvill NEW
Smith E BriddickIndiaBernardo Dominic RENEWAL
Smith L GillianCanadaAmy Elsner PROPOSAL
Arvin B PerinItalyAsiya Javayant RENEWAL
Frozen Columns
Name
Rodrigues J Sergi
Ashley L Dilliard
Darci Q Campain
Stacey O Sergi
Stacey A Whobrey
Octavia E Albares
Octavia N Foller
Sinclair R Nestle
Salvatore C Gaucho
Maisha N Oldroyd
Jones C Royster
Julie K Gillian
Greenwood D Glick
Julie R Malet
Stacey X Bowley
Mayumi H Royster
James Y Caldarera
Emily E Chui
Kaitlin O Sergi
Jefferson M Saylors
Mayumi K Chui
James J Sergi
Tony K Ostrosky
Ricardo Q Maclead
Claire C Royster
Misaki K Garufi
Morrow I Darakjy
Alejandro Q Butt
Ivar M Malet
Jones O Royster
Cody A Saylors
Jennifer P Venere
Greenwood E Ruta
Nicolas D Oldroyd
Morrow X Morasca
Maisha Z Malet
Darci A Poquette
Sinclair U Oldroyd
Mayumi M Briddick
Mayumi N Darakjy
Aika C Tollner
Deepesh W Flosi
Johnson N Stenseth
Jeanfrancois B Inouye
Morrow M Sergi
Ivar T Campain
Greenwood P Wieser
Isabel K Malet
Isabel F Malet
Jones C Caldarera
IdCountryDate
1000Spain2026-07-26
1001Brazil2026-07-19
1002Italy2026-07-25
1003Canada2026-07-17
1004Argentina2026-07-26
1005Russia2026-07-24
1006France2026-08-08
1007United Kingdom2026-07-25
1008France2026-08-02
1009Italy2026-07-29
1010Australia2026-08-09
1011France2026-07-11
1012France2026-07-15
1013Germany2026-08-03
1014Australia2026-07-27
1015Japan2026-07-11
1016Spain2026-07-29
1017United Kingdom2026-08-03
1018Germany2026-08-05
1019Russia2026-07-29
1020Italy2026-07-27
1021Russia2026-07-15
1022Italy2026-08-05
1023Canada2026-08-05
1024Italy2026-07-28
1025United Kingdom2026-07-19
1026United Kingdom2026-07-17
1027India2026-08-07
1028Japan2026-07-11
1029Russia2026-07-28
1030United Kingdom2026-07-15
1031Canada2026-07-18
1032India2026-08-03
1033Australia2026-07-30
1034Germany2026-07-27
1035Canada2026-08-08
1036Canada2026-07-26
1037Argentina2026-08-04
1038Italy2026-07-21
1039United Kingdom2026-07-21
1040Argentina2026-08-09
1041Argentina2026-07-24
1042Argentina2026-08-07
1043Argentina2026-07-14
1044Japan2026-08-05
1045Brazil2026-07-11
1046Canada2026-07-17
1047Germany2026-07-18
1048Argentina2026-08-07
1049Brazil2026-07-13

On-Demand Data

NameIdCountryDate
Kadeem S Ruta1000Canada2026-07-31
James Z Foller1001Germany2026-07-31
Ashley X Oldroyd1002Argentina2026-07-30
Wickens A Inouye1003Canada2026-08-02
Greenwood G Briddick1004Japan2026-07-18
Costa H Nicka1005Argentina2026-07-25
Chavez D Butt1006India2026-07-24
Faith A Morasca1007Japan2026-07-11
Murillo J Caudy1008Italy2026-07-23
Aruna I Kolmetz1009Canada2026-07-23
Jefferson Q Slusarski1010Italy2026-08-04
Salvatore B Shinko1011France2026-08-05
Stacey K Rim1012France2026-07-23
Julie Q Gillian1013Spain2026-08-09
Darci O Saylors1014United Kingdom2026-07-18
Deepesh B Sergi1015Argentina2026-07-14
Mujtaba F Ferencz1016United Kingdom2026-07-20
Rodrigues I Marrier1017France2026-08-09
Aika R Perin1018Australia2026-07-13
Greenwood G Whobrey1019Argentina2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia A RulapaughUnited KingdomOnyama Limba RENEWAL
Alejandro S GlickCanadaIvan Magalhaes NEW
Murillo Z ButtSpainBernardo Dominic PROPOSAL
Octavia G PerinArgentinaOnyama Limba QUALIFIED
Adams I WieserBrazilAsiya Javayant RENEWAL
Kaitlin E PerinItalyElwin Sharvill RENEWAL
Aika J DoeGermanyElwin Sharvill NEW
Mujtaba R MacleadSpainAnna Fali PROPOSAL
Adams J BologniaFranceAmy Elsner RENEWAL
Leon U MaletBrazilStephen Shaw UNQUALIFIED
Nicolas C AmigonCanadaAsiya Javayant NEGOTIATION
Ashley D FerenczGermanyElwin Sharvill UNQUALIFIED
Maria D NickaCanadaAnna Fali NEW
Stacey F GarufiArgentinaStephen Shaw NEGOTIATION
Smith M AmigonJapanXuxue Feng QUALIFIED
Francesco Q TollnerGermanyElwin Sharvill NEGOTIATION
Alejandro I CaudyArgentinaAmy Elsner QUALIFIED
Smith E BowleyAustraliaStephen Shaw QUALIFIED
Munro R DilliardBrazilIoni Bowcher NEW
Costa P BowleyJapanBernardo Dominic QUALIFIED
Leja Y FlosiIndiaIvan Magalhaes NEGOTIATION
Salvatore Y BowleyCanadaStephen Shaw NEGOTIATION
Ivar C GillianArgentinaBernardo Dominic RENEWAL
David L GarufiCanadaAmy Elsner NEGOTIATION
Darci P FigeroaAustraliaIoni Bowcher RENEWAL
Leon R GauchoJapanOnyama Limba QUALIFIED
Leja U MorascaBrazilElwin Sharvill NEW
Claire I WieserItalyBernardo Dominic UNQUALIFIED
Jennifer M BriddickItalyAsiya Javayant RENEWAL
Ricardo E ButtSpainElwin Sharvill RENEWAL
Juan T ShinkoFranceOnyama Limba NEGOTIATION
Adams L ShinkoUnited KingdomXuxue Feng QUALIFIED
Leja Q VocelkaRussiaXuxue Feng UNQUALIFIED
Ivar J AmigonItalyOnyama Limba RENEWAL
Antonio N BologniaIndiaElwin Sharvill PROPOSAL
Aditya Q MorascaFranceAsiya Javayant RENEWAL
Maisha B MaletCanadaStephen Shaw NEW
Salvatore U WieserIndiaBernardo Dominic UNQUALIFIED
James U NestleArgentinaAsiya Javayant NEW
Murillo C NickaAustraliaOnyama Limba 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>