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
Aika U GauchoSpainIoni Bowcher QUALIFIED
Morrow X MaletAustraliaIoni Bowcher QUALIFIED
Maisha F MacleadUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba R PoquetteRussiaIoni Bowcher QUALIFIED
Smith K BriddickBrazilElwin Sharvill NEW
Julie K CampainArgentinaIvan Magalhaes NEW
Mayumi S RimCanadaIoni Bowcher NEW
Greenwood D PoquetteRussiaOnyama Limba RENEWAL
David W CaudyAustraliaBernardo Dominic RENEWAL
Alejandro E DilliardIndiaStephen Shaw RENEWAL
Aruna B OstroskySpainAsiya Javayant RENEWAL
Jennifer Y ButtArgentinaBernardo Dominic QUALIFIED
Salvatore S VenereCanadaOnyama Limba QUALIFIED
Claire K InouyeFranceIoni Bowcher PROPOSAL
Nicolas B CaldareraBrazilAmy Elsner RENEWAL
Nicolas Y RimCanadaElwin Sharvill UNQUALIFIED
Izzy T SaylorsArgentinaAnna Fali NEGOTIATION
Smith E MorascaGermanyOnyama Limba RENEWAL
Munro X VenereUnited KingdomAsiya Javayant PROPOSAL
Chavez T ShinkoFranceAsiya Javayant UNQUALIFIED
Jennifer E BologniaRussiaStephen Shaw NEW
James I StensethBrazilAmy Elsner NEGOTIATION
Clifford D FigeroaItalyXuxue Feng RENEWAL
Smith V GauchoRussiaOnyama Limba PROPOSAL
Costa X GillianArgentinaIoni Bowcher QUALIFIED
Morrow A SlusarskiArgentinaBernardo Dominic NEGOTIATION
Deepesh B FlosiIndiaAsiya Javayant UNQUALIFIED
Alejandro Q RoysterCanadaIoni Bowcher NEGOTIATION
Faith S FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Murillo W GillianIndiaXuxue Feng RENEWAL
Murillo M BriddickArgentinaOnyama Limba NEW
Alejandro K BriddickArgentinaBernardo Dominic NEGOTIATION
Sinclair K WhobreyJapanIvan Magalhaes NEW
Maisha E MorascaItalyStephen Shaw PROPOSAL
Isabel U GauchoFranceOnyama Limba PROPOSAL
Arvin E RulapaughGermanyAsiya Javayant PROPOSAL
Leon K SlusarskiFranceBernardo Dominic UNQUALIFIED
Octavia A KolmetzFranceAnna Fali UNQUALIFIED
Morrow U DilliardBrazilAsiya Javayant NEW
Costa S RulapaughBrazilIoni Bowcher QUALIFIED
Jennifer U GlickAustraliaStephen Shaw NEW
Silvio J MarrierBrazilIvan Magalhaes RENEWAL
Misaki A AlbaresUnited KingdomXuxue Feng NEW
Silvio J GillianFranceStephen Shaw PROPOSAL
Sinclair Y IturbideFranceIoni Bowcher QUALIFIED
Greenwood E DilliardFranceAsiya Javayant UNQUALIFIED
Smith R VenereAustraliaXuxue Feng QUALIFIED
Kaitlin P SergiIndiaXuxue Feng RENEWAL
Chavez E OstroskyFranceXuxue Feng UNQUALIFIED
Aditya X PoquetteAustraliaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith L MacleadRussiaIvan Magalhaes PROPOSAL
Mayumi B SchemmerGermanyAsiya Javayant UNQUALIFIED
Cody U ChuiUnited KingdomAsiya Javayant NEW
Jennifer E SergiUnited KingdomAmy Elsner UNQUALIFIED
Greenwood B KuskoJapanIoni Bowcher RENEWAL
Silvio K FollerSpainBernardo Dominic QUALIFIED
Juan M SchemmerFranceXuxue Feng PROPOSAL
Adams I ButtUnited KingdomAsiya Javayant PROPOSAL
Wickens E MorascaGermanyIvan Magalhaes NEW
Jefferson Z WhobreyIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley F SlusarskiArgentina2025-06-02Feltz Printing Service NEGOTIATION48Anna Fali
1001Chavez N FigeroaSpain2025-06-04Rousseaux, Michael Esq NEGOTIATION75Xuxue Feng
1002Arvin A KolmetzJapan2025-06-11Benton, John B Jr NEW78Onyama Limba
1003Johnson F MarrierFrance2025-06-06Chapman, Ross E Esq UNQUALIFIED25Elwin Sharvill
1004Silvio U WaycottGermany2025-05-22King, Christopher A Esq NEW95Elwin Sharvill
1005Maisha O AmigonJapan2025-05-23Chemel, James L Cpa RENEWAL86Ivan Magalhaes
1006Stacey Q CampainUnited Kingdom2025-06-03Chapman, Ross E Esq NEGOTIATION50Ivan Magalhaes
1007Jones D TollnerAustralia2025-06-12Printing Dimensions QUALIFIED20Ioni Bowcher
1008Kaitlin Z BowleyJapan2025-06-15Morlong Associates RENEWAL98Ioni Bowcher
1009Francesco O ButtCanada2025-05-18Dorl, James J Esq PROPOSAL15Asiya Javayant
1010Morrow N SchemmerUnited Kingdom2025-06-06Dorl, James J Esq PROPOSAL51Anna Fali
1011Emily F ButtJapan2025-06-01Benton, John B Jr NEW31Amy Elsner
1012Emily U RulapaughGermany2025-06-13Printing Dimensions UNQUALIFIED75Asiya Javayant
1013Murillo N GillianArgentina2025-05-17Chemel, James L Cpa RENEWAL29Xuxue Feng
1014Misaki F FerenczRussia2025-06-04Feltz Printing Service UNQUALIFIED13Amy Elsner
1015Francesco T ButtUnited Kingdom2025-05-24Rousseaux, Michael Esq NEW69Elwin Sharvill
1016Mujtaba C CaudyItaly2025-05-24Truhlar And Truhlar Attys NEGOTIATION66Onyama Limba
1017Aruna C FerenczArgentina2025-05-28King, Christopher A Esq NEW18Stephen Shaw
1018Wickens R CaudyArgentina2025-06-12Printing Dimensions NEW35Ioni Bowcher
1019Jefferson X DoeArgentina2025-05-24Rangoni Of Florence PROPOSAL89Bernardo Dominic
1020Misaki M ButtCanada2025-06-14Feiner Bros RENEWAL23Anna Fali
1021David D MacleadItaly2025-06-14Benton, John B Jr NEGOTIATION70Ivan Magalhaes
1022Izzy U MorascaUnited Kingdom2025-06-06Chapman, Ross E Esq PROPOSAL79Anna Fali
1023Murillo B OldroydBrazil2025-06-03Rangoni Of Florence RENEWAL67Ivan Magalhaes
1024Alejandro Y SchemmerItaly2025-05-22Dorl, James J Esq NEW88Onyama Limba
1025Misaki B ChuiIndia2025-06-09Rousseaux, Michael Esq RENEWAL25Asiya Javayant
1026Wickens N RimIndia2025-06-11Chemel, James L Cpa NEGOTIATION74Stephen Shaw
1027Antonio V MaletBrazil2025-06-01Chemel, James L Cpa UNQUALIFIED12Ioni Bowcher
1028Emily Q SergiJapan2025-06-05Chanay, Jeffrey A Esq PROPOSAL92Amy Elsner
1029David L MacleadFrance2025-06-12Buckley Miller Wright NEGOTIATION90Elwin Sharvill
1030Leon W KuskoArgentina2025-06-01Feltz Printing Service NEW20Elwin Sharvill
1031Leja T NickaCanada2025-06-07Feiner Bros NEW58Elwin Sharvill
1032Nicolas I NickaSpain2025-05-22Dorl, James J Esq NEGOTIATION7Xuxue Feng
1033Clifford L BowleyJapan2025-05-22Rousseaux, Michael Esq PROPOSAL29Onyama Limba
1034David U PaprockiGermany2025-06-08Rousseaux, Michael Esq QUALIFIED38Asiya Javayant
1035Salvatore Q SlusarskiGermany2025-06-10King, Christopher A Esq NEW28Bernardo Dominic
1036Clifford F IturbideAustralia2025-05-21Truhlar And Truhlar Attys QUALIFIED13Ivan Magalhaes
1037Maisha S FigeroaRussia2025-05-21Chapman, Ross E Esq NEGOTIATION65Asiya Javayant
1038Salvatore G MacleadFrance2025-05-29Benton, John B Jr PROPOSAL18Elwin Sharvill
1039Misaki N SlusarskiAustralia2025-05-27Chapman, Ross E Esq RENEWAL97Ivan Magalhaes
1040Murillo V MorascaCanada2025-06-07Chapman, Ross E Esq NEW77Xuxue Feng
1041Deepesh N SergiItaly2025-05-25Chemel, James L Cpa PROPOSAL71Asiya Javayant
1042Jeanfrancois D OstroskySpain2025-05-19Feiner Bros NEGOTIATION50Stephen Shaw
1043Jefferson B VenereUnited Kingdom2025-06-08King, Christopher A Esq NEW91Xuxue Feng
1044James S CaldareraBrazil2025-05-21Feltz Printing Service UNQUALIFIED17Xuxue Feng
1045Smith O TollnerItaly2025-06-09Chanay, Jeffrey A Esq NEW28Amy Elsner
1046Chavez C StockhamGermany2025-05-27Rangoni Of Florence NEW98Stephen Shaw
1047Chavez M ChuiFrance2025-05-26Dorl, James J Esq NEGOTIATION54Ivan Magalhaes
1048Julie R WieserCanada2025-06-10Chapman, Ross E Esq PROPOSAL68Amy Elsner
1049Nicolas Q RutaUnited Kingdom2025-05-22Dorl, James J Esq RENEWAL78Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Arvin Z TollnerIndiaAmy Elsner QUALIFIED
Sinclair L NestleJapanXuxue Feng UNQUALIFIED
Jeanfrancois N DarakjyGermanyAmy Elsner QUALIFIED
Aika B AlbaresSpainXuxue Feng QUALIFIED
Ricardo V VenereFranceStephen Shaw NEGOTIATION
Jennifer Y FigeroaItalyStephen Shaw NEGOTIATION
Sinclair J CampainBrazilStephen Shaw RENEWAL
Morrow A AlbaresAustraliaStephen Shaw UNQUALIFIED
Ricardo P MaletUnited KingdomBernardo Dominic QUALIFIED
Kadeem N PaprockiBrazilXuxue Feng QUALIFIED
Arvin K KuskoSpainOnyama Limba UNQUALIFIED
Isabel A ShinkoBrazilBernardo Dominic QUALIFIED
James J RulapaughRussiaOnyama Limba NEW
Emily E SergiCanadaAnna Fali PROPOSAL
Jeanfrancois R RutaCanadaStephen Shaw RENEWAL
James A AmigonIndiaStephen Shaw PROPOSAL
Jennifer Z BologniaGermanyXuxue Feng PROPOSAL
Juan V VocelkaIndiaElwin Sharvill RENEWAL
Leja I SergiIndiaBernardo Dominic PROPOSAL
Maria R ButtBrazilAsiya Javayant UNQUALIFIED
Isabel B DilliardAustraliaAsiya Javayant UNQUALIFIED
Emily A MaletAustraliaXuxue Feng QUALIFIED
Jefferson M FigeroaAustraliaIoni Bowcher PROPOSAL
Emily B SchemmerArgentinaIoni Bowcher NEW
Johnson E MorascaJapanAmy Elsner NEW
Greenwood O CampainRussiaAsiya Javayant QUALIFIED
Smith K PaprockiJapanIoni Bowcher RENEWAL
Mujtaba F RutaItalyIoni Bowcher NEGOTIATION
Isabel M BologniaCanadaOnyama Limba RENEWAL
Maisha A BowleySpainXuxue Feng NEW
Izzy V AmigonSpainElwin Sharvill UNQUALIFIED
Aruna J TollnerCanadaBernardo Dominic NEGOTIATION
Claire W StockhamSpainElwin Sharvill UNQUALIFIED
Claire N OstroskySpainIvan Magalhaes NEGOTIATION
Faith U GlickFranceIoni Bowcher NEW
Clifford Z WieserRussiaStephen Shaw NEW
Wickens X ShinkoItalyAmy Elsner QUALIFIED
Misaki R VenereBrazilXuxue Feng UNQUALIFIED
Octavia I StockhamIndiaIoni Bowcher UNQUALIFIED
Kaitlin A RoysterAustraliaElwin Sharvill RENEWAL
Stacey P StockhamItalyBernardo Dominic PROPOSAL
Aditya E RutaJapanStephen Shaw QUALIFIED
Antonio T TollnerArgentinaIvan Magalhaes RENEWAL
Jones U DilliardArgentinaElwin Sharvill RENEWAL
Julie T TollnerAustraliaAnna Fali UNQUALIFIED
Faith L PaprockiArgentinaAmy Elsner NEGOTIATION
Adams A RoysterRussiaStephen Shaw QUALIFIED
Mayumi K RulapaughBrazilAsiya Javayant RENEWAL
Jones T VocelkaIndiaAsiya Javayant QUALIFIED
Jeanfrancois W FigeroaCanadaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Juan P Foller
Tony M Shinko
Arvin V Kusko
Cody L Darakjy
Munro Z Ostrosky
Jeanfrancois D Malet
Jennifer Q Flosi
Chavez S Ostrosky
Smith A Maclead
Aruna F Ferencz
Stacey M Royster
Aika A Waycott
Aruna N Albares
Emily T Stockham
Jeanfrancois N Royster
Mujtaba K Flosi
Ivar X Rim
Kadeem D Darakjy
Aditya H Waycott
Mayumi Z Briddick
Wickens M Stockham
Adams M Oldroyd
Octavia W Malet
Nicolas Y Amigon
Antonio H Stockham
Wickens O Foller
Ricardo G Gillian
Maisha D Iturbide
Jeanfrancois J Maclead
Rodrigues U Dilliard
Julie G Stockham
Sinclair N Briddick
Arvin U Dilliard
Arvin C Oldroyd
Jennifer Y Ferencz
Ricardo W Glick
Jones F Briddick
Aruna J Ferencz
Julie B Garufi
Ashley A Rulapaugh
Isabel D Ferencz
Misaki J Doe
Wickens X Rim
Izzy P Gaucho
Darci S Gillian
Faith N Foller
Deepesh L Malet
Johnson T Slusarski
James Y Shinko
Emily H Inouye
IdCountryDate
1000Russia2025-05-24
1001Brazil2025-06-09
1002Argentina2025-06-10
1003Canada2025-06-15
1004Italy2025-06-08
1005Brazil2025-05-17
1006Australia2025-05-25
1007Canada2025-06-12
1008Spain2025-06-06
1009Spain2025-05-19
1010Germany2025-06-01
1011Argentina2025-06-01
1012Spain2025-05-26
1013Germany2025-06-14
1014Russia2025-05-24
1015Argentina2025-06-02
1016Australia2025-05-28
1017India2025-06-13
1018Argentina2025-06-10
1019Russia2025-06-13
1020Italy2025-06-01
1021Germany2025-06-09
1022Canada2025-05-30
1023Canada2025-05-18
1024Australia2025-06-15
1025Russia2025-05-24
1026Argentina2025-06-12
1027Brazil2025-06-07
1028Italy2025-05-19
1029Spain2025-06-12
1030Brazil2025-06-15
1031Russia2025-06-12
1032India2025-05-26
1033Germany2025-05-31
1034Argentina2025-06-03
1035Argentina2025-06-04
1036Canada2025-06-10
1037Argentina2025-06-04
1038Argentina2025-06-12
1039Spain2025-05-26
1040India2025-06-09
1041Italy2025-05-23
1042Canada2025-06-12
1043Brazil2025-06-07
1044Canada2025-05-25
1045Australia2025-06-11
1046Argentina2025-05-24
1047Japan2025-06-13
1048Germany2025-05-19
1049France2025-06-11

On-Demand Data

NameIdCountryDate
Chavez R Ruta1000Germany2025-06-15
Kaitlin G Tollner1001Germany2025-06-13
Tony C Tollner1002United Kingdom2025-05-30
Antonio F Gillian1003Argentina2025-06-13
Izzy F Campain1004Russia2025-05-22
Aditya L Waycott1005France2025-05-21
Isabel D Tollner1006Brazil2025-05-23
Octavia I Perin1007Australia2025-06-07
Francesco N Kusko1008France2025-05-21
Aditya P Bowley1009Spain2025-05-22
Emily I Chui1010Australia2025-06-06
Ivar N Venere1011Australia2025-06-01
Morrow Z Ruta1012Italy2025-06-05
Tony L Rim1013Brazil2025-05-25
Mayumi F Inouye1014Canada2025-05-20
Costa W Caldarera1015Brazil2025-06-13
Nicolas R Vocelka1016Canada2025-05-29
Stacey T Ruta1017Australia2025-06-14
Isabel C Rim1018India2025-06-12
Munro T Inouye1019Argentina2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi G GlickIndiaOnyama Limba UNQUALIFIED
James I FigeroaAustraliaBernardo Dominic UNQUALIFIED
Jefferson D DilliardJapanElwin Sharvill QUALIFIED
Octavia N MaletArgentinaAsiya Javayant NEGOTIATION
Maria F RimItalyAmy Elsner PROPOSAL
Kadeem N CaldareraBrazilStephen Shaw UNQUALIFIED
Chavez F MaletItalyStephen Shaw UNQUALIFIED
James E StockhamArgentinaIoni Bowcher QUALIFIED
Rodrigues A ChuiIndiaAnna Fali NEW
Rodrigues K FigeroaAustraliaAsiya Javayant NEW
Smith U NickaGermanyAnna Fali QUALIFIED
Claire E DarakjyAustraliaXuxue Feng PROPOSAL
Morrow I AlbaresArgentinaBernardo Dominic UNQUALIFIED
Maisha S StockhamGermanyIvan Magalhaes PROPOSAL
Sinclair O KolmetzIndiaXuxue Feng RENEWAL
Maisha B CaldareraFranceIvan Magalhaes UNQUALIFIED
Isabel N DilliardIndiaAmy Elsner NEGOTIATION
Kaitlin L MarrierArgentinaOnyama Limba NEW
Salvatore T TollnerCanadaIoni Bowcher RENEWAL
Greenwood E MorascaGermanyOnyama Limba NEW
Salvatore A BriddickGermanyOnyama Limba NEW
Emily W ButtSpainIvan Magalhaes NEGOTIATION
Deepesh R GauchoUnited KingdomBernardo Dominic PROPOSAL
Kaitlin L VenereAustraliaOnyama Limba NEGOTIATION
Emily C DarakjyBrazilOnyama Limba QUALIFIED
Greenwood A MaletJapanElwin Sharvill UNQUALIFIED
Ricardo I ButtUnited KingdomStephen Shaw RENEWAL
Nicolas G SchemmerFranceAnna Fali UNQUALIFIED
Faith Q GarufiRussiaOnyama Limba UNQUALIFIED
Aruna D WieserFranceBernardo Dominic NEGOTIATION
Rodrigues M SlusarskiRussiaAnna Fali PROPOSAL
Aika D ChuiFranceElwin Sharvill NEGOTIATION
Arvin P DilliardUnited KingdomOnyama Limba NEW
Tony R GillianGermanyStephen Shaw RENEWAL
Murillo Y BriddickRussiaIvan Magalhaes UNQUALIFIED
Misaki V MaletArgentinaIoni Bowcher UNQUALIFIED
Claire L CaldareraUnited KingdomIvan Magalhaes RENEWAL
David S GauchoFranceIvan Magalhaes NEW
David F MarrierCanadaStephen Shaw QUALIFIED
Juan A GauchoIndiaIvan Magalhaes UNQUALIFIED

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