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
Ricardo U PerinBrazilIvan Magalhaes RENEWAL
Jones I ShinkoGermanyBernardo Dominic NEW
James I MacleadGermanyBernardo Dominic RENEWAL
Aruna W RimGermanyElwin Sharvill NEGOTIATION
Leja J FollerIndiaStephen Shaw NEW
Deepesh U ButtJapanBernardo Dominic UNQUALIFIED
Wickens A RoysterGermanyXuxue Feng QUALIFIED
Nicolas P PerinJapanAmy Elsner QUALIFIED
Greenwood L CaudyFranceStephen Shaw NEW
Juan N WhobreyCanadaAsiya Javayant QUALIFIED
Smith T PoquetteSpainBernardo Dominic NEW
Francesco X NickaArgentinaXuxue Feng NEW
Aditya X OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Johnson Z TollnerGermanyAsiya Javayant QUALIFIED
Morrow C RutaIndiaElwin Sharvill RENEWAL
Jefferson Y SlusarskiSpainBernardo Dominic NEGOTIATION
Aika A SlusarskiFranceXuxue Feng RENEWAL
David Y NestleUnited KingdomAsiya Javayant PROPOSAL
Julie W SergiJapanXuxue Feng PROPOSAL
James K PaprockiIndiaBernardo Dominic NEGOTIATION
Aika X OldroydFranceAsiya Javayant QUALIFIED
Clifford O SlusarskiFranceBernardo Dominic RENEWAL
Cody E GlickAustraliaStephen Shaw QUALIFIED
James J BriddickAustraliaXuxue Feng QUALIFIED
Costa P RulapaughArgentinaAnna Fali PROPOSAL
Tony M MaletIndiaBernardo Dominic PROPOSAL
Aditya F WaycottJapanElwin Sharvill NEGOTIATION
Emily H NestleSpainIoni Bowcher PROPOSAL
Ricardo X InouyeIndiaXuxue Feng NEW
Jones U InouyeFranceStephen Shaw QUALIFIED
Morrow B FigeroaFranceIvan Magalhaes QUALIFIED
Aditya Z RoysterAustraliaAsiya Javayant NEGOTIATION
Jones F KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi C MaletBrazilIvan Magalhaes UNQUALIFIED
Ricardo J IturbideArgentinaAmy Elsner RENEWAL
Faith N VocelkaJapanIvan Magalhaes UNQUALIFIED
Leja H CampainRussiaStephen Shaw QUALIFIED
Mayumi Y PoquetteSpainOnyama Limba RENEWAL
Emily E PaprockiGermanyAmy Elsner PROPOSAL
Isabel E SaylorsArgentinaElwin Sharvill NEW
Silvio Q BowleyJapanElwin Sharvill NEGOTIATION
Tony Q RimIndiaXuxue Feng UNQUALIFIED
Aditya S AmigonRussiaOnyama Limba RENEWAL
Salvatore E IturbideCanadaAnna Fali NEGOTIATION
James T InouyeArgentinaAnna Fali UNQUALIFIED
Tony F MacleadIndiaIvan Magalhaes QUALIFIED
Nicolas N PaprockiSpainAnna Fali UNQUALIFIED
Maisha Q MarrierItalyStephen Shaw RENEWAL
Morrow A KuskoItalyAmy Elsner PROPOSAL
James Z GarufiBrazilElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Clifford Q SaylorsAustraliaAnna Fali PROPOSAL
Cody T AlbaresUnited KingdomStephen Shaw NEW
Kadeem W MaletJapanAsiya Javayant UNQUALIFIED
Tony X PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Stacey T BowleyArgentinaAnna Fali NEGOTIATION
Smith P SlusarskiArgentinaAsiya Javayant NEW
Darci J GillianSpainXuxue Feng UNQUALIFIED
Leon P InouyeSpainElwin Sharvill UNQUALIFIED
Jennifer Y DarakjyAustraliaElwin Sharvill PROPOSAL
Stacey W StockhamJapanAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin S RimUnited Kingdom2026-06-23Morlong Associates NEW19Elwin Sharvill
1001Darci C PaprockiGermany2026-06-16Dorl, James J Esq PROPOSAL64Asiya Javayant
1002Mayumi W BriddickAustralia2026-06-23Truhlar And Truhlar Attys QUALIFIED58Ivan Magalhaes
1003Alejandro S PoquetteGermany2026-06-25Feltz Printing Service NEW32Amy Elsner
1004James F CaudyIndia2026-06-02Rousseaux, Michael Esq NEGOTIATION37Bernardo Dominic
1005Faith H ButtUnited Kingdom2026-06-06King, Christopher A Esq UNQUALIFIED93Bernardo Dominic
1006Kadeem E SchemmerIndia2026-06-09Rangoni Of Florence NEGOTIATION8Ivan Magalhaes
1007Nicolas O NestleFrance2026-06-10Printing Dimensions NEGOTIATION93Asiya Javayant
1008Aditya K MarrierRussia2026-06-26Rousseaux, Michael Esq RENEWAL59Stephen Shaw
1009Mujtaba G ChuiSpain2026-06-17Feltz Printing Service RENEWAL92Xuxue Feng
1010Alejandro M StockhamBrazil2026-06-21King, Christopher A Esq UNQUALIFIED54Amy Elsner
1011Wickens A GlickJapan2026-06-09Morlong Associates NEW68Amy Elsner
1012Maria M CaudyRussia2026-06-21Chanay, Jeffrey A Esq PROPOSAL18Ivan Magalhaes
1013Izzy Y ShinkoRussia2026-06-07Dorl, James J Esq PROPOSAL27Xuxue Feng
1014Aditya G StockhamItaly2026-06-25Benton, John B Jr NEW91Anna Fali
1015Jennifer X StensethRussia2026-06-15Commercial Press UNQUALIFIED20Anna Fali
1016Jones E GillianJapan2026-06-01Chanay, Jeffrey A Esq NEW35Asiya Javayant
1017Adams Z VocelkaRussia2026-06-20Buckley Miller Wright QUALIFIED52Amy Elsner
1018Chavez D VenereIndia2026-06-18Commercial Press PROPOSAL44Elwin Sharvill
1019Deepesh T CampainGermany2026-06-19Morlong Associates UNQUALIFIED88Xuxue Feng
1020Leon U IturbideCanada2026-06-12Morlong Associates UNQUALIFIED19Ioni Bowcher
1021Clifford Y CaudyArgentina2026-06-06King, Christopher A Esq RENEWAL29Ivan Magalhaes
1022Adams Y AmigonIndia2026-06-16Chapman, Ross E Esq RENEWAL38Ivan Magalhaes
1023Silvio P OstroskyRussia2026-05-31Benton, John B Jr QUALIFIED31Xuxue Feng
1024Murillo T GauchoSpain2026-06-10Truhlar And Truhlar Attys PROPOSAL9Anna Fali
1025David L BologniaIndia2026-06-08Chapman, Ross E Esq PROPOSAL91Ioni Bowcher
1026Maisha Q TollnerGermany2026-06-13Chemel, James L Cpa UNQUALIFIED76Anna Fali
1027Octavia G IturbideIndia2026-06-25Dorl, James J Esq PROPOSAL3Bernardo Dominic
1028Julie H KuskoCanada2026-05-31Truhlar And Truhlar Attys NEW59Onyama Limba
1029Maria W MaletUnited Kingdom2026-06-23Feltz Printing Service UNQUALIFIED49Onyama Limba
1030Izzy D KolmetzCanada2026-06-04Truhlar And Truhlar Attys RENEWAL18Stephen Shaw
1031Arvin H GauchoItaly2026-06-03Feiner Bros PROPOSAL58Ivan Magalhaes
1032Emily N KolmetzJapan2026-06-20Rousseaux, Michael Esq RENEWAL19Ivan Magalhaes
1033Silvio D SchemmerBrazil2026-06-12Chanay, Jeffrey A Esq UNQUALIFIED50Xuxue Feng
1034Maisha E BowleyGermany2026-06-18Feiner Bros NEGOTIATION63Bernardo Dominic
1035Stacey D InouyeItaly2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED71Xuxue Feng
1036Greenwood Q StensethGermany2026-06-27Chemel, James L Cpa QUALIFIED2Stephen Shaw
1037Mujtaba P NestleUnited Kingdom2026-06-18Printing Dimensions UNQUALIFIED74Elwin Sharvill
1038Izzy O MorascaItaly2026-06-03Rousseaux, Michael Esq NEGOTIATION30Ioni Bowcher
1039Kaitlin X IturbideGermany2026-06-08Rousseaux, Michael Esq UNQUALIFIED5Stephen Shaw
1040Kaitlin P MarrierGermany2026-05-31Dorl, James J Esq UNQUALIFIED65Onyama Limba
1041Ashley U MaletFrance2026-06-02Chemel, James L Cpa RENEWAL10Stephen Shaw
1042Nicolas J VocelkaIndia2026-06-05Feiner Bros QUALIFIED47Anna Fali
1043Costa W DilliardItaly2026-06-18Benton, John B Jr NEGOTIATION77Ivan Magalhaes
1044Misaki J GillianAustralia2026-06-14Feltz Printing Service RENEWAL57Anna Fali
1045Maria T SchemmerBrazil2026-06-18Chapman, Ross E Esq NEW40Ioni Bowcher
1046Arvin C PoquetteArgentina2026-06-06Commercial Press UNQUALIFIED4Ioni Bowcher
1047Mujtaba Z WieserSpain2026-06-03Chapman, Ross E Esq RENEWAL4Stephen Shaw
1048Johnson N VenereArgentina2026-06-05Feiner Bros NEW39Asiya Javayant
1049Claire K AlbaresIndia2026-06-13Rousseaux, Michael Esq UNQUALIFIED37Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar D BowleyBrazilOnyama Limba QUALIFIED
Wickens H RimGermanyStephen Shaw PROPOSAL
Mujtaba M VenereFranceAnna Fali QUALIFIED
Ashley M SergiJapanXuxue Feng PROPOSAL
Aruna Y MorascaItalyAsiya Javayant QUALIFIED
Murillo E ButtRussiaAmy Elsner NEW
Ivar N RulapaughFranceIvan Magalhaes NEW
Misaki G GarufiArgentinaIvan Magalhaes RENEWAL
Mayumi C VocelkaArgentinaAsiya Javayant QUALIFIED
Ivar X RimIndiaIvan Magalhaes NEW
Leja M AlbaresItalyOnyama Limba QUALIFIED
Francesco E SergiRussiaElwin Sharvill NEGOTIATION
Leon Y IturbideFranceIoni Bowcher QUALIFIED
Stacey B SlusarskiBrazilIvan Magalhaes QUALIFIED
Claire N DoeArgentinaAmy Elsner RENEWAL
Antonio D RutaJapanAnna Fali RENEWAL
Juan N OldroydArgentinaStephen Shaw RENEWAL
Octavia H StensethSpainStephen Shaw PROPOSAL
Leon J WhobreyItalyStephen Shaw QUALIFIED
Smith X CaudyArgentinaStephen Shaw RENEWAL
Smith W DarakjyIndiaAsiya Javayant NEW
Deepesh D FollerFranceBernardo Dominic UNQUALIFIED
Isabel U GauchoUnited KingdomAmy Elsner RENEWAL
Maisha O AmigonFranceAsiya Javayant UNQUALIFIED
Morrow B PaprockiArgentinaOnyama Limba NEGOTIATION
Ashley E StockhamCanadaBernardo Dominic NEW
Salvatore D MaletBrazilXuxue Feng NEW
Wickens H RimBrazilAmy Elsner NEGOTIATION
Deepesh D SlusarskiIndiaBernardo Dominic NEW
Aruna E FlosiIndiaAmy Elsner NEW
David F RoysterGermanyElwin Sharvill NEGOTIATION
Ivar O IturbideJapanXuxue Feng UNQUALIFIED
Kaitlin P DilliardAustraliaBernardo Dominic RENEWAL
Clifford A MarrierBrazilXuxue Feng PROPOSAL
Ricardo W OldroydUnited KingdomOnyama Limba NEGOTIATION
Jennifer J NestleGermanyIoni Bowcher UNQUALIFIED
Munro M StensethUnited KingdomXuxue Feng QUALIFIED
Johnson J KolmetzArgentinaAsiya Javayant NEW
Ashley X SergiCanadaIvan Magalhaes QUALIFIED
Antonio Q SaylorsJapanAmy Elsner NEW
Jennifer T CaudyUnited KingdomElwin Sharvill NEGOTIATION
Jones T MarrierCanadaAsiya Javayant PROPOSAL
Kadeem M MorascaArgentinaStephen Shaw RENEWAL
Jennifer M SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Kaitlin A StockhamUnited KingdomIvan Magalhaes PROPOSAL
Ricardo J AlbaresFranceAmy Elsner QUALIFIED
Sinclair J FigeroaItalyStephen Shaw NEGOTIATION
Clifford J KuskoBrazilXuxue Feng UNQUALIFIED
Rodrigues R FigeroaBrazilIoni Bowcher NEW
Maria D GlickRussiaElwin Sharvill NEW
Frozen Columns
Name
Smith U Malet
Clifford J Tollner
Izzy L Ferencz
Adams N Dilliard
Munro G Campain
Tony L Albares
Clifford D Ferencz
Aditya C Campain
Aika T Royster
Mujtaba L Sergi
Johnson P Poquette
Maisha K Bolognia
Costa A Wieser
Leja A Royster
Claire C Inouye
Isabel S Morasca
Maria U Campain
Jefferson X Whobrey
Tony M Rulapaugh
Misaki M Caldarera
Smith W Gaucho
Leon L Morasca
Sinclair A Butt
Ashley G Marrier
Greenwood W Oldroyd
Mayumi J Ruta
Claire V Slusarski
Mujtaba H Ruta
Kaitlin Q Glick
Nicolas L Slusarski
Jennifer Q Ostrosky
Faith G Poquette
Izzy A Wieser
Octavia B Bowley
James L Foller
Leon P Bowley
Costa L Whobrey
Mujtaba K Inouye
Clifford B Saylors
James V Poquette
Izzy L Nicka
Jefferson T Foller
Francesco G Malet
Munro Q Caudy
Octavia Y Darakjy
Arvin S Rulapaugh
Jeanfrancois F Waycott
Faith B Amigon
Murillo N Figeroa
Salvatore R Morasca
IdCountryDate
1000Germany2026-06-16
1001France2026-06-18
1002Spain2026-06-27
1003Canada2026-06-03
1004Australia2026-06-02
1005Germany2026-06-16
1006Italy2026-06-03
1007Argentina2026-06-16
1008Spain2026-06-19
1009Argentina2026-06-13
1010Germany2026-06-01
1011Spain2026-06-25
1012Brazil2026-06-26
1013Argentina2026-06-04
1014France2026-06-29
1015Russia2026-06-25
1016France2026-06-29
1017Russia2026-06-04
1018Spain2026-06-28
1019Canada2026-06-08
1020Italy2026-06-29
1021Japan2026-06-03
1022Spain2026-06-25
1023Argentina2026-06-18
1024United Kingdom2026-06-12
1025Japan2026-06-19
1026Australia2026-06-02
1027Italy2026-06-22
1028United Kingdom2026-06-22
1029Brazil2026-06-04
1030France2026-06-06
1031Germany2026-06-27
1032Brazil2026-06-02
1033Australia2026-06-21
1034Canada2026-06-26
1035Spain2026-06-05
1036Brazil2026-06-18
1037Italy2026-06-26
1038Russia2026-06-27
1039Canada2026-06-14
1040Spain2026-06-29
1041Japan2026-06-27
1042Germany2026-06-04
1043Japan2026-06-16
1044Brazil2026-06-22
1045France2026-06-27
1046Japan2026-06-13
1047Italy2026-06-12
1048Russia2026-06-12
1049Italy2026-06-29

On-Demand Data

NameIdCountryDate
Mayumi O Amigon1000Italy2026-06-05
Misaki K Darakjy1001Japan2026-06-13
Silvio V Bowley1002India2026-06-04
James K Malet1003France2026-06-17
Claire K Stenseth1004Brazil2026-06-12
Maisha F Stockham1005United Kingdom2026-06-21
Misaki O Flosi1006Russia2026-06-17
Jeanfrancois Q Rulapaugh1007Brazil2026-06-24
James W Glick1008Japan2026-06-13
Alejandro X Chui1009United Kingdom2026-06-11
Jones S Waycott1010Canada2026-06-15
Jones U Glick1011Spain2026-06-21
Aruna F Ferencz1012Russia2026-06-28
Emily H Vocelka1013India2026-06-18
Murillo W Garufi1014Canada2026-05-31
Jones L Doe1015Spain2026-06-14
Johnson G Wieser1016Brazil2026-06-19
Octavia Y Royster1017Australia2026-06-06
Kadeem E Royster1018Argentina2026-06-19
Darci A Ruta1019India2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow J MarrierSpainIoni Bowcher UNQUALIFIED
Maisha Z IturbideArgentinaIoni Bowcher UNQUALIFIED
Aditya C AlbaresBrazilOnyama Limba PROPOSAL
Deepesh G StensethIndiaAnna Fali NEGOTIATION
Maria J FollerUnited KingdomAnna Fali PROPOSAL
Leon B MarrierSpainAnna Fali PROPOSAL
Stacey Z FerenczRussiaElwin Sharvill QUALIFIED
Alejandro D CaudyArgentinaAmy Elsner QUALIFIED
Leja J BriddickRussiaAmy Elsner PROPOSAL
Wickens D AlbaresUnited KingdomOnyama Limba PROPOSAL
Jennifer C KuskoRussiaXuxue Feng QUALIFIED
Silvio T WhobreyJapanStephen Shaw QUALIFIED
Juan Y KolmetzSpainAnna Fali NEW
Kadeem P BriddickFranceXuxue Feng RENEWAL
Misaki D ShinkoArgentinaBernardo Dominic UNQUALIFIED
Maria F ButtJapanAmy Elsner QUALIFIED
Jennifer S ShinkoBrazilIoni Bowcher QUALIFIED
Silvio H PerinSpainStephen Shaw NEW
Aditya E ButtSpainStephen Shaw NEGOTIATION
Arvin P GarufiUnited KingdomBernardo Dominic RENEWAL
Wickens G KuskoSpainStephen Shaw PROPOSAL
Alejandro H WaycottIndiaIoni Bowcher PROPOSAL
Kaitlin Y InouyeItalyIvan Magalhaes UNQUALIFIED
Juan N FollerArgentinaBernardo Dominic NEGOTIATION
Morrow P InouyeBrazilElwin Sharvill PROPOSAL
Leon L AmigonJapanStephen Shaw PROPOSAL
Murillo P RimIndiaOnyama Limba NEW
Jennifer H StockhamRussiaStephen Shaw PROPOSAL
James V AmigonArgentinaBernardo Dominic QUALIFIED
Ricardo M PoquetteJapanIvan Magalhaes NEW
Costa C DoeFranceAsiya Javayant UNQUALIFIED
Isabel I DilliardRussiaAnna Fali NEGOTIATION
Octavia Y IturbideJapanAsiya Javayant QUALIFIED
Aditya R OstroskyAustraliaXuxue Feng QUALIFIED
Nicolas C RulapaughCanadaXuxue Feng UNQUALIFIED
Darci K FollerJapanIvan Magalhaes PROPOSAL
Isabel J BowleyIndiaIoni Bowcher PROPOSAL
Misaki G InouyeItalyAnna Fali QUALIFIED
Chavez W DarakjyBrazilXuxue Feng NEW
Juan D ChuiIndiaElwin Sharvill 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>