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
Faith E ChuiJapanBernardo Dominic QUALIFIED
Salvatore A WaycottArgentinaElwin Sharvill NEGOTIATION
Leja J ButtUnited KingdomStephen Shaw NEW
Kadeem H ShinkoItalyStephen Shaw UNQUALIFIED
Greenwood F RulapaughIndiaStephen Shaw UNQUALIFIED
David F BologniaCanadaOnyama Limba UNQUALIFIED
Tony Q VenereArgentinaXuxue Feng QUALIFIED
Darci J FigeroaAustraliaElwin Sharvill QUALIFIED
Clifford Y AlbaresCanadaOnyama Limba NEW
Kadeem U MaletJapanAnna Fali RENEWAL
Murillo E GarufiJapanOnyama Limba UNQUALIFIED
Tony Q MaletUnited KingdomStephen Shaw NEGOTIATION
Julie B RutaItalyAsiya Javayant NEW
Aika X GauchoItalyAsiya Javayant PROPOSAL
James Y ShinkoBrazilElwin Sharvill NEW
Sinclair M PoquetteJapanAnna Fali UNQUALIFIED
Izzy S SchemmerArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois E RimCanadaIvan Magalhaes UNQUALIFIED
Morrow F MaletUnited KingdomElwin Sharvill PROPOSAL
Sinclair F CaudyJapanBernardo Dominic UNQUALIFIED
Kadeem G GillianFranceElwin Sharvill UNQUALIFIED
Maria G GlickJapanAsiya Javayant NEW
Tony E BriddickGermanyAsiya Javayant PROPOSAL
Aditya T PerinUnited KingdomAsiya Javayant RENEWAL
Wickens J NickaGermanyAmy Elsner UNQUALIFIED
Aditya P PerinItalyBernardo Dominic PROPOSAL
Costa E RimGermanyOnyama Limba UNQUALIFIED
Chavez W DilliardItalyIvan Magalhaes NEGOTIATION
Octavia J MaletSpainBernardo Dominic RENEWAL
Aika X FlosiCanadaAsiya Javayant RENEWAL
Deepesh L NestleArgentinaStephen Shaw NEGOTIATION
Mayumi M SaylorsSpainXuxue Feng NEGOTIATION
Julie X BologniaRussiaXuxue Feng UNQUALIFIED
Morrow L AlbaresArgentinaOnyama Limba UNQUALIFIED
Octavia V TollnerJapanXuxue Feng QUALIFIED
Kaitlin E DoeBrazilStephen Shaw NEGOTIATION
Munro C OldroydSpainElwin Sharvill RENEWAL
Izzy F SaylorsGermanyAsiya Javayant NEW
Faith I PerinGermanyAsiya Javayant NEGOTIATION
Jones D VenereUnited KingdomElwin Sharvill PROPOSAL
Cody D MaletBrazilAsiya Javayant RENEWAL
Jeanfrancois D CaudyFranceElwin Sharvill NEW
Jefferson O WieserJapanAmy Elsner UNQUALIFIED
Jennifer K PaprockiSpainStephen Shaw NEGOTIATION
Munro W GlickBrazilXuxue Feng UNQUALIFIED
Kadeem A IturbideIndiaOnyama Limba QUALIFIED
Tony C NickaRussiaXuxue Feng PROPOSAL
Aditya D AlbaresIndiaAsiya Javayant PROPOSAL
Aditya B PerinCanadaAnna Fali QUALIFIED
Emily W ChuiArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood E VenereSpainElwin Sharvill RENEWAL
Johnson L StockhamAustraliaStephen Shaw RENEWAL
Ricardo M RoysterJapanAsiya Javayant NEGOTIATION
Sinclair G FerenczArgentinaAsiya Javayant QUALIFIED
Aruna J AlbaresItalyElwin Sharvill PROPOSAL
Jefferson C BowleyBrazilStephen Shaw UNQUALIFIED
Murillo B FerenczAustraliaAsiya Javayant RENEWAL
Leon S IturbideBrazilAsiya Javayant UNQUALIFIED
David S WaycottJapanOnyama Limba NEGOTIATION
Clifford P FerenczBrazilAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James X FigeroaUnited Kingdom2026-06-20Buckley Miller Wright PROPOSAL66Ioni Bowcher
1001Mayumi F MarrierCanada2026-06-19Buckley Miller Wright PROPOSAL80Asiya Javayant
1002Ashley Y SergiAustralia2026-06-12Rousseaux, Michael Esq UNQUALIFIED24Ioni Bowcher
1003Jeanfrancois C RoysterSpain2026-06-26Rangoni Of Florence UNQUALIFIED98Ioni Bowcher
1004Arvin W CampainBrazil2026-06-24Truhlar And Truhlar Attys NEGOTIATION46Asiya Javayant
1005Chavez Y NickaJapan2026-06-11Feiner Bros NEGOTIATION40Ivan Magalhaes
1006Leja R ButtItaly2026-06-20Chemel, James L Cpa QUALIFIED79Amy Elsner
1007Jennifer T StensethUnited Kingdom2026-06-18Rousseaux, Michael Esq PROPOSAL49Stephen Shaw
1008Isabel M FerenczItaly2026-06-16Commercial Press QUALIFIED41Ioni Bowcher
1009Izzy F AlbaresCanada2026-06-14Buckley Miller Wright RENEWAL12Elwin Sharvill
1010Leon G PoquetteCanada2026-06-21Rangoni Of Florence UNQUALIFIED95Stephen Shaw
1011Jones V DarakjyUnited Kingdom2026-06-03Chapman, Ross E Esq NEGOTIATION63Asiya Javayant
1012Aika N MaletGermany2026-06-24Feltz Printing Service NEGOTIATION30Bernardo Dominic
1013Johnson Q PoquetteFrance2026-06-04Benton, John B Jr RENEWAL43Asiya Javayant
1014Misaki Q SergiArgentina2026-06-29Buckley Miller Wright UNQUALIFIED24Elwin Sharvill
1015Kadeem U DarakjyAustralia2026-06-27Dorl, James J Esq UNQUALIFIED24Bernardo Dominic
1016Tony N GillianFrance2026-06-30Commercial Press QUALIFIED44Anna Fali
1017Silvio P NestleGermany2026-06-12Chanay, Jeffrey A Esq PROPOSAL92Ioni Bowcher
1018Murillo L WhobreyIndia2026-06-13King, Christopher A Esq NEGOTIATION53Anna Fali
1019Jefferson Z WieserRussia2026-06-23King, Christopher A Esq QUALIFIED74Asiya Javayant
1020James N CaldareraSpain2026-06-16Commercial Press PROPOSAL73Bernardo Dominic
1021David Y BologniaGermany2026-06-30Chapman, Ross E Esq NEW67Elwin Sharvill
1022Octavia A VocelkaSpain2026-06-14Rousseaux, Michael Esq RENEWAL17Bernardo Dominic
1023Jones D GarufiArgentina2026-06-17Feiner Bros NEW14Asiya Javayant
1024Tony P DoeJapan2026-06-26Printing Dimensions PROPOSAL23Elwin Sharvill
1025Sinclair E SchemmerBrazil2026-06-06Morlong Associates QUALIFIED71Elwin Sharvill
1026Tony K BologniaAustralia2026-06-08King, Christopher A Esq PROPOSAL70Ioni Bowcher
1027Nicolas J SaylorsGermany2026-06-06King, Christopher A Esq PROPOSAL2Xuxue Feng
1028Isabel G MorascaIndia2026-06-18Rangoni Of Florence NEW90Onyama Limba
1029Emily W KuskoIndia2026-06-25King, Christopher A Esq PROPOSAL59Ioni Bowcher
1030Arvin L DarakjyUnited Kingdom2026-06-15Chapman, Ross E Esq UNQUALIFIED41Elwin Sharvill
1031Alejandro T BowleyUnited Kingdom2026-06-24Printing Dimensions QUALIFIED54Stephen Shaw
1032Wickens W StensethRussia2026-06-29Rousseaux, Michael Esq UNQUALIFIED43Elwin Sharvill
1033Mayumi Q AlbaresBrazil2026-06-22Morlong Associates NEW57Amy Elsner
1034Aditya X MarrierBrazil2026-06-06Chanay, Jeffrey A Esq QUALIFIED53Elwin Sharvill
1035Aruna L GillianUnited Kingdom2026-06-28Buckley Miller Wright NEGOTIATION54Anna Fali
1036Faith N CaudyJapan2026-06-16Feltz Printing Service UNQUALIFIED57Ivan Magalhaes
1037David Z GlickIndia2026-06-21Dorl, James J Esq QUALIFIED45Ioni Bowcher
1038Wickens P GillianFrance2026-06-30Buckley Miller Wright NEGOTIATION80Amy Elsner
1039Alejandro E TollnerSpain2026-06-20Truhlar And Truhlar Attys NEW6Bernardo Dominic
1040Morrow M MorascaBrazil2026-06-03King, Christopher A Esq QUALIFIED35Bernardo Dominic
1041Johnson T ButtRussia2026-06-10Buckley Miller Wright QUALIFIED15Amy Elsner
1042Darci Y FigeroaAustralia2026-06-13Chemel, James L Cpa RENEWAL28Ivan Magalhaes
1043Adams O MorascaJapan2026-06-30Commercial Press RENEWAL35Anna Fali
1044Jefferson X FerenczUnited Kingdom2026-06-04Truhlar And Truhlar Attys QUALIFIED17Asiya Javayant
1045Juan W MaletGermany2026-06-03Buckley Miller Wright UNQUALIFIED40Elwin Sharvill
1046Smith O GlickGermany2026-06-13Chapman, Ross E Esq UNQUALIFIED4Bernardo Dominic
1047Ricardo M ButtArgentina2026-06-11Commercial Press NEW78Anna Fali
1048Isabel C CaldareraRussia2026-06-05Chanay, Jeffrey A Esq PROPOSAL21Bernardo Dominic
1049James Z BowleyFrance2026-06-12Benton, John B Jr NEW35Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Antonio E MaletAustraliaElwin Sharvill UNQUALIFIED
Isabel K BriddickItalyAnna Fali QUALIFIED
Octavia H FerenczArgentinaIoni Bowcher UNQUALIFIED
Rodrigues P RulapaughSpainAnna Fali UNQUALIFIED
Deepesh G VenereArgentinaElwin Sharvill NEGOTIATION
Salvatore J ChuiJapanXuxue Feng PROPOSAL
Emily Z SlusarskiSpainIoni Bowcher QUALIFIED
Darci J DarakjyGermanyAmy Elsner NEW
Smith B IturbideFranceIvan Magalhaes PROPOSAL
Leja D VenereRussiaXuxue Feng UNQUALIFIED
Alejandro V SchemmerBrazilElwin Sharvill RENEWAL
Clifford S SchemmerFranceBernardo Dominic UNQUALIFIED
Morrow E GlickBrazilAsiya Javayant PROPOSAL
Juan N BowleyArgentinaElwin Sharvill NEW
Arvin Q ButtUnited KingdomBernardo Dominic PROPOSAL
Deepesh H DilliardRussiaAmy Elsner NEW
Rodrigues Y DilliardGermanyIoni Bowcher QUALIFIED
Alejandro P RoysterGermanyAsiya Javayant NEGOTIATION
David E ButtSpainAnna Fali RENEWAL
Leja M DoeAustraliaBernardo Dominic PROPOSAL
Arvin D WieserArgentinaIvan Magalhaes RENEWAL
Cody B MorascaCanadaXuxue Feng QUALIFIED
Sinclair Q SchemmerIndiaElwin Sharvill NEW
Ashley R SlusarskiCanadaOnyama Limba UNQUALIFIED
Wickens I MarrierSpainBernardo Dominic RENEWAL
Aruna S SlusarskiFranceIvan Magalhaes NEW
Darci Y StensethUnited KingdomElwin Sharvill NEW
Rodrigues P WhobreyFranceAsiya Javayant NEW
Arvin Q KuskoAustraliaElwin Sharvill QUALIFIED
Deepesh M InouyeGermanyStephen Shaw RENEWAL
James Q RoysterItalyIoni Bowcher NEW
Rodrigues B MacleadUnited KingdomBernardo Dominic QUALIFIED
Sinclair E KuskoCanadaIvan Magalhaes UNQUALIFIED
Aditya X SaylorsArgentinaElwin Sharvill QUALIFIED
Juan U RulapaughJapanXuxue Feng RENEWAL
Johnson M PerinIndiaAmy Elsner PROPOSAL
Ricardo I MaletCanadaAsiya Javayant NEW
Rodrigues L RimFranceIoni Bowcher QUALIFIED
Costa F FigeroaRussiaIvan Magalhaes QUALIFIED
Arvin C VenereSpainStephen Shaw QUALIFIED
Aditya A InouyeItalyOnyama Limba NEW
Smith T VocelkaRussiaStephen Shaw NEGOTIATION
Kaitlin Z MaletBrazilOnyama Limba NEW
Claire R OldroydArgentinaAsiya Javayant RENEWAL
Maria A MaletFranceElwin Sharvill UNQUALIFIED
Sinclair I DilliardJapanIoni Bowcher QUALIFIED
Stacey N KuskoArgentinaXuxue Feng NEGOTIATION
Aditya C VenereSpainIvan Magalhaes RENEWAL
Mujtaba A CaldareraCanadaIvan Magalhaes QUALIFIED
Salvatore K RulapaughAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Rodrigues P Malet
Jones A Inouye
Jefferson D Malet
David L Marrier
Izzy C Stenseth
Wickens Q Albares
Murillo T Tollner
Nicolas S Wieser
Darci G Kolmetz
Misaki W Vocelka
Octavia W Waycott
Tony T Stockham
Octavia K Briddick
Ashley J Figeroa
Ashley R Malet
Kaitlin U Marrier
Faith B Rim
Juan I Ostrosky
Tony E Foller
Deepesh V Slusarski
Munro A Wieser
Stacey O Ruta
Silvio H Doe
Adams Z Albares
Clifford M Flosi
Kaitlin N Morasca
Claire G Bolognia
David D Garufi
Isabel K Nicka
Izzy K Rim
Jennifer M Inouye
Chavez M Stenseth
Kadeem U Paprocki
Jefferson V Caldarera
Deepesh E Shinko
James H Inouye
Deepesh R Stockham
Leja X Gillian
Jones C Amigon
Ivar I Caudy
Maisha F Ostrosky
Greenwood Z Waycott
Kadeem M Butt
Ricardo W Gillian
Kadeem F Caudy
Jeanfrancois H Butt
Aika X Iturbide
Jeanfrancois V Foller
Misaki C Iturbide
Clifford W Stockham
IdCountryDate
1000United Kingdom2026-06-07
1001Argentina2026-06-01
1002Australia2026-06-09
1003Argentina2026-06-25
1004Brazil2026-06-02
1005Spain2026-06-05
1006Japan2026-06-08
1007Spain2026-06-28
1008United Kingdom2026-06-25
1009Argentina2026-06-22
1010Russia2026-06-14
1011Russia2026-06-23
1012United Kingdom2026-06-18
1013Italy2026-06-13
1014India2026-06-08
1015Italy2026-06-06
1016Spain2026-06-04
1017Spain2026-06-06
1018Italy2026-06-09
1019Spain2026-06-02
1020Italy2026-06-20
1021Brazil2026-06-16
1022Brazil2026-06-05
1023Argentina2026-06-07
1024India2026-06-15
1025Japan2026-06-27
1026Argentina2026-06-11
1027Spain2026-06-23
1028Russia2026-06-08
1029Australia2026-06-11
1030Italy2026-06-23
1031France2026-06-30
1032Germany2026-06-26
1033Italy2026-06-02
1034United Kingdom2026-06-14
1035Canada2026-06-16
1036Canada2026-06-14
1037India2026-06-29
1038Argentina2026-06-15
1039India2026-06-19
1040Brazil2026-06-17
1041Germany2026-06-21
1042Brazil2026-06-04
1043Australia2026-06-06
1044Spain2026-06-15
1045United Kingdom2026-06-11
1046Argentina2026-06-16
1047Argentina2026-06-19
1048Spain2026-06-15
1049Canada2026-06-08

On-Demand Data

NameIdCountryDate
Silvio Y Malet1000Australia2026-06-20
Tony D Tollner1001Argentina2026-06-10
Leja R Poquette1002Spain2026-06-20
David L Foller1003United Kingdom2026-06-12
Johnson I Schemmer1004Australia2026-06-20
Jefferson Z Whobrey1005France2026-06-03
Deepesh C Chui1006Australia2026-06-26
Ricardo O Stockham1007Spain2026-06-20
Chavez P Waycott1008France2026-06-10
Aika T Caudy1009Japan2026-06-02
David L Stenseth1010Canada2026-06-10
James S Foller1011Russia2026-06-20
Leja O Garufi1012Russia2026-06-15
Aika I Stenseth1013Russia2026-06-25
Aruna D Paprocki1014Spain2026-06-17
Izzy T Foller1015Australia2026-06-12
Nicolas X Wieser1016Canada2026-06-05
Johnson C Gaucho1017Brazil2026-06-28
Francesco F Briddick1018Brazil2026-06-10
Mujtaba Z Butt1019India2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois J CampainBrazilIoni Bowcher NEW
David E RutaFranceXuxue Feng PROPOSAL
Ashley G OldroydGermanyAnna Fali QUALIFIED
Ivar E BriddickBrazilAsiya Javayant PROPOSAL
Johnson F DarakjyFranceAmy Elsner UNQUALIFIED
Clifford N WaycottArgentinaAmy Elsner PROPOSAL
Smith P OstroskyGermanyAsiya Javayant PROPOSAL
Greenwood N FollerAustraliaBernardo Dominic NEGOTIATION
Darci W BowleyBrazilAnna Fali QUALIFIED
Jeanfrancois L MaletCanadaOnyama Limba RENEWAL
Kadeem Z DoeBrazilElwin Sharvill RENEWAL
Jefferson I ShinkoJapanIoni Bowcher NEW
Nicolas K OldroydFranceAmy Elsner RENEWAL
David D IturbideGermanyElwin Sharvill UNQUALIFIED
Adams X FollerUnited KingdomXuxue Feng NEW
Deepesh V FigeroaGermanyElwin Sharvill RENEWAL
Jennifer S SaylorsCanadaStephen Shaw PROPOSAL
Chavez A PaprockiItalyIvan Magalhaes RENEWAL
Jones A GillianSpainAnna Fali PROPOSAL
Antonio D NickaItalyXuxue Feng NEGOTIATION
Cody J PoquetteRussiaStephen Shaw UNQUALIFIED
Stacey N AmigonSpainIvan Magalhaes RENEWAL
Kadeem Y WieserArgentinaAnna Fali QUALIFIED
Jones G WhobreyJapanAmy Elsner PROPOSAL
David Y CaudyBrazilAmy Elsner UNQUALIFIED
Smith H NestleJapanElwin Sharvill NEGOTIATION
Jones I VenereSpainIvan Magalhaes UNQUALIFIED
Francesco K PerinItalyAmy Elsner RENEWAL
Johnson O WaycottRussiaStephen Shaw NEW
Emily G GarufiRussiaStephen Shaw NEGOTIATION
Aditya C NickaJapanOnyama Limba UNQUALIFIED
Faith W RulapaughCanadaIvan Magalhaes NEGOTIATION
Stacey K DarakjySpainOnyama Limba QUALIFIED
Adams E MaletIndiaIoni Bowcher NEW
Silvio C ShinkoIndiaAnna Fali UNQUALIFIED
Francesco G FigeroaIndiaXuxue Feng QUALIFIED
Rodrigues R KuskoSpainBernardo Dominic QUALIFIED
Kadeem J StockhamArgentinaIvan Magalhaes RENEWAL
Mayumi H VocelkaAustraliaStephen Shaw NEGOTIATION
Chavez G RimArgentinaAnna Fali 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>