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
Mayumi X RutaUnited KingdomElwin Sharvill RENEWAL
Leon V InouyeAustraliaIoni Bowcher UNQUALIFIED
Silvio F BologniaFranceIvan Magalhaes QUALIFIED
Tony Q RulapaughAustraliaXuxue Feng NEGOTIATION
Mayumi T SergiSpainIoni Bowcher UNQUALIFIED
Emily J DilliardAustraliaElwin Sharvill NEGOTIATION
Antonio L MaletBrazilIvan Magalhaes NEW
David O VenereFranceAmy Elsner NEGOTIATION
Smith W MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Arvin V KolmetzArgentinaIoni Bowcher PROPOSAL
Aika X PoquetteFranceIvan Magalhaes NEW
Aika V BriddickAustraliaAnna Fali NEW
Adams S BriddickIndiaAsiya Javayant NEW
Leon C FigeroaFranceIoni Bowcher RENEWAL
Octavia A RutaItalyIoni Bowcher RENEWAL
Aika X StockhamItalyIvan Magalhaes PROPOSAL
Francesco A MarrierBrazilBernardo Dominic RENEWAL
Aditya V FollerItalyIoni Bowcher UNQUALIFIED
Mayumi I InouyeUnited KingdomStephen Shaw QUALIFIED
James G TollnerSpainAsiya Javayant RENEWAL
Jones S IturbideUnited KingdomAsiya Javayant NEGOTIATION
Smith C SergiUnited KingdomOnyama Limba QUALIFIED
Leja Z StensethUnited KingdomIvan Magalhaes QUALIFIED
Morrow Q InouyeRussiaIoni Bowcher QUALIFIED
Wickens Y PerinBrazilIoni Bowcher PROPOSAL
Costa P KuskoAustraliaAmy Elsner UNQUALIFIED
Izzy F IturbideAustraliaXuxue Feng PROPOSAL
Munro P GlickUnited KingdomAnna Fali NEW
Octavia D FollerCanadaAnna Fali UNQUALIFIED
Mujtaba R VocelkaJapanIvan Magalhaes PROPOSAL
Silvio N MarrierGermanyElwin Sharvill RENEWAL
Aruna P FollerGermanyAnna Fali PROPOSAL
Tony P StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Jones D SergiBrazilAnna Fali RENEWAL
Greenwood P IturbideItalyAmy Elsner UNQUALIFIED
Juan T WaycottJapanOnyama Limba PROPOSAL
Costa T FerenczSpainAsiya Javayant RENEWAL
Aika F MarrierCanadaStephen Shaw NEW
Kadeem S ChuiArgentinaAmy Elsner UNQUALIFIED
Rodrigues E IturbideJapanIvan Magalhaes NEGOTIATION
Misaki R RulapaughCanadaBernardo Dominic PROPOSAL
Jones V BriddickRussiaStephen Shaw QUALIFIED
Leon L FerenczAustraliaBernardo Dominic PROPOSAL
Johnson H CaldareraFranceAnna Fali PROPOSAL
Munro H TollnerCanadaElwin Sharvill NEGOTIATION
Jennifer K RoysterBrazilAmy Elsner UNQUALIFIED
Izzy Y OstroskyIndiaXuxue Feng PROPOSAL
Nicolas J OldroydSpainIoni Bowcher RENEWAL
Clifford W NestleUnited KingdomStephen Shaw PROPOSAL
Izzy M NestleAustraliaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson D NickaItalyOnyama Limba PROPOSAL
Kaitlin F FlosiCanadaStephen Shaw NEW
Claire E FerenczUnited KingdomElwin Sharvill RENEWAL
Aika C RimUnited KingdomOnyama Limba QUALIFIED
Maria K SaylorsIndiaBernardo Dominic QUALIFIED
Chavez A CaldareraFranceAmy Elsner UNQUALIFIED
Maria D MaletGermanyIoni Bowcher RENEWAL
Leja V PoquetteAustraliaAnna Fali PROPOSAL
Wickens O OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Maria J FerenczUnited KingdomIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria T FlosiBrazil2026-08-13Rangoni Of Florence UNQUALIFIED81Onyama Limba
1001Ivar X CampainJapan2026-08-28Feltz Printing Service QUALIFIED31Anna Fali
1002James L DilliardJapan2026-08-13Rangoni Of Florence NEW95Anna Fali
1003James Z GlickAustralia2026-08-24Chapman, Ross E Esq RENEWAL14Bernardo Dominic
1004Kaitlin C CaudyItaly2026-08-02King, Christopher A Esq PROPOSAL72Stephen Shaw
1005Jones W WaycottArgentina2026-07-30Morlong Associates UNQUALIFIED50Anna Fali
1006Arvin K FigeroaIndia2026-08-18Rousseaux, Michael Esq PROPOSAL16Onyama Limba
1007Jefferson T DoeRussia2026-08-03Commercial Press PROPOSAL21Elwin Sharvill
1008Salvatore Y FlosiArgentina2026-08-14Chanay, Jeffrey A Esq QUALIFIED42Amy Elsner
1009Rodrigues N TollnerArgentina2026-08-28Truhlar And Truhlar Attys NEGOTIATION73Elwin Sharvill
1010Antonio N RimRussia2026-08-07Printing Dimensions QUALIFIED25Elwin Sharvill
1011Silvio U PoquetteBrazil2026-08-24Rangoni Of Florence QUALIFIED94Asiya Javayant
1012Cody C GillianItaly2026-08-27Printing Dimensions NEGOTIATION95Elwin Sharvill
1013Rodrigues L FlosiJapan2026-08-10Printing Dimensions NEW52Anna Fali
1014Adams A NestleAustralia2026-08-06Benton, John B Jr QUALIFIED65Amy Elsner
1015Arvin N MaletArgentina2026-08-11Feiner Bros NEGOTIATION4Bernardo Dominic
1016Ashley Q DarakjyJapan2026-08-23Dorl, James J Esq UNQUALIFIED42Xuxue Feng
1017Jeanfrancois R StockhamJapan2026-08-05Morlong Associates UNQUALIFIED74Ioni Bowcher
1018Mayumi C CaldareraRussia2026-08-06Chapman, Ross E Esq UNQUALIFIED65Onyama Limba
1019Antonio P MaletGermany2026-08-15Chapman, Ross E Esq NEW61Ivan Magalhaes
1020Munro K ShinkoSpain2026-08-26Rousseaux, Michael Esq UNQUALIFIED43Onyama Limba
1021Johnson D GauchoArgentina2026-08-06Morlong Associates QUALIFIED18Onyama Limba
1022Nicolas D OldroydArgentina2026-08-26Morlong Associates NEGOTIATION13Anna Fali
1023Kadeem K DoeCanada2026-08-05Feiner Bros RENEWAL54Elwin Sharvill
1024Deepesh T BriddickBrazil2026-08-14Morlong Associates PROPOSAL60Amy Elsner
1025Aika D CampainGermany2026-08-22Feiner Bros QUALIFIED8Ivan Magalhaes
1026Maria Y RimUnited Kingdom2026-08-14Benton, John B Jr RENEWAL24Amy Elsner
1027Greenwood N IturbideJapan2026-08-15Commercial Press RENEWAL61Bernardo Dominic
1028Wickens U MorascaUnited Kingdom2026-08-13Chemel, James L Cpa NEW86Ioni Bowcher
1029Jeanfrancois Q BowleyBrazil2026-08-09Rangoni Of Florence UNQUALIFIED32Stephen Shaw
1030Tony J VocelkaArgentina2026-08-08Dorl, James J Esq NEW4Xuxue Feng
1031Johnson Z InouyeUnited Kingdom2026-08-24Truhlar And Truhlar Attys RENEWAL14Amy Elsner
1032Mayumi J PaprockiSpain2026-07-30Truhlar And Truhlar Attys QUALIFIED50Bernardo Dominic
1033Emily D CaudyArgentina2026-08-19Rousseaux, Michael Esq RENEWAL93Stephen Shaw
1034Alejandro X WieserIndia2026-08-14Dorl, James J Esq PROPOSAL82Anna Fali
1035Nicolas F AmigonUnited Kingdom2026-08-28Truhlar And Truhlar Attys NEW32Asiya Javayant
1036Cody S BologniaAustralia2026-08-23Chanay, Jeffrey A Esq UNQUALIFIED85Bernardo Dominic
1037Jefferson C RutaRussia2026-08-28King, Christopher A Esq RENEWAL49Xuxue Feng
1038Jennifer Z WieserRussia2026-08-18Commercial Press RENEWAL5Bernardo Dominic
1039Chavez V FigeroaFrance2026-08-17Chemel, James L Cpa NEGOTIATION23Elwin Sharvill
1040Leja S GarufiJapan2026-08-18Buckley Miller Wright PROPOSAL22Bernardo Dominic
1041Clifford E RimAustralia2026-08-27Chemel, James L Cpa QUALIFIED10Ivan Magalhaes
1042Ivar Q GauchoArgentina2026-08-15Printing Dimensions NEGOTIATION3Onyama Limba
1043Antonio U SaylorsJapan2026-08-21Chanay, Jeffrey A Esq NEGOTIATION53Asiya Javayant
1044Mayumi Q SaylorsRussia2026-08-19King, Christopher A Esq NEGOTIATION63Onyama Limba
1045Johnson U RimFrance2026-08-02Chanay, Jeffrey A Esq QUALIFIED27Ioni Bowcher
1046Sinclair R TollnerItaly2026-08-22Chemel, James L Cpa QUALIFIED5Anna Fali
1047Mayumi D PoquetteBrazil2026-08-22Benton, John B Jr NEGOTIATION48Bernardo Dominic
1048Faith L MarrierAustralia2026-08-01Rousseaux, Michael Esq UNQUALIFIED38Ioni Bowcher
1049Morrow Z FollerGermany2026-08-27Truhlar And Truhlar Attys PROPOSAL87Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Adams C MacleadIndiaXuxue Feng RENEWAL
James W FigeroaIndiaOnyama Limba UNQUALIFIED
Adams W WhobreyRussiaElwin Sharvill NEGOTIATION
Alejandro B WhobreyGermanyAmy Elsner UNQUALIFIED
Jones L FerenczAustraliaAmy Elsner UNQUALIFIED
Cody P MaletItalyElwin Sharvill RENEWAL
Munro P StensethBrazilBernardo Dominic NEW
Jefferson Y BowleyCanadaElwin Sharvill RENEWAL
Jones H NickaAustraliaElwin Sharvill NEGOTIATION
Jennifer L GillianCanadaXuxue Feng RENEWAL
Rodrigues Q SaylorsCanadaOnyama Limba UNQUALIFIED
Izzy R MaletRussiaAmy Elsner RENEWAL
Jennifer N StensethSpainOnyama Limba UNQUALIFIED
Sinclair F DoeGermanyBernardo Dominic RENEWAL
Johnson K DilliardFranceAmy Elsner NEGOTIATION
Ashley Q MacleadIndiaAnna Fali QUALIFIED
Faith Q SchemmerCanadaAmy Elsner RENEWAL
Mayumi C InouyeIndiaElwin Sharvill NEW
Wickens X AmigonSpainAmy Elsner NEW
Francesco D ShinkoRussiaXuxue Feng QUALIFIED
Mayumi A CaudyIndiaElwin Sharvill NEW
Smith I DarakjyAustraliaOnyama Limba PROPOSAL
Costa K SaylorsBrazilXuxue Feng NEGOTIATION
Deepesh C SchemmerArgentinaAnna Fali PROPOSAL
Octavia H VocelkaCanadaIvan Magalhaes PROPOSAL
Clifford E OldroydUnited KingdomElwin Sharvill NEW
Chavez D GarufiUnited KingdomAnna Fali RENEWAL
James Z InouyeAustraliaElwin Sharvill UNQUALIFIED
Leja D VenereRussiaAsiya Javayant UNQUALIFIED
Julie A PerinIndiaXuxue Feng NEGOTIATION
Smith V FlosiItalyElwin Sharvill PROPOSAL
Mayumi Q CaldareraRussiaOnyama Limba NEW
Ivar S VocelkaAustraliaIoni Bowcher PROPOSAL
Adams H SchemmerIndiaOnyama Limba QUALIFIED
Tony I StockhamFranceAmy Elsner UNQUALIFIED
Jennifer L WaycottIndiaAnna Fali UNQUALIFIED
Aika Q StockhamSpainOnyama Limba NEGOTIATION
Kaitlin I CaudySpainAnna Fali NEW
Emily J BowleyJapanBernardo Dominic UNQUALIFIED
Alejandro R VenereIndiaIvan Magalhaes RENEWAL
Sinclair D StockhamFranceStephen Shaw QUALIFIED
Jennifer J SlusarskiRussiaXuxue Feng PROPOSAL
Aruna L BowleyIndiaXuxue Feng QUALIFIED
Julie R KolmetzSpainBernardo Dominic PROPOSAL
Murillo D GlickFranceAnna Fali NEGOTIATION
Arvin Z PoquetteBrazilElwin Sharvill NEW
Faith R MorascaIndiaIoni Bowcher RENEWAL
Francesco D ChuiAustraliaAnna Fali RENEWAL
Ricardo N SchemmerAustraliaAmy Elsner NEGOTIATION
Stacey W SchemmerIndiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Juan H Figeroa
Emily S Sergi
Alejandro K Caudy
Nicolas K Schemmer
Deepesh Z Inouye
Mujtaba Q Nestle
Alejandro Q Tollner
Darci Y Nicka
Juan V Kusko
Rodrigues X Flosi
Salvatore V Caldarera
Deepesh R Amigon
Salvatore M Albares
Kaitlin F Bolognia
Aditya S Figeroa
Emily S Wieser
Murillo W Garufi
Salvatore L Perin
Ricardo D Stockham
Maisha A Saylors
Maria Z Whobrey
Aruna G Glick
Jefferson T Perin
Alejandro D Marrier
Mujtaba S Ostrosky
Leja L Figeroa
Tony L Whobrey
Mujtaba U Albares
Salvatore M Ostrosky
Jennifer O Amigon
Johnson C Whobrey
Johnson V Inouye
Stacey Z Nicka
Isabel N Wieser
Jones G Garufi
Maisha D Vocelka
Munro F Bowley
Sinclair S Ostrosky
Aruna M Gaucho
Kadeem L Oldroyd
Nicolas I Campain
Stacey N Morasca
Morrow H Darakjy
Kaitlin B Maclead
Juan T Doe
Cody N Maclead
Jones C Slusarski
Murillo L Perin
Stacey F Darakjy
Aruna Y Tollner
IdCountryDate
1000Australia2026-07-30
1001Spain2026-08-07
1002Canada2026-07-30
1003Russia2026-08-14
1004Brazil2026-08-09
1005Canada2026-08-26
1006Germany2026-08-12
1007Russia2026-08-20
1008Germany2026-08-26
1009Australia2026-08-28
1010Italy2026-08-22
1011France2026-08-21
1012Argentina2026-08-25
1013India2026-08-05
1014United Kingdom2026-08-07
1015France2026-08-12
1016United Kingdom2026-08-23
1017France2026-08-21
1018Australia2026-08-24
1019Argentina2026-08-26
1020Australia2026-08-27
1021Russia2026-08-18
1022Italy2026-08-05
1023Australia2026-08-24
1024France2026-08-25
1025Germany2026-08-01
1026Japan2026-08-09
1027Italy2026-08-03
1028Italy2026-08-18
1029United Kingdom2026-08-25
1030Australia2026-08-11
1031Spain2026-08-09
1032Argentina2026-08-14
1033India2026-08-21
1034Spain2026-08-18
1035Germany2026-08-03
1036Australia2026-08-05
1037Canada2026-08-04
1038Italy2026-08-22
1039Japan2026-08-24
1040Brazil2026-08-12
1041India2026-08-05
1042Russia2026-08-02
1043Canada2026-08-11
1044Australia2026-08-09
1045India2026-08-19
1046France2026-08-18
1047Russia2026-08-02
1048Australia2026-08-08
1049Italy2026-08-14

On-Demand Data

NameIdCountryDate
David Q Garufi1000Canada2026-08-24
Leja F Morasca1001France2026-08-19
Aditya Y Saylors1002Spain2026-08-20
Jefferson M Paprocki1003United Kingdom2026-08-14
Wickens G Briddick1004Japan2026-08-11
Clifford S Figeroa1005Russia2026-08-20
Morrow S Oldroyd1006India2026-08-21
Murillo T Flosi1007India2026-08-05
Darci U Stockham1008Russia2026-08-04
Faith L Gaucho1009Germany2026-08-17
Ricardo L Bolognia1010Spain2026-08-01
David S Saylors1011Brazil2026-08-28
Arvin C Caudy1012Germany2026-08-07
Wickens F Chui1013Russia2026-08-17
Adams X Glick1014Germany2026-08-21
Claire F Dilliard1015Germany2026-08-25
Clifford O Butt1016France2026-08-01
Aditya W Perin1017United Kingdom2026-08-06
Izzy F Waycott1018Russia2026-08-06
Nicolas K Amigon1019Italy2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa K ChuiRussiaOnyama Limba NEW
Jennifer H SergiAustraliaBernardo Dominic NEGOTIATION
Francesco S RoysterArgentinaOnyama Limba NEW
Octavia V SlusarskiIndiaXuxue Feng UNQUALIFIED
Aika M AmigonFranceElwin Sharvill PROPOSAL
Antonio Y GillianFranceStephen Shaw RENEWAL
Jeanfrancois M WaycottCanadaOnyama Limba NEW
Morrow G GarufiCanadaAmy Elsner NEGOTIATION
Stacey N OldroydBrazilOnyama Limba UNQUALIFIED
Mujtaba D KuskoAustraliaIoni Bowcher UNQUALIFIED
Murillo U DarakjySpainElwin Sharvill QUALIFIED
Munro X GillianAustraliaIvan Magalhaes RENEWAL
Jeanfrancois C WieserArgentinaStephen Shaw RENEWAL
Emily I KolmetzSpainStephen Shaw NEGOTIATION
Sinclair R ChuiGermanyAsiya Javayant UNQUALIFIED
Mujtaba C InouyeAustraliaAsiya Javayant PROPOSAL
Aika L MarrierRussiaIvan Magalhaes UNQUALIFIED
Tony B TollnerAustraliaStephen Shaw NEGOTIATION
Izzy A InouyeArgentinaElwin Sharvill PROPOSAL
Rodrigues C BriddickJapanStephen Shaw NEGOTIATION
Deepesh D CampainJapanIoni Bowcher RENEWAL
Juan X PerinIndiaIoni Bowcher RENEWAL
Leon T AmigonSpainIvan Magalhaes UNQUALIFIED
Maisha Q FlosiBrazilIvan Magalhaes NEW
Cody J WaycottUnited KingdomAmy Elsner UNQUALIFIED
Sinclair H CampainItalyIvan Magalhaes UNQUALIFIED
Cody W CaldareraArgentinaAmy Elsner QUALIFIED
Johnson F StockhamBrazilBernardo Dominic RENEWAL
Smith C ChuiItalyAnna Fali RENEWAL
Ivar J SchemmerItalyStephen Shaw NEW
Murillo F VocelkaFranceXuxue Feng NEW
Nicolas M SergiBrazilElwin Sharvill NEW
Salvatore L BologniaJapanBernardo Dominic NEW
David B CaldareraAustraliaIoni Bowcher PROPOSAL
Kadeem Z PerinSpainElwin Sharvill NEGOTIATION
Stacey T ButtItalyBernardo Dominic PROPOSAL
Aditya R GauchoIndiaElwin Sharvill RENEWAL
Ashley P ShinkoItalyAnna Fali QUALIFIED
Costa K SergiFranceIvan Magalhaes NEGOTIATION
Silvio W AlbaresAustraliaIvan Magalhaes NEW

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