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
Jones K MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Leja H StensethBrazilOnyama Limba NEW
Izzy Y ChuiIndiaStephen Shaw RENEWAL
Francesco X GillianRussiaOnyama Limba PROPOSAL
Isabel O RimFranceXuxue Feng NEGOTIATION
Deepesh K ChuiSpainIoni Bowcher NEGOTIATION
James T InouyeFranceXuxue Feng QUALIFIED
Morrow H FollerRussiaIvan Magalhaes NEGOTIATION
Murillo V OldroydJapanStephen Shaw QUALIFIED
Murillo A MaletArgentinaBernardo Dominic NEGOTIATION
Juan D SergiRussiaBernardo Dominic NEW
Tony X AlbaresIndiaIvan Magalhaes QUALIFIED
Maisha W IturbideSpainIvan Magalhaes RENEWAL
James J MaletRussiaBernardo Dominic NEGOTIATION
Costa O FerenczCanadaIoni Bowcher QUALIFIED
Chavez A NestleJapanIoni Bowcher PROPOSAL
Clifford Y NestleItalyOnyama Limba RENEWAL
Rodrigues I FollerItalyAsiya Javayant NEW
Darci Q RutaCanadaAmy Elsner NEGOTIATION
Costa M FollerSpainStephen Shaw NEGOTIATION
Johnson A WhobreyGermanyAsiya Javayant NEW
Arvin S PerinUnited KingdomOnyama Limba RENEWAL
Arvin I MaletItalyOnyama Limba NEGOTIATION
Chavez X MaletJapanAmy Elsner NEW
David H FlosiJapanElwin Sharvill NEGOTIATION
Izzy U PoquetteGermanyAmy Elsner RENEWAL
James G WieserFranceAnna Fali PROPOSAL
Mayumi C DarakjyArgentinaAsiya Javayant NEW
Cody C MorascaIndiaAnna Fali NEW
Maisha A IturbideIndiaAmy Elsner RENEWAL
Aruna K SlusarskiIndiaBernardo Dominic NEW
Cody A ShinkoRussiaAnna Fali QUALIFIED
Claire Q WaycottItalyXuxue Feng PROPOSAL
Emily L ShinkoSpainIvan Magalhaes PROPOSAL
Darci W KolmetzIndiaAsiya Javayant RENEWAL
Cody V KolmetzFranceIvan Magalhaes NEGOTIATION
Darci X MaletIndiaBernardo Dominic RENEWAL
Adams L WaycottSpainElwin Sharvill UNQUALIFIED
Jones A GauchoJapanOnyama Limba PROPOSAL
Antonio F OstroskyIndiaBernardo Dominic RENEWAL
Aika K PerinBrazilOnyama Limba NEW
Faith X BriddickItalyBernardo Dominic NEGOTIATION
Isabel M CampainBrazilXuxue Feng NEGOTIATION
Kaitlin N TollnerSpainOnyama Limba RENEWAL
Darci U SaylorsItalyIvan Magalhaes QUALIFIED
Antonio Q KolmetzCanadaBernardo Dominic QUALIFIED
Cody S GillianFranceOnyama Limba NEGOTIATION
Julie T AmigonItalyXuxue Feng NEGOTIATION
Munro I StockhamArgentinaAsiya Javayant RENEWAL
James L BologniaFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
David W KolmetzCanadaIoni Bowcher QUALIFIED
Greenwood M FerenczFranceBernardo Dominic NEW
Alejandro S WieserItalyOnyama Limba NEGOTIATION
Mayumi F SchemmerBrazilIoni Bowcher NEW
Sinclair W DarakjyFranceOnyama Limba QUALIFIED
Francesco H BriddickArgentinaStephen Shaw RENEWAL
Mujtaba T ChuiSpainBernardo Dominic PROPOSAL
Deepesh F CaldareraJapanIoni Bowcher NEGOTIATION
Greenwood I MaletArgentinaStephen Shaw PROPOSAL
Aditya U IturbideRussiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues A InouyeGermany2026-07-01King, Christopher A Esq RENEWAL56Ivan Magalhaes
1001Juan S PaprockiRussia2026-07-01Chapman, Ross E Esq PROPOSAL94Amy Elsner
1002Stacey P StensethArgentina2026-07-07Printing Dimensions NEW86Ioni Bowcher
1003Aruna D StockhamRussia2026-06-21Morlong Associates NEGOTIATION6Stephen Shaw
1004Leja X DoeGermany2026-06-25Commercial Press PROPOSAL2Bernardo Dominic
1005Jones J GillianGermany2026-07-02Morlong Associates UNQUALIFIED69Elwin Sharvill
1006Julie R AmigonRussia2026-07-07Feltz Printing Service NEW37Xuxue Feng
1007Johnson C AlbaresGermany2026-06-26Feiner Bros NEW62Elwin Sharvill
1008Rodrigues F OldroydFrance2026-07-12Buckley Miller Wright QUALIFIED25Elwin Sharvill
1009Juan W GarufiArgentina2026-07-09Rangoni Of Florence QUALIFIED47Elwin Sharvill
1010Mujtaba H CampainItaly2026-07-06Benton, John B Jr UNQUALIFIED83Anna Fali
1011Maria S FigeroaItaly2026-07-07Feltz Printing Service RENEWAL50Asiya Javayant
1012Salvatore Y OstroskyFrance2026-07-05Printing Dimensions QUALIFIED60Asiya Javayant
1013Leja P BologniaJapan2026-07-11Benton, John B Jr RENEWAL61Ioni Bowcher
1014Deepesh Z CaldareraFrance2026-06-26Rousseaux, Michael Esq PROPOSAL76Ioni Bowcher
1015Jefferson Y FlosiIndia2026-07-12Feiner Bros NEW3Amy Elsner
1016Izzy Y KuskoJapan2026-07-03Printing Dimensions UNQUALIFIED25Bernardo Dominic
1017Ricardo I InouyeIndia2026-07-09Commercial Press UNQUALIFIED39Ioni Bowcher
1018Stacey Q StensethUnited Kingdom2026-06-29Truhlar And Truhlar Attys NEW89Anna Fali
1019Johnson L RimJapan2026-07-17King, Christopher A Esq RENEWAL96Xuxue Feng
1020Ashley G CaldareraIndia2026-07-06Feltz Printing Service UNQUALIFIED61Ioni Bowcher
1021Alejandro R FigeroaArgentina2026-06-25Truhlar And Truhlar Attys RENEWAL63Onyama Limba
1022James O OstroskyCanada2026-07-01Dorl, James J Esq UNQUALIFIED30Xuxue Feng
1023Silvio K KuskoIndia2026-07-08Dorl, James J Esq UNQUALIFIED79Bernardo Dominic
1024Kadeem N KuskoAustralia2026-06-26Printing Dimensions PROPOSAL28Xuxue Feng
1025Maria P FigeroaIndia2026-06-24Chanay, Jeffrey A Esq PROPOSAL89Ioni Bowcher
1026Izzy P MaletCanada2026-07-02Chemel, James L Cpa QUALIFIED14Stephen Shaw
1027Cody W RoysterJapan2026-06-18Feiner Bros UNQUALIFIED98Onyama Limba
1028Costa W RutaCanada2026-06-21Chanay, Jeffrey A Esq UNQUALIFIED31Stephen Shaw
1029Leja V AmigonRussia2026-07-13Feiner Bros NEGOTIATION81Ioni Bowcher
1030Kadeem C BriddickFrance2026-07-14Benton, John B Jr QUALIFIED6Amy Elsner
1031Faith M IturbideJapan2026-07-14Truhlar And Truhlar Attys NEW46Elwin Sharvill
1032Misaki T SaylorsCanada2026-06-24Buckley Miller Wright NEGOTIATION60Onyama Limba
1033Nicolas G PoquetteSpain2026-07-04Truhlar And Truhlar Attys QUALIFIED45Ivan Magalhaes
1034Aruna B RulapaughIndia2026-06-21Feiner Bros PROPOSAL41Anna Fali
1035Aruna X GauchoBrazil2026-06-30Feltz Printing Service NEGOTIATION85Asiya Javayant
1036Maria B SergiJapan2026-06-21Chanay, Jeffrey A Esq NEW87Ivan Magalhaes
1037Morrow Q SchemmerGermany2026-07-17Truhlar And Truhlar Attys NEGOTIATION67Bernardo Dominic
1038Morrow D FigeroaFrance2026-06-24King, Christopher A Esq UNQUALIFIED15Ioni Bowcher
1039Cody U RulapaughIndia2026-06-25Rangoni Of Florence NEW44Onyama Limba
1040Isabel X VocelkaCanada2026-07-09Buckley Miller Wright UNQUALIFIED98Onyama Limba
1041Francesco Q FigeroaSpain2026-06-20Feltz Printing Service RENEWAL66Xuxue Feng
1042Claire Q GarufiItaly2026-07-05Rangoni Of Florence PROPOSAL33Stephen Shaw
1043Stacey Q ShinkoJapan2026-06-25Commercial Press RENEWAL55Ivan Magalhaes
1044Munro C SlusarskiCanada2026-07-11Printing Dimensions NEW46Elwin Sharvill
1045Rodrigues F SergiRussia2026-07-03Chanay, Jeffrey A Esq RENEWAL51Ioni Bowcher
1046Rodrigues I RimRussia2026-06-20Morlong Associates NEGOTIATION90Amy Elsner
1047Leon H NestleJapan2026-06-28Feiner Bros NEW23Anna Fali
1048Maisha Q MarrierAustralia2026-06-25Morlong Associates NEW30Bernardo Dominic
1049Adams Q StensethFrance2026-06-19Feiner Bros QUALIFIED33Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Chavez L PerinSpainOnyama Limba NEW
Misaki G IturbideItalyIvan Magalhaes QUALIFIED
Jefferson G StensethArgentinaStephen Shaw NEGOTIATION
Johnson R MaletGermanyIvan Magalhaes NEW
Kaitlin A AmigonIndiaStephen Shaw PROPOSAL
Maria H RutaItalyElwin Sharvill NEGOTIATION
Emily L VocelkaUnited KingdomOnyama Limba RENEWAL
Clifford S PoquetteIndiaBernardo Dominic PROPOSAL
Clifford Y MorascaItalyBernardo Dominic NEW
Cody O MaletRussiaIvan Magalhaes NEW
Salvatore D WieserFranceAsiya Javayant QUALIFIED
Claire L GauchoCanadaOnyama Limba NEW
Murillo T InouyeGermanyOnyama Limba UNQUALIFIED
Mayumi E DilliardGermanyBernardo Dominic PROPOSAL
Maisha Q RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois S StensethRussiaXuxue Feng NEW
Sinclair N StockhamFranceIoni Bowcher NEGOTIATION
Costa Z ChuiCanadaStephen Shaw NEW
Ashley K FollerUnited KingdomElwin Sharvill NEGOTIATION
Jefferson G BologniaFranceAsiya Javayant NEW
Octavia L KolmetzAustraliaElwin Sharvill UNQUALIFIED
Costa F FlosiBrazilOnyama Limba NEGOTIATION
Morrow J OldroydAustraliaAsiya Javayant RENEWAL
Aditya T ButtGermanyElwin Sharvill NEGOTIATION
Johnson L NestleCanadaAmy Elsner RENEWAL
Murillo P FollerBrazilIoni Bowcher QUALIFIED
Ivar K SchemmerBrazilBernardo Dominic NEGOTIATION
Aditya O WhobreyRussiaAmy Elsner NEW
Julie I GillianAustraliaAnna Fali NEW
Munro K SlusarskiFranceAsiya Javayant NEGOTIATION
Costa P SlusarskiAustraliaAmy Elsner NEGOTIATION
Nicolas W MorascaSpainOnyama Limba NEW
Silvio Z DoeIndiaAmy Elsner NEW
Jones A WieserFranceOnyama Limba QUALIFIED
Silvio B MaletRussiaAsiya Javayant QUALIFIED
Ivar D AmigonItalyElwin Sharvill PROPOSAL
Maisha D MaletJapanAmy Elsner NEW
Ivar B KolmetzCanadaXuxue Feng NEGOTIATION
Stacey U WhobreyUnited KingdomOnyama Limba QUALIFIED
Mujtaba Z VenereRussiaXuxue Feng NEW
Jeanfrancois Y KuskoGermanyIoni Bowcher NEW
Francesco Q SaylorsGermanyXuxue Feng QUALIFIED
Chavez D MaletAustraliaAsiya Javayant RENEWAL
Jones Z StensethAustraliaAsiya Javayant NEW
Julie X ButtItalyAmy Elsner QUALIFIED
Johnson W SaylorsJapanStephen Shaw NEW
Maria H VocelkaGermanyAsiya Javayant NEGOTIATION
Tony W ButtGermanyOnyama Limba NEW
Costa V KuskoItalyIoni Bowcher NEGOTIATION
Ricardo I PaprockiArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Misaki T Gaucho
Aruna H Campain
Aditya U Whobrey
Smith G Gillian
Leon J Dilliard
Ivar K Flosi
Aika I Nestle
Juan N Glick
Mayumi G Kusko
Salvatore F Briddick
Julie Z Darakjy
Faith O Ruta
Leja X Amigon
Jefferson Z Shinko
Stacey X Ferencz
Munro V Slusarski
Isabel B Paprocki
Claire B Whobrey
Mujtaba M Rulapaugh
Aruna D Gaucho
Jones T Oldroyd
Antonio P Malet
Claire O Foller
Costa B Oldroyd
Stacey K Royster
Antonio O Vocelka
Stacey P Slusarski
Nicolas E Royster
Leja V Flosi
Claire L Stenseth
Aruna A Briddick
Ivar M Flosi
Costa P Doe
Ashley O Albares
Murillo D Sergi
Adams K Rim
Aika Y Whobrey
Adams S Campain
Stacey O Perin
Octavia I Schemmer
Greenwood W Garufi
Kadeem O Ostrosky
Sinclair Q Figeroa
Octavia W Garufi
Munro L Bolognia
Izzy E Garufi
Costa Z Paprocki
Octavia J Saylors
Mayumi Q Caldarera
Claire U Marrier
IdCountryDate
1000India2026-06-23
1001Brazil2026-07-02
1002Australia2026-07-15
1003Spain2026-07-11
1004Spain2026-07-15
1005Argentina2026-07-03
1006United Kingdom2026-06-18
1007Russia2026-07-01
1008Germany2026-06-30
1009India2026-06-27
1010Russia2026-07-06
1011Japan2026-06-25
1012Germany2026-07-10
1013Japan2026-07-01
1014Spain2026-06-29
1015India2026-07-05
1016Spain2026-06-20
1017Spain2026-07-06
1018Canada2026-06-22
1019Argentina2026-07-01
1020Canada2026-07-02
1021Japan2026-07-16
1022India2026-06-28
1023United Kingdom2026-06-23
1024Argentina2026-06-22
1025Spain2026-06-24
1026Spain2026-07-02
1027Italy2026-06-26
1028Spain2026-07-10
1029France2026-06-23
1030Brazil2026-07-12
1031Spain2026-07-09
1032Brazil2026-06-19
1033Brazil2026-07-08
1034Canada2026-07-04
1035Canada2026-07-09
1036Argentina2026-07-04
1037Italy2026-06-20
1038Spain2026-06-24
1039Germany2026-07-17
1040Russia2026-06-21
1041Australia2026-07-07
1042France2026-06-24
1043Australia2026-06-21
1044India2026-07-15
1045Australia2026-06-18
1046Italy2026-07-10
1047Germany2026-07-07
1048Brazil2026-07-08
1049United Kingdom2026-06-29

On-Demand Data

NameIdCountryDate
Jeanfrancois D Caudy1000Spain2026-06-26
Mujtaba B Nicka1001Brazil2026-07-10
Aruna B Venere1002Australia2026-06-25
Darci D Glick1003Australia2026-07-06
Tony I Bolognia1004Australia2026-06-20
Salvatore F Glick1005Australia2026-07-03
Leja V Maclead1006Australia2026-06-23
Aruna O Kusko1007Russia2026-07-17
Costa X Nicka1008Germany2026-07-06
Leja W Shinko1009Japan2026-07-04
Emily E Amigon1010Australia2026-07-12
Kaitlin S Ferencz1011Australia2026-06-21
Cody W Malet1012Germany2026-06-30
Adams J Bolognia1013Spain2026-07-01
Arvin M Doe1014Germany2026-07-01
Jeanfrancois O Marrier1015Australia2026-06-21
Johnson L Schemmer1016Argentina2026-06-19
Jeanfrancois T Butt1017Brazil2026-06-24
Juan Q Figeroa1018United Kingdom2026-07-17
Mayumi F Amigon1019France2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh V WieserJapanXuxue Feng PROPOSAL
Greenwood O WhobreySpainXuxue Feng NEGOTIATION
Leja T GlickIndiaOnyama Limba NEGOTIATION
Ivar T RimJapanIvan Magalhaes UNQUALIFIED
Murillo K WaycottGermanyBernardo Dominic RENEWAL
Sinclair M MacleadCanadaBernardo Dominic NEGOTIATION
Murillo Y PoquetteSpainAnna Fali UNQUALIFIED
Wickens B CampainBrazilIoni Bowcher QUALIFIED
Juan V WhobreyJapanAmy Elsner RENEWAL
Misaki Z SlusarskiItalyIoni Bowcher PROPOSAL
Clifford B MarrierFranceIvan Magalhaes NEGOTIATION
Rodrigues U RimGermanyIoni Bowcher RENEWAL
Mujtaba F BologniaSpainOnyama Limba UNQUALIFIED
Clifford W ShinkoRussiaBernardo Dominic RENEWAL
Clifford O FigeroaFranceBernardo Dominic UNQUALIFIED
Kadeem E CaldareraBrazilIvan Magalhaes PROPOSAL
Smith N ButtArgentinaIoni Bowcher UNQUALIFIED
Leon P BologniaIndiaAmy Elsner PROPOSAL
Salvatore Z RoysterAustraliaAsiya Javayant QUALIFIED
Smith E KuskoAustraliaIoni Bowcher QUALIFIED
Maisha W VocelkaAustraliaIvan Magalhaes RENEWAL
Jeanfrancois P BriddickUnited KingdomOnyama Limba RENEWAL
Mujtaba X SchemmerGermanyIvan Magalhaes NEW
Salvatore B GillianRussiaAmy Elsner QUALIFIED
Nicolas N FerenczGermanyAnna Fali QUALIFIED
Costa Y CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Adams E OldroydItalyBernardo Dominic RENEWAL
Clifford I ChuiBrazilAsiya Javayant PROPOSAL
Kaitlin Y FlosiRussiaAsiya Javayant RENEWAL
Izzy C OstroskySpainBernardo Dominic NEW
Aditya V OstroskySpainElwin Sharvill RENEWAL
Izzy U SaylorsCanadaIoni Bowcher QUALIFIED
Leon M RimBrazilElwin Sharvill NEW
Darci X ShinkoGermanyIvan Magalhaes PROPOSAL
Isabel R TollnerGermanyAmy Elsner PROPOSAL
Leon Q BowleySpainOnyama Limba RENEWAL
Salvatore U IturbideSpainStephen Shaw PROPOSAL
Aruna L FerenczAustraliaElwin Sharvill UNQUALIFIED
James L SaylorsCanadaOnyama Limba QUALIFIED
Jones H TollnerGermanyOnyama Limba 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>