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 D NestleCanadaAnna Fali PROPOSAL
Faith Q WieserFranceAnna Fali PROPOSAL
Izzy K PaprockiBrazilAmy Elsner UNQUALIFIED
Mujtaba X WhobreyUnited KingdomIvan Magalhaes RENEWAL
Darci L WaycottJapanElwin Sharvill RENEWAL
Ricardo X PerinAustraliaBernardo Dominic QUALIFIED
Morrow I BriddickJapanStephen Shaw UNQUALIFIED
Greenwood P StockhamArgentinaStephen Shaw NEGOTIATION
Misaki P GillianArgentinaXuxue Feng RENEWAL
Emily X RulapaughAustraliaBernardo Dominic NEGOTIATION
Ashley U IturbideJapanBernardo Dominic UNQUALIFIED
Francesco A RoysterGermanyAmy Elsner RENEWAL
Greenwood P DarakjyRussiaBernardo Dominic QUALIFIED
Faith M RutaArgentinaAmy Elsner PROPOSAL
Cody I FigeroaGermanyIvan Magalhaes NEW
Nicolas V OldroydBrazilXuxue Feng NEW
Izzy L MaletGermanyOnyama Limba NEGOTIATION
Aika E ButtAustraliaAmy Elsner PROPOSAL
Antonio P SergiGermanyElwin Sharvill RENEWAL
Murillo W PerinJapanAmy Elsner UNQUALIFIED
Isabel Q PoquetteSpainBernardo Dominic RENEWAL
Ricardo L GillianRussiaStephen Shaw UNQUALIFIED
Jefferson G MaletUnited KingdomAnna Fali RENEWAL
Jeanfrancois W ChuiIndiaIvan Magalhaes UNQUALIFIED
Munro D DilliardUnited KingdomOnyama Limba QUALIFIED
Costa L NickaJapanAnna Fali RENEWAL
Sinclair F VenereJapanAmy Elsner PROPOSAL
Ricardo O BowleyUnited KingdomElwin Sharvill RENEWAL
Clifford P BologniaRussiaAsiya Javayant QUALIFIED
Juan C GarufiFranceAmy Elsner NEW
Leon P FigeroaUnited KingdomIoni Bowcher NEW
Adams M NickaArgentinaBernardo Dominic UNQUALIFIED
Salvatore U CaldareraSpainStephen Shaw PROPOSAL
Adams E AmigonCanadaOnyama Limba NEW
James M MaletFranceAmy Elsner NEW
Ricardo E RimUnited KingdomOnyama Limba NEW
Octavia G FollerRussiaIoni Bowcher RENEWAL
Silvio X SchemmerArgentinaIoni Bowcher QUALIFIED
Jennifer T FigeroaGermanyStephen Shaw NEW
Morrow E DilliardArgentinaBernardo Dominic PROPOSAL
Jennifer I FollerAustraliaIoni Bowcher PROPOSAL
Morrow E AmigonRussiaIoni Bowcher PROPOSAL
Smith G ButtSpainAmy Elsner NEGOTIATION
Alejandro J SergiIndiaAmy Elsner UNQUALIFIED
Smith N AlbaresUnited KingdomIoni Bowcher RENEWAL
Leja T CaudyArgentinaXuxue Feng UNQUALIFIED
Sinclair U ChuiBrazilElwin Sharvill PROPOSAL
Costa S GarufiItalyBernardo Dominic UNQUALIFIED
Stacey G GillianRussiaOnyama Limba PROPOSAL
Salvatore K SlusarskiArgentinaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa D GillianCanadaAnna Fali NEGOTIATION
Kadeem X DoeArgentinaIoni Bowcher QUALIFIED
Sinclair Y TollnerBrazilElwin Sharvill UNQUALIFIED
Leon O WieserSpainBernardo Dominic QUALIFIED
Faith V RoysterBrazilElwin Sharvill UNQUALIFIED
Darci S WaycottArgentinaAsiya Javayant NEGOTIATION
Ricardo T IturbideIndiaOnyama Limba UNQUALIFIED
David D InouyeUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba Z FerenczItalyAmy Elsner PROPOSAL
Antonio G CaldareraItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin M WhobreyFrance2025-06-14Benton, John B Jr NEGOTIATION28Xuxue Feng
1001Jeanfrancois M DoeFrance2025-05-18Chapman, Ross E Esq RENEWAL68Ioni Bowcher
1002Emily Q KolmetzGermany2025-06-03Commercial Press PROPOSAL12Ioni Bowcher
1003Jennifer S MacleadRussia2025-05-22Chapman, Ross E Esq RENEWAL45Amy Elsner
1004Claire T IturbideFrance2025-05-31Chanay, Jeffrey A Esq NEW33Amy Elsner
1005Francesco Y ButtSpain2025-05-30Feltz Printing Service NEGOTIATION3Asiya Javayant
1006Francesco P MaletGermany2025-05-21Feltz Printing Service QUALIFIED76Onyama Limba
1007Murillo F StockhamBrazil2025-05-19Printing Dimensions RENEWAL65Onyama Limba
1008Johnson L NickaArgentina2025-05-20Rangoni Of Florence RENEWAL27Ivan Magalhaes
1009Juan B NickaJapan2025-05-31Morlong Associates NEGOTIATION31Amy Elsner
1010Aditya L MacleadIndia2025-06-15Feiner Bros RENEWAL51Bernardo Dominic
1011Cody L RimUnited Kingdom2025-06-14Rangoni Of Florence NEW2Xuxue Feng
1012Octavia Y PoquetteAustralia2025-05-26Chanay, Jeffrey A Esq RENEWAL58Elwin Sharvill
1013Jennifer X MaletSpain2025-05-26Morlong Associates UNQUALIFIED51Asiya Javayant
1014Claire T GillianJapan2025-05-22Rangoni Of Florence UNQUALIFIED64Anna Fali
1015David W CaldareraCanada2025-06-07Chemel, James L Cpa RENEWAL37Onyama Limba
1016James A GarufiArgentina2025-06-15Chemel, James L Cpa RENEWAL15Xuxue Feng
1017James E OldroydFrance2025-06-06Dorl, James J Esq QUALIFIED93Stephen Shaw
1018Tony P CaudyIndia2025-05-18Printing Dimensions NEGOTIATION80Bernardo Dominic
1019Deepesh Y WieserItaly2025-06-05Chanay, Jeffrey A Esq PROPOSAL72Amy Elsner
1020Isabel T PoquetteCanada2025-06-11King, Christopher A Esq NEW73Stephen Shaw
1021Mayumi K NestleBrazil2025-06-11King, Christopher A Esq RENEWAL95Bernardo Dominic
1022Ricardo V MacleadCanada2025-05-22Feltz Printing Service RENEWAL73Elwin Sharvill
1023Clifford G MarrierAustralia2025-06-02Feltz Printing Service RENEWAL44Amy Elsner
1024Arvin B SaylorsBrazil2025-05-25Chapman, Ross E Esq UNQUALIFIED24Ivan Magalhaes
1025Mayumi T PerinGermany2025-05-24King, Christopher A Esq NEW26Ioni Bowcher
1026Ricardo O DilliardCanada2025-06-01Printing Dimensions QUALIFIED36Elwin Sharvill
1027Tony Y KolmetzUnited Kingdom2025-06-04Feltz Printing Service PROPOSAL42Ioni Bowcher
1028Ashley K GauchoIndia2025-05-27Rangoni Of Florence NEW44Ivan Magalhaes
1029Smith E GarufiGermany2025-05-24Dorl, James J Esq PROPOSAL8Elwin Sharvill
1030Adams W CaudyGermany2025-05-22Commercial Press NEW86Onyama Limba
1031Alejandro B FlosiIndia2025-06-04Truhlar And Truhlar Attys PROPOSAL70Anna Fali
1032Murillo V TollnerRussia2025-05-30King, Christopher A Esq QUALIFIED98Asiya Javayant
1033Jones J OldroydSpain2025-05-23Buckley Miller Wright RENEWAL80Onyama Limba
1034Leja O BowleyUnited Kingdom2025-05-27Feiner Bros PROPOSAL78Onyama Limba
1035Silvio F DarakjyCanada2025-05-23Chapman, Ross E Esq RENEWAL2Elwin Sharvill
1036Salvatore J PaprockiAustralia2025-06-02Feltz Printing Service RENEWAL30Stephen Shaw
1037Deepesh Z BowleyRussia2025-06-14Rousseaux, Michael Esq PROPOSAL62Stephen Shaw
1038Silvio U TollnerGermany2025-05-26Dorl, James J Esq NEGOTIATION70Bernardo Dominic
1039Leon C ChuiJapan2025-06-02Printing Dimensions PROPOSAL58Anna Fali
1040Arvin Y MarrierItaly2025-06-02Chanay, Jeffrey A Esq NEW34Onyama Limba
1041Greenwood R NickaAustralia2025-06-11Feltz Printing Service NEGOTIATION80Ivan Magalhaes
1042Sinclair Z RoysterFrance2025-05-20Rangoni Of Florence UNQUALIFIED49Onyama Limba
1043Silvio F GlickUnited Kingdom2025-06-10Feltz Printing Service RENEWAL32Elwin Sharvill
1044Leja H PaprockiUnited Kingdom2025-05-29Buckley Miller Wright NEGOTIATION43Ivan Magalhaes
1045Stacey Y TollnerBrazil2025-06-09Buckley Miller Wright PROPOSAL12Anna Fali
1046Jeanfrancois G WaycottUnited Kingdom2025-06-12Printing Dimensions NEGOTIATION27Elwin Sharvill
1047Wickens W BowleyBrazil2025-06-09Benton, John B Jr UNQUALIFIED80Amy Elsner
1048Ivar W KolmetzJapan2025-06-15Rangoni Of Florence NEGOTIATION48Anna Fali
1049Aika E PoquetteIndia2025-05-28Feltz Printing Service PROPOSAL26Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Smith U DilliardRussiaAmy Elsner RENEWAL
Kaitlin I NickaItalyBernardo Dominic NEW
Aika L MaletArgentinaStephen Shaw NEW
Emily U AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha A SergiBrazilOnyama Limba NEW
Wickens O MarrierArgentinaIvan Magalhaes UNQUALIFIED
Alejandro V TollnerUnited KingdomStephen Shaw NEW
Claire Z ButtUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois B AlbaresSpainStephen Shaw RENEWAL
Izzy N GarufiCanadaIvan Magalhaes PROPOSAL
Wickens P GlickGermanyElwin Sharvill QUALIFIED
Salvatore Z WhobreyCanadaElwin Sharvill QUALIFIED
Jeanfrancois S GillianAustraliaIoni Bowcher PROPOSAL
Adams I MacleadRussiaOnyama Limba UNQUALIFIED
Johnson W RoysterUnited KingdomXuxue Feng RENEWAL
Chavez Y RoysterJapanAnna Fali QUALIFIED
Claire M VocelkaRussiaBernardo Dominic NEGOTIATION
Mujtaba V CaudyRussiaXuxue Feng PROPOSAL
Munro K NickaJapanAsiya Javayant QUALIFIED
Jennifer V BologniaSpainOnyama Limba NEW
Johnson T SchemmerItalyOnyama Limba QUALIFIED
Adams X RimJapanIvan Magalhaes UNQUALIFIED
Antonio N AlbaresIndiaAsiya Javayant UNQUALIFIED
Johnson B ChuiIndiaAsiya Javayant NEGOTIATION
David Q MorascaCanadaAsiya Javayant NEGOTIATION
Francesco D BriddickItalyAnna Fali UNQUALIFIED
Maisha R FerenczGermanyAsiya Javayant UNQUALIFIED
Adams X MarrierRussiaElwin Sharvill QUALIFIED
Isabel L WaycottJapanAsiya Javayant NEW
Darci R VocelkaJapanOnyama Limba RENEWAL
Mujtaba Z IturbideItalyBernardo Dominic UNQUALIFIED
Adams P RutaAustraliaElwin Sharvill NEW
Jennifer E AmigonItalyAmy Elsner UNQUALIFIED
Sinclair O ChuiUnited KingdomAmy Elsner NEGOTIATION
Aika F KolmetzFranceStephen Shaw UNQUALIFIED
Wickens M InouyeCanadaAnna Fali QUALIFIED
Mujtaba L AlbaresRussiaElwin Sharvill NEW
Izzy Z PerinBrazilXuxue Feng NEW
Alejandro P StockhamCanadaIoni Bowcher UNQUALIFIED
Ashley R CaudyGermanyOnyama Limba QUALIFIED
Alejandro K WhobreyRussiaBernardo Dominic QUALIFIED
Aditya C RimItalyXuxue Feng QUALIFIED
Octavia Q WhobreyFranceIvan Magalhaes QUALIFIED
Claire P CampainRussiaAmy Elsner NEW
Kadeem Q StockhamSpainStephen Shaw QUALIFIED
Johnson O OldroydJapanIvan Magalhaes NEW
Ivar B RulapaughRussiaAnna Fali UNQUALIFIED
Jones U InouyeArgentinaStephen Shaw UNQUALIFIED
Cody V TollnerSpainAsiya Javayant UNQUALIFIED
Silvio E SergiGermanyIoni Bowcher NEW
Frozen Columns
Name
Johnson S Slusarski
Chavez H Oldroyd
Octavia M Stenseth
Darci Z Royster
James U Slusarski
Kadeem K Albares
Alejandro Q Royster
Smith D Albares
Silvio P Rulapaugh
Jefferson K Glick
Julie V Malet
Jefferson N Amigon
Emily U Bowley
Johnson U Garufi
Izzy J Nicka
Francesco Q Nestle
Kaitlin V Royster
Silvio R Ferencz
Misaki S Darakjy
Costa Z Royster
Maria A Gillian
Faith V Ostrosky
Jones P Malet
Nicolas O Kolmetz
Isabel N Wieser
Arvin Q Bolognia
Leon O Bolognia
Jefferson U Bowley
Mayumi R Chui
Greenwood E Flosi
Arvin O Ostrosky
Jones C Dilliard
Salvatore Q Poquette
Silvio O Wieser
Mayumi A Oldroyd
Juan P Garufi
Tony M Flosi
Juan F Stenseth
Johnson N Malet
Emily M Gaucho
Silvio O Vocelka
Salvatore Q Malet
Faith C Schemmer
Misaki V Dilliard
Adams C Kusko
Emily O Kolmetz
Arvin C Garufi
Nicolas M Rim
Smith U Briddick
Clifford F Glick
IdCountryDate
1000Italy2025-06-09
1001Germany2025-06-03
1002Argentina2025-06-16
1003Brazil2025-05-22
1004Germany2025-06-09
1005Argentina2025-05-24
1006France2025-05-29
1007Italy2025-05-19
1008Italy2025-05-26
1009United Kingdom2025-06-15
1010Italy2025-05-18
1011Spain2025-05-31
1012Brazil2025-05-19
1013Canada2025-05-31
1014Canada2025-06-13
1015Germany2025-05-23
1016India2025-05-18
1017India2025-06-03
1018Argentina2025-06-07
1019United Kingdom2025-05-19
1020France2025-06-04
1021Russia2025-06-10
1022Japan2025-06-12
1023Canada2025-06-11
1024Canada2025-06-14
1025Japan2025-05-23
1026Italy2025-06-02
1027Australia2025-06-14
1028Argentina2025-06-01
1029Italy2025-06-01
1030Italy2025-05-18
1031United Kingdom2025-05-30
1032Japan2025-06-10
1033Italy2025-06-14
1034Argentina2025-05-25
1035France2025-06-02
1036France2025-05-27
1037France2025-06-11
1038Canada2025-05-27
1039Russia2025-06-04
1040Argentina2025-06-16
1041India2025-06-07
1042Russia2025-06-06
1043Argentina2025-05-25
1044India2025-05-27
1045India2025-06-04
1046France2025-05-31
1047Germany2025-05-19
1048Canada2025-05-26
1049Argentina2025-06-08

On-Demand Data

NameIdCountryDate
Claire R Paprocki1000Italy2025-05-21
Wickens I Marrier1001Japan2025-05-22
Arvin E Garufi1002Italy2025-06-10
Clifford A Gillian1003Germany2025-06-02
Faith I Doe1004Japan2025-05-21
Alejandro U Gaucho1005India2025-06-16
Leon N Saylors1006Italy2025-06-11
Antonio M Caldarera1007France2025-06-12
Sinclair N Inouye1008Canada2025-05-28
Deepesh C Dilliard1009France2025-06-06
Nicolas Q Figeroa1010Argentina2025-05-31
Faith E Shinko1011Italy2025-06-15
Mayumi F Ostrosky1012Brazil2025-05-29
Alejandro P Briddick1013Canada2025-05-28
Kaitlin B Whobrey1014Germany2025-06-04
Mayumi F Ruta1015Argentina2025-06-06
Johnson A Gaucho1016India2025-05-28
Silvio Z Oldroyd1017Canada2025-06-14
Ricardo E Whobrey1018France2025-06-05
Faith P Oldroyd1019Japan2025-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya L ChuiArgentinaElwin Sharvill NEW
Cody C KolmetzArgentinaStephen Shaw NEGOTIATION
Jones E FigeroaSpainAnna Fali NEW
Juan Z ShinkoArgentinaOnyama Limba UNQUALIFIED
Ashley A CampainAustraliaElwin Sharvill QUALIFIED
Francesco J PerinJapanStephen Shaw PROPOSAL
Munro Z NickaItalyBernardo Dominic PROPOSAL
Greenwood I StockhamIndiaOnyama Limba NEW
Ricardo B StockhamGermanyOnyama Limba QUALIFIED
David K RulapaughBrazilAsiya Javayant UNQUALIFIED
Ashley X MacleadGermanyStephen Shaw UNQUALIFIED
Chavez L MaletGermanyAmy Elsner RENEWAL
Deepesh V GauchoItalyOnyama Limba PROPOSAL
Darci G VenereArgentinaIoni Bowcher NEW
Mujtaba W DarakjyIndiaBernardo Dominic NEW
Sinclair X ShinkoItalyElwin Sharvill UNQUALIFIED
Johnson L InouyeGermanyOnyama Limba RENEWAL
Tony V MaletIndiaAmy Elsner PROPOSAL
Smith I FlosiCanadaOnyama Limba NEGOTIATION
Maria A DarakjyGermanyAmy Elsner RENEWAL
Greenwood U IturbideBrazilBernardo Dominic RENEWAL
Julie C RoysterGermanyAnna Fali PROPOSAL
Chavez A MarrierCanadaIoni Bowcher RENEWAL
James B BologniaBrazilIvan Magalhaes PROPOSAL
David I ButtCanadaBernardo Dominic QUALIFIED
Emily I AmigonJapanXuxue Feng PROPOSAL
Munro A FerenczUnited KingdomElwin Sharvill NEW
Leja Z PoquetteCanadaAnna Fali UNQUALIFIED
Juan F NickaRussiaAmy Elsner UNQUALIFIED
Faith V FlosiItalyAsiya Javayant PROPOSAL
Claire R FollerIndiaIvan Magalhaes PROPOSAL
Aruna G RulapaughAustraliaIvan Magalhaes NEGOTIATION
Mayumi U CampainSpainAnna Fali QUALIFIED
Misaki Y WaycottJapanIoni Bowcher PROPOSAL
Leon V MaletGermanyOnyama Limba NEGOTIATION
Julie Z DilliardSpainXuxue Feng PROPOSAL
Johnson C BologniaAustraliaXuxue Feng RENEWAL
Aruna Q DarakjyUnited KingdomAnna Fali NEGOTIATION
Munro Q CampainJapanOnyama Limba RENEWAL
Kadeem S FlosiJapanOnyama Limba 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>