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 G VenereArgentinaAmy Elsner NEGOTIATION
Ashley B PerinArgentinaAmy Elsner PROPOSAL
Cody S BriddickJapanIvan Magalhaes UNQUALIFIED
Francesco D GillianItalyOnyama Limba RENEWAL
Arvin N MarrierSpainOnyama Limba UNQUALIFIED
Octavia W AmigonBrazilStephen Shaw PROPOSAL
Ivar Q KolmetzCanadaAsiya Javayant NEW
Nicolas C RutaIndiaIoni Bowcher RENEWAL
James K NickaItalyXuxue Feng UNQUALIFIED
Francesco O BowleyCanadaElwin Sharvill PROPOSAL
Francesco O RoysterRussiaAsiya Javayant NEW
Kadeem X KuskoSpainBernardo Dominic UNQUALIFIED
Chavez X SaylorsSpainStephen Shaw PROPOSAL
Jones R AmigonItalyIvan Magalhaes NEW
Isabel L KolmetzRussiaStephen Shaw UNQUALIFIED
Kadeem G MaletBrazilStephen Shaw PROPOSAL
Jefferson P FlosiIndiaBernardo Dominic UNQUALIFIED
Isabel Q DilliardUnited KingdomElwin Sharvill QUALIFIED
Izzy D CaldareraCanadaIvan Magalhaes RENEWAL
Juan A DoeAustraliaAsiya Javayant NEGOTIATION
Ashley I OldroydUnited KingdomXuxue Feng UNQUALIFIED
Jefferson K OstroskyUnited KingdomAsiya Javayant PROPOSAL
Aruna B WhobreyArgentinaAsiya Javayant RENEWAL
Arvin W AlbaresFranceElwin Sharvill NEGOTIATION
Mayumi Z AmigonJapanOnyama Limba NEGOTIATION
Adams W ShinkoUnited KingdomBernardo Dominic RENEWAL
Morrow B AlbaresBrazilStephen Shaw PROPOSAL
Francesco V BriddickBrazilAsiya Javayant UNQUALIFIED
Alejandro X SlusarskiArgentinaBernardo Dominic NEW
Jefferson R AmigonSpainElwin Sharvill PROPOSAL
Leja Y NestleItalyIoni Bowcher UNQUALIFIED
Murillo A OldroydArgentinaIvan Magalhaes QUALIFIED
Maria T RulapaughCanadaIoni Bowcher QUALIFIED
Chavez O GauchoArgentinaAmy Elsner RENEWAL
Arvin O MorascaUnited KingdomIoni Bowcher NEW
Deepesh P MorascaUnited KingdomAsiya Javayant RENEWAL
Kaitlin V GarufiIndiaOnyama Limba NEW
Izzy J DoeJapanOnyama Limba NEW
Izzy W RoysterCanadaStephen Shaw PROPOSAL
Misaki C VenereBrazilElwin Sharvill NEW
Arvin Z OldroydItalyIvan Magalhaes QUALIFIED
Clifford J BologniaFranceElwin Sharvill UNQUALIFIED
Kaitlin J TollnerRussiaOnyama Limba PROPOSAL
Kaitlin R ButtSpainStephen Shaw NEGOTIATION
Mujtaba I NestleGermanyElwin Sharvill PROPOSAL
Greenwood R CaudyIndiaElwin Sharvill NEGOTIATION
Izzy M FollerItalyBernardo Dominic NEGOTIATION
David I DoeBrazilIoni Bowcher RENEWAL
Aditya M MaletSpainOnyama Limba RENEWAL
Munro Y WieserRussiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James N SchemmerBrazilXuxue Feng QUALIFIED
Misaki J ChuiCanadaIvan Magalhaes NEW
Rodrigues E MacleadRussiaIvan Magalhaes NEW
Leja H BowleyRussiaXuxue Feng RENEWAL
Salvatore Z CampainGermanyAnna Fali RENEWAL
Murillo X MaletAustraliaStephen Shaw RENEWAL
David Q SergiArgentinaAmy Elsner NEW
Aika K BriddickFranceIoni Bowcher NEW
Francesco X CaldareraGermanyAnna Fali RENEWAL
Rodrigues F GauchoArgentinaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith D NickaUnited Kingdom2025-04-09Rousseaux, Michael Esq NEGOTIATION37Ivan Magalhaes
1001Faith C BowleyUnited Kingdom2025-04-27Printing Dimensions NEGOTIATION25Onyama Limba
1002Francesco E SaylorsArgentina2025-04-21Buckley Miller Wright RENEWAL27Stephen Shaw
1003Aruna I KuskoCanada2025-04-29Rangoni Of Florence NEGOTIATION31Ioni Bowcher
1004Maisha J ChuiSpain2025-05-05Morlong Associates UNQUALIFIED84Asiya Javayant
1005Jones C PoquetteUnited Kingdom2025-04-15Buckley Miller Wright QUALIFIED51Xuxue Feng
1006Mujtaba E MorascaGermany2025-04-11Chemel, James L Cpa NEGOTIATION69Elwin Sharvill
1007Kadeem F VocelkaFrance2025-05-07Feiner Bros PROPOSAL65Amy Elsner
1008Greenwood O InouyeGermany2025-04-15Morlong Associates UNQUALIFIED83Stephen Shaw
1009Alejandro Y KuskoCanada2025-05-01Benton, John B Jr RENEWAL23Ivan Magalhaes
1010Jennifer R DilliardUnited Kingdom2025-05-02Chapman, Ross E Esq RENEWAL4Onyama Limba
1011Murillo B GarufiBrazil2025-05-03Chanay, Jeffrey A Esq UNQUALIFIED73Anna Fali
1012Ricardo J RoysterAustralia2025-04-17Chapman, Ross E Esq RENEWAL57Amy Elsner
1013Munro E MaletAustralia2025-04-29Chemel, James L Cpa NEGOTIATION49Ivan Magalhaes
1014Misaki K GillianGermany2025-04-26King, Christopher A Esq NEGOTIATION54Anna Fali
1015Aruna Z PaprockiGermany2025-04-17Printing Dimensions PROPOSAL54Bernardo Dominic
1016Jefferson D NickaIndia2025-04-11Commercial Press PROPOSAL93Stephen Shaw
1017Aditya T DoeIndia2025-04-09Chemel, James L Cpa UNQUALIFIED47Elwin Sharvill
1018Isabel S BowleyItaly2025-04-24Feiner Bros RENEWAL96Elwin Sharvill
1019Tony C MarrierFrance2025-04-16Chanay, Jeffrey A Esq UNQUALIFIED83Stephen Shaw
1020Arvin A SergiItaly2025-04-29Chemel, James L Cpa PROPOSAL25Ivan Magalhaes
1021Aruna V GillianUnited Kingdom2025-04-16Chemel, James L Cpa NEW91Elwin Sharvill
1022Izzy E OldroydSpain2025-05-08Buckley Miller Wright QUALIFIED46Bernardo Dominic
1023Murillo X AmigonFrance2025-04-11Printing Dimensions NEW23Stephen Shaw
1024Kadeem N SlusarskiItaly2025-05-08Feiner Bros QUALIFIED89Anna Fali
1025Ashley Q FlosiAustralia2025-05-01Printing Dimensions RENEWAL53Xuxue Feng
1026Costa M ShinkoBrazil2025-04-15Printing Dimensions NEW24Asiya Javayant
1027Cody S WaycottAustralia2025-04-27Buckley Miller Wright RENEWAL2Ivan Magalhaes
1028Wickens G BologniaAustralia2025-04-30Chapman, Ross E Esq UNQUALIFIED54Elwin Sharvill
1029Tony D OstroskyItaly2025-05-03Chemel, James L Cpa NEW2Ivan Magalhaes
1030Leon J SaylorsJapan2025-04-09Rousseaux, Michael Esq NEW66Stephen Shaw
1031Ashley D AlbaresItaly2025-04-28Printing Dimensions PROPOSAL70Bernardo Dominic
1032Tony A CampainUnited Kingdom2025-04-23Feiner Bros RENEWAL52Asiya Javayant
1033Kadeem Z GauchoIndia2025-05-01King, Christopher A Esq NEGOTIATION61Amy Elsner
1034Ricardo D VenereIndia2025-04-17Truhlar And Truhlar Attys QUALIFIED61Stephen Shaw
1035Salvatore U MaletIndia2025-04-29Truhlar And Truhlar Attys UNQUALIFIED98Elwin Sharvill
1036Cody J AmigonItaly2025-04-30King, Christopher A Esq RENEWAL88Ioni Bowcher
1037Aditya V GarufiAustralia2025-04-25Benton, John B Jr NEW52Asiya Javayant
1038Leja C FigeroaJapan2025-04-09Rangoni Of Florence PROPOSAL19Ioni Bowcher
1039Jones R MaletItaly2025-04-12Commercial Press QUALIFIED92Ivan Magalhaes
1040Munro E GillianItaly2025-04-14Printing Dimensions NEW30Asiya Javayant
1041Francesco S GlickBrazil2025-04-16Rousseaux, Michael Esq UNQUALIFIED54Asiya Javayant
1042Aditya T GillianIndia2025-04-25Benton, John B Jr NEGOTIATION14Anna Fali
1043Isabel G RoysterGermany2025-04-22Morlong Associates RENEWAL52Xuxue Feng
1044Faith X GarufiGermany2025-04-12Chemel, James L Cpa NEW38Anna Fali
1045Morrow O AmigonArgentina2025-04-19Commercial Press QUALIFIED99Elwin Sharvill
1046Claire L PerinUnited Kingdom2025-04-13Feltz Printing Service QUALIFIED42Onyama Limba
1047Claire I VenereSpain2025-05-07Rangoni Of Florence NEGOTIATION8Asiya Javayant
1048Wickens J GauchoFrance2025-04-19Commercial Press RENEWAL16Xuxue Feng
1049Izzy R WaycottAustralia2025-04-12Feiner Bros PROPOSAL90Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria S PerinSpainElwin Sharvill QUALIFIED
Deepesh B KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Greenwood E CaudyArgentinaXuxue Feng QUALIFIED
Silvio Z StockhamBrazilAsiya Javayant UNQUALIFIED
Octavia G FlosiSpainAsiya Javayant UNQUALIFIED
Ricardo B WhobreyRussiaAsiya Javayant UNQUALIFIED
Cody H SlusarskiFranceXuxue Feng RENEWAL
James Y SergiJapanIvan Magalhaes QUALIFIED
James W FlosiBrazilIvan Magalhaes PROPOSAL
Ricardo X MarrierRussiaAmy Elsner NEGOTIATION
David Q KuskoRussiaElwin Sharvill PROPOSAL
Deepesh W RutaGermanyElwin Sharvill RENEWAL
Maisha N SlusarskiCanadaAsiya Javayant NEW
Aruna S WaycottArgentinaBernardo Dominic QUALIFIED
Juan M DilliardFranceAsiya Javayant PROPOSAL
Claire F VocelkaArgentinaBernardo Dominic PROPOSAL
Antonio H RulapaughRussiaElwin Sharvill QUALIFIED
Leja G PaprockiFranceAsiya Javayant UNQUALIFIED
Wickens R CaudyItalyElwin Sharvill NEGOTIATION
Kadeem G OstroskyArgentinaAnna Fali PROPOSAL
Morrow E PoquetteIndiaAnna Fali RENEWAL
Rodrigues I BowleyGermanyBernardo Dominic NEW
Aruna E DarakjyAustraliaAmy Elsner NEGOTIATION
Francesco X SaylorsIndiaAsiya Javayant PROPOSAL
Tony D PaprockiFranceAmy Elsner PROPOSAL
Mujtaba M FigeroaGermanyAnna Fali NEW
Izzy H GarufiJapanOnyama Limba NEGOTIATION
Juan S DoeRussiaXuxue Feng NEW
Jones K BowleyAustraliaStephen Shaw UNQUALIFIED
Kadeem S IturbideFranceAsiya Javayant UNQUALIFIED
Jeanfrancois M SchemmerRussiaIoni Bowcher PROPOSAL
Maisha T MorascaCanadaAnna Fali NEW
Jennifer G InouyeGermanyOnyama Limba QUALIFIED
Rodrigues M CaldareraGermanyAnna Fali NEW
Deepesh C DoeBrazilAmy Elsner RENEWAL
Mujtaba I MaletRussiaIoni Bowcher NEGOTIATION
Stacey C NestleSpainAsiya Javayant NEW
Wickens M BologniaItalyStephen Shaw PROPOSAL
Stacey V SergiFranceAnna Fali UNQUALIFIED
Silvio F RutaCanadaStephen Shaw RENEWAL
Stacey F RulapaughJapanAsiya Javayant NEW
Smith Q WhobreyGermanyAmy Elsner NEW
Munro G AlbaresItalyStephen Shaw NEW
Alejandro R GauchoFranceIvan Magalhaes RENEWAL
Jones U SergiGermanyStephen Shaw PROPOSAL
Cody Z DoeFranceStephen Shaw QUALIFIED
Morrow X RoysterUnited KingdomStephen Shaw NEW
Kadeem G StockhamBrazilIvan Magalhaes PROPOSAL
Adams S SlusarskiCanadaXuxue Feng UNQUALIFIED
Arvin X RimIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Julie N Perin
Faith A Darakjy
Isabel E Dilliard
Jennifer X Vocelka
Ivar U Malet
Darci V Chui
Izzy M Vocelka
Adams R Sergi
James U Flosi
Faith H Dilliard
Jeanfrancois E Stockham
Emily J Dilliard
Misaki V Doe
Kadeem W Flosi
Emily L Sergi
Clifford C Royster
Leon P Stockham
Greenwood A Butt
Deepesh W Venere
Rodrigues Z Malet
Rodrigues E Kusko
Jones Z Stenseth
Munro G Kolmetz
Maria E Briddick
Darci W Flosi
Jones U Ostrosky
Clifford X Kolmetz
Jefferson J Bolognia
Misaki V Figeroa
Rodrigues W Slusarski
Nicolas H Garufi
Jeanfrancois N Waycott
Smith W Ruta
Faith O Tollner
Maria A Maclead
Aika K Garufi
Deepesh L Perin
Rodrigues X Amigon
Jeanfrancois P Chui
Aruna W Perin
Emily F Wieser
James E Foller
Emily E Bowley
Aika T Glick
Smith R Kolmetz
Greenwood H Glick
Francesco O Paprocki
Rodrigues Q Slusarski
Ivar B Morasca
Ricardo Z Foller
IdCountryDate
1000Italy2025-04-10
1001Germany2025-04-09
1002Canada2025-04-23
1003Brazil2025-04-23
1004Spain2025-04-13
1005Spain2025-04-16
1006Argentina2025-04-12
1007France2025-04-10
1008Germany2025-04-27
1009France2025-04-28
1010Brazil2025-04-19
1011Italy2025-04-18
1012Brazil2025-04-10
1013Germany2025-04-13
1014Germany2025-04-18
1015Russia2025-04-29
1016Canada2025-05-01
1017Russia2025-05-04
1018Russia2025-04-16
1019Canada2025-05-06
1020Germany2025-04-20
1021Brazil2025-05-08
1022Brazil2025-04-29
1023Spain2025-04-23
1024Germany2025-04-09
1025Brazil2025-04-30
1026Japan2025-04-16
1027France2025-05-01
1028Germany2025-04-15
1029Spain2025-05-08
1030United Kingdom2025-04-15
1031Spain2025-04-27
1032Canada2025-04-20
1033Argentina2025-04-24
1034Brazil2025-05-02
1035Brazil2025-04-12
1036Japan2025-04-13
1037Italy2025-04-27
1038Argentina2025-04-22
1039Italy2025-05-06
1040Italy2025-04-14
1041United Kingdom2025-04-09
1042Japan2025-04-16
1043United Kingdom2025-04-11
1044Germany2025-04-28
1045Australia2025-04-13
1046Canada2025-04-23
1047Japan2025-04-23
1048Russia2025-04-16
1049India2025-04-28

On-Demand Data

NameIdCountryDate
Ivar I Foller1000Argentina2025-04-28
Emily D Foller1001India2025-05-07
Ricardo F Iturbide1002United Kingdom2025-05-03
Munro J Kolmetz1003Canada2025-04-24
Nicolas T Caudy1004Argentina2025-04-20
Aditya H Rim1005France2025-04-21
Adams G Inouye1006Germany2025-04-11
Tony L Foller1007Germany2025-05-02
Juan D Caudy1008United Kingdom2025-04-14
Isabel B Darakjy1009Spain2025-05-04
Chavez B Ferencz1010France2025-05-02
Wickens V Oldroyd1011Brazil2025-04-23
Leja K Sergi1012Canada2025-04-10
Emily F Nestle1013Japan2025-04-22
Deepesh S Nicka1014Spain2025-04-09
Ivar S Bowley1015India2025-04-13
Maria J Malet1016Spain2025-04-26
Munro V Bolognia1017Brazil2025-04-21
Jones L Foller1018Australia2025-05-02
Octavia F Waycott1019Spain2025-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba X PoquetteRussiaAnna Fali NEGOTIATION
Jeanfrancois K GarufiFranceBernardo Dominic UNQUALIFIED
Deepesh J PaprockiCanadaAmy Elsner NEW
Rodrigues C OstroskyAustraliaAnna Fali UNQUALIFIED
Maria V RulapaughGermanyBernardo Dominic UNQUALIFIED
Octavia C ChuiGermanyIoni Bowcher QUALIFIED
Costa X FollerIndiaAnna Fali PROPOSAL
Adams P InouyeRussiaElwin Sharvill NEGOTIATION
Morrow T VenereCanadaBernardo Dominic UNQUALIFIED
Greenwood S BriddickGermanyAmy Elsner NEGOTIATION
Jennifer M WaycottAustraliaAmy Elsner NEW
Arvin S OstroskyItalyAnna Fali NEGOTIATION
Francesco Y RoysterBrazilAsiya Javayant NEW
Maria J WhobreyFranceAsiya Javayant NEGOTIATION
Maria B MorascaUnited KingdomElwin Sharvill RENEWAL
Kadeem J RutaArgentinaBernardo Dominic NEW
Maria J WhobreyFranceElwin Sharvill UNQUALIFIED
Deepesh I FerenczIndiaAsiya Javayant PROPOSAL
Arvin W VocelkaItalyStephen Shaw NEGOTIATION
David H SaylorsSpainElwin Sharvill NEGOTIATION
Julie B MacleadRussiaOnyama Limba NEGOTIATION
Murillo J GarufiUnited KingdomOnyama Limba QUALIFIED
Julie W BologniaFranceAsiya Javayant NEGOTIATION
Antonio Y PerinRussiaAmy Elsner PROPOSAL
Wickens T GarufiSpainBernardo Dominic RENEWAL
Mujtaba N MaletJapanOnyama Limba NEGOTIATION
Darci M BowleyUnited KingdomIoni Bowcher PROPOSAL
Smith T GarufiRussiaIvan Magalhaes QUALIFIED
Costa C AmigonBrazilAsiya Javayant PROPOSAL
Clifford B SlusarskiBrazilOnyama Limba QUALIFIED
Antonio I InouyeIndiaAsiya Javayant QUALIFIED
Jennifer N DarakjyRussiaAsiya Javayant NEGOTIATION
Emily I DarakjySpainStephen Shaw PROPOSAL
Emily J WhobreyFranceStephen Shaw NEW
Emily K StockhamRussiaStephen Shaw NEGOTIATION
Mayumi M WhobreyJapanStephen Shaw PROPOSAL
Maisha R VenereSpainXuxue Feng RENEWAL
Sinclair D MacleadSpainAnna Fali UNQUALIFIED
Wickens Z GillianSpainIvan Magalhaes RENEWAL
Silvio A SlusarskiArgentinaAnna Fali 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>