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 MaletAustraliaAmy Elsner RENEWAL
Juan E ChuiGermanyStephen Shaw NEGOTIATION
Jeanfrancois F FollerCanadaAsiya Javayant PROPOSAL
Rodrigues B MaletItalyAnna Fali RENEWAL
Greenwood Q DarakjyAustraliaAnna Fali UNQUALIFIED
Morrow X BologniaCanadaAmy Elsner NEGOTIATION
David C StockhamArgentinaXuxue Feng PROPOSAL
Silvio F WaycottArgentinaStephen Shaw QUALIFIED
Octavia S GlickFranceAnna Fali RENEWAL
Deepesh I MaletCanadaIoni Bowcher NEW
Salvatore F MorascaBrazilBernardo Dominic QUALIFIED
Leja Q AmigonCanadaIvan Magalhaes NEW
Ivar C BowleyRussiaXuxue Feng QUALIFIED
Ivar A MacleadAustraliaBernardo Dominic UNQUALIFIED
Ashley K GillianRussiaAnna Fali UNQUALIFIED
Tony T VocelkaRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois I BologniaArgentinaXuxue Feng NEW
Sinclair B MorascaFranceAsiya Javayant NEGOTIATION
Tony L VenereIndiaAmy Elsner PROPOSAL
Izzy V AmigonCanadaIoni Bowcher QUALIFIED
Jennifer F NickaSpainElwin Sharvill RENEWAL
Wickens T NickaSpainBernardo Dominic UNQUALIFIED
Antonio W VocelkaSpainBernardo Dominic NEGOTIATION
Leon Z GillianBrazilIvan Magalhaes NEGOTIATION
Ashley H FollerIndiaAmy Elsner NEGOTIATION
Kadeem J CampainIndiaIoni Bowcher NEGOTIATION
Nicolas K NickaCanadaXuxue Feng NEGOTIATION
Deepesh R VocelkaCanadaIvan Magalhaes PROPOSAL
Smith F MarrierIndiaIvan Magalhaes UNQUALIFIED
Salvatore X SchemmerUnited KingdomAmy Elsner RENEWAL
Mayumi Z MorascaAustraliaAnna Fali UNQUALIFIED
Faith F NickaFranceIvan Magalhaes NEGOTIATION
Kadeem O ButtFranceAnna Fali RENEWAL
Ashley X RoysterArgentinaStephen Shaw RENEWAL
Jefferson Q OstroskyGermanyElwin Sharvill NEW
Ricardo N FigeroaArgentinaStephen Shaw QUALIFIED
Jennifer Q FerenczGermanyIoni Bowcher PROPOSAL
Julie G CaldareraGermanyIvan Magalhaes PROPOSAL
Leja E DoeCanadaAnna Fali NEGOTIATION
Arvin V KuskoBrazilElwin Sharvill NEW
Rodrigues W AlbaresBrazilIoni Bowcher RENEWAL
Isabel S NestleItalyXuxue Feng PROPOSAL
Chavez R SaylorsRussiaIvan Magalhaes PROPOSAL
Jeanfrancois V AmigonJapanStephen Shaw QUALIFIED
Tony U WieserItalyBernardo Dominic RENEWAL
Jeanfrancois E MaletGermanyBernardo Dominic PROPOSAL
Jeanfrancois F CampainAustraliaBernardo Dominic UNQUALIFIED
Aditya L DilliardRussiaAnna Fali UNQUALIFIED
Arvin P RimFranceOnyama Limba NEW
James S SaylorsBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas B GarufiSpainStephen Shaw PROPOSAL
Kadeem E BriddickArgentinaIoni Bowcher NEW
Juan K StensethArgentinaStephen Shaw NEGOTIATION
Faith J BowleyArgentinaXuxue Feng NEW
Mayumi J InouyeFranceIvan Magalhaes PROPOSAL
Clifford D FlosiJapanAmy Elsner NEGOTIATION
Costa L GlickBrazilAnna Fali RENEWAL
Emily M BriddickUnited KingdomAmy Elsner QUALIFIED
Ivar M CaudyJapanIoni Bowcher PROPOSAL
Cody O SergiSpainAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens E ShinkoJapan2026-07-04Truhlar And Truhlar Attys UNQUALIFIED97Onyama Limba
1001Costa G OldroydCanada2026-07-26Rousseaux, Michael Esq PROPOSAL39Elwin Sharvill
1002Isabel T MaletJapan2026-07-12Buckley Miller Wright QUALIFIED12Ioni Bowcher
1003Ricardo O DarakjyCanada2026-07-02Rangoni Of Florence PROPOSAL4Anna Fali
1004Darci Z OldroydGermany2026-07-11Commercial Press PROPOSAL97Asiya Javayant
1005Mujtaba Y GauchoRussia2026-07-14Rangoni Of Florence PROPOSAL53Stephen Shaw
1006David Y InouyeBrazil2026-07-10Buckley Miller Wright NEGOTIATION37Bernardo Dominic
1007Leja E TollnerSpain2026-07-27King, Christopher A Esq NEGOTIATION78Elwin Sharvill
1008Kadeem I TollnerSpain2026-07-20Buckley Miller Wright PROPOSAL51Asiya Javayant
1009Ashley B SergiGermany2026-07-06Rousseaux, Michael Esq UNQUALIFIED56Elwin Sharvill
1010Misaki J BriddickSpain2026-07-21Truhlar And Truhlar Attys RENEWAL78Elwin Sharvill
1011Jeanfrancois T PaprockiArgentina2026-07-04Morlong Associates RENEWAL55Amy Elsner
1012Morrow Z KuskoFrance2026-06-30Feltz Printing Service UNQUALIFIED76Anna Fali
1013Stacey I StensethRussia2026-07-21Chanay, Jeffrey A Esq QUALIFIED16Elwin Sharvill
1014Kaitlin N SergiRussia2026-07-19Benton, John B Jr QUALIFIED60Ioni Bowcher
1015Emily D BriddickItaly2026-06-30Chemel, James L Cpa NEGOTIATION42Bernardo Dominic
1016Cody L InouyeRussia2026-07-06Commercial Press QUALIFIED41Stephen Shaw
1017Rodrigues C InouyeItaly2026-07-12Commercial Press NEGOTIATION22Bernardo Dominic
1018Cody P DilliardItaly2026-07-16Rousseaux, Michael Esq QUALIFIED19Elwin Sharvill
1019Jennifer X SaylorsItaly2026-07-17Benton, John B Jr NEW39Ivan Magalhaes
1020David G ChuiUnited Kingdom2026-07-04Feltz Printing Service RENEWAL72Asiya Javayant
1021Murillo N SchemmerArgentina2026-07-01Dorl, James J Esq UNQUALIFIED52Asiya Javayant
1022Cody M MaletIndia2026-07-11Rangoni Of Florence PROPOSAL24Stephen Shaw
1023Maria N MaletItaly2026-07-04Chemel, James L Cpa NEW44Elwin Sharvill
1024Clifford V SaylorsJapan2026-07-23Dorl, James J Esq RENEWAL36Elwin Sharvill
1025Jefferson N CampainGermany2026-07-10Feltz Printing Service UNQUALIFIED90Onyama Limba
1026Ashley L InouyeItaly2026-07-05Printing Dimensions RENEWAL18Ivan Magalhaes
1027Silvio H CaudySpain2026-07-28Morlong Associates PROPOSAL52Xuxue Feng
1028Maisha T GlickUnited Kingdom2026-07-21Dorl, James J Esq RENEWAL75Onyama Limba
1029Nicolas V OldroydIndia2026-07-14Benton, John B Jr PROPOSAL96Ivan Magalhaes
1030Silvio D KuskoCanada2026-07-07Feltz Printing Service RENEWAL97Anna Fali
1031Stacey D VenereArgentina2026-07-21Dorl, James J Esq UNQUALIFIED23Elwin Sharvill
1032Juan T BowleyJapan2026-07-14Feltz Printing Service QUALIFIED91Bernardo Dominic
1033Octavia K InouyeBrazil2026-07-12Feiner Bros NEW95Onyama Limba
1034Greenwood R RutaItaly2026-07-17Rousseaux, Michael Esq PROPOSAL15Elwin Sharvill
1035Smith Y StockhamRussia2026-07-07Chapman, Ross E Esq PROPOSAL28Amy Elsner
1036Mayumi H GillianSpain2026-07-28Printing Dimensions UNQUALIFIED37Ioni Bowcher
1037David Q PerinFrance2026-07-24King, Christopher A Esq UNQUALIFIED98Onyama Limba
1038Aditya S PaprockiGermany2026-07-11Feiner Bros QUALIFIED67Amy Elsner
1039Leon I MorascaSpain2026-07-08Benton, John B Jr NEW20Stephen Shaw
1040Isabel C AlbaresRussia2026-07-12Rangoni Of Florence PROPOSAL31Ivan Magalhaes
1041Kadeem J ChuiGermany2026-07-26Buckley Miller Wright NEW45Ivan Magalhaes
1042Faith J SlusarskiRussia2026-07-15Chanay, Jeffrey A Esq RENEWAL54Xuxue Feng
1043David S MaletFrance2026-07-25Dorl, James J Esq RENEWAL68Xuxue Feng
1044Cody N StockhamSpain2026-07-28Feiner Bros QUALIFIED39Amy Elsner
1045Isabel K DilliardCanada2026-07-13Chanay, Jeffrey A Esq NEW76Elwin Sharvill
1046Rodrigues Z FollerCanada2026-07-17Rangoni Of Florence NEGOTIATION27Ioni Bowcher
1047Ivar A KolmetzGermany2026-07-08Rangoni Of Florence RENEWAL77Amy Elsner
1048Kadeem Y CampainSpain2026-07-18Dorl, James J Esq QUALIFIED72Anna Fali
1049Arvin F WaycottBrazil2026-07-14King, Christopher A Esq NEW39Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Julie K CaudyJapanXuxue Feng RENEWAL
Mujtaba K FigeroaSpainIvan Magalhaes PROPOSAL
Aditya X FollerJapanXuxue Feng PROPOSAL
Darci K GillianCanadaAmy Elsner NEGOTIATION
Deepesh M MarrierBrazilOnyama Limba PROPOSAL
Greenwood W BowleyArgentinaBernardo Dominic QUALIFIED
Nicolas F FigeroaRussiaBernardo Dominic RENEWAL
Silvio B MorascaBrazilXuxue Feng NEGOTIATION
Munro I StockhamAustraliaBernardo Dominic NEGOTIATION
Arvin F KolmetzJapanAnna Fali UNQUALIFIED
Smith Y IturbideAustraliaXuxue Feng UNQUALIFIED
Kadeem F FollerFranceOnyama Limba NEGOTIATION
Octavia U GarufiSpainXuxue Feng UNQUALIFIED
Leja H GauchoSpainXuxue Feng PROPOSAL
Aruna Q RulapaughRussiaAnna Fali UNQUALIFIED
Wickens T ButtSpainOnyama Limba UNQUALIFIED
Aditya Q BriddickAustraliaXuxue Feng QUALIFIED
Faith B OstroskyIndiaAsiya Javayant QUALIFIED
Leon H TollnerRussiaStephen Shaw NEGOTIATION
Sinclair K FlosiGermanyAmy Elsner NEGOTIATION
Kaitlin F GlickIndiaIoni Bowcher QUALIFIED
Aruna H FigeroaAustraliaAsiya Javayant UNQUALIFIED
Ivar P PoquetteRussiaAnna Fali QUALIFIED
Claire N WaycottCanadaAmy Elsner RENEWAL
Francesco L ShinkoIndiaIvan Magalhaes RENEWAL
Rodrigues K VenereUnited KingdomStephen Shaw PROPOSAL
Maisha Q RulapaughArgentinaAnna Fali UNQUALIFIED
Arvin N AmigonCanadaOnyama Limba RENEWAL
James W FollerIndiaIvan Magalhaes NEW
Maisha O NickaSpainBernardo Dominic UNQUALIFIED
Smith C NickaGermanyBernardo Dominic NEGOTIATION
Octavia W RoysterBrazilAnna Fali RENEWAL
Sinclair Q CampainIndiaElwin Sharvill RENEWAL
Darci Z MacleadRussiaAsiya Javayant NEW
Greenwood V RoysterBrazilIoni Bowcher PROPOSAL
Misaki C BowleyUnited KingdomStephen Shaw PROPOSAL
Francesco W StockhamFranceAnna Fali PROPOSAL
Faith C WaycottGermanyOnyama Limba NEW
Smith X PaprockiIndiaIvan Magalhaes NEW
Clifford O FerenczBrazilStephen Shaw UNQUALIFIED
Francesco M GlickArgentinaIoni Bowcher QUALIFIED
Aruna C MacleadUnited KingdomIoni Bowcher RENEWAL
Morrow Q DilliardUnited KingdomStephen Shaw QUALIFIED
Nicolas N FerenczJapanIvan Magalhaes NEW
Kaitlin M OstroskyIndiaAmy Elsner PROPOSAL
Tony W SaylorsSpainIvan Magalhaes PROPOSAL
Sinclair O IturbideUnited KingdomAnna Fali UNQUALIFIED
Munro W CampainRussiaStephen Shaw UNQUALIFIED
Alejandro P PerinItalyAmy Elsner RENEWAL
Cody S StockhamIndiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Adams M Kolmetz
Chavez Q Slusarski
Chavez Y Perin
Faith X Stockham
Tony G Oldroyd
Greenwood W Morasca
Costa V Malet
Claire M Marrier
Rodrigues K Dilliard
Cody F Darakjy
Julie C Flosi
Darci N Ferencz
Antonio Q Bolognia
Leja R Stockham
Adams Z Sergi
Silvio Q Vocelka
Morrow L Kusko
Costa G Tollner
Ivar W Maclead
Faith U Nicka
Mujtaba J Ostrosky
Munro U Vocelka
Johnson B Darakjy
Murillo M Wieser
Mayumi P Stockham
Arvin W Venere
Misaki J Darakjy
Isabel J Paprocki
Leon P Chui
Arvin B Malet
Isabel R Whobrey
Claire C Campain
Deepesh O Stockham
Julie L Shinko
Misaki B Rulapaugh
Nicolas C Foller
Salvatore T Caldarera
Juan L Rim
Maria V Gillian
Kaitlin G Kolmetz
Ashley O Caldarera
Stacey D Royster
Emily V Briddick
Stacey T Royster
Francesco F Caldarera
Rodrigues C Dilliard
Wickens X Slusarski
Rodrigues J Caudy
Mayumi R Chui
Antonio L Paprocki
IdCountryDate
1000Germany2026-07-27
1001Australia2026-07-25
1002Russia2026-07-17
1003Argentina2026-07-05
1004Australia2026-07-01
1005Brazil2026-07-25
1006India2026-07-28
1007Canada2026-07-05
1008Russia2026-07-22
1009Argentina2026-07-26
1010Japan2026-07-07
1011Germany2026-07-14
1012Russia2026-07-28
1013Germany2026-07-20
1014Brazil2026-07-11
1015Canada2026-07-18
1016United Kingdom2026-07-11
1017France2026-07-18
1018Italy2026-07-14
1019Canada2026-07-25
1020Spain2026-07-27
1021Argentina2026-07-11
1022Japan2026-07-28
1023Canada2026-06-29
1024Japan2026-07-27
1025Australia2026-07-13
1026Argentina2026-07-05
1027Germany2026-07-17
1028Germany2026-07-21
1029Argentina2026-07-08
1030Spain2026-07-09
1031France2026-07-20
1032United Kingdom2026-07-02
1033Japan2026-07-03
1034Russia2026-07-07
1035Australia2026-07-21
1036France2026-07-18
1037Italy2026-07-07
1038Germany2026-07-21
1039Russia2026-07-28
1040Japan2026-06-29
1041France2026-07-03
1042India2026-07-22
1043France2026-07-09
1044Brazil2026-07-13
1045Italy2026-07-20
1046Spain2026-07-22
1047Russia2026-07-08
1048France2026-07-25
1049France2026-07-14

On-Demand Data

NameIdCountryDate
Sinclair X Caudy1000United Kingdom2026-07-08
Julie X Bowley1001Italy2026-07-09
Antonio X Vocelka1002Italy2026-07-18
Morrow S Stockham1003France2026-07-16
Jennifer W Gillian1004India2026-07-18
James H Rim1005France2026-07-07
Morrow B Garufi1006United Kingdom2026-06-30
Chavez A Malet1007France2026-07-28
Francesco H Bolognia1008Spain2026-07-12
Julie D Malet1009Argentina2026-07-07
Salvatore Z Wieser1010India2026-07-12
Isabel K Paprocki1011United Kingdom2026-07-24
Kaitlin S Caudy1012Australia2026-06-30
Murillo G Perin1013Brazil2026-07-19
Cody B Waycott1014Italy2026-07-25
Alejandro I Bolognia1015Russia2026-07-03
Aditya A Morasca1016Canada2026-07-26
Aditya Q Nestle1017Germany2026-07-11
Jones E Darakjy1018India2026-07-26
Aika I Venere1019India2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois L WhobreyItalyAnna Fali RENEWAL
Costa D CaudyCanadaAmy Elsner QUALIFIED
Adams T NickaArgentinaIvan Magalhaes QUALIFIED
Adams N FollerCanadaXuxue Feng RENEWAL
Ricardo D OstroskyRussiaElwin Sharvill NEW
Kadeem J FlosiItalyOnyama Limba NEGOTIATION
Deepesh Y SlusarskiJapanIvan Magalhaes NEGOTIATION
Arvin N GauchoIndiaAnna Fali NEGOTIATION
Kadeem L SaylorsUnited KingdomAmy Elsner NEW
Antonio T StensethRussiaIvan Magalhaes PROPOSAL
Mayumi Y GlickGermanyAmy Elsner NEW
Jeanfrancois W NickaIndiaIoni Bowcher QUALIFIED
Mayumi B GauchoRussiaOnyama Limba QUALIFIED
Tony J CampainIndiaAnna Fali NEGOTIATION
Clifford F DoeAustraliaXuxue Feng NEGOTIATION
Jennifer S MacleadFranceAnna Fali PROPOSAL
Jennifer I FigeroaItalyAnna Fali NEGOTIATION
Francesco Y InouyeBrazilAnna Fali QUALIFIED
Wickens U GlickCanadaAsiya Javayant UNQUALIFIED
Aruna T GauchoIndiaAsiya Javayant PROPOSAL
Jennifer P DoeItalyAnna Fali UNQUALIFIED
Costa R MaletJapanAmy Elsner RENEWAL
Mayumi C StockhamBrazilAsiya Javayant NEW
Izzy D WaycottUnited KingdomAsiya Javayant RENEWAL
Mujtaba U DoeIndiaAsiya Javayant UNQUALIFIED
Mayumi S AlbaresSpainAmy Elsner UNQUALIFIED
Mayumi M OstroskyBrazilXuxue Feng PROPOSAL
Leon Z GlickCanadaAmy Elsner NEW
Murillo Z RimFranceAmy Elsner RENEWAL
Octavia Z GlickCanadaAmy Elsner UNQUALIFIED
Maisha U BriddickUnited KingdomIoni Bowcher NEW
Isabel J TollnerUnited KingdomAsiya Javayant PROPOSAL
Stacey C NickaItalyOnyama Limba RENEWAL
Claire V StensethBrazilOnyama Limba NEGOTIATION
Faith N PoquetteAustraliaStephen Shaw NEGOTIATION
Munro Q MarrierBrazilXuxue Feng NEGOTIATION
Silvio B GillianArgentinaIvan Magalhaes QUALIFIED
Darci R GlickItalyXuxue Feng RENEWAL
Johnson N FollerBrazilIoni Bowcher NEGOTIATION
Julie D KolmetzBrazilIvan Magalhaes QUALIFIED

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