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
Deepesh H BologniaIndiaAnna Fali NEGOTIATION
Adams S FollerUnited KingdomIoni Bowcher PROPOSAL
Octavia S PoquetteAustraliaElwin Sharvill RENEWAL
Alejandro O SaylorsJapanAsiya Javayant NEGOTIATION
Clifford J FigeroaIndiaAnna Fali PROPOSAL
Costa G CaldareraIndiaAnna Fali QUALIFIED
Salvatore Q PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Izzy L CampainGermanyAnna Fali RENEWAL
Clifford V DilliardItalyBernardo Dominic NEGOTIATION
Octavia F ShinkoCanadaXuxue Feng UNQUALIFIED
Maisha A WieserArgentinaAmy Elsner RENEWAL
James I InouyeBrazilElwin Sharvill QUALIFIED
David W MaletRussiaIvan Magalhaes PROPOSAL
Antonio R CaudyJapanBernardo Dominic NEW
Kadeem V MaletFranceAsiya Javayant NEGOTIATION
Aika R KolmetzArgentinaAmy Elsner QUALIFIED
Arvin X BologniaUnited KingdomBernardo Dominic RENEWAL
Kadeem K FollerArgentinaAsiya Javayant UNQUALIFIED
Sinclair X RutaBrazilAmy Elsner RENEWAL
Greenwood M VocelkaFranceBernardo Dominic UNQUALIFIED
Kadeem P BriddickJapanElwin Sharvill RENEWAL
Izzy N DarakjyIndiaOnyama Limba NEGOTIATION
Alejandro H IturbideSpainAsiya Javayant UNQUALIFIED
Cody L NestleArgentinaElwin Sharvill UNQUALIFIED
Costa Y SlusarskiIndiaIvan Magalhaes NEGOTIATION
Munro B RutaRussiaAsiya Javayant UNQUALIFIED
Wickens J PaprockiIndiaBernardo Dominic PROPOSAL
Wickens S PaprockiFranceAnna Fali NEGOTIATION
Octavia O SaylorsJapanBernardo Dominic QUALIFIED
Aruna U IturbideItalyElwin Sharvill RENEWAL
Mujtaba E VenereArgentinaStephen Shaw NEW
Octavia A IturbideAustraliaAmy Elsner QUALIFIED
Juan Y WieserGermanyElwin Sharvill NEW
Ricardo Z OstroskyBrazilIvan Magalhaes PROPOSAL
Jennifer K SergiItalyIvan Magalhaes UNQUALIFIED
Ivar Q DoeArgentinaXuxue Feng PROPOSAL
Rodrigues M WhobreyAustraliaIoni Bowcher RENEWAL
Izzy K RutaCanadaStephen Shaw NEGOTIATION
Octavia R DoeCanadaAmy Elsner PROPOSAL
Smith W VocelkaIndiaAnna Fali NEW
Deepesh E VocelkaSpainAmy Elsner PROPOSAL
Jeanfrancois U ShinkoJapanOnyama Limba UNQUALIFIED
Ashley N KuskoJapanAmy Elsner PROPOSAL
Julie I PerinJapanIvan Magalhaes NEGOTIATION
Morrow A OldroydItalyStephen Shaw PROPOSAL
Octavia Q FigeroaAustraliaAsiya Javayant UNQUALIFIED
Deepesh B ChuiItalyAsiya Javayant QUALIFIED
Adams Q StensethJapanBernardo Dominic NEW
Izzy M CampainUnited KingdomBernardo Dominic NEW
Salvatore M RulapaughRussiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba R AlbaresRussiaXuxue Feng NEGOTIATION
Clifford I DilliardBrazilXuxue Feng UNQUALIFIED
Leja E SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Adams F SaylorsAustraliaAnna Fali NEW
Silvio D DoeFranceAsiya Javayant PROPOSAL
Misaki V GillianItalyIvan Magalhaes RENEWAL
Clifford H IturbideIndiaStephen Shaw NEGOTIATION
Jennifer Y NestleIndiaAmy Elsner QUALIFIED
Jeanfrancois M CaldareraIndiaIvan Magalhaes QUALIFIED
Maisha F PoquetteBrazilBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez V CaudyArgentina2025-06-13King, Christopher A Esq NEW82Amy Elsner
1001Deepesh O BowleyRussia2025-06-11Buckley Miller Wright NEGOTIATION41Stephen Shaw
1002Darci M FerenczIndia2025-05-24Chapman, Ross E Esq PROPOSAL87Stephen Shaw
1003Nicolas V KuskoIndia2025-05-22Chanay, Jeffrey A Esq PROPOSAL46Asiya Javayant
1004Kadeem I RimFrance2025-06-01Chanay, Jeffrey A Esq QUALIFIED56Anna Fali
1005Tony S PaprockiItaly2025-05-20King, Christopher A Esq NEGOTIATION34Anna Fali
1006Julie D RoysterAustralia2025-06-06Feltz Printing Service UNQUALIFIED59Asiya Javayant
1007Kadeem L CaldareraFrance2025-05-26Benton, John B Jr PROPOSAL43Stephen Shaw
1008Murillo Y TollnerUnited Kingdom2025-06-08Dorl, James J Esq QUALIFIED9Anna Fali
1009Jennifer V TollnerAustralia2025-06-10Truhlar And Truhlar Attys NEGOTIATION41Onyama Limba
1010Emily I CaldareraSpain2025-06-03Feltz Printing Service NEGOTIATION44Stephen Shaw
1011Leon N RutaGermany2025-05-19Rousseaux, Michael Esq UNQUALIFIED52Asiya Javayant
1012Mujtaba C SaylorsCanada2025-05-23King, Christopher A Esq RENEWAL52Asiya Javayant
1013Alejandro O MacleadUnited Kingdom2025-05-23Morlong Associates NEW30Ioni Bowcher
1014Antonio U IturbideAustralia2025-05-21Chemel, James L Cpa NEW35Anna Fali
1015Darci M IturbideItaly2025-05-28Commercial Press NEGOTIATION6Amy Elsner
1016Leja L MarrierFrance2025-05-19Buckley Miller Wright PROPOSAL61Onyama Limba
1017Octavia L GillianIndia2025-05-29Printing Dimensions RENEWAL71Bernardo Dominic
1018Aditya E SaylorsBrazil2025-06-11Commercial Press NEW51Asiya Javayant
1019Jefferson Y MarrierAustralia2025-05-25Buckley Miller Wright UNQUALIFIED49Bernardo Dominic
1020Kadeem L MaletUnited Kingdom2025-06-11Rangoni Of Florence RENEWAL15Stephen Shaw
1021Ricardo B ButtSpain2025-06-13Rangoni Of Florence RENEWAL12Asiya Javayant
1022Chavez N PaprockiFrance2025-05-28Rousseaux, Michael Esq NEW38Bernardo Dominic
1023Munro B CaldareraJapan2025-06-16Feltz Printing Service QUALIFIED22Ivan Magalhaes
1024Morrow M AmigonAustralia2025-05-29Morlong Associates QUALIFIED80Anna Fali
1025Nicolas B ButtSpain2025-06-03Rousseaux, Michael Esq QUALIFIED95Amy Elsner
1026Mujtaba J MacleadAustralia2025-05-27Rangoni Of Florence NEGOTIATION81Bernardo Dominic
1027Morrow M SaylorsSpain2025-06-15Feiner Bros NEW55Asiya Javayant
1028David O SlusarskiItaly2025-06-04Chapman, Ross E Esq NEW64Stephen Shaw
1029Octavia M MacleadArgentina2025-06-04King, Christopher A Esq NEW7Stephen Shaw
1030Clifford Z ShinkoFrance2025-06-01Feiner Bros PROPOSAL78Onyama Limba
1031Murillo D VocelkaArgentina2025-06-06Commercial Press UNQUALIFIED40Elwin Sharvill
1032Maisha C ShinkoGermany2025-06-14Buckley Miller Wright PROPOSAL75Amy Elsner
1033Claire D ChuiUnited Kingdom2025-05-26Commercial Press NEW70Stephen Shaw
1034Octavia V OstroskyCanada2025-06-08Rangoni Of Florence QUALIFIED76Amy Elsner
1035Munro I NestleItaly2025-05-21King, Christopher A Esq NEGOTIATION67Amy Elsner
1036David O OldroydUnited Kingdom2025-06-04Feltz Printing Service NEW82Xuxue Feng
1037Aditya Y RutaIndia2025-05-19Truhlar And Truhlar Attys PROPOSAL44Asiya Javayant
1038Murillo P CaudyRussia2025-05-19Chapman, Ross E Esq PROPOSAL39Anna Fali
1039Antonio A GillianSpain2025-06-03Morlong Associates PROPOSAL35Amy Elsner
1040Emily V DarakjyBrazil2025-06-01Chanay, Jeffrey A Esq QUALIFIED42Xuxue Feng
1041Morrow G VenereSpain2025-05-21Printing Dimensions QUALIFIED71Ioni Bowcher
1042Maisha A ChuiSpain2025-06-14Commercial Press NEW24Xuxue Feng
1043Costa F DarakjyItaly2025-05-26Feltz Printing Service PROPOSAL45Amy Elsner
1044Izzy S VocelkaCanada2025-05-25Dorl, James J Esq NEW92Xuxue Feng
1045Costa E SergiGermany2025-05-27Chanay, Jeffrey A Esq NEW43Ivan Magalhaes
1046Smith T IturbideBrazil2025-06-15Chanay, Jeffrey A Esq UNQUALIFIED16Onyama Limba
1047Jefferson M TollnerAustralia2025-05-20Rousseaux, Michael Esq NEW21Ivan Magalhaes
1048Claire V SaylorsArgentina2025-06-02Feiner Bros RENEWAL9Asiya Javayant
1049Mujtaba A PoquetteBrazil2025-05-30Morlong Associates UNQUALIFIED25Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Greenwood L OstroskyItalyIvan Magalhaes QUALIFIED
Julie K FollerIndiaIvan Magalhaes NEW
Juan K KuskoAustraliaIvan Magalhaes PROPOSAL
Leon Y KolmetzArgentinaIoni Bowcher QUALIFIED
Aruna D FerenczCanadaXuxue Feng RENEWAL
Silvio O StensethJapanElwin Sharvill UNQUALIFIED
Tony O ChuiUnited KingdomOnyama Limba RENEWAL
Leja N WhobreyBrazilOnyama Limba UNQUALIFIED
James S VocelkaJapanOnyama Limba NEW
Murillo N RulapaughSpainBernardo Dominic RENEWAL
Aika I FigeroaRussiaStephen Shaw NEW
Jefferson H BowleyGermanyOnyama Limba NEGOTIATION
James A SergiUnited KingdomAsiya Javayant NEGOTIATION
Aika Y VocelkaSpainStephen Shaw UNQUALIFIED
Alejandro K SaylorsRussiaXuxue Feng NEW
Aika S KuskoFranceAnna Fali RENEWAL
Wickens F WhobreyAustraliaStephen Shaw UNQUALIFIED
Ivar U NestleJapanStephen Shaw RENEWAL
Francesco D NickaItalyStephen Shaw PROPOSAL
Jefferson D MaletBrazilStephen Shaw NEW
Arvin T MaletArgentinaBernardo Dominic UNQUALIFIED
Clifford B CaudyArgentinaOnyama Limba UNQUALIFIED
Isabel Q FigeroaRussiaAnna Fali PROPOSAL
Ashley Y AlbaresItalyXuxue Feng RENEWAL
Octavia Y KuskoFranceIvan Magalhaes PROPOSAL
Costa W WhobreyGermanyIvan Magalhaes UNQUALIFIED
Jefferson O ButtArgentinaXuxue Feng NEW
Smith X TollnerJapanStephen Shaw UNQUALIFIED
Maria Z BriddickItalyIvan Magalhaes PROPOSAL
Murillo J GlickIndiaIoni Bowcher RENEWAL
Kadeem U BriddickCanadaElwin Sharvill RENEWAL
Leja G CaudyAustraliaAmy Elsner QUALIFIED
Aruna J GarufiJapanElwin Sharvill QUALIFIED
Stacey L KolmetzJapanBernardo Dominic NEW
Leja N KolmetzGermanyIvan Magalhaes QUALIFIED
Antonio Z CaudyArgentinaAnna Fali NEGOTIATION
Mujtaba U FollerArgentinaIoni Bowcher UNQUALIFIED
Maria G ButtUnited KingdomXuxue Feng NEGOTIATION
Kaitlin K OstroskySpainIoni Bowcher NEGOTIATION
Greenwood B GauchoFranceOnyama Limba UNQUALIFIED
Leon G IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin F RulapaughIndiaElwin Sharvill UNQUALIFIED
Mujtaba S ChuiArgentinaAnna Fali PROPOSAL
Stacey Q KolmetzAustraliaStephen Shaw NEGOTIATION
Rodrigues G MacleadAustraliaIoni Bowcher PROPOSAL
Rodrigues Q MorascaBrazilIoni Bowcher UNQUALIFIED
Nicolas V WaycottArgentinaIvan Magalhaes QUALIFIED
Costa H RutaRussiaAsiya Javayant QUALIFIED
Leja M GarufiItalyIoni Bowcher UNQUALIFIED
Rodrigues X StensethArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Ivar O Whobrey
Maisha A Figeroa
Greenwood D Shinko
Izzy Y Sergi
Izzy F Nicka
James P Tollner
Ivar H Slusarski
Leja Q Rulapaugh
Stacey M Caldarera
Francesco Y Glick
Johnson E Sergi
Greenwood K Darakjy
Leja V Tollner
Murillo B Caldarera
Alejandro S Kolmetz
Adams R Chui
Francesco M Rim
Misaki M Kolmetz
Jennifer K Figeroa
Leja L Royster
Mujtaba O Perin
Munro J Sergi
Costa Z Rulapaugh
Alejandro L Whobrey
Morrow Y Marrier
Wickens F Slusarski
Rodrigues Z Shinko
Johnson J Perin
Leja P Paprocki
James Z Albares
Julie R Garufi
Claire Z Nestle
Wickens J Stenseth
Juan X Stenseth
Octavia V Glick
Jeanfrancois E Ferencz
Misaki D Figeroa
Munro X Tollner
Kaitlin U Perin
Juan V Marrier
James K Caudy
Aika J Glick
Kaitlin O Morasca
Silvio U Whobrey
David M Ruta
Maria X Royster
Isabel Q Chui
Deepesh Q Venere
Maria K Kusko
Costa J Stenseth
IdCountryDate
1000Japan2025-06-15
1001Germany2025-06-02
1002Canada2025-06-05
1003India2025-05-21
1004Brazil2025-05-25
1005United Kingdom2025-05-19
1006Brazil2025-06-16
1007United Kingdom2025-05-31
1008India2025-05-18
1009Brazil2025-06-12
1010Japan2025-06-04
1011Australia2025-05-30
1012Italy2025-06-12
1013France2025-05-26
1014Australia2025-05-21
1015Russia2025-06-05
1016Canada2025-06-04
1017Argentina2025-06-09
1018Japan2025-05-31
1019Brazil2025-05-30
1020Russia2025-06-06
1021Canada2025-06-04
1022United Kingdom2025-05-27
1023Canada2025-05-29
1024Japan2025-06-04
1025Canada2025-05-29
1026India2025-05-22
1027France2025-05-24
1028Brazil2025-05-21
1029Brazil2025-06-16
1030Spain2025-06-01
1031Argentina2025-06-01
1032Germany2025-05-25
1033Australia2025-06-02
1034France2025-06-07
1035India2025-05-27
1036Brazil2025-05-30
1037Canada2025-05-25
1038Russia2025-05-24
1039Germany2025-05-31
1040Russia2025-05-23
1041Japan2025-05-21
1042Spain2025-05-19
1043Brazil2025-06-03
1044Italy2025-06-11
1045Canada2025-05-24
1046Russia2025-05-27
1047Italy2025-06-10
1048India2025-05-23
1049Australia2025-06-01

On-Demand Data

NameIdCountryDate
Morrow A Malet1000Spain2025-06-10
Aika U Poquette1001Spain2025-05-25
Octavia K Caudy1002India2025-06-04
Claire X Sergi1003Brazil2025-06-12
Claire S Glick1004Germany2025-05-22
Arvin E Briddick1005Japan2025-06-09
Tony H Albares1006Germany2025-06-02
Morrow K Marrier1007Brazil2025-06-11
Smith G Saylors1008Italy2025-06-01
Leon V Doe1009Russia2025-05-20
Octavia Z Schemmer1010Brazil2025-06-10
Maisha P Kusko1011Australia2025-05-25
Silvio D Poquette1012India2025-06-04
Julie J Ostrosky1013Italy2025-06-03
Juan Y Shinko1014Russia2025-06-05
Morrow B Perin1015Germany2025-06-14
Nicolas Z Saylors1016Australia2025-06-02
Kaitlin I Vocelka1017Russia2025-05-21
Leja V Gillian1018India2025-06-06
Greenwood S Amigon1019Brazil2025-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens L GlickRussiaAmy Elsner NEGOTIATION
Greenwood M CaudyFranceAsiya Javayant NEGOTIATION
Jones D BowleyJapanOnyama Limba PROPOSAL
Johnson Y RoysterSpainIoni Bowcher QUALIFIED
Julie A ShinkoIndiaIvan Magalhaes NEW
Misaki W FerenczItalyAnna Fali QUALIFIED
Greenwood Q OstroskyCanadaAsiya Javayant UNQUALIFIED
Claire U AmigonBrazilOnyama Limba NEW
Deepesh P VocelkaIndiaXuxue Feng NEW
Clifford I CampainFranceIoni Bowcher NEGOTIATION
Costa S PoquetteRussiaAnna Fali QUALIFIED
Aruna Q PerinBrazilOnyama Limba RENEWAL
Silvio W OldroydFranceStephen Shaw RENEWAL
Stacey C AlbaresJapanIoni Bowcher QUALIFIED
Octavia Y FerenczIndiaOnyama Limba NEGOTIATION
James B ChuiJapanAsiya Javayant NEGOTIATION
Julie H PerinGermanyAmy Elsner QUALIFIED
Isabel V RoysterCanadaAsiya Javayant QUALIFIED
Maria H DarakjyJapanAmy Elsner UNQUALIFIED
Jeanfrancois J ShinkoIndiaAnna Fali QUALIFIED
Stacey L AmigonBrazilAnna Fali RENEWAL
Mayumi G CaldareraSpainIvan Magalhaes RENEWAL
Aruna W WaycottArgentinaAnna Fali PROPOSAL
Leja D ButtIndiaAnna Fali QUALIFIED
Sinclair L NestleItalyElwin Sharvill UNQUALIFIED
Jefferson C KuskoFranceIvan Magalhaes PROPOSAL
Antonio P RimItalyBernardo Dominic NEW
Claire Y ChuiJapanAnna Fali PROPOSAL
Arvin O NestleIndiaXuxue Feng NEGOTIATION
Chavez G WieserArgentinaIoni Bowcher PROPOSAL
Antonio A KuskoUnited KingdomStephen Shaw NEGOTIATION
Smith W PerinRussiaAnna Fali PROPOSAL
Mayumi U ShinkoUnited KingdomAmy Elsner PROPOSAL
Antonio N KuskoFranceAsiya Javayant PROPOSAL
Costa W StockhamCanadaOnyama Limba NEGOTIATION
Tony N AmigonArgentinaStephen Shaw UNQUALIFIED
Leon M RulapaughJapanStephen Shaw RENEWAL
Maria F WhobreyGermanyAmy Elsner NEGOTIATION
Darci A BowleyCanadaAnna Fali NEGOTIATION
Wickens Y KolmetzFranceAsiya Javayant 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>