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
Leon Q GillianRussiaIoni Bowcher QUALIFIED
Jones W RutaItalyBernardo Dominic PROPOSAL
Kaitlin T GarufiGermanyBernardo Dominic RENEWAL
Kadeem P PerinGermanyAmy Elsner PROPOSAL
Smith U MarrierBrazilAsiya Javayant UNQUALIFIED
Salvatore X ButtJapanAsiya Javayant NEGOTIATION
Leon M PerinCanadaAmy Elsner QUALIFIED
Kaitlin T WaycottRussiaIoni Bowcher NEGOTIATION
Deepesh G RoysterJapanXuxue Feng UNQUALIFIED
Deepesh E WaycottRussiaAnna Fali RENEWAL
Mayumi F RoysterGermanyStephen Shaw QUALIFIED
Clifford P SlusarskiAustraliaIvan Magalhaes NEW
Nicolas K CampainJapanIvan Magalhaes UNQUALIFIED
Chavez U KolmetzIndiaAnna Fali NEGOTIATION
Sinclair U BologniaJapanXuxue Feng NEGOTIATION
Adams D InouyeJapanXuxue Feng NEW
Salvatore R DarakjyRussiaBernardo Dominic UNQUALIFIED
Chavez F ChuiItalyOnyama Limba NEW
Jeanfrancois G VocelkaFranceStephen Shaw NEGOTIATION
Arvin N StensethIndiaIoni Bowcher RENEWAL
Clifford U BowleyFranceAmy Elsner QUALIFIED
Jeanfrancois Z FerenczJapanXuxue Feng NEW
Johnson W StockhamSpainAmy Elsner QUALIFIED
Kadeem V SchemmerFranceAmy Elsner PROPOSAL
Claire I WieserIndiaIvan Magalhaes RENEWAL
Clifford H StensethArgentinaStephen Shaw PROPOSAL
Tony T VocelkaArgentinaAnna Fali NEW
Jefferson I IturbideUnited KingdomAnna Fali NEGOTIATION
Claire B SlusarskiItalyOnyama Limba QUALIFIED
Johnson C RoysterAustraliaIoni Bowcher RENEWAL
Rodrigues A FlosiCanadaAmy Elsner NEGOTIATION
Wickens K BowleyJapanBernardo Dominic UNQUALIFIED
Smith F CampainRussiaElwin Sharvill RENEWAL
Emily M WhobreyGermanyAnna Fali UNQUALIFIED
Clifford E OldroydItalyBernardo Dominic QUALIFIED
Leon P MorascaFranceBernardo Dominic NEW
Leon Y MorascaUnited KingdomAsiya Javayant NEW
Johnson C OstroskyAustraliaIoni Bowcher NEGOTIATION
Octavia R StockhamJapanAmy Elsner PROPOSAL
Deepesh A RoysterIndiaAmy Elsner PROPOSAL
Salvatore L WieserBrazilIvan Magalhaes UNQUALIFIED
Nicolas O GarufiRussiaBernardo Dominic UNQUALIFIED
James V WieserFranceOnyama Limba UNQUALIFIED
Faith Q FigeroaAustraliaXuxue Feng NEW
Smith I BologniaArgentinaElwin Sharvill NEW
Emily R MacleadGermanyBernardo Dominic QUALIFIED
Isabel X CampainCanadaOnyama Limba UNQUALIFIED
Leja P OstroskyFranceElwin Sharvill UNQUALIFIED
Silvio F ChuiBrazilAnna Fali RENEWAL
Jones W PerinRussiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Julie O GlickArgentinaAnna Fali NEGOTIATION
Leja Z WhobreyArgentinaAmy Elsner NEGOTIATION
Johnson N SlusarskiBrazilStephen Shaw PROPOSAL
Maria L BriddickArgentinaIvan Magalhaes RENEWAL
Wickens T OldroydBrazilAsiya Javayant UNQUALIFIED
Ivar Y VocelkaArgentinaAsiya Javayant RENEWAL
Stacey A ShinkoFranceAnna Fali RENEWAL
David E OldroydAustraliaIvan Magalhaes NEW
Aruna K StockhamRussiaBernardo Dominic PROPOSAL
Jefferson D MarrierFranceElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin X FollerIndia2026-06-24Dorl, James J Esq UNQUALIFIED74Onyama Limba
1001Kadeem I BriddickFrance2026-06-26Chanay, Jeffrey A Esq NEGOTIATION6Asiya Javayant
1002Nicolas K RulapaughIndia2026-06-26Dorl, James J Esq QUALIFIED28Stephen Shaw
1003David Y WhobreyArgentina2026-07-23King, Christopher A Esq RENEWAL46Onyama Limba
1004Ivar L MorascaAustralia2026-06-29Feltz Printing Service UNQUALIFIED61Xuxue Feng
1005Aditya U RulapaughAustralia2026-07-09Truhlar And Truhlar Attys QUALIFIED2Elwin Sharvill
1006Isabel L IturbideCanada2026-07-13Chapman, Ross E Esq UNQUALIFIED84Stephen Shaw
1007Jeanfrancois W OstroskyCanada2026-07-21Feltz Printing Service UNQUALIFIED32Ivan Magalhaes
1008Francesco N NickaArgentina2026-06-25Dorl, James J Esq NEW76Xuxue Feng
1009Salvatore A MarrierCanada2026-07-04Truhlar And Truhlar Attys UNQUALIFIED54Stephen Shaw
1010Alejandro L GarufiGermany2026-07-11Chanay, Jeffrey A Esq PROPOSAL31Elwin Sharvill
1011Izzy A VocelkaSpain2026-07-16Feltz Printing Service NEGOTIATION23Stephen Shaw
1012Jones O DilliardJapan2026-07-17Feiner Bros RENEWAL58Asiya Javayant
1013Wickens C InouyeSpain2026-07-01Feltz Printing Service UNQUALIFIED76Ioni Bowcher
1014David M WaycottCanada2026-06-28Rousseaux, Michael Esq QUALIFIED21Stephen Shaw
1015Chavez C DarakjyUnited Kingdom2026-06-27Rangoni Of Florence PROPOSAL46Asiya Javayant
1016Deepesh H FollerCanada2026-06-25Printing Dimensions NEW39Ioni Bowcher
1017Clifford J FlosiItaly2026-07-09King, Christopher A Esq UNQUALIFIED21Asiya Javayant
1018Nicolas Y CaldareraSpain2026-07-22Rangoni Of Florence NEGOTIATION11Bernardo Dominic
1019Greenwood Q InouyeIndia2026-07-23Printing Dimensions QUALIFIED85Stephen Shaw
1020Wickens S SlusarskiArgentina2026-07-19Chapman, Ross E Esq QUALIFIED75Bernardo Dominic
1021Salvatore R NestleAustralia2026-07-14Feiner Bros RENEWAL18Bernardo Dominic
1022Isabel C DoeFrance2026-07-14Rangoni Of Florence QUALIFIED43Ioni Bowcher
1023Tony V WaycottBrazil2026-06-27King, Christopher A Esq NEGOTIATION16Ioni Bowcher
1024Ivar C OldroydAustralia2026-07-06Truhlar And Truhlar Attys PROPOSAL26Anna Fali
1025Sinclair Q DoeGermany2026-07-05Rousseaux, Michael Esq RENEWAL94Amy Elsner
1026Murillo Y OstroskyGermany2026-07-21Chapman, Ross E Esq NEW33Stephen Shaw
1027Francesco Z ShinkoIndia2026-06-26Commercial Press RENEWAL17Elwin Sharvill
1028Ricardo T ShinkoJapan2026-07-17Chemel, James L Cpa NEGOTIATION22Onyama Limba
1029Clifford W ButtCanada2026-07-08Buckley Miller Wright QUALIFIED67Xuxue Feng
1030Wickens D RimFrance2026-07-15Feltz Printing Service NEGOTIATION1Anna Fali
1031Kadeem T OstroskyJapan2026-07-07Chemel, James L Cpa NEW16Anna Fali
1032Jefferson P MaletCanada2026-07-15Rangoni Of Florence UNQUALIFIED8Stephen Shaw
1033Tony L BowleyUnited Kingdom2026-06-26Chanay, Jeffrey A Esq NEW29Onyama Limba
1034Isabel D RutaBrazil2026-07-10Truhlar And Truhlar Attys NEGOTIATION90Amy Elsner
1035Murillo A IturbideFrance2026-07-22Commercial Press NEW79Elwin Sharvill
1036Maria W StensethJapan2026-07-22Truhlar And Truhlar Attys QUALIFIED34Bernardo Dominic
1037Francesco V VenereBrazil2026-07-01Chapman, Ross E Esq QUALIFIED48Xuxue Feng
1038Aruna E ShinkoGermany2026-07-19Benton, John B Jr QUALIFIED39Ivan Magalhaes
1039Maisha D WaycottArgentina2026-07-20Morlong Associates PROPOSAL19Xuxue Feng
1040Ricardo Y BriddickAustralia2026-07-23Chapman, Ross E Esq NEGOTIATION71Elwin Sharvill
1041Ricardo B BowleyIndia2026-07-20Morlong Associates NEGOTIATION35Ioni Bowcher
1042Stacey O DilliardFrance2026-07-18Feiner Bros NEGOTIATION96Ivan Magalhaes
1043Smith A MorascaBrazil2026-07-17Feiner Bros NEW22Xuxue Feng
1044Claire B SchemmerUnited Kingdom2026-07-08Commercial Press NEGOTIATION5Elwin Sharvill
1045Maisha K VocelkaIndia2026-07-21Truhlar And Truhlar Attys NEW25Elwin Sharvill
1046Sinclair H GauchoCanada2026-06-28Chapman, Ross E Esq QUALIFIED39Asiya Javayant
1047Emily O WhobreyItaly2026-06-26Chanay, Jeffrey A Esq QUALIFIED20Elwin Sharvill
1048Leja F GauchoCanada2026-07-17Morlong Associates QUALIFIED23Onyama Limba
1049Jefferson G RoysterGermany2026-07-14Commercial Press UNQUALIFIED88Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Misaki W IturbideGermanyIoni Bowcher RENEWAL
Antonio O WieserAustraliaAmy Elsner RENEWAL
Leon G ChuiItalyIoni Bowcher NEW
Morrow V CaldareraFranceIvan Magalhaes QUALIFIED
James W RulapaughUnited KingdomAmy Elsner UNQUALIFIED
Wickens H AlbaresCanadaElwin Sharvill QUALIFIED
Adams Q SlusarskiFranceElwin Sharvill UNQUALIFIED
Jennifer Z FlosiAustraliaIoni Bowcher UNQUALIFIED
Chavez U BowleyBrazilIoni Bowcher PROPOSAL
Kaitlin J MacleadJapanElwin Sharvill RENEWAL
Morrow A BowleyRussiaAnna Fali RENEWAL
Faith E FerenczFranceIoni Bowcher NEW
Costa Q StensethRussiaAmy Elsner NEGOTIATION
Maisha X OstroskyGermanyXuxue Feng QUALIFIED
Isabel A OstroskyCanadaBernardo Dominic RENEWAL
Smith C NestleAustraliaBernardo Dominic PROPOSAL
David L MaletAustraliaOnyama Limba UNQUALIFIED
Adams E IturbideRussiaAnna Fali QUALIFIED
Isabel U BriddickGermanyElwin Sharvill QUALIFIED
Aditya L PaprockiGermanyIvan Magalhaes PROPOSAL
Rodrigues L FlosiRussiaStephen Shaw NEW
Leon M WieserIndiaBernardo Dominic RENEWAL
Arvin N FigeroaArgentinaStephen Shaw RENEWAL
Ivar F GarufiArgentinaElwin Sharvill RENEWAL
Mayumi T BriddickSpainOnyama Limba PROPOSAL
Kadeem N ButtBrazilXuxue Feng UNQUALIFIED
Deepesh X PaprockiGermanyAnna Fali RENEWAL
Ashley U OldroydJapanIoni Bowcher PROPOSAL
Maisha O PerinJapanAnna Fali NEGOTIATION
Leja O VenereJapanIoni Bowcher QUALIFIED
Maisha K DilliardJapanStephen Shaw RENEWAL
Maisha F TollnerBrazilOnyama Limba QUALIFIED
Aditya Y PoquetteFranceElwin Sharvill QUALIFIED
Cody R GarufiUnited KingdomAmy Elsner UNQUALIFIED
Jefferson G FigeroaRussiaOnyama Limba NEGOTIATION
Leja Q DoeUnited KingdomStephen Shaw NEGOTIATION
Cody J NestleSpainAnna Fali QUALIFIED
Deepesh Y InouyeRussiaBernardo Dominic UNQUALIFIED
Mujtaba F IturbideAustraliaIoni Bowcher RENEWAL
Murillo S BriddickBrazilAmy Elsner RENEWAL
Adams Z CampainGermanyAsiya Javayant UNQUALIFIED
Tony O MaletBrazilElwin Sharvill RENEWAL
Aruna M OldroydGermanyBernardo Dominic NEW
Mujtaba M StensethIndiaStephen Shaw PROPOSAL
Maisha P GarufiArgentinaIvan Magalhaes NEGOTIATION
Claire P RoysterRussiaIoni Bowcher QUALIFIED
David I AlbaresFranceBernardo Dominic RENEWAL
Maria H MaletFranceOnyama Limba NEGOTIATION
Maisha O VocelkaArgentinaXuxue Feng NEGOTIATION
Antonio Z RutaItalyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Alejandro S Foller
Leja H Dilliard
Munro A Maclead
Maisha M Morasca
Alejandro K Doe
Aruna M Caudy
Munro X Gillian
Johnson H Venere
Jefferson Z Flosi
Clifford S Malet
Salvatore M Nestle
Murillo H Ostrosky
Misaki P Bolognia
Isabel G Ruta
James I Caldarera
Mayumi M Ostrosky
Antonio E Kusko
Julie G Campain
Claire J Oldroyd
Ivar V Chui
Nicolas Z Glick
James J Bowley
Kadeem P Stenseth
Jennifer V Wieser
Maisha X Oldroyd
Misaki Y Gillian
Aruna Z Bolognia
Misaki J Ferencz
Francesco U Whobrey
Faith Z Doe
Smith U Oldroyd
James T Rulapaugh
Izzy K Campain
Chavez W Marrier
Kadeem H Malet
Clifford J Malet
Izzy O Briddick
Jones N Doe
Stacey X Whobrey
Aruna B Marrier
Cody H Venere
Rodrigues C Nicka
Leon I Rim
Maria A Butt
Antonio G Inouye
Greenwood K Dilliard
Aditya P Figeroa
Maria Z Rulapaugh
Octavia F Slusarski
James X Inouye
IdCountryDate
1000Australia2026-07-01
1001Germany2026-07-22
1002Argentina2026-06-24
1003Russia2026-07-17
1004Argentina2026-07-07
1005India2026-07-14
1006Germany2026-07-16
1007India2026-06-24
1008Russia2026-07-17
1009France2026-07-07
1010United Kingdom2026-06-28
1011Australia2026-07-17
1012India2026-07-21
1013Germany2026-06-29
1014Brazil2026-07-12
1015Brazil2026-07-22
1016Germany2026-07-07
1017United Kingdom2026-06-26
1018Russia2026-07-02
1019Canada2026-06-25
1020Spain2026-07-17
1021Italy2026-07-07
1022United Kingdom2026-07-10
1023India2026-06-27
1024Japan2026-07-12
1025Argentina2026-07-17
1026India2026-07-12
1027United Kingdom2026-06-29
1028India2026-07-22
1029India2026-07-22
1030Germany2026-06-29
1031Italy2026-07-11
1032Australia2026-07-11
1033Brazil2026-07-09
1034Russia2026-07-15
1035Australia2026-07-05
1036Russia2026-07-19
1037Argentina2026-07-18
1038Australia2026-07-19
1039Russia2026-06-24
1040Canada2026-07-15
1041Argentina2026-06-29
1042Canada2026-06-24
1043United Kingdom2026-07-06
1044India2026-07-14
1045Spain2026-07-22
1046Italy2026-07-10
1047Canada2026-07-15
1048United Kingdom2026-07-14
1049France2026-06-24

On-Demand Data

NameIdCountryDate
Kadeem C Marrier1000Italy2026-07-18
Kaitlin M Butt1001Italy2026-07-10
David J Chui1002Brazil2026-07-08
Murillo W Ostrosky1003Russia2026-07-15
Jones V Butt1004Australia2026-07-08
Jennifer Y Inouye1005Japan2026-07-23
Jennifer I Slusarski1006Italy2026-07-15
Leon P Iturbide1007Spain2026-07-05
Mujtaba O Albares1008Canada2026-07-11
Ashley Q Paprocki1009Italy2026-07-02
Jones X Nestle1010Argentina2026-06-27
David M Wieser1011France2026-06-24
Francesco R Tollner1012Canada2026-07-06
Jennifer W Ostrosky1013Italy2026-07-04
Emily D Dilliard1014India2026-06-30
Ashley Q Oldroyd1015Spain2026-06-27
Chavez H Butt1016Spain2026-07-02
Octavia U Stenseth1017Canada2026-07-06
Leon W Tollner1018Canada2026-06-29
Emily P Morasca1019India2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco T SlusarskiArgentinaBernardo Dominic NEW
Munro Q DarakjySpainIvan Magalhaes UNQUALIFIED
Kadeem C ButtGermanyAnna Fali NEGOTIATION
Juan F GillianGermanyAnna Fali NEW
Darci U KolmetzItalyOnyama Limba UNQUALIFIED
Juan N DilliardGermanyIoni Bowcher PROPOSAL
Darci E WieserBrazilBernardo Dominic PROPOSAL
Ivar J ShinkoJapanOnyama Limba UNQUALIFIED
Mujtaba B TollnerArgentinaAsiya Javayant RENEWAL
Ricardo Q SchemmerSpainIoni Bowcher RENEWAL
Stacey I RoysterAustraliaElwin Sharvill PROPOSAL
Jefferson P MacleadUnited KingdomAnna Fali NEW
Jeanfrancois G DilliardBrazilStephen Shaw NEGOTIATION
James K IturbideAustraliaAmy Elsner QUALIFIED
Alejandro O GarufiArgentinaXuxue Feng PROPOSAL
Johnson R PoquetteBrazilBernardo Dominic UNQUALIFIED
Aika Z SaylorsCanadaStephen Shaw NEGOTIATION
Julie R RimRussiaOnyama Limba QUALIFIED
Aruna Q FollerUnited KingdomAnna Fali NEW
Jefferson C SergiCanadaOnyama Limba RENEWAL
Rodrigues X NestleItalyStephen Shaw NEW
Ashley I MorascaJapanBernardo Dominic PROPOSAL
Costa B TollnerRussiaAmy Elsner NEGOTIATION
Mayumi N ChuiGermanyOnyama Limba RENEWAL
Silvio Q AlbaresSpainIvan Magalhaes QUALIFIED
Maria H FerenczRussiaOnyama Limba PROPOSAL
Alejandro M MaletSpainStephen Shaw RENEWAL
Izzy R SaylorsCanadaBernardo Dominic PROPOSAL
Tony K NestleIndiaStephen Shaw NEGOTIATION
Rodrigues I RimIndiaAmy Elsner RENEWAL
Claire S RulapaughCanadaXuxue Feng NEW
Aditya O TollnerItalyAsiya Javayant PROPOSAL
James G VenereSpainElwin Sharvill NEW
Jefferson B RoysterFranceOnyama Limba NEGOTIATION
Munro J InouyeIndiaElwin Sharvill RENEWAL
Octavia B DarakjyBrazilBernardo Dominic RENEWAL
Claire V DarakjyBrazilStephen Shaw NEW
Johnson D CaldareraSpainStephen Shaw UNQUALIFIED
Maria L WhobreySpainAsiya Javayant RENEWAL
Silvio L GarufiItalyStephen Shaw RENEWAL

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