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
Clifford P InouyeItalyIvan Magalhaes RENEWAL
Deepesh P SaylorsBrazilStephen Shaw PROPOSAL
Rodrigues U SlusarskiSpainAmy Elsner NEW
Leja S FollerArgentinaXuxue Feng RENEWAL
Tony M CampainGermanyIvan Magalhaes NEW
Julie A KolmetzJapanIvan Magalhaes PROPOSAL
Juan O KolmetzCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois M KuskoCanadaAsiya Javayant NEW
Murillo A RimRussiaBernardo Dominic NEGOTIATION
Jeanfrancois Q CampainRussiaIvan Magalhaes QUALIFIED
Morrow U GarufiJapanAmy Elsner NEGOTIATION
Julie S GillianRussiaAsiya Javayant RENEWAL
Mujtaba A GarufiSpainOnyama Limba UNQUALIFIED
Ricardo H GauchoFranceAnna Fali NEGOTIATION
Maisha E OstroskyItalyBernardo Dominic NEGOTIATION
Wickens H DoeAustraliaIvan Magalhaes UNQUALIFIED
Smith Q AmigonIndiaBernardo Dominic RENEWAL
Leja X AlbaresItalyOnyama Limba RENEWAL
Misaki H SergiArgentinaAsiya Javayant NEW
Ricardo D StockhamIndiaOnyama Limba QUALIFIED
Kadeem B NestleItalyAnna Fali NEW
James X SergiItalyAnna Fali PROPOSAL
Izzy Q SaylorsFranceXuxue Feng UNQUALIFIED
Clifford A ShinkoCanadaBernardo Dominic QUALIFIED
Stacey E BriddickBrazilElwin Sharvill NEW
Julie O AlbaresSpainAsiya Javayant UNQUALIFIED
Murillo E ButtJapanXuxue Feng UNQUALIFIED
Stacey T CaldareraCanadaAmy Elsner NEW
Sinclair X MaletFranceAsiya Javayant RENEWAL
Mujtaba Y MaletFranceIoni Bowcher RENEWAL
Deepesh R CaldareraRussiaAmy Elsner QUALIFIED
James J RutaBrazilElwin Sharvill RENEWAL
Murillo Q AmigonCanadaAnna Fali PROPOSAL
Jeanfrancois C IturbideFranceIvan Magalhaes NEW
Silvio Z GauchoIndiaIvan Magalhaes UNQUALIFIED
Emily U FigeroaItalyBernardo Dominic UNQUALIFIED
Leja M CaudyBrazilAmy Elsner QUALIFIED
Adams T BriddickGermanyXuxue Feng RENEWAL
Clifford Y DilliardGermanyElwin Sharvill QUALIFIED
Johnson O MarrierArgentinaIoni Bowcher PROPOSAL
Darci N TollnerAustraliaAmy Elsner UNQUALIFIED
Jennifer G FerenczBrazilAnna Fali RENEWAL
Smith X RimSpainOnyama Limba PROPOSAL
Misaki J StensethUnited KingdomXuxue Feng RENEWAL
Clifford M AmigonIndiaIoni Bowcher UNQUALIFIED
Misaki E PoquetteItalyElwin Sharvill QUALIFIED
Ricardo I SchemmerGermanyElwin Sharvill QUALIFIED
Silvio K MorascaCanadaElwin Sharvill PROPOSAL
Arvin U ShinkoFranceAsiya Javayant UNQUALIFIED
Misaki S SaylorsIndiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
James O FlosiRussiaOnyama Limba QUALIFIED
James S GlickJapanAmy Elsner NEGOTIATION
Ashley L SchemmerAustraliaBernardo Dominic PROPOSAL
Wickens K InouyeJapanOnyama Limba NEGOTIATION
Antonio K KolmetzArgentinaOnyama Limba QUALIFIED
Claire K PaprockiSpainOnyama Limba QUALIFIED
Ricardo F ShinkoBrazilStephen Shaw NEW
Jefferson R FerenczIndiaAnna Fali UNQUALIFIED
Sinclair Z VocelkaRussiaIoni Bowcher PROPOSAL
Rodrigues V ChuiItalyIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba P MacleadAustralia2026-08-01Feltz Printing Service QUALIFIED8Bernardo Dominic
1001Wickens B StensethItaly2026-08-12Feltz Printing Service NEW65Ioni Bowcher
1002Claire K MorascaAustralia2026-08-11Chanay, Jeffrey A Esq NEGOTIATION12Bernardo Dominic
1003James W OldroydAustralia2026-07-30Printing Dimensions NEW45Asiya Javayant
1004Chavez L RimCanada2026-08-01Commercial Press NEW13Asiya Javayant
1005Juan Z DilliardArgentina2026-07-26Benton, John B Jr PROPOSAL30Ioni Bowcher
1006Deepesh R NickaArgentina2026-08-06Rousseaux, Michael Esq NEW71Elwin Sharvill
1007Jones S DarakjyBrazil2026-08-04Printing Dimensions QUALIFIED15Asiya Javayant
1008Aika M SergiRussia2026-07-20Rangoni Of Florence NEGOTIATION97Ioni Bowcher
1009Salvatore S GillianItaly2026-08-11Morlong Associates PROPOSAL3Onyama Limba
1010Octavia M VenereGermany2026-07-16Benton, John B Jr RENEWAL83Asiya Javayant
1011Leon D PaprockiJapan2026-08-03Feltz Printing Service NEGOTIATION89Elwin Sharvill
1012Stacey D FerenczItaly2026-08-13Buckley Miller Wright NEGOTIATION53Bernardo Dominic
1013Ivar Y SergiArgentina2026-07-30Morlong Associates NEGOTIATION83Bernardo Dominic
1014Mujtaba A PerinJapan2026-07-19Rangoni Of Florence PROPOSAL24Xuxue Feng
1015Kaitlin S SlusarskiBrazil2026-07-18King, Christopher A Esq QUALIFIED43Ioni Bowcher
1016Jones R WieserGermany2026-08-11Buckley Miller Wright PROPOSAL51Elwin Sharvill
1017Greenwood D CampainFrance2026-08-05Rousseaux, Michael Esq PROPOSAL11Stephen Shaw
1018Leon Y MorascaJapan2026-08-04Morlong Associates NEGOTIATION55Ioni Bowcher
1019Deepesh T MarrierItaly2026-08-09Chapman, Ross E Esq NEGOTIATION98Anna Fali
1020Clifford Q CaudyRussia2026-08-03Feltz Printing Service QUALIFIED57Ivan Magalhaes
1021Ashley S InouyeFrance2026-07-29Rangoni Of Florence QUALIFIED22Stephen Shaw
1022Ricardo G FigeroaCanada2026-08-13King, Christopher A Esq NEW72Bernardo Dominic
1023Ricardo Q FlosiIndia2026-07-21Chemel, James L Cpa UNQUALIFIED65Amy Elsner
1024Faith Q InouyeFrance2026-08-12Benton, John B Jr NEGOTIATION65Anna Fali
1025Isabel A SaylorsGermany2026-07-27Feiner Bros NEGOTIATION37Stephen Shaw
1026Ashley F KolmetzAustralia2026-08-13Rousseaux, Michael Esq QUALIFIED10Ioni Bowcher
1027Juan P FigeroaJapan2026-07-24Printing Dimensions RENEWAL1Elwin Sharvill
1028Emily V ChuiItaly2026-07-28Commercial Press UNQUALIFIED13Stephen Shaw
1029Munro X ChuiSpain2026-08-02Truhlar And Truhlar Attys NEW70Bernardo Dominic
1030Ivar S IturbideIndia2026-08-14Morlong Associates NEW54Elwin Sharvill
1031Emily M FollerAustralia2026-07-30Feltz Printing Service RENEWAL90Onyama Limba
1032Wickens O WaycottAustralia2026-08-14Morlong Associates RENEWAL92Anna Fali
1033Alejandro O StockhamSpain2026-08-02Commercial Press RENEWAL41Elwin Sharvill
1034Leja C VenereArgentina2026-08-08King, Christopher A Esq NEGOTIATION42Amy Elsner
1035Aruna Y GarufiArgentina2026-07-29King, Christopher A Esq NEW77Onyama Limba
1036Nicolas Q ShinkoItaly2026-08-13Commercial Press UNQUALIFIED38Xuxue Feng
1037Antonio F KolmetzIndia2026-08-04Morlong Associates UNQUALIFIED94Amy Elsner
1038Costa H DarakjyCanada2026-08-07Feltz Printing Service PROPOSAL10Ioni Bowcher
1039Sinclair R BologniaUnited Kingdom2026-08-05Morlong Associates NEW95Xuxue Feng
1040Claire U IturbideItaly2026-08-05Truhlar And Truhlar Attys PROPOSAL9Elwin Sharvill
1041Wickens W ShinkoIndia2026-08-12Morlong Associates RENEWAL36Anna Fali
1042Faith A VenereIndia2026-08-03Printing Dimensions PROPOSAL92Onyama Limba
1043Sinclair E MacleadGermany2026-07-29Chapman, Ross E Esq NEGOTIATION62Ivan Magalhaes
1044Maisha U RutaAustralia2026-08-04Morlong Associates UNQUALIFIED9Amy Elsner
1045Aditya V FollerBrazil2026-08-07Benton, John B Jr PROPOSAL86Onyama Limba
1046Alejandro Y MarrierIndia2026-07-24Benton, John B Jr NEW36Ioni Bowcher
1047Ricardo Y RimIndia2026-08-13Chapman, Ross E Esq PROPOSAL32Anna Fali
1048Ivar S SlusarskiSpain2026-07-18Chapman, Ross E Esq RENEWAL13Asiya Javayant
1049Salvatore Z PaprockiAustralia2026-08-02Rangoni Of Florence NEGOTIATION9Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford S FerenczFranceAmy Elsner NEGOTIATION
Jennifer V AlbaresArgentinaStephen Shaw UNQUALIFIED
Johnson O MaletFranceIvan Magalhaes UNQUALIFIED
Nicolas D MacleadIndiaAsiya Javayant RENEWAL
Arvin I CaudyFranceAmy Elsner NEW
Greenwood S RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Izzy N DilliardArgentinaIvan Magalhaes QUALIFIED
Mayumi I VenereBrazilIoni Bowcher NEGOTIATION
Darci M AlbaresItalyAsiya Javayant NEGOTIATION
Murillo E WhobreyJapanAsiya Javayant PROPOSAL
Stacey H AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Sinclair Q SergiIndiaAmy Elsner UNQUALIFIED
James L AmigonArgentinaIoni Bowcher PROPOSAL
James J FerenczItalyAsiya Javayant NEW
Julie V DilliardRussiaIvan Magalhaes PROPOSAL
Izzy C KolmetzSpainIvan Magalhaes QUALIFIED
Maria P GlickAustraliaElwin Sharvill QUALIFIED
Jennifer U ChuiAustraliaStephen Shaw NEW
Sinclair W FlosiJapanAnna Fali RENEWAL
Aika C CaldareraAustraliaStephen Shaw NEW
Costa X SchemmerGermanyOnyama Limba PROPOSAL
Munro L MaletArgentinaAsiya Javayant NEW
Kadeem T OldroydIndiaBernardo Dominic NEGOTIATION
Darci A DarakjyFranceAmy Elsner NEW
Juan A PaprockiArgentinaXuxue Feng PROPOSAL
Morrow U RutaCanadaIvan Magalhaes PROPOSAL
Ashley W WaycottJapanElwin Sharvill RENEWAL
Clifford O ButtJapanOnyama Limba NEW
James Y SlusarskiRussiaXuxue Feng PROPOSAL
David F GauchoItalyIvan Magalhaes RENEWAL
Stacey E SergiSpainElwin Sharvill NEW
Mujtaba Q SergiUnited KingdomIoni Bowcher QUALIFIED
Claire S MaletIndiaIoni Bowcher QUALIFIED
Salvatore L IturbideItalyIvan Magalhaes UNQUALIFIED
Costa A OstroskySpainAnna Fali RENEWAL
Costa I StensethSpainIoni Bowcher NEGOTIATION
Emily H AmigonAustraliaIoni Bowcher NEW
David P FigeroaItalyAnna Fali NEGOTIATION
Smith K BowleyFranceStephen Shaw PROPOSAL
Murillo D MacleadJapanBernardo Dominic RENEWAL
James N StockhamJapanBernardo Dominic UNQUALIFIED
Aruna P GauchoRussiaStephen Shaw UNQUALIFIED
Jones S MaletIndiaOnyama Limba NEW
Tony U RulapaughArgentinaElwin Sharvill UNQUALIFIED
Jefferson X OldroydRussiaAmy Elsner NEGOTIATION
Leja R BologniaItalyOnyama Limba PROPOSAL
Chavez F AmigonFranceAsiya Javayant NEW
Murillo E WieserFranceAnna Fali NEW
Aditya W PerinSpainIvan Magalhaes NEGOTIATION
Isabel G IturbideBrazilAmy Elsner NEGOTIATION
Frozen Columns
Name
Salvatore I Oldroyd
Octavia I Bolognia
Claire I Rim
Julie H Paprocki
James R Gillian
Rodrigues S Butt
Leja Z Paprocki
Cody N Bolognia
Tony Z Nicka
Morrow C Iturbide
Cody N Malet
Jefferson L Sergi
Misaki Z Inouye
Julie E Inouye
Costa Z Saylors
Jones L Ostrosky
Juan U Nestle
James K Stenseth
Kadeem W Amigon
Izzy B Bowley
Morrow B Campain
Maisha T Figeroa
Octavia X Amigon
Salvatore P Briddick
Cody I Slusarski
Antonio O Foller
Wickens C Inouye
Nicolas Q Dilliard
Wickens H Inouye
Aditya T Waycott
Antonio K Nestle
Ricardo Y Bowley
Jeanfrancois W Kolmetz
Arvin I Rulapaugh
Isabel D Venere
David B Royster
Emily T Stenseth
Morrow L Poquette
Aruna O Malet
Aruna U Bolognia
James T Caudy
Stacey R Whobrey
Murillo Z Malet
Jefferson R Stenseth
Faith M Oldroyd
Maria X Caudy
Rodrigues U Schemmer
Silvio B Bolognia
Isabel H Amigon
Emily G Bowley
IdCountryDate
1000India2026-07-24
1001Australia2026-07-25
1002Australia2026-07-23
1003Spain2026-07-20
1004Russia2026-07-20
1005United Kingdom2026-07-29
1006Germany2026-07-27
1007Argentina2026-08-07
1008Canada2026-07-29
1009Italy2026-07-26
1010India2026-08-12
1011Brazil2026-07-24
1012United Kingdom2026-08-06
1013Germany2026-08-12
1014France2026-08-06
1015Brazil2026-07-21
1016United Kingdom2026-07-23
1017Canada2026-07-25
1018Argentina2026-07-31
1019Italy2026-08-03
1020Brazil2026-08-12
1021United Kingdom2026-07-29
1022Germany2026-08-02
1023Germany2026-08-06
1024Argentina2026-07-30
1025Spain2026-07-26
1026Argentina2026-08-11
1027Argentina2026-07-27
1028India2026-07-26
1029France2026-07-22
1030Brazil2026-07-19
1031Japan2026-07-31
1032Canada2026-07-20
1033Australia2026-08-02
1034France2026-07-17
1035France2026-07-30
1036Argentina2026-08-03
1037Brazil2026-07-16
1038United Kingdom2026-07-27
1039Germany2026-07-31
1040Italy2026-08-01
1041Italy2026-08-13
1042Canada2026-07-21
1043Russia2026-08-11
1044Brazil2026-07-19
1045Australia2026-07-18
1046Argentina2026-07-29
1047Australia2026-07-16
1048Spain2026-08-12
1049United Kingdom2026-07-20

On-Demand Data

NameIdCountryDate
Nicolas S Kusko1000Italy2026-08-04
Faith C Slusarski1001Germany2026-07-21
Maria N Dilliard1002Brazil2026-07-25
Arvin F Venere1003Japan2026-07-27
David F Kolmetz1004India2026-07-30
Juan C Bowley1005France2026-08-08
Morrow A Waycott1006United Kingdom2026-08-09
James H Malet1007Australia2026-08-08
Ricardo N Inouye1008Japan2026-08-10
Aruna L Schemmer1009Canada2026-07-22
Kaitlin B Ferencz1010Italy2026-08-02
Adams U Flosi1011Italy2026-08-12
Jones K Gaucho1012Germany2026-08-01
Octavia F Malet1013Italy2026-08-10
Emily T Figeroa1014Brazil2026-07-17
Octavia I Nestle1015Germany2026-07-16
Clifford Z Marrier1016Germany2026-08-05
Francesco A Figeroa1017Australia2026-07-20
Misaki P Marrier1018United Kingdom2026-07-16
Maria V Campain1019Italy2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire J StensethCanadaStephen Shaw PROPOSAL
Stacey I DilliardArgentinaOnyama Limba NEW
Leon G MarrierItalyXuxue Feng RENEWAL
Cody U FlosiUnited KingdomIvan Magalhaes NEW
David I KolmetzSpainAmy Elsner PROPOSAL
Johnson D SchemmerGermanyAnna Fali UNQUALIFIED
Morrow C SlusarskiArgentinaIvan Magalhaes QUALIFIED
Aika I RimAustraliaIoni Bowcher PROPOSAL
Nicolas P GarufiFranceElwin Sharvill NEGOTIATION
Mayumi V StockhamCanadaStephen Shaw UNQUALIFIED
Juan S RimFranceStephen Shaw QUALIFIED
Kadeem U GauchoIndiaIvan Magalhaes PROPOSAL
Smith A PerinFranceIoni Bowcher PROPOSAL
Izzy N KolmetzGermanyIoni Bowcher NEW
Misaki W FerenczCanadaXuxue Feng NEGOTIATION
Octavia C VenereRussiaIvan Magalhaes RENEWAL
Murillo H ShinkoGermanyAsiya Javayant PROPOSAL
Octavia O BologniaSpainAnna Fali QUALIFIED
Morrow B ShinkoJapanAsiya Javayant PROPOSAL
Jones Z DoeBrazilOnyama Limba RENEWAL
Morrow B MarrierArgentinaBernardo Dominic UNQUALIFIED
Aditya B WaycottBrazilAmy Elsner NEGOTIATION
Isabel O StockhamArgentinaBernardo Dominic PROPOSAL
Julie Q DarakjyCanadaXuxue Feng NEGOTIATION
Mujtaba I StensethJapanStephen Shaw QUALIFIED
Maisha Z RulapaughJapanOnyama Limba RENEWAL
Munro F PoquetteAustraliaOnyama Limba RENEWAL
Jones M StockhamUnited KingdomIoni Bowcher PROPOSAL
Sinclair L RoysterRussiaStephen Shaw NEGOTIATION
Jones A DarakjyAustraliaAmy Elsner NEW
Juan X SaylorsItalyAmy Elsner PROPOSAL
Clifford K GlickCanadaAnna Fali NEGOTIATION
Deepesh F KolmetzAustraliaOnyama Limba NEGOTIATION
Leon O PaprockiAustraliaXuxue Feng NEW
Murillo X MaletCanadaIvan Magalhaes PROPOSAL
Tony Q WaycottCanadaStephen Shaw RENEWAL
Chavez X GauchoFranceIvan Magalhaes RENEWAL
Costa C CampainIndiaAmy Elsner QUALIFIED
Ivar K NestleBrazilIvan Magalhaes RENEWAL
Ricardo U IturbideIndiaAmy Elsner 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>