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
Emily T TollnerArgentinaAmy Elsner RENEWAL
Nicolas B OstroskyCanadaXuxue Feng RENEWAL
Claire O GauchoFranceBernardo Dominic NEW
Francesco S SchemmerSpainXuxue Feng RENEWAL
Tony G GarufiSpainStephen Shaw PROPOSAL
Antonio O MaletJapanStephen Shaw NEW
Jeanfrancois A OstroskyArgentinaAsiya Javayant NEW
Jones I SergiBrazilIvan Magalhaes RENEWAL
Aditya Q OstroskyBrazilAsiya Javayant PROPOSAL
Costa N RulapaughItalyAmy Elsner UNQUALIFIED
Chavez D VocelkaUnited KingdomAmy Elsner PROPOSAL
Julie D StockhamArgentinaStephen Shaw NEW
Jones G InouyeBrazilXuxue Feng RENEWAL
Jennifer X WhobreyIndiaElwin Sharvill PROPOSAL
Arvin M PoquetteGermanyIvan Magalhaes RENEWAL
Aika S NickaBrazilAsiya Javayant NEGOTIATION
Jones T GlickJapanXuxue Feng PROPOSAL
Munro L MacleadCanadaStephen Shaw PROPOSAL
Johnson F GillianRussiaBernardo Dominic PROPOSAL
Mujtaba O DilliardGermanyOnyama Limba UNQUALIFIED
Deepesh V ButtSpainAnna Fali NEGOTIATION
Arvin U IturbideAustraliaElwin Sharvill QUALIFIED
Ashley J RutaUnited KingdomXuxue Feng NEGOTIATION
Faith G PoquetteBrazilXuxue Feng QUALIFIED
Misaki D GarufiBrazilElwin Sharvill NEGOTIATION
Aruna L ShinkoSpainElwin Sharvill NEGOTIATION
Aditya T KolmetzUnited KingdomIoni Bowcher RENEWAL
Ricardo Z MacleadUnited KingdomOnyama Limba RENEWAL
Octavia H OldroydFranceAnna Fali PROPOSAL
Izzy N MorascaItalyXuxue Feng NEGOTIATION
Alejandro Z SergiAustraliaAmy Elsner NEGOTIATION
Kaitlin R ShinkoUnited KingdomXuxue Feng QUALIFIED
Munro Z GlickUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois B ShinkoRussiaBernardo Dominic NEW
Darci H AlbaresFranceIoni Bowcher QUALIFIED
Julie F FigeroaAustraliaIoni Bowcher PROPOSAL
Maisha K VocelkaCanadaXuxue Feng NEW
Julie I WhobreyJapanXuxue Feng QUALIFIED
Jefferson Z MorascaCanadaAsiya Javayant RENEWAL
Ashley G OstroskyGermanyAsiya Javayant UNQUALIFIED
Claire B RoysterBrazilIoni Bowcher NEW
Rodrigues V VocelkaJapanXuxue Feng UNQUALIFIED
Leja J PaprockiUnited KingdomIoni Bowcher NEW
Jennifer G MarrierArgentinaAnna Fali QUALIFIED
Claire W NickaUnited KingdomOnyama Limba NEW
Alejandro R SaylorsArgentinaBernardo Dominic RENEWAL
Kadeem I DarakjyAustraliaAsiya Javayant RENEWAL
Jeanfrancois L GauchoUnited KingdomIoni Bowcher PROPOSAL
Faith T VenereGermanyXuxue Feng NEW
Greenwood I FigeroaUnited KingdomStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Juan T DilliardJapanElwin Sharvill RENEWAL
Aruna W MaletUnited KingdomIoni Bowcher QUALIFIED
Tony X AmigonSpainXuxue Feng QUALIFIED
Izzy M PerinIndiaAnna Fali QUALIFIED
Morrow C GauchoArgentinaBernardo Dominic RENEWAL
Aditya G BriddickFranceIoni Bowcher RENEWAL
Julie K AlbaresCanadaIoni Bowcher RENEWAL
Johnson P AlbaresBrazilOnyama Limba UNQUALIFIED
Aditya F MarrierFranceXuxue Feng RENEWAL
Isabel F WaycottItalyBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson P VenereUnited Kingdom2026-07-30Morlong Associates QUALIFIED29Xuxue Feng
1001Morrow C WieserIndia2026-07-29Dorl, James J Esq RENEWAL34Asiya Javayant
1002Stacey S AlbaresItaly2026-08-02Chemel, James L Cpa UNQUALIFIED34Anna Fali
1003Jones Z BriddickUnited Kingdom2026-07-21Buckley Miller Wright NEGOTIATION55Bernardo Dominic
1004Morrow S WaycottUnited Kingdom2026-07-23Rousseaux, Michael Esq PROPOSAL14Elwin Sharvill
1005Stacey W NestleRussia2026-07-31Feiner Bros NEW11Anna Fali
1006Jones N OstroskyAustralia2026-08-15Truhlar And Truhlar Attys PROPOSAL97Amy Elsner
1007Francesco J StensethIndia2026-07-23Chapman, Ross E Esq NEW86Ivan Magalhaes
1008Aruna F GauchoArgentina2026-08-18Buckley Miller Wright RENEWAL68Stephen Shaw
1009James B DoeFrance2026-08-06Printing Dimensions NEW59Ioni Bowcher
1010Rodrigues L NestleSpain2026-08-01Truhlar And Truhlar Attys NEGOTIATION97Onyama Limba
1011Greenwood E ShinkoArgentina2026-08-01Chanay, Jeffrey A Esq NEW78Ivan Magalhaes
1012Tony N CaldareraUnited Kingdom2026-08-14Feiner Bros NEW76Onyama Limba
1013Jefferson Y SlusarskiAustralia2026-08-13King, Christopher A Esq PROPOSAL4Ioni Bowcher
1014Aruna M GillianRussia2026-08-16Morlong Associates NEW66Ioni Bowcher
1015Kaitlin M DoeItaly2026-07-23King, Christopher A Esq NEGOTIATION80Stephen Shaw
1016Johnson L ShinkoCanada2026-08-04Morlong Associates PROPOSAL60Ivan Magalhaes
1017Aruna P SchemmerIndia2026-07-29Commercial Press RENEWAL97Onyama Limba
1018Francesco J SlusarskiArgentina2026-08-15Chemel, James L Cpa RENEWAL87Onyama Limba
1019Smith G CampainFrance2026-07-22Commercial Press UNQUALIFIED32Elwin Sharvill
1020Julie B KuskoAustralia2026-08-01King, Christopher A Esq QUALIFIED32Xuxue Feng
1021Greenwood J GauchoUnited Kingdom2026-08-05Chapman, Ross E Esq PROPOSAL99Asiya Javayant
1022Clifford Z NickaSpain2026-08-14Benton, John B Jr UNQUALIFIED71Ioni Bowcher
1023Kaitlin M BologniaFrance2026-07-29Buckley Miller Wright UNQUALIFIED73Ioni Bowcher
1024Faith H ButtAustralia2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED63Elwin Sharvill
1025Murillo K DilliardRussia2026-07-21Chapman, Ross E Esq NEW3Anna Fali
1026Kaitlin S KolmetzRussia2026-08-13Printing Dimensions UNQUALIFIED20Asiya Javayant
1027Misaki C DarakjyRussia2026-07-29Morlong Associates RENEWAL62Amy Elsner
1028Kadeem E OstroskySpain2026-08-01Chapman, Ross E Esq UNQUALIFIED88Xuxue Feng
1029Aditya X WieserCanada2026-08-09Commercial Press NEW58Ioni Bowcher
1030Murillo Q OstroskyRussia2026-08-13Dorl, James J Esq RENEWAL95Onyama Limba
1031Sinclair I ShinkoItaly2026-07-30Morlong Associates UNQUALIFIED68Bernardo Dominic
1032Tony Q SaylorsIndia2026-08-12Feltz Printing Service NEGOTIATION47Onyama Limba
1033Cody E SlusarskiArgentina2026-08-12King, Christopher A Esq RENEWAL71Ivan Magalhaes
1034Darci C OldroydJapan2026-07-31Chemel, James L Cpa PROPOSAL52Elwin Sharvill
1035Aika R FlosiItaly2026-08-13Commercial Press PROPOSAL29Elwin Sharvill
1036Maisha I VenereIndia2026-07-31Dorl, James J Esq QUALIFIED12Xuxue Feng
1037Aruna S NickaCanada2026-08-12Feltz Printing Service PROPOSAL45Xuxue Feng
1038Leja C SchemmerUnited Kingdom2026-08-08Feltz Printing Service QUALIFIED85Stephen Shaw
1039Jennifer O SchemmerUnited Kingdom2026-08-12Chemel, James L Cpa QUALIFIED51Stephen Shaw
1040Salvatore E MaletSpain2026-08-03Morlong Associates NEGOTIATION35Amy Elsner
1041Chavez D BriddickSpain2026-07-26King, Christopher A Esq RENEWAL42Xuxue Feng
1042Jefferson D WieserGermany2026-08-07Rousseaux, Michael Esq QUALIFIED30Asiya Javayant
1043Jefferson B ButtGermany2026-08-10Chapman, Ross E Esq NEW77Onyama Limba
1044Mayumi B GarufiItaly2026-08-14Rousseaux, Michael Esq NEGOTIATION29Anna Fali
1045Deepesh J AlbaresCanada2026-08-13Buckley Miller Wright PROPOSAL91Ivan Magalhaes
1046Isabel C ChuiAustralia2026-07-23Buckley Miller Wright QUALIFIED91Bernardo Dominic
1047Chavez H FlosiGermany2026-07-25Dorl, James J Esq QUALIFIED78Amy Elsner
1048Greenwood O FlosiRussia2026-08-04King, Christopher A Esq PROPOSAL91Ivan Magalhaes
1049Cody Q CaudyRussia2026-08-06Feiner Bros QUALIFIED35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Antonio J StockhamJapanBernardo Dominic NEGOTIATION
Claire V AmigonArgentinaBernardo Dominic NEGOTIATION
Leja D RoysterUnited KingdomBernardo Dominic PROPOSAL
Jefferson R MaletIndiaBernardo Dominic RENEWAL
Alejandro T WieserArgentinaIoni Bowcher PROPOSAL
Adams S WieserJapanXuxue Feng RENEWAL
Jefferson V WaycottArgentinaOnyama Limba NEGOTIATION
Ricardo R RulapaughAustraliaStephen Shaw PROPOSAL
Octavia D NestleSpainIvan Magalhaes NEW
Greenwood N MaletAustraliaIoni Bowcher QUALIFIED
Leon H MaletIndiaAmy Elsner UNQUALIFIED
Silvio C PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Aruna T VenereFranceAmy Elsner NEGOTIATION
Costa M RutaAustraliaAsiya Javayant NEGOTIATION
Juan O AlbaresFranceStephen Shaw NEW
Aruna F CaldareraItalyElwin Sharvill QUALIFIED
Jefferson D FollerUnited KingdomXuxue Feng NEW
Nicolas F DilliardIndiaStephen Shaw RENEWAL
Munro A OldroydFranceBernardo Dominic PROPOSAL
Claire H StockhamSpainStephen Shaw NEGOTIATION
Isabel K SaylorsGermanyBernardo Dominic NEGOTIATION
Stacey T MaletArgentinaAnna Fali QUALIFIED
Ashley S VenereUnited KingdomIvan Magalhaes NEGOTIATION
Francesco G NickaIndiaAsiya Javayant RENEWAL
Ivar H MaletItalyIvan Magalhaes QUALIFIED
Jefferson Y RimRussiaIoni Bowcher NEGOTIATION
Stacey G MaletCanadaIoni Bowcher QUALIFIED
Claire W MaletItalyAsiya Javayant UNQUALIFIED
Darci J GlickItalyStephen Shaw NEW
Aika M OstroskyJapanAnna Fali UNQUALIFIED
Costa W PerinArgentinaIvan Magalhaes NEW
Stacey C BriddickFranceAmy Elsner RENEWAL
Ashley B DarakjyGermanyAnna Fali UNQUALIFIED
Wickens Z NestleFranceStephen Shaw PROPOSAL
Aditya F StensethJapanXuxue Feng RENEWAL
Maisha A ChuiRussiaIvan Magalhaes RENEWAL
Octavia R WhobreyFranceStephen Shaw QUALIFIED
Wickens K WieserArgentinaXuxue Feng RENEWAL
Arvin I VocelkaFranceAmy Elsner QUALIFIED
Jennifer H WieserUnited KingdomIvan Magalhaes NEW
Jones R SchemmerArgentinaOnyama Limba NEW
Kadeem Z RoysterFranceAmy Elsner UNQUALIFIED
Juan M NestleGermanyXuxue Feng UNQUALIFIED
Deepesh N SergiArgentinaAnna Fali PROPOSAL
Deepesh S BowleyBrazilOnyama Limba RENEWAL
Jeanfrancois Z NestleFranceAsiya Javayant QUALIFIED
Rodrigues G FlosiCanadaIoni Bowcher QUALIFIED
Misaki I MarrierFranceOnyama Limba NEW
Aditya S MaletCanadaIvan Magalhaes NEW
Munro H CaudyArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Leon D Amigon
Julie X Maclead
Deepesh U Waycott
Misaki M Butt
Francesco L Maclead
Isabel D Malet
Izzy O Royster
Maria R Nestle
Munro C Dilliard
Jennifer U Inouye
Greenwood P Nicka
Ricardo D Oldroyd
Maria V Shinko
Costa U Tollner
Arvin S Ruta
Morrow N Darakjy
Chavez X Iturbide
Alejandro B Malet
Darci E Flosi
Leja L Perin
Maisha H Glick
Izzy W Marrier
Clifford R Amigon
Antonio P Doe
Maisha J Kolmetz
Juan Q Rim
Murillo R Kusko
Arvin U Gillian
Nicolas P Slusarski
Jeanfrancois F Paprocki
Maisha M Bolognia
Kaitlin F Briddick
Aditya S Caldarera
Stacey I Morasca
Murillo V Ruta
Faith V Caldarera
Arvin J Waycott
Johnson D Figeroa
Wickens S Butt
James O Morasca
Murillo N Dilliard
Wickens O Amigon
Maisha J Rulapaugh
Morrow J Waycott
Chavez V Kolmetz
Julie M Stenseth
Clifford Z Whobrey
Greenwood L Poquette
Clifford G Glick
Adams X Whobrey
IdCountryDate
1000United Kingdom2026-07-25
1001Australia2026-07-21
1002France2026-08-01
1003Brazil2026-08-16
1004Argentina2026-07-26
1005Canada2026-08-17
1006Spain2026-08-02
1007Argentina2026-08-06
1008Italy2026-08-13
1009Spain2026-07-30
1010Australia2026-08-04
1011Australia2026-07-26
1012Argentina2026-08-09
1013United Kingdom2026-08-14
1014United Kingdom2026-08-17
1015Italy2026-07-23
1016Japan2026-08-03
1017Australia2026-07-30
1018Brazil2026-08-11
1019India2026-08-06
1020France2026-08-11
1021France2026-08-18
1022Spain2026-08-13
1023India2026-07-24
1024India2026-08-15
1025India2026-08-07
1026Argentina2026-08-09
1027India2026-08-15
1028United Kingdom2026-08-16
1029Spain2026-08-12
1030Canada2026-08-02
1031Spain2026-07-24
1032Australia2026-08-07
1033Argentina2026-08-11
1034Italy2026-08-15
1035Argentina2026-07-25
1036Russia2026-08-02
1037Australia2026-08-11
1038Spain2026-07-21
1039Argentina2026-08-14
1040Canada2026-07-30
1041India2026-08-09
1042Australia2026-08-18
1043Italy2026-08-05
1044Argentina2026-08-16
1045Japan2026-07-31
1046Germany2026-07-24
1047Brazil2026-08-11
1048Russia2026-07-20
1049Japan2026-08-13

On-Demand Data

NameIdCountryDate
Isabel X Malet1000Japan2026-07-28
Smith J Albares1001Argentina2026-07-26
Aika I Nestle1002Italy2026-08-01
Morrow H Morasca1003Italy2026-08-01
Aruna A Darakjy1004France2026-07-24
Arvin B Nestle1005Italy2026-08-04
Leja W Figeroa1006United Kingdom2026-08-12
Deepesh T Campain1007Spain2026-08-03
Maria J Stenseth1008France2026-08-09
Antonio J Rulapaugh1009Argentina2026-07-23
Juan Q Ferencz1010India2026-07-25
Ricardo S Waycott1011Brazil2026-08-14
Jennifer U Doe1012India2026-08-03
Tony R Waycott1013Canada2026-07-23
Leon G Perin1014India2026-08-05
Smith F Bolognia1015Japan2026-08-10
Mujtaba T Gillian1016Brazil2026-07-24
Aruna H Ruta1017United Kingdom2026-08-11
Emily G Marrier1018United Kingdom2026-07-24
Maria A Flosi1019United Kingdom2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh W KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia B DoeSpainAnna Fali NEW
Chavez G SlusarskiAustraliaIoni Bowcher QUALIFIED
Julie M VocelkaGermanyElwin Sharvill PROPOSAL
Murillo Q VocelkaAustraliaElwin Sharvill PROPOSAL
Francesco Q ChuiBrazilAnna Fali PROPOSAL
Leja C FigeroaSpainAsiya Javayant PROPOSAL
Greenwood V CaldareraRussiaElwin Sharvill NEW
Greenwood A GlickJapanAnna Fali PROPOSAL
Mayumi E PaprockiAustraliaXuxue Feng NEW
Claire N ButtItalyOnyama Limba QUALIFIED
Jones L ChuiItalyOnyama Limba PROPOSAL
Greenwood Y VocelkaFranceIvan Magalhaes QUALIFIED
Adams G SergiAustraliaStephen Shaw PROPOSAL
Misaki O GarufiRussiaOnyama Limba QUALIFIED
James L DilliardJapanIvan Magalhaes NEW
Rodrigues M OldroydSpainOnyama Limba NEGOTIATION
David L MarrierUnited KingdomAnna Fali NEW
Leon I DarakjyBrazilOnyama Limba PROPOSAL
Murillo T RoysterAustraliaAmy Elsner PROPOSAL
Misaki M CaudyGermanyAsiya Javayant PROPOSAL
Juan O BowleyBrazilBernardo Dominic QUALIFIED
Ashley G MacleadItalyBernardo Dominic PROPOSAL
Jones N InouyeIndiaIoni Bowcher UNQUALIFIED
Julie S StensethCanadaAsiya Javayant UNQUALIFIED
Julie P ButtJapanXuxue Feng PROPOSAL
Mayumi T MorascaArgentinaIvan Magalhaes NEW
Johnson E IturbideAustraliaAmy Elsner PROPOSAL
Rodrigues K AlbaresIndiaBernardo Dominic PROPOSAL
Aditya Y CampainFranceIvan Magalhaes NEGOTIATION
Kaitlin F ButtCanadaAsiya Javayant NEGOTIATION
Johnson B WaycottFranceAmy Elsner PROPOSAL
Julie M VenereGermanyAsiya Javayant RENEWAL
Claire L IturbideBrazilElwin Sharvill RENEWAL
Arvin H TollnerAustraliaXuxue Feng NEW
Costa X FerenczGermanyIoni Bowcher PROPOSAL
Silvio A AlbaresBrazilIvan Magalhaes RENEWAL
Claire P IturbideFranceStephen Shaw PROPOSAL
Munro D AmigonIndiaAsiya Javayant NEW
Julie S CampainIndiaBernardo Dominic 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>