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
Misaki Y RimUnited KingdomIoni Bowcher QUALIFIED
Faith Y WhobreyBrazilXuxue Feng QUALIFIED
Antonio Z FlosiGermanyIoni Bowcher NEGOTIATION
Izzy T InouyeIndiaAmy Elsner UNQUALIFIED
Mujtaba F SlusarskiItalyAsiya Javayant QUALIFIED
Jeanfrancois D ChuiBrazilIvan Magalhaes RENEWAL
Greenwood H MaletUnited KingdomElwin Sharvill PROPOSAL
Tony U AmigonBrazilBernardo Dominic UNQUALIFIED
Misaki H WaycottItalyOnyama Limba NEW
Francesco G WieserCanadaIvan Magalhaes UNQUALIFIED
Costa H WhobreySpainStephen Shaw RENEWAL
Adams R RimGermanyOnyama Limba NEGOTIATION
David M PaprockiGermanyAsiya Javayant PROPOSAL
Aika J PoquetteRussiaAsiya Javayant RENEWAL
Cody U BowleyCanadaIoni Bowcher UNQUALIFIED
Stacey W MaletArgentinaIoni Bowcher UNQUALIFIED
Faith O VenereJapanIoni Bowcher PROPOSAL
Jennifer A DilliardSpainIvan Magalhaes RENEWAL
Claire G WhobreyIndiaElwin Sharvill QUALIFIED
Faith S ShinkoArgentinaStephen Shaw QUALIFIED
Greenwood P WaycottJapanAmy Elsner QUALIFIED
Claire N WhobreyGermanyBernardo Dominic NEGOTIATION
Jefferson Q PoquetteItalyOnyama Limba PROPOSAL
Aditya A DoeItalyBernardo Dominic NEGOTIATION
Rodrigues W DilliardIndiaBernardo Dominic UNQUALIFIED
Mujtaba S PaprockiBrazilIvan Magalhaes RENEWAL
Aika Y GauchoRussiaOnyama Limba QUALIFIED
Jeanfrancois H PoquetteGermanyElwin Sharvill RENEWAL
Arvin X FollerSpainStephen Shaw UNQUALIFIED
Faith V GauchoUnited KingdomIvan Magalhaes RENEWAL
Morrow U ShinkoGermanyElwin Sharvill RENEWAL
Jones E IturbideFranceIvan Magalhaes PROPOSAL
Jones X GarufiBrazilXuxue Feng RENEWAL
Julie J GauchoArgentinaAnna Fali RENEWAL
Alejandro B AlbaresAustraliaIoni Bowcher UNQUALIFIED
Arvin E GillianCanadaIvan Magalhaes PROPOSAL
Greenwood G SlusarskiItalyAmy Elsner QUALIFIED
Darci O SchemmerRussiaBernardo Dominic NEW
Wickens I VenereCanadaIoni Bowcher QUALIFIED
Claire A VocelkaRussiaOnyama Limba NEW
Isabel P CaldareraArgentinaElwin Sharvill RENEWAL
Sinclair W AmigonArgentinaStephen Shaw NEW
Maisha E WieserGermanyOnyama Limba PROPOSAL
Nicolas H BologniaRussiaXuxue Feng UNQUALIFIED
Jefferson Y CampainSpainAmy Elsner RENEWAL
Emily Z GarufiJapanStephen Shaw RENEWAL
Mayumi B KuskoAustraliaStephen Shaw PROPOSAL
Alejandro E CaldareraCanadaStephen Shaw QUALIFIED
Maisha F TollnerItalyAmy Elsner NEGOTIATION
Leon D WhobreyRussiaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore R KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin M RoysterBrazilElwin Sharvill NEW
Adams Y MacleadGermanyXuxue Feng QUALIFIED
Wickens P WieserItalyBernardo Dominic QUALIFIED
Mujtaba V StensethGermanyAmy Elsner PROPOSAL
Salvatore Y DoeArgentinaAsiya Javayant UNQUALIFIED
Mujtaba P PoquetteGermanyElwin Sharvill NEGOTIATION
Greenwood U GlickFranceXuxue Feng QUALIFIED
Juan F MaletBrazilIoni Bowcher NEGOTIATION
Deepesh I DoeRussiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria N BologniaFrance2025-05-10Feiner Bros RENEWAL27Ivan Magalhaes
1001Juan O MacleadArgentina2025-04-28Dorl, James J Esq QUALIFIED12Stephen Shaw
1002Chavez J WieserSpain2025-04-17Commercial Press PROPOSAL63Xuxue Feng
1003Jennifer W BowleyUnited Kingdom2025-05-02Morlong Associates NEGOTIATION94Bernardo Dominic
1004Silvio R OstroskyGermany2025-05-04Feltz Printing Service PROPOSAL96Ivan Magalhaes
1005Greenwood S RulapaughRussia2025-05-02Feiner Bros NEW76Bernardo Dominic
1006Rodrigues Z SergiCanada2025-05-06Chapman, Ross E Esq NEGOTIATION33Stephen Shaw
1007Wickens G BowleyGermany2025-05-05Chanay, Jeffrey A Esq NEGOTIATION5Amy Elsner
1008Murillo W RutaIndia2025-04-18Chapman, Ross E Esq QUALIFIED26Bernardo Dominic
1009Costa X DilliardGermany2025-05-03Feltz Printing Service QUALIFIED59Elwin Sharvill
1010Smith W KolmetzArgentina2025-04-17King, Christopher A Esq PROPOSAL7Elwin Sharvill
1011Ashley N VocelkaUnited Kingdom2025-04-13Chanay, Jeffrey A Esq NEW29Bernardo Dominic
1012James F VenereItaly2025-05-09King, Christopher A Esq RENEWAL33Ivan Magalhaes
1013Izzy E AmigonBrazil2025-04-24Benton, John B Jr RENEWAL39Ioni Bowcher
1014Octavia N TollnerSpain2025-04-20Printing Dimensions NEW5Asiya Javayant
1015Morrow Q VocelkaArgentina2025-04-24Benton, John B Jr NEGOTIATION90Amy Elsner
1016Alejandro F WhobreyArgentina2025-05-11Chemel, James L Cpa UNQUALIFIED59Ivan Magalhaes
1017Wickens M BriddickUnited Kingdom2025-04-16Chemel, James L Cpa RENEWAL50Stephen Shaw
1018Antonio O WieserRussia2025-05-08Buckley Miller Wright RENEWAL91Anna Fali
1019Octavia J GarufiArgentina2025-04-22Chemel, James L Cpa RENEWAL95Amy Elsner
1020Jeanfrancois J WieserFrance2025-04-22Feiner Bros PROPOSAL65Ivan Magalhaes
1021Cody A SergiSpain2025-05-02Rangoni Of Florence RENEWAL88Onyama Limba
1022Clifford J WaycottGermany2025-05-08Chemel, James L Cpa PROPOSAL21Onyama Limba
1023Octavia B WhobreySpain2025-05-10Printing Dimensions UNQUALIFIED39Ioni Bowcher
1024Leja Z FigeroaCanada2025-04-26Chemel, James L Cpa UNQUALIFIED55Amy Elsner
1025Deepesh C WhobreyAustralia2025-04-24Chemel, James L Cpa NEGOTIATION8Bernardo Dominic
1026Greenwood G TollnerIndia2025-05-03Buckley Miller Wright RENEWAL16Amy Elsner
1027James U NestleCanada2025-04-23Chapman, Ross E Esq RENEWAL23Ioni Bowcher
1028Misaki I PoquetteJapan2025-04-19Buckley Miller Wright NEW50Stephen Shaw
1029Costa L RutaFrance2025-05-02Morlong Associates NEW72Asiya Javayant
1030Deepesh Z PerinIndia2025-04-27Commercial Press NEW0Bernardo Dominic
1031Johnson I PerinJapan2025-05-03Buckley Miller Wright QUALIFIED10Anna Fali
1032Maisha J VenereIndia2025-04-28King, Christopher A Esq RENEWAL58Asiya Javayant
1033Clifford V MaletAustralia2025-04-30Rousseaux, Michael Esq NEGOTIATION39Amy Elsner
1034Isabel V SlusarskiFrance2025-05-07Buckley Miller Wright PROPOSAL66Ivan Magalhaes
1035James T MacleadCanada2025-04-29Morlong Associates PROPOSAL50Onyama Limba
1036Greenwood G AlbaresCanada2025-04-16Rousseaux, Michael Esq NEGOTIATION53Onyama Limba
1037Antonio N PerinItaly2025-04-30Benton, John B Jr UNQUALIFIED66Asiya Javayant
1038Claire A FollerRussia2025-04-24Rangoni Of Florence QUALIFIED86Asiya Javayant
1039Maisha D OldroydArgentina2025-05-03Chanay, Jeffrey A Esq NEGOTIATION75Stephen Shaw
1040Izzy W NestleItaly2025-05-09Morlong Associates NEGOTIATION30Anna Fali
1041Sinclair D DilliardFrance2025-05-05King, Christopher A Esq QUALIFIED30Asiya Javayant
1042Stacey W MaletJapan2025-05-04Printing Dimensions NEGOTIATION32Ioni Bowcher
1043Kaitlin I IturbideCanada2025-04-14Chemel, James L Cpa PROPOSAL15Xuxue Feng
1044Octavia K SlusarskiFrance2025-04-17Commercial Press UNQUALIFIED32Xuxue Feng
1045Isabel H CaldareraItaly2025-04-29Rangoni Of Florence QUALIFIED10Bernardo Dominic
1046Ivar Y ButtArgentina2025-05-08King, Christopher A Esq QUALIFIED49Bernardo Dominic
1047Aika B KolmetzGermany2025-04-27Benton, John B Jr NEGOTIATION94Asiya Javayant
1048Mayumi W GauchoRussia2025-05-02King, Christopher A Esq PROPOSAL81Xuxue Feng
1049Izzy Q MacleadBrazil2025-04-12Dorl, James J Esq UNQUALIFIED37Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody H GlickAustraliaBernardo Dominic NEW
Johnson V GauchoCanadaXuxue Feng PROPOSAL
Nicolas T RutaAustraliaIoni Bowcher QUALIFIED
Jeanfrancois P OldroydItalyXuxue Feng NEGOTIATION
Mujtaba C MorascaItalyAnna Fali RENEWAL
Antonio C IturbideRussiaXuxue Feng PROPOSAL
David W CaldareraCanadaAnna Fali PROPOSAL
Murillo B PerinGermanyOnyama Limba RENEWAL
Izzy J RoysterGermanyIoni Bowcher RENEWAL
Adams S WieserUnited KingdomIoni Bowcher QUALIFIED
Jefferson P RoysterArgentinaXuxue Feng PROPOSAL
Kaitlin B OldroydAustraliaStephen Shaw RENEWAL
Adams P VocelkaUnited KingdomIoni Bowcher RENEWAL
Silvio G FigeroaJapanBernardo Dominic QUALIFIED
Izzy C PerinArgentinaStephen Shaw RENEWAL
Claire I GlickBrazilBernardo Dominic QUALIFIED
Octavia N TollnerJapanAnna Fali RENEWAL
Francesco G IturbideBrazilIoni Bowcher NEW
Murillo Q MaletCanadaElwin Sharvill NEGOTIATION
Izzy Y ChuiGermanyStephen Shaw PROPOSAL
Leon B CaudyGermanyIoni Bowcher PROPOSAL
Munro M GauchoUnited KingdomAnna Fali NEW
Octavia V DoeRussiaElwin Sharvill NEW
Mujtaba K SchemmerRussiaElwin Sharvill UNQUALIFIED
Claire U MaletUnited KingdomBernardo Dominic UNQUALIFIED
James M SchemmerRussiaBernardo Dominic NEGOTIATION
Aditya T PerinItalyXuxue Feng NEGOTIATION
Claire F GlickIndiaXuxue Feng UNQUALIFIED
Maria A WhobreyFranceElwin Sharvill NEW
Aditya U MaletIndiaElwin Sharvill QUALIFIED
Johnson Z MorascaFranceOnyama Limba RENEWAL
Ashley Z GauchoRussiaAsiya Javayant NEW
Nicolas G DoeItalyAsiya Javayant NEW
Emily E AmigonFranceBernardo Dominic PROPOSAL
Nicolas O OstroskyItalyBernardo Dominic PROPOSAL
Juan O SlusarskiBrazilElwin Sharvill UNQUALIFIED
Murillo C CaudyBrazilAsiya Javayant NEW
Jones Y RimItalyBernardo Dominic NEGOTIATION
Jeanfrancois B InouyeCanadaAmy Elsner PROPOSAL
Alejandro A MarrierRussiaAmy Elsner NEGOTIATION
Mayumi D DilliardCanadaIoni Bowcher QUALIFIED
Nicolas H DarakjyJapanBernardo Dominic QUALIFIED
Greenwood R OldroydBrazilIoni Bowcher QUALIFIED
Ricardo K SergiRussiaAnna Fali NEW
Izzy C DoeGermanyAmy Elsner PROPOSAL
Costa J PaprockiItalyAsiya Javayant NEGOTIATION
Kadeem U RoysterAustraliaIvan Magalhaes UNQUALIFIED
Stacey N FerenczItalyXuxue Feng NEW
Ashley M ButtUnited KingdomIoni Bowcher QUALIFIED
Sinclair J SaylorsFranceAnna Fali RENEWAL
Frozen Columns
Name
Costa M Caudy
Aruna N Paprocki
Stacey E Royster
Leja V Flosi
Maria U Iturbide
Francesco H Figeroa
Nicolas W Dilliard
Kadeem A Flosi
Jones B Figeroa
Aika P Paprocki
Johnson M Kolmetz
Stacey N Flosi
Jefferson I Saylors
Maria C Ferencz
Aditya S Slusarski
Rodrigues R Ferencz
Claire X Kusko
Octavia H Briddick
Isabel S Glick
Jefferson E Kolmetz
Faith T Iturbide
Octavia G Darakjy
Costa V Doe
Greenwood I Inouye
Aruna B Bolognia
Greenwood H Slusarski
Ashley J Foller
Antonio U Malet
Antonio Q Amigon
Octavia G Gaucho
Jefferson R Rulapaugh
Sinclair H Caldarera
Silvio I Rim
Emily Y Whobrey
Jones G Caldarera
Juan W Vocelka
Costa A Figeroa
Mujtaba W Tollner
Morrow E Malet
Ivar F Perin
Leon X Doe
Deepesh P Paprocki
Jennifer K Caldarera
Alejandro G Perin
Jones P Caldarera
Jennifer M Briddick
Stacey I Schemmer
Isabel O Dilliard
Salvatore Y Malet
Cody H Amigon
IdCountryDate
1000Germany2025-04-15
1001Australia2025-05-03
1002Argentina2025-04-29
1003France2025-04-14
1004Argentina2025-04-19
1005Spain2025-04-27
1006Italy2025-05-11
1007United Kingdom2025-05-09
1008United Kingdom2025-04-20
1009Argentina2025-05-08
1010France2025-04-19
1011Japan2025-04-18
1012Brazil2025-04-30
1013Germany2025-04-23
1014Japan2025-05-08
1015Germany2025-05-08
1016United Kingdom2025-04-29
1017Italy2025-05-05
1018Canada2025-05-04
1019Germany2025-05-05
1020Australia2025-04-22
1021Australia2025-04-17
1022Argentina2025-04-30
1023Brazil2025-05-10
1024India2025-04-16
1025Spain2025-04-16
1026Spain2025-04-26
1027Canada2025-05-04
1028Italy2025-05-08
1029Argentina2025-04-15
1030Russia2025-04-28
1031Spain2025-05-01
1032United Kingdom2025-05-09
1033Argentina2025-05-10
1034Spain2025-04-22
1035Canada2025-04-22
1036Italy2025-04-24
1037Brazil2025-05-05
1038India2025-05-11
1039Argentina2025-05-08
1040Brazil2025-05-01
1041Germany2025-05-06
1042Russia2025-05-06
1043India2025-05-06
1044Japan2025-04-12
1045India2025-04-27
1046Canada2025-04-25
1047Argentina2025-04-14
1048Germany2025-04-22
1049Australia2025-05-11

On-Demand Data

NameIdCountryDate
Sinclair N Sergi1000Japan2025-05-08
Juan R Royster1001Canada2025-04-17
Ivar D Caldarera1002Russia2025-04-18
Misaki A Maclead1003Argentina2025-04-20
Francesco N Schemmer1004Germany2025-04-28
Tony X Bolognia1005Australia2025-04-15
Maisha I Figeroa1006United Kingdom2025-05-03
Octavia R Butt1007India2025-05-01
Cody Q Flosi1008United Kingdom2025-04-14
Claire M Nestle1009United Kingdom2025-05-08
Ivar U Schemmer1010Russia2025-04-15
Emily B Ostrosky1011Japan2025-04-15
Jones Z Figeroa1012Spain2025-04-17
Izzy T Ferencz1013Argentina2025-04-25
Claire L Campain1014Canada2025-05-01
Arvin E Doe1015Spain2025-05-04
Mayumi J Maclead1016Japan2025-05-05
Greenwood W Saylors1017Australia2025-05-01
Cody T Oldroyd1018Brazil2025-05-04
Salvatore H Iturbide1019Russia2025-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin D MarrierRussiaStephen Shaw UNQUALIFIED
Munro Y AlbaresFranceIoni Bowcher UNQUALIFIED
Maisha Y GarufiJapanAsiya Javayant RENEWAL
Ricardo J KolmetzIndiaOnyama Limba PROPOSAL
Ashley D RimCanadaAnna Fali PROPOSAL
Mujtaba M RutaSpainXuxue Feng UNQUALIFIED
Tony H PoquetteAustraliaAnna Fali NEGOTIATION
Arvin X MacleadArgentinaAsiya Javayant NEGOTIATION
Leja X OldroydItalyOnyama Limba NEW
Octavia P SlusarskiArgentinaAnna Fali QUALIFIED
Arvin Y MacleadIndiaAnna Fali RENEWAL
Munro R DilliardFranceAsiya Javayant NEGOTIATION
Aika M BriddickFranceIoni Bowcher QUALIFIED
Stacey J WaycottIndiaStephen Shaw NEW
Antonio X KolmetzGermanyAsiya Javayant NEW
Kadeem F BologniaBrazilOnyama Limba NEW
Alejandro K VocelkaIndiaIvan Magalhaes UNQUALIFIED
Izzy A SlusarskiFranceElwin Sharvill NEGOTIATION
Jefferson D GarufiRussiaXuxue Feng NEGOTIATION
Cody D GarufiCanadaAsiya Javayant UNQUALIFIED
Mujtaba R BologniaBrazilIoni Bowcher NEGOTIATION
Tony Y VocelkaRussiaOnyama Limba PROPOSAL
Jones P RimFranceIoni Bowcher NEW
Silvio G FigeroaJapanAsiya Javayant NEW
Chavez B GarufiSpainAmy Elsner PROPOSAL
Jefferson Z WieserFranceBernardo Dominic QUALIFIED
Octavia E AmigonBrazilBernardo Dominic NEGOTIATION
Munro S FerenczBrazilIoni Bowcher UNQUALIFIED
Sinclair P RulapaughIndiaAmy Elsner QUALIFIED
Izzy A FerenczSpainOnyama Limba UNQUALIFIED
Misaki T MaletFranceElwin Sharvill UNQUALIFIED
Mujtaba N OldroydSpainBernardo Dominic NEW
Leja X DarakjyGermanyIvan Magalhaes RENEWAL
Kaitlin V CaldareraJapanStephen Shaw QUALIFIED
Greenwood Y SchemmerIndiaBernardo Dominic UNQUALIFIED
Jennifer V RoysterArgentinaAmy Elsner QUALIFIED
Jeanfrancois P RulapaughIndiaAmy Elsner NEGOTIATION
Maria N StockhamCanadaOnyama Limba NEGOTIATION
Ricardo S CaudyGermanyOnyama Limba QUALIFIED
Maria M MaletFranceBernardo Dominic RENEWAL

<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>