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
Clifford A SlusarskiSpainElwin Sharvill UNQUALIFIED
Izzy V MaletItalyAmy Elsner QUALIFIED
Ricardo K NestleAustraliaStephen Shaw PROPOSAL
Greenwood E RoysterUnited KingdomAnna Fali UNQUALIFIED
Leja B RulapaughSpainStephen Shaw PROPOSAL
Ashley P VenereIndiaAsiya Javayant PROPOSAL
Johnson T OstroskyUnited KingdomAmy Elsner NEW
Deepesh E NestleArgentinaBernardo Dominic UNQUALIFIED
Emily L RimRussiaAmy Elsner PROPOSAL
Juan E MaletFranceStephen Shaw NEGOTIATION
Faith Q SlusarskiAustraliaOnyama Limba UNQUALIFIED
David X NestleItalyXuxue Feng NEGOTIATION
Ricardo P DoeGermanyIoni Bowcher PROPOSAL
Cody S FollerUnited KingdomAsiya Javayant NEGOTIATION
Stacey A PoquetteRussiaBernardo Dominic QUALIFIED
Julie H OstroskyItalyAsiya Javayant RENEWAL
Alejandro B PaprockiArgentinaBernardo Dominic UNQUALIFIED
Smith F PaprockiRussiaXuxue Feng UNQUALIFIED
Isabel G BologniaSpainBernardo Dominic QUALIFIED
Kaitlin C ButtBrazilAmy Elsner RENEWAL
Nicolas Q BologniaGermanyElwin Sharvill NEGOTIATION
Ashley C MorascaJapanXuxue Feng QUALIFIED
Aika Q MorascaFranceAnna Fali QUALIFIED
Rodrigues T FerenczBrazilAnna Fali NEGOTIATION
Rodrigues V FerenczGermanyBernardo Dominic QUALIFIED
Aika L CaudyRussiaIvan Magalhaes NEW
Alejandro H ButtBrazilOnyama Limba PROPOSAL
Smith Y FerenczCanadaAmy Elsner NEGOTIATION
Wickens K RimAustraliaAsiya Javayant RENEWAL
Darci Y StensethSpainElwin Sharvill QUALIFIED
Maria U MaletIndiaStephen Shaw NEW
Costa K PerinCanadaAmy Elsner NEGOTIATION
Salvatore L RimIndiaIvan Magalhaes NEW
Claire U OstroskyRussiaElwin Sharvill UNQUALIFIED
Sinclair T AlbaresBrazilBernardo Dominic NEW
Misaki S MacleadBrazilBernardo Dominic UNQUALIFIED
Maria X MaletArgentinaAmy Elsner PROPOSAL
Faith S BriddickGermanyStephen Shaw RENEWAL
Misaki W TollnerCanadaStephen Shaw PROPOSAL
Alejandro R DoeGermanyOnyama Limba NEW
Juan J GauchoBrazilAmy Elsner PROPOSAL
Juan Y PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Aika N SaylorsFranceIoni Bowcher NEGOTIATION
Jeanfrancois H SchemmerJapanIvan Magalhaes UNQUALIFIED
Adams Z KuskoArgentinaAsiya Javayant RENEWAL
Mujtaba Q BriddickBrazilBernardo Dominic NEGOTIATION
Deepesh I NestleItalyStephen Shaw RENEWAL
Smith M StensethJapanAmy Elsner PROPOSAL
Nicolas P CaudyIndiaXuxue Feng NEGOTIATION
Francesco C VocelkaBrazilAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya X GlickSpainStephen Shaw NEGOTIATION
Maria C DoeFranceAmy Elsner NEW
Jefferson Q BologniaBrazilXuxue Feng QUALIFIED
Antonio X StensethIndiaAnna Fali RENEWAL
Ricardo Y MarrierUnited KingdomElwin Sharvill PROPOSAL
Izzy V SlusarskiCanadaBernardo Dominic RENEWAL
Jeanfrancois L CampainAustraliaIvan Magalhaes PROPOSAL
James G RoysterArgentinaAsiya Javayant UNQUALIFIED
Wickens V BologniaRussiaIoni Bowcher PROPOSAL
Morrow W PerinSpainElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody N WaycottJapan2026-07-31Rousseaux, Michael Esq PROPOSAL69Ioni Bowcher
1001Maria A WaycottBrazil2026-08-09King, Christopher A Esq RENEWAL65Ivan Magalhaes
1002Julie Q MorascaAustralia2026-08-18Printing Dimensions PROPOSAL75Stephen Shaw
1003Julie L VocelkaFrance2026-07-24Feiner Bros UNQUALIFIED10Stephen Shaw
1004Aika F PerinItaly2026-07-26Chapman, Ross E Esq UNQUALIFIED13Bernardo Dominic
1005Cody S DarakjyAustralia2026-08-10Chapman, Ross E Esq NEW57Ivan Magalhaes
1006Jones X AmigonCanada2026-08-19King, Christopher A Esq NEGOTIATION99Stephen Shaw
1007Silvio X InouyeArgentina2026-07-26Feiner Bros PROPOSAL79Bernardo Dominic
1008Johnson R GlickRussia2026-08-05Feiner Bros NEGOTIATION4Stephen Shaw
1009Wickens A BriddickAustralia2026-08-01Chanay, Jeffrey A Esq QUALIFIED24Asiya Javayant
1010Costa D WhobreyUnited Kingdom2026-07-27Printing Dimensions PROPOSAL41Elwin Sharvill
1011Darci K BriddickIndia2026-08-08Feltz Printing Service QUALIFIED19Bernardo Dominic
1012Antonio U IturbideArgentina2026-08-11Benton, John B Jr PROPOSAL92Stephen Shaw
1013Clifford A InouyeJapan2026-08-19Truhlar And Truhlar Attys RENEWAL64Anna Fali
1014Kadeem Y NestleArgentina2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED36Ioni Bowcher
1015Mujtaba S BowleySpain2026-08-18King, Christopher A Esq QUALIFIED9Ioni Bowcher
1016Arvin J KuskoCanada2026-08-17Dorl, James J Esq QUALIFIED63Elwin Sharvill
1017Greenwood G BowleyBrazil2026-07-23Rangoni Of Florence RENEWAL86Ivan Magalhaes
1018Chavez V TollnerArgentina2026-07-21Truhlar And Truhlar Attys RENEWAL0Amy Elsner
1019Deepesh O VocelkaIndia2026-08-14Morlong Associates NEGOTIATION20Xuxue Feng
1020Aika X ChuiAustralia2026-08-11Printing Dimensions NEW31Onyama Limba
1021Aruna P StensethArgentina2026-08-13Chapman, Ross E Esq QUALIFIED45Onyama Limba
1022Isabel R RulapaughGermany2026-07-22Buckley Miller Wright PROPOSAL12Amy Elsner
1023Wickens U GillianAustralia2026-08-18Rousseaux, Michael Esq NEW67Ivan Magalhaes
1024Leon K WhobreyBrazil2026-08-07Feiner Bros NEGOTIATION85Amy Elsner
1025Kaitlin F ChuiRussia2026-08-12Truhlar And Truhlar Attys QUALIFIED93Ioni Bowcher
1026Deepesh G NestleRussia2026-08-05Printing Dimensions NEGOTIATION4Ivan Magalhaes
1027Aditya Y BowleyItaly2026-08-01Feiner Bros UNQUALIFIED96Ioni Bowcher
1028Clifford L MorascaBrazil2026-08-14Buckley Miller Wright NEW20Bernardo Dominic
1029Antonio Q BologniaAustralia2026-08-04Feltz Printing Service NEGOTIATION36Asiya Javayant
1030Cody T RutaAustralia2026-08-10Feltz Printing Service RENEWAL79Stephen Shaw
1031Stacey J AmigonBrazil2026-08-18Chapman, Ross E Esq NEGOTIATION93Anna Fali
1032Mujtaba R OstroskyIndia2026-07-30Buckley Miller Wright RENEWAL87Elwin Sharvill
1033Juan Z MorascaRussia2026-08-09Printing Dimensions PROPOSAL86Amy Elsner
1034Maisha D BologniaRussia2026-07-31King, Christopher A Esq QUALIFIED91Anna Fali
1035Jefferson S GarufiItaly2026-07-24Feiner Bros UNQUALIFIED18Bernardo Dominic
1036Costa T NickaRussia2026-08-08Rangoni Of Florence UNQUALIFIED28Ivan Magalhaes
1037Faith F DarakjyGermany2026-08-13Rangoni Of Florence QUALIFIED16Onyama Limba
1038Clifford I SchemmerArgentina2026-08-17Morlong Associates RENEWAL28Amy Elsner
1039Jennifer M SergiFrance2026-08-06Dorl, James J Esq NEW83Bernardo Dominic
1040Adams S StensethJapan2026-08-05Rousseaux, Michael Esq QUALIFIED25Stephen Shaw
1041Johnson O VenereFrance2026-07-29Morlong Associates NEGOTIATION89Onyama Limba
1042Claire F BologniaIndia2026-08-05Feltz Printing Service NEW5Anna Fali
1043Darci J WhobreyRussia2026-08-19Chanay, Jeffrey A Esq RENEWAL20Anna Fali
1044Murillo O StockhamBrazil2026-08-01Rangoni Of Florence QUALIFIED61Ivan Magalhaes
1045Aruna O CampainRussia2026-08-10Benton, John B Jr PROPOSAL30Amy Elsner
1046Aditya M BriddickBrazil2026-08-10Chapman, Ross E Esq UNQUALIFIED44Elwin Sharvill
1047Alejandro Q TollnerGermany2026-08-07Feiner Bros RENEWAL44Onyama Limba
1048Wickens W MorascaIndia2026-08-06Rangoni Of Florence PROPOSAL63Ioni Bowcher
1049Ashley G GarufiArgentina2026-07-28Rangoni Of Florence NEGOTIATION34Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kadeem D DilliardItalyAmy Elsner NEGOTIATION
Aruna W KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson O NestleAustraliaXuxue Feng RENEWAL
Johnson K DoeRussiaOnyama Limba RENEWAL
Alejandro Y OstroskyRussiaIvan Magalhaes UNQUALIFIED
Kaitlin N FollerSpainIoni Bowcher PROPOSAL
Wickens A SergiIndiaBernardo Dominic NEW
Juan D FigeroaUnited KingdomElwin Sharvill QUALIFIED
Adams W KuskoGermanyStephen Shaw NEW
Aditya O SchemmerSpainOnyama Limba PROPOSAL
Maisha T FigeroaAustraliaXuxue Feng UNQUALIFIED
Morrow Z WhobreyJapanStephen Shaw PROPOSAL
Jeanfrancois O StockhamSpainAmy Elsner NEW
Rodrigues S RoysterArgentinaAmy Elsner NEGOTIATION
Clifford C CampainAustraliaAmy Elsner UNQUALIFIED
Murillo F SergiRussiaAmy Elsner QUALIFIED
James P BriddickUnited KingdomOnyama Limba PROPOSAL
David S WaycottJapanBernardo Dominic NEGOTIATION
Mujtaba C AmigonBrazilXuxue Feng NEGOTIATION
Ricardo M FollerArgentinaAsiya Javayant UNQUALIFIED
Chavez F MorascaRussiaElwin Sharvill QUALIFIED
Clifford I GarufiFranceBernardo Dominic NEW
Munro I CampainGermanyElwin Sharvill PROPOSAL
Aruna Y MarrierAustraliaAsiya Javayant NEW
Jeanfrancois J BowleyJapanStephen Shaw QUALIFIED
Cody W DilliardBrazilAnna Fali NEGOTIATION
Arvin Q NestleIndiaIvan Magalhaes NEGOTIATION
Greenwood F InouyeCanadaElwin Sharvill NEGOTIATION
Mayumi F FigeroaArgentinaBernardo Dominic RENEWAL
Morrow H StockhamJapanIoni Bowcher RENEWAL
Chavez A PerinRussiaAsiya Javayant NEGOTIATION
Stacey S ChuiGermanyAmy Elsner NEGOTIATION
Sinclair Y InouyeGermanyStephen Shaw PROPOSAL
Ashley F CampainFranceAsiya Javayant NEW
Arvin Z StockhamItalyXuxue Feng RENEWAL
Ricardo H ChuiSpainAsiya Javayant NEW
Munro E NickaBrazilOnyama Limba QUALIFIED
Ricardo G PaprockiGermanyStephen Shaw NEGOTIATION
Jones R BologniaCanadaOnyama Limba QUALIFIED
Francesco J AlbaresBrazilAnna Fali RENEWAL
Smith A MacleadIndiaElwin Sharvill PROPOSAL
Costa B MarrierSpainAsiya Javayant NEW
Adams Q MarrierBrazilIvan Magalhaes QUALIFIED
Izzy L GarufiRussiaXuxue Feng RENEWAL
Juan O NickaRussiaAsiya Javayant QUALIFIED
Silvio A SlusarskiIndiaStephen Shaw NEW
Leon V WhobreySpainStephen Shaw QUALIFIED
Mujtaba O GlickCanadaStephen Shaw NEW
Izzy O PerinJapanStephen Shaw UNQUALIFIED
Tony F StockhamCanadaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Johnson P Butt
Isabel T Butt
James I Malet
Claire P Flosi
Cody W Dilliard
James Q Schemmer
Mayumi C Briddick
Leon R Shinko
Greenwood A Figeroa
David L Foller
Jefferson C Ruta
Deepesh W Tollner
Jennifer G Malet
David K Schemmer
Silvio J Kusko
Julie N Figeroa
Octavia X Rim
Emily D Stenseth
Faith Q Bolognia
Leon R Caudy
Salvatore U Schemmer
Greenwood S Glick
Alejandro I Bolognia
Adams P Flosi
Izzy U Maclead
Emily E Gillian
Isabel V Saylors
David Q Bolognia
Wickens T Kolmetz
Chavez X Iturbide
Emily R Wieser
Greenwood S Stenseth
Silvio G Nestle
Isabel H Figeroa
Isabel Y Whobrey
Leon S Vocelka
Kaitlin N Figeroa
Antonio C Morasca
Murillo T Albares
Stacey K Stockham
Greenwood T Oldroyd
Greenwood Z Oldroyd
Stacey J Doe
Sinclair M Amigon
Costa P Vocelka
Antonio R Slusarski
Leon K Inouye
Izzy N Figeroa
Adams F Saylors
Salvatore G Chui
IdCountryDate
1000Italy2026-07-31
1001United Kingdom2026-08-19
1002India2026-08-18
1003Italy2026-08-01
1004Germany2026-07-23
1005Canada2026-07-24
1006Argentina2026-08-17
1007Canada2026-07-27
1008Canada2026-08-04
1009Russia2026-08-14
1010Russia2026-08-11
1011Canada2026-08-03
1012United Kingdom2026-07-28
1013Canada2026-07-28
1014Australia2026-08-01
1015Germany2026-08-12
1016United Kingdom2026-08-18
1017Brazil2026-08-19
1018Australia2026-08-08
1019Argentina2026-07-26
1020Spain2026-08-14
1021Japan2026-08-06
1022France2026-08-02
1023Australia2026-07-24
1024Spain2026-08-13
1025Australia2026-08-04
1026Brazil2026-08-05
1027Australia2026-08-16
1028India2026-08-03
1029France2026-07-28
1030Argentina2026-07-21
1031Japan2026-08-19
1032United Kingdom2026-08-08
1033Japan2026-07-28
1034Canada2026-07-21
1035Spain2026-08-11
1036Italy2026-08-17
1037Australia2026-08-17
1038Japan2026-08-11
1039Germany2026-08-05
1040Australia2026-07-28
1041Italy2026-08-06
1042Italy2026-08-19
1043India2026-07-24
1044Germany2026-07-26
1045Spain2026-07-29
1046India2026-08-16
1047United Kingdom2026-08-11
1048France2026-08-01
1049Italy2026-07-23

On-Demand Data

NameIdCountryDate
Stacey P Stenseth1000Canada2026-08-06
Tony I Chui1001Australia2026-08-17
Emily Z Malet1002Germany2026-08-05
Isabel O Royster1003Germany2026-07-29
Greenwood M Morasca1004United Kingdom2026-07-30
Jennifer O Venere1005Canada2026-07-23
Wickens Z Perin1006Brazil2026-08-17
David R Flosi1007Russia2026-07-26
Salvatore F Vocelka1008Russia2026-07-30
Ashley B Saylors1009Argentina2026-08-04
Costa K Albares1010France2026-08-01
Aditya Q Glick1011Argentina2026-08-02
Octavia X Bowley1012United Kingdom2026-08-19
Greenwood U Sergi1013Italy2026-08-08
Munro C Royster1014Brazil2026-08-07
Kaitlin Q Rulapaugh1015Italy2026-07-30
Deepesh K Kusko1016India2026-08-10
Jeanfrancois P Whobrey1017Canada2026-08-04
Silvio L Saylors1018Canada2026-08-10
Octavia R Maclead1019Russia2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez B FlosiFranceIoni Bowcher RENEWAL
Julie R GillianFranceAmy Elsner PROPOSAL
Leja V VenereBrazilXuxue Feng QUALIFIED
Mayumi O NickaBrazilAsiya Javayant QUALIFIED
Jones E BologniaArgentinaIvan Magalhaes UNQUALIFIED
Johnson P CaudyCanadaAnna Fali PROPOSAL
Darci T ChuiFranceBernardo Dominic NEW
Maria U IturbideUnited KingdomAmy Elsner NEGOTIATION
Mujtaba X WieserArgentinaIvan Magalhaes QUALIFIED
Rodrigues W VenereFranceStephen Shaw RENEWAL
Aditya W DarakjyCanadaIoni Bowcher NEGOTIATION
Octavia N SlusarskiArgentinaAnna Fali UNQUALIFIED
Jennifer Q RimRussiaOnyama Limba QUALIFIED
Aruna F WieserIndiaOnyama Limba UNQUALIFIED
Munro Q FlosiUnited KingdomElwin Sharvill NEGOTIATION
Wickens P MarrierSpainAsiya Javayant RENEWAL
Aika I VenereCanadaStephen Shaw NEGOTIATION
Jefferson M DilliardArgentinaStephen Shaw NEGOTIATION
Sinclair N OldroydArgentinaAnna Fali QUALIFIED
Stacey T DoeAustraliaElwin Sharvill PROPOSAL
Salvatore R VenereGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois E PerinBrazilBernardo Dominic NEW
Emily Y SaylorsFranceBernardo Dominic NEGOTIATION
Greenwood P DoeCanadaOnyama Limba NEW
Tony S InouyeItalyOnyama Limba RENEWAL
Darci Y MarrierArgentinaIvan Magalhaes PROPOSAL
Francesco U PoquetteFranceAnna Fali PROPOSAL
Alejandro K IturbideRussiaElwin Sharvill PROPOSAL
Mujtaba F RulapaughCanadaBernardo Dominic RENEWAL
Maisha J PaprockiBrazilAsiya Javayant PROPOSAL
Mayumi C OldroydArgentinaBernardo Dominic NEW
Smith A NestleFranceAmy Elsner UNQUALIFIED
Misaki G PoquetteIndiaElwin Sharvill QUALIFIED
Julie I BowleyUnited KingdomIoni Bowcher NEW
Nicolas S FigeroaCanadaXuxue Feng QUALIFIED
Antonio I StensethBrazilBernardo Dominic NEW
Faith C KuskoBrazilAsiya Javayant UNQUALIFIED
Maria E DoeArgentinaStephen Shaw RENEWAL
Stacey W DarakjyJapanAnna Fali RENEWAL
Aditya Z NickaUnited KingdomStephen Shaw 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>