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
Emily G ChuiSpainAnna Fali QUALIFIED
Costa Z NestleBrazilIoni Bowcher NEGOTIATION
Munro Y RimBrazilOnyama Limba PROPOSAL
Salvatore A DoeUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois M MarrierJapanStephen Shaw RENEWAL
Claire S DarakjyRussiaBernardo Dominic UNQUALIFIED
Juan Y PoquetteGermanyBernardo Dominic PROPOSAL
Smith Q NestleRussiaAnna Fali NEGOTIATION
Juan C SlusarskiRussiaIoni Bowcher NEW
Antonio P SaylorsAustraliaXuxue Feng QUALIFIED
Leon T SchemmerRussiaStephen Shaw PROPOSAL
Darci X BowleyJapanAsiya Javayant PROPOSAL
Leon R FollerArgentinaIvan Magalhaes NEGOTIATION
Izzy U ChuiSpainXuxue Feng RENEWAL
Kaitlin C BologniaItalyElwin Sharvill NEGOTIATION
Mayumi U RoysterArgentinaAsiya Javayant NEW
Antonio D BriddickAustraliaBernardo Dominic QUALIFIED
David Q OldroydGermanyXuxue Feng UNQUALIFIED
Murillo P CaudyArgentinaStephen Shaw QUALIFIED
Silvio R MaletAustraliaAsiya Javayant NEGOTIATION
Sinclair L MorascaGermanyStephen Shaw QUALIFIED
Izzy Q ChuiGermanyBernardo Dominic NEGOTIATION
Jones Z PaprockiArgentinaAsiya Javayant PROPOSAL
Munro S StockhamRussiaStephen Shaw NEGOTIATION
Arvin S FlosiItalyStephen Shaw QUALIFIED
Isabel U GlickCanadaAmy Elsner PROPOSAL
Leon A RutaSpainBernardo Dominic NEGOTIATION
Stacey B FollerRussiaAnna Fali UNQUALIFIED
Maisha R InouyeArgentinaAnna Fali NEW
Clifford P GarufiArgentinaAnna Fali UNQUALIFIED
Sinclair D KuskoCanadaAsiya Javayant NEGOTIATION
Tony Z StensethJapanElwin Sharvill PROPOSAL
Emily Y RulapaughBrazilAnna Fali QUALIFIED
Deepesh Z GillianIndiaXuxue Feng QUALIFIED
Nicolas G RoysterRussiaOnyama Limba NEGOTIATION
Smith Y KolmetzAustraliaStephen Shaw NEW
Salvatore P SergiAustraliaIvan Magalhaes NEW
Darci M BologniaIndiaXuxue Feng NEGOTIATION
Claire B VenereIndiaIvan Magalhaes NEW
Aika O VocelkaArgentinaXuxue Feng RENEWAL
Wickens T DarakjySpainAnna Fali PROPOSAL
Johnson A AlbaresArgentinaXuxue Feng UNQUALIFIED
Aika S CaldareraBrazilBernardo Dominic NEW
Wickens E ShinkoArgentinaIvan Magalhaes QUALIFIED
Maisha Z NestleBrazilAsiya Javayant UNQUALIFIED
Leja T BowleySpainIvan Magalhaes UNQUALIFIED
James J BowleyGermanyXuxue Feng NEGOTIATION
Mujtaba X DilliardBrazilXuxue Feng NEGOTIATION
Clifford J SlusarskiIndiaElwin Sharvill QUALIFIED
Mayumi S NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily X BriddickArgentinaIoni Bowcher QUALIFIED
Johnson R AmigonSpainAmy Elsner QUALIFIED
Greenwood M RimSpainXuxue Feng NEGOTIATION
Greenwood A MaletIndiaElwin Sharvill PROPOSAL
Faith S RutaIndiaBernardo Dominic QUALIFIED
Emily N GlickGermanyAmy Elsner QUALIFIED
Maisha E AlbaresCanadaAnna Fali NEW
Mayumi D NickaGermanyBernardo Dominic PROPOSAL
Francesco Y CaldareraArgentinaAnna Fali NEW
Mujtaba E GillianJapanAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem X SaylorsIndia2026-07-25Benton, John B Jr NEGOTIATION21Stephen Shaw
1001Darci X SlusarskiItaly2026-07-22Benton, John B Jr RENEWAL48Elwin Sharvill
1002Isabel E AmigonBrazil2026-07-26Chemel, James L Cpa NEW47Elwin Sharvill
1003Clifford T DilliardUnited Kingdom2026-08-07Rousseaux, Michael Esq RENEWAL82Elwin Sharvill
1004Arvin I RutaArgentina2026-07-31Printing Dimensions RENEWAL89Stephen Shaw
1005Maisha U ButtItaly2026-08-15Printing Dimensions NEGOTIATION11Elwin Sharvill
1006Sinclair Z GillianItaly2026-07-25Truhlar And Truhlar Attys QUALIFIED9Elwin Sharvill
1007Aika V SchemmerIndia2026-08-14Printing Dimensions PROPOSAL0Xuxue Feng
1008Silvio J RulapaughCanada2026-08-06Buckley Miller Wright RENEWAL71Xuxue Feng
1009Silvio N OstroskyArgentina2026-08-10Morlong Associates NEW57Elwin Sharvill
1010Adams I RimArgentina2026-07-18Chapman, Ross E Esq UNQUALIFIED69Ioni Bowcher
1011Kaitlin I StockhamIndia2026-08-05King, Christopher A Esq RENEWAL11Stephen Shaw
1012Cody B RoysterCanada2026-07-26Feltz Printing Service PROPOSAL83Stephen Shaw
1013Cody X MaletSpain2026-08-14Chemel, James L Cpa PROPOSAL52Asiya Javayant
1014Isabel K StockhamArgentina2026-07-23Commercial Press QUALIFIED22Stephen Shaw
1015Sinclair M FerenczJapan2026-08-02Benton, John B Jr RENEWAL6Asiya Javayant
1016Julie I PerinAustralia2026-08-11Dorl, James J Esq NEW60Ioni Bowcher
1017Costa R StensethGermany2026-07-28Chapman, Ross E Esq NEGOTIATION18Ioni Bowcher
1018Isabel Z NickaAustralia2026-08-07Chapman, Ross E Esq UNQUALIFIED40Ivan Magalhaes
1019Murillo I SaylorsIndia2026-08-08Dorl, James J Esq QUALIFIED10Amy Elsner
1020James Z OldroydFrance2026-08-05King, Christopher A Esq NEW38Asiya Javayant
1021Aditya V GlickUnited Kingdom2026-08-01Feltz Printing Service UNQUALIFIED20Amy Elsner
1022Rodrigues L ShinkoSpain2026-07-21Chemel, James L Cpa PROPOSAL63Amy Elsner
1023Aditya R RutaJapan2026-08-10Commercial Press RENEWAL46Anna Fali
1024Costa U CaudyAustralia2026-08-10Rousseaux, Michael Esq NEW93Stephen Shaw
1025Francesco F RutaBrazil2026-08-08Morlong Associates RENEWAL2Asiya Javayant
1026Julie Z SlusarskiItaly2026-07-24Commercial Press PROPOSAL5Bernardo Dominic
1027Nicolas F FerenczCanada2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED86Bernardo Dominic
1028Murillo R RulapaughGermany2026-07-23Rangoni Of Florence NEW67Ivan Magalhaes
1029Izzy B StockhamUnited Kingdom2026-07-29Truhlar And Truhlar Attys UNQUALIFIED44Asiya Javayant
1030Murillo K DarakjyIndia2026-08-05Benton, John B Jr QUALIFIED24Amy Elsner
1031Jennifer E GarufiCanada2026-07-30Rousseaux, Michael Esq UNQUALIFIED84Asiya Javayant
1032Clifford N CaldareraBrazil2026-08-07Truhlar And Truhlar Attys NEW27Asiya Javayant
1033Jones E PoquetteIndia2026-07-21Benton, John B Jr NEW10Asiya Javayant
1034Antonio B NestleFrance2026-07-30Chapman, Ross E Esq NEGOTIATION79Ioni Bowcher
1035Cody V GlickUnited Kingdom2026-07-19Buckley Miller Wright RENEWAL69Amy Elsner
1036Jones Z StensethJapan2026-07-24Buckley Miller Wright NEGOTIATION46Elwin Sharvill
1037Darci U VenereItaly2026-07-20Buckley Miller Wright RENEWAL17Bernardo Dominic
1038Costa R DoeArgentina2026-08-16Rousseaux, Michael Esq NEW39Xuxue Feng
1039Misaki D AlbaresJapan2026-07-31Dorl, James J Esq UNQUALIFIED55Onyama Limba
1040Aditya S GauchoBrazil2026-07-23Feiner Bros QUALIFIED88Anna Fali
1041Nicolas S CaldareraItaly2026-08-16Feltz Printing Service UNQUALIFIED32Ivan Magalhaes
1042Ricardo V MorascaRussia2026-08-01Truhlar And Truhlar Attys RENEWAL56Ivan Magalhaes
1043Munro N KolmetzCanada2026-08-14Truhlar And Truhlar Attys QUALIFIED24Onyama Limba
1044Leja L OstroskyCanada2026-07-23Chanay, Jeffrey A Esq PROPOSAL18Xuxue Feng
1045Ashley Z MaletAustralia2026-08-14Feiner Bros NEGOTIATION28Stephen Shaw
1046Alejandro I InouyeFrance2026-07-23Printing Dimensions NEW97Asiya Javayant
1047Aruna A ButtIndia2026-08-11Buckley Miller Wright RENEWAL81Elwin Sharvill
1048Izzy T WaycottRussia2026-07-30Buckley Miller Wright NEGOTIATION37Xuxue Feng
1049Silvio X GauchoCanada2026-07-21Chapman, Ross E Esq NEGOTIATION67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Murillo Y VenereCanadaStephen Shaw UNQUALIFIED
Stacey N StensethItalyIvan Magalhaes RENEWAL
Murillo Y FlosiItalyStephen Shaw QUALIFIED
Maria N MorascaCanadaXuxue Feng RENEWAL
Silvio U WaycottArgentinaIvan Magalhaes RENEWAL
Octavia C MacleadJapanBernardo Dominic UNQUALIFIED
Deepesh M CaldareraGermanyOnyama Limba NEGOTIATION
Maria X GillianItalyOnyama Limba RENEWAL
Clifford T ButtItalyStephen Shaw PROPOSAL
Wickens V SergiFranceElwin Sharvill NEGOTIATION
Kadeem X RoysterItalyXuxue Feng RENEWAL
Johnson D OstroskyCanadaIoni Bowcher UNQUALIFIED
Wickens W AmigonIndiaStephen Shaw QUALIFIED
Antonio S ButtItalyBernardo Dominic NEW
Alejandro V GarufiSpainAsiya Javayant QUALIFIED
Octavia H ShinkoFranceOnyama Limba PROPOSAL
Jennifer P NestleJapanBernardo Dominic UNQUALIFIED
Rodrigues K RimUnited KingdomElwin Sharvill QUALIFIED
Julie Z SergiIndiaBernardo Dominic NEW
Ricardo H RimFranceBernardo Dominic NEW
Julie J PoquetteBrazilAnna Fali UNQUALIFIED
Maria P NickaIndiaBernardo Dominic RENEWAL
Greenwood Q MarrierBrazilAmy Elsner RENEWAL
Nicolas S RoysterCanadaElwin Sharvill UNQUALIFIED
Darci U DarakjyBrazilIoni Bowcher NEW
Stacey R BriddickItalyOnyama Limba PROPOSAL
Leja M RoysterBrazilAnna Fali NEW
Rodrigues X DarakjyFranceIoni Bowcher QUALIFIED
Murillo L ChuiCanadaXuxue Feng PROPOSAL
Tony J OldroydBrazilAnna Fali PROPOSAL
Claire Q AlbaresGermanyXuxue Feng RENEWAL
Murillo Y SergiCanadaElwin Sharvill UNQUALIFIED
Rodrigues W KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Misaki H InouyeArgentinaStephen Shaw NEGOTIATION
Jones E NestleBrazilAnna Fali PROPOSAL
Costa S WhobreyFranceAmy Elsner PROPOSAL
Misaki O CampainFranceIvan Magalhaes PROPOSAL
Mujtaba X DilliardFranceIoni Bowcher NEGOTIATION
James T BriddickCanadaXuxue Feng NEGOTIATION
Greenwood O GlickBrazilAsiya Javayant NEGOTIATION
Maisha E InouyeUnited KingdomXuxue Feng UNQUALIFIED
Alejandro A DilliardBrazilIoni Bowcher PROPOSAL
Julie S RoysterUnited KingdomElwin Sharvill NEGOTIATION
Ricardo V ShinkoSpainIoni Bowcher QUALIFIED
Ashley C KolmetzCanadaElwin Sharvill PROPOSAL
Julie T FollerJapanBernardo Dominic RENEWAL
David J CampainCanadaXuxue Feng PROPOSAL
Juan O FigeroaGermanyIvan Magalhaes NEGOTIATION
Sinclair H CaldareraIndiaAmy Elsner PROPOSAL
Johnson B IturbideIndiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Nicolas X Kolmetz
Kaitlin S Rulapaugh
Costa C Gillian
Mujtaba X Poquette
Kaitlin Q Garufi
James L Wieser
Alejandro Q Bolognia
Morrow Q Oldroyd
Ashley C Malet
Ivar W Venere
Maisha P Waycott
Morrow S Flosi
Salvatore R Amigon
Alejandro I Briddick
Misaki R Whobrey
Misaki O Nicka
Nicolas R Oldroyd
Munro U Schemmer
Izzy C Bowley
Adams H Ostrosky
Aruna H Ostrosky
Wickens A Glick
Francesco H Malet
Silvio V Stenseth
Johnson J Albares
Leon X Inouye
Mayumi Y Gillian
Deepesh U Ferencz
David Y Albares
Julie I Briddick
Nicolas Q Stockham
Salvatore F Darakjy
Jefferson D Iturbide
Johnson O Amigon
Mujtaba D Figeroa
Leon P Garufi
Mujtaba O Maclead
Jefferson C Rim
Jefferson I Rulapaugh
Jennifer G Gaucho
Morrow X Gaucho
Chavez F Gaucho
Faith K Dilliard
Misaki W Caudy
Ivar U Poquette
Jones F Marrier
Isabel R Inouye
Silvio B Stenseth
Julie Z Waycott
Nicolas E Caldarera
IdCountryDate
1000Italy2026-07-22
1001Germany2026-08-03
1002Spain2026-07-22
1003Japan2026-08-08
1004Australia2026-08-15
1005Italy2026-08-10
1006Russia2026-08-09
1007Italy2026-07-19
1008India2026-07-26
1009Russia2026-08-13
1010Canada2026-07-24
1011Argentina2026-08-14
1012Brazil2026-07-24
1013India2026-07-23
1014India2026-07-20
1015Argentina2026-07-23
1016Germany2026-07-21
1017Japan2026-07-27
1018Japan2026-08-10
1019Spain2026-08-01
1020Italy2026-08-10
1021Germany2026-08-16
1022Russia2026-07-18
1023India2026-08-16
1024Italy2026-08-01
1025Brazil2026-08-05
1026United Kingdom2026-08-12
1027India2026-08-03
1028Argentina2026-07-26
1029Canada2026-08-11
1030Russia2026-07-19
1031India2026-07-19
1032Australia2026-08-07
1033Japan2026-08-07
1034India2026-07-22
1035Japan2026-08-01
1036Russia2026-07-21
1037France2026-07-23
1038Russia2026-08-05
1039Spain2026-07-29
1040Italy2026-08-02
1041France2026-08-05
1042Germany2026-07-20
1043Argentina2026-08-02
1044Russia2026-07-23
1045United Kingdom2026-08-04
1046France2026-08-16
1047Australia2026-07-18
1048Spain2026-08-04
1049Argentina2026-07-28

On-Demand Data

NameIdCountryDate
Clifford B Iturbide1000United Kingdom2026-08-12
Juan S Gillian1001Spain2026-07-30
Arvin S Poquette1002Italy2026-07-28
Murillo H Gillian1003Japan2026-08-15
Clifford W Sergi1004France2026-08-13
James T Stenseth1005Australia2026-07-27
Faith O Dilliard1006Argentina2026-08-10
Salvatore P Ostrosky1007India2026-08-12
Arvin N Schemmer1008Germany2026-07-18
Johnson L Venere1009Brazil2026-07-18
Morrow V Amigon1010Australia2026-08-01
Rodrigues F Tollner1011Italy2026-07-23
Darci S Venere1012Canada2026-08-16
Juan E Kolmetz1013Canada2026-08-02
Ivar N Whobrey1014Australia2026-08-03
Octavia Z Iturbide1015Japan2026-07-28
Jefferson L Gillian1016France2026-07-30
Ricardo W Caudy1017Argentina2026-07-22
Sinclair M Briddick1018India2026-08-06
Arvin G Paprocki1019Brazil2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin H ButtJapanAsiya Javayant NEGOTIATION
Deepesh U NickaArgentinaIvan Magalhaes NEGOTIATION
Aika G CampainAustraliaIvan Magalhaes RENEWAL
Aruna L BologniaItalyStephen Shaw NEGOTIATION
Chavez U NickaFranceIoni Bowcher NEGOTIATION
Mujtaba O FigeroaFranceOnyama Limba RENEWAL
Maria Y OstroskyCanadaAmy Elsner UNQUALIFIED
Aruna L VenereSpainAmy Elsner UNQUALIFIED
Kaitlin C CaudyArgentinaXuxue Feng NEGOTIATION
Cody L AmigonSpainAmy Elsner PROPOSAL
Jeanfrancois A GlickArgentinaXuxue Feng QUALIFIED
Chavez G CaudyArgentinaElwin Sharvill UNQUALIFIED
Ricardo D VocelkaCanadaAmy Elsner NEW
Tony S BologniaRussiaXuxue Feng QUALIFIED
Chavez E FigeroaFranceAnna Fali NEGOTIATION
Faith T GarufiUnited KingdomElwin Sharvill RENEWAL
Greenwood S MaletArgentinaElwin Sharvill NEW
Juan D RulapaughArgentinaAsiya Javayant QUALIFIED
Wickens Y RulapaughGermanyXuxue Feng NEW
Munro M MorascaIndiaIoni Bowcher UNQUALIFIED
Emily I PaprockiAustraliaAmy Elsner RENEWAL
Aika C GarufiCanadaStephen Shaw UNQUALIFIED
Nicolas E FlosiAustraliaIvan Magalhaes NEGOTIATION
Francesco N SaylorsBrazilIvan Magalhaes QUALIFIED
Mayumi A KolmetzCanadaXuxue Feng NEW
David J CaldareraBrazilElwin Sharvill NEW
Aika Z ShinkoFranceBernardo Dominic PROPOSAL
Francesco A NickaBrazilOnyama Limba UNQUALIFIED
David O ShinkoCanadaAsiya Javayant RENEWAL
Jefferson E CaldareraBrazilAnna Fali UNQUALIFIED
Arvin M NestleCanadaOnyama Limba PROPOSAL
Kadeem C MaletItalyAsiya Javayant PROPOSAL
Nicolas W PoquetteSpainIoni Bowcher NEGOTIATION
Francesco I FollerIndiaOnyama Limba NEGOTIATION
Leja N MacleadIndiaStephen Shaw PROPOSAL
Chavez U CampainJapanOnyama Limba NEW
Morrow A SergiFranceXuxue Feng QUALIFIED
Johnson E SergiBrazilStephen Shaw PROPOSAL
Antonio H ChuiCanadaXuxue Feng QUALIFIED
Sinclair Q RutaCanadaAsiya Javayant 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>