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
Aditya F RoysterArgentinaAsiya Javayant QUALIFIED
Leon A TollnerRussiaXuxue Feng NEGOTIATION
Johnson Y OldroydIndiaIvan Magalhaes PROPOSAL
Munro Y FlosiBrazilBernardo Dominic NEW
Leon V ChuiBrazilElwin Sharvill NEW
Emily N DarakjyItalyAnna Fali NEGOTIATION
Leon W GarufiBrazilIoni Bowcher PROPOSAL
Ashley S CampainIndiaElwin Sharvill UNQUALIFIED
Chavez A InouyeSpainOnyama Limba UNQUALIFIED
Greenwood S DoeSpainIvan Magalhaes NEW
Salvatore C RoysterAustraliaBernardo Dominic PROPOSAL
Isabel X TollnerIndiaOnyama Limba UNQUALIFIED
Francesco Z NickaArgentinaOnyama Limba RENEWAL
Aditya H MarrierUnited KingdomAsiya Javayant RENEWAL
Mayumi X MaletRussiaElwin Sharvill PROPOSAL
Jennifer G AmigonItalyAnna Fali PROPOSAL
Aruna N BologniaGermanyIoni Bowcher QUALIFIED
Greenwood X MorascaBrazilAnna Fali PROPOSAL
Alejandro Z FollerGermanyAnna Fali PROPOSAL
Jennifer O RulapaughSpainIvan Magalhaes RENEWAL
Octavia U MarrierFranceOnyama Limba QUALIFIED
Jennifer T MaletItalyAnna Fali PROPOSAL
Munro V PoquetteArgentinaOnyama Limba NEGOTIATION
Julie V FlosiAustraliaOnyama Limba PROPOSAL
Jefferson Q FollerCanadaIoni Bowcher UNQUALIFIED
Alejandro J IturbideCanadaXuxue Feng UNQUALIFIED
Misaki F StockhamBrazilAnna Fali RENEWAL
Leon H MacleadItalyAnna Fali UNQUALIFIED
Maisha V WaycottCanadaIvan Magalhaes NEGOTIATION
Kadeem O CaudyAustraliaBernardo Dominic UNQUALIFIED
Smith C CampainAustraliaAnna Fali RENEWAL
Chavez P SchemmerSpainElwin Sharvill PROPOSAL
Stacey H KolmetzCanadaIoni Bowcher RENEWAL
Stacey D MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi F GlickItalyAnna Fali NEW
Alejandro S PoquetteBrazilAsiya Javayant PROPOSAL
Aika I SchemmerSpainStephen Shaw PROPOSAL
Munro J MorascaSpainIvan Magalhaes NEGOTIATION
Juan V BologniaGermanyXuxue Feng NEGOTIATION
Adams X BologniaSpainIvan Magalhaes PROPOSAL
Mujtaba F InouyeGermanyBernardo Dominic NEGOTIATION
Kadeem T BowleyRussiaOnyama Limba NEGOTIATION
Kadeem P WaycottGermanyElwin Sharvill NEW
Ivar V DilliardBrazilBernardo Dominic UNQUALIFIED
Leon U AlbaresAustraliaAmy Elsner NEW
Jefferson U MaletAustraliaIvan Magalhaes NEGOTIATION
Leon M RutaAustraliaIoni Bowcher UNQUALIFIED
Leja D ShinkoItalyAnna Fali UNQUALIFIED
Kaitlin Y GillianAustraliaOnyama Limba NEW
Octavia L StockhamFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro A GauchoFranceAmy Elsner QUALIFIED
Morrow C FollerUnited KingdomStephen Shaw PROPOSAL
Murillo C KolmetzItalyAnna Fali UNQUALIFIED
Clifford K DilliardItalyIoni Bowcher PROPOSAL
Leon R DilliardUnited KingdomBernardo Dominic RENEWAL
Munro M CaudySpainAmy Elsner QUALIFIED
Mujtaba F KuskoJapanElwin Sharvill UNQUALIFIED
Adams U VenereUnited KingdomAmy Elsner NEW
Mayumi N MacleadItalyElwin Sharvill NEGOTIATION
Tony O IturbideIndiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria B StockhamUnited Kingdom2026-07-07Rousseaux, Michael Esq QUALIFIED59Anna Fali
1001Ricardo T PerinSpain2026-07-17Feiner Bros PROPOSAL77Amy Elsner
1002Maria Z BologniaRussia2026-06-29Feiner Bros NEW37Anna Fali
1003Julie I RimAustralia2026-07-15King, Christopher A Esq NEGOTIATION76Bernardo Dominic
1004Tony T VocelkaBrazil2026-07-25Chanay, Jeffrey A Esq PROPOSAL56Asiya Javayant
1005David Y PoquetteBrazil2026-07-18Rousseaux, Michael Esq QUALIFIED0Xuxue Feng
1006Maria G MacleadCanada2026-06-29Printing Dimensions NEGOTIATION36Anna Fali
1007Kaitlin V DoeArgentina2026-07-04Commercial Press RENEWAL55Ivan Magalhaes
1008Maisha U WhobreyCanada2026-07-14Rangoni Of Florence RENEWAL23Elwin Sharvill
1009Adams V VocelkaArgentina2026-07-11Chanay, Jeffrey A Esq PROPOSAL95Asiya Javayant
1010Costa F ButtGermany2026-07-16King, Christopher A Esq NEW71Onyama Limba
1011Leon Z BowleyBrazil2026-07-13King, Christopher A Esq NEW43Bernardo Dominic
1012Murillo C StensethSpain2026-07-03Feltz Printing Service NEGOTIATION36Elwin Sharvill
1013Mujtaba H KuskoIndia2026-07-11Benton, John B Jr UNQUALIFIED60Amy Elsner
1014Mujtaba U CampainRussia2026-07-02Truhlar And Truhlar Attys QUALIFIED61Elwin Sharvill
1015Jones J GlickArgentina2026-07-17Buckley Miller Wright NEGOTIATION21Stephen Shaw
1016Johnson I ButtSpain2026-07-16Rangoni Of Florence PROPOSAL23Anna Fali
1017Rodrigues F FigeroaItaly2026-07-09Truhlar And Truhlar Attys UNQUALIFIED53Stephen Shaw
1018Jeanfrancois H FollerBrazil2026-07-22Chemel, James L Cpa NEW5Amy Elsner
1019Alejandro O MaletGermany2026-07-01Morlong Associates QUALIFIED17Elwin Sharvill
1020Claire T SchemmerCanada2026-07-07Rangoni Of Florence UNQUALIFIED83Elwin Sharvill
1021Faith G BowleyCanada2026-07-19Rousseaux, Michael Esq NEW84Onyama Limba
1022Claire O RulapaughRussia2026-07-11Chapman, Ross E Esq NEW93Ioni Bowcher
1023Jefferson J ShinkoCanada2026-07-07Buckley Miller Wright NEGOTIATION23Bernardo Dominic
1024Isabel Z MaletIndia2026-07-07Dorl, James J Esq NEGOTIATION71Bernardo Dominic
1025Salvatore Z DoeJapan2026-06-28Rousseaux, Michael Esq NEGOTIATION28Anna Fali
1026Mayumi W FollerItaly2026-07-13Chemel, James L Cpa RENEWAL46Elwin Sharvill
1027Johnson I OldroydSpain2026-07-08Feiner Bros UNQUALIFIED82Onyama Limba
1028Aditya C BologniaFrance2026-07-09Chapman, Ross E Esq UNQUALIFIED37Asiya Javayant
1029Kadeem R MaletSpain2026-07-08Feiner Bros RENEWAL24Asiya Javayant
1030Francesco N InouyeSpain2026-07-25Dorl, James J Esq NEW98Asiya Javayant
1031Jeanfrancois R WhobreyItaly2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED95Asiya Javayant
1032Claire R KuskoArgentina2026-07-03Truhlar And Truhlar Attys QUALIFIED5Bernardo Dominic
1033Tony O GlickItaly2026-07-10Truhlar And Truhlar Attys UNQUALIFIED83Anna Fali
1034Aruna S KolmetzUnited Kingdom2026-07-16Morlong Associates NEW79Elwin Sharvill
1035Leon O MarrierAustralia2026-07-05Rangoni Of Florence NEW71Ioni Bowcher
1036Aditya F FerenczIndia2026-07-17King, Christopher A Esq QUALIFIED21Amy Elsner
1037Chavez L BologniaCanada2026-07-11King, Christopher A Esq PROPOSAL17Xuxue Feng
1038Faith E FerenczCanada2026-07-13Chemel, James L Cpa RENEWAL59Xuxue Feng
1039Leon O CampainUnited Kingdom2026-07-19Rangoni Of Florence NEGOTIATION41Stephen Shaw
1040Rodrigues X OldroydSpain2026-07-04Morlong Associates QUALIFIED47Ivan Magalhaes
1041Chavez N RimItaly2026-07-16Chapman, Ross E Esq PROPOSAL14Anna Fali
1042Jefferson Q DarakjySpain2026-06-29Dorl, James J Esq QUALIFIED99Asiya Javayant
1043Mayumi L CampainFrance2026-07-16Feiner Bros NEGOTIATION63Elwin Sharvill
1044Leja N DoeRussia2026-07-04King, Christopher A Esq NEGOTIATION17Ivan Magalhaes
1045Leon E CaudyRussia2026-07-22Truhlar And Truhlar Attys NEGOTIATION73Elwin Sharvill
1046Silvio E TollnerItaly2026-07-02Feltz Printing Service QUALIFIED67Elwin Sharvill
1047Rodrigues R InouyeBrazil2026-06-26King, Christopher A Esq QUALIFIED4Ivan Magalhaes
1048Octavia Q RutaUnited Kingdom2026-06-28Dorl, James J Esq NEGOTIATION43Asiya Javayant
1049Munro C FerenczIndia2026-07-23Dorl, James J Esq RENEWAL37Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie H DoeItalyBernardo Dominic PROPOSAL
Emily V AmigonRussiaStephen Shaw PROPOSAL
Cody U BriddickCanadaOnyama Limba QUALIFIED
Adams W ChuiAustraliaBernardo Dominic PROPOSAL
Aditya P DoeRussiaStephen Shaw PROPOSAL
Misaki J WaycottSpainIvan Magalhaes UNQUALIFIED
Darci W PoquetteItalyAsiya Javayant UNQUALIFIED
Stacey R MaletArgentinaStephen Shaw RENEWAL
Johnson J RulapaughAustraliaBernardo Dominic NEGOTIATION
Wickens X FollerIndiaBernardo Dominic NEW
Antonio F OstroskyCanadaOnyama Limba UNQUALIFIED
Smith F FerenczItalyAmy Elsner PROPOSAL
Sinclair V StensethRussiaOnyama Limba PROPOSAL
Jeanfrancois V DarakjyItalyOnyama Limba PROPOSAL
Mayumi E FerenczFranceIoni Bowcher QUALIFIED
Leon V TollnerGermanyElwin Sharvill QUALIFIED
Isabel P FlosiIndiaAnna Fali RENEWAL
Silvio Y IturbideJapanAmy Elsner QUALIFIED
Munro S FollerBrazilXuxue Feng NEW
Leon X OldroydSpainIoni Bowcher NEW
Ashley S ButtItalyAmy Elsner NEGOTIATION
Isabel P DoeJapanAnna Fali NEGOTIATION
Francesco G ChuiJapanAsiya Javayant NEGOTIATION
Clifford L FlosiBrazilBernardo Dominic PROPOSAL
Faith P FigeroaAustraliaIoni Bowcher RENEWAL
Silvio C SlusarskiRussiaOnyama Limba RENEWAL
Clifford N NickaRussiaBernardo Dominic PROPOSAL
Adams V AmigonCanadaElwin Sharvill RENEWAL
Smith Y TollnerIndiaElwin Sharvill NEW
Jennifer Z BriddickCanadaOnyama Limba NEGOTIATION
James O NestleUnited KingdomAmy Elsner NEW
Faith C IturbideIndiaBernardo Dominic RENEWAL
Kaitlin O FerenczBrazilAnna Fali RENEWAL
Silvio N GlickFranceIoni Bowcher QUALIFIED
Kadeem Y DoeGermanyBernardo Dominic NEW
Mujtaba P RoysterCanadaStephen Shaw NEGOTIATION
Faith D AlbaresArgentinaAmy Elsner RENEWAL
Jones B MaletJapanXuxue Feng NEGOTIATION
Ashley B MacleadBrazilAmy Elsner UNQUALIFIED
Jefferson Y RoysterCanadaElwin Sharvill NEW
Rodrigues J SergiItalyBernardo Dominic UNQUALIFIED
Sinclair M FigeroaItalyXuxue Feng QUALIFIED
Izzy U ChuiGermanyAsiya Javayant QUALIFIED
Juan B GarufiFranceAnna Fali NEGOTIATION
Ivar K GarufiItalyStephen Shaw RENEWAL
Alejandro D CaudyIndiaXuxue Feng UNQUALIFIED
Deepesh M MarrierSpainStephen Shaw NEW
Antonio L AlbaresGermanyAsiya Javayant QUALIFIED
Misaki R PerinAustraliaBernardo Dominic RENEWAL
Francesco V NestleJapanAnna Fali NEGOTIATION
Frozen Columns
Name
Rodrigues B Malet
Murillo J Caudy
Isabel C Flosi
Kaitlin P Sergi
Aruna D Bowley
Aruna V Figeroa
Leon F Amigon
Chavez E Campain
Smith M Royster
Isabel V Schemmer
Alejandro H Nestle
Cody K Garufi
Jefferson S Perin
Misaki V Kusko
Chavez Y Ostrosky
Izzy S Saylors
Antonio K Campain
Morrow O Caldarera
Stacey Z Dilliard
Aditya N Darakjy
Sinclair R Whobrey
Antonio G Stockham
Wickens G Tollner
Morrow P Foller
Munro O Nicka
Kadeem P Sergi
Deepesh J Bowley
Mayumi M Rulapaugh
Arvin K Nicka
Silvio Z Perin
Adams D Marrier
Morrow A Briddick
Octavia C Paprocki
Antonio W Vocelka
Clifford C Glick
Sinclair P Vocelka
Darci K Poquette
Maisha H Vocelka
Alejandro I Oldroyd
Arvin E Wieser
Mayumi Y Malet
Deepesh V Caudy
Maria L Inouye
Jennifer P Rim
Ivar O Maclead
Claire Z Rim
Salvatore Y Gaucho
Kaitlin S Royster
Costa X Wieser
Jones D Bolognia
IdCountryDate
1000United Kingdom2026-06-30
1001Russia2026-06-26
1002Argentina2026-07-20
1003Canada2026-07-17
1004Germany2026-06-28
1005Spain2026-07-06
1006Italy2026-07-15
1007Russia2026-07-19
1008Italy2026-07-24
1009Argentina2026-07-10
1010United Kingdom2026-06-28
1011Germany2026-06-28
1012Canada2026-07-08
1013Spain2026-07-18
1014Italy2026-07-24
1015Germany2026-06-26
1016France2026-07-01
1017Germany2026-07-04
1018Argentina2026-07-07
1019Italy2026-07-16
1020France2026-07-04
1021Australia2026-07-23
1022France2026-06-27
1023Russia2026-07-20
1024India2026-07-21
1025United Kingdom2026-07-06
1026United Kingdom2026-07-08
1027Argentina2026-06-28
1028Russia2026-07-23
1029Canada2026-07-21
1030Japan2026-07-02
1031Australia2026-07-24
1032Brazil2026-07-18
1033Germany2026-07-02
1034United Kingdom2026-07-25
1035India2026-07-02
1036Spain2026-07-25
1037Russia2026-07-05
1038Brazil2026-06-30
1039India2026-07-18
1040France2026-07-25
1041Australia2026-07-19
1042Japan2026-07-19
1043United Kingdom2026-07-24
1044India2026-07-17
1045Russia2026-07-15
1046France2026-06-29
1047Argentina2026-06-28
1048Australia2026-06-29
1049Germany2026-07-06

On-Demand Data

NameIdCountryDate
Smith T Flosi1000Russia2026-06-29
Mayumi X Malet1001Japan2026-07-20
Emily C Vocelka1002Australia2026-07-20
Stacey E Rim1003Italy2026-07-14
Mujtaba Q Amigon1004Germany2026-07-12
Juan G Gaucho1005India2026-07-13
Morrow M Nestle1006Australia2026-07-12
Deepesh W Marrier1007Italy2026-06-29
Claire I Nestle1008France2026-07-14
Aditya M Doe1009Russia2026-07-01
Tony X Tollner1010Japan2026-07-25
Arvin G Ferencz1011India2026-06-26
Leon X Rulapaugh1012Italy2026-06-28
Jeanfrancois Y Bowley1013Germany2026-07-11
Kadeem G Vocelka1014France2026-07-18
Aditya H Nestle1015India2026-07-10
Alejandro S Tollner1016Canada2026-07-18
Ivar B Nicka1017United Kingdom2026-06-29
Adams W Wieser1018Canada2026-07-17
Greenwood H Ostrosky1019France2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams I SchemmerJapanAmy Elsner QUALIFIED
Darci T SlusarskiIndiaElwin Sharvill RENEWAL
Kaitlin P PoquetteArgentinaElwin Sharvill NEW
Claire T SchemmerAustraliaAsiya Javayant PROPOSAL
Smith P MaletBrazilStephen Shaw QUALIFIED
Jeanfrancois Z DarakjyCanadaAsiya Javayant QUALIFIED
Nicolas H CampainSpainIvan Magalhaes NEW
Octavia I DoeArgentinaStephen Shaw RENEWAL
Aika G DoeAustraliaAmy Elsner PROPOSAL
Aditya V BologniaJapanStephen Shaw RENEWAL
Arvin A ChuiAustraliaElwin Sharvill QUALIFIED
Chavez G GarufiFranceElwin Sharvill RENEWAL
Ashley K MaletJapanOnyama Limba RENEWAL
Ivar X BriddickFranceIoni Bowcher NEGOTIATION
Octavia L SlusarskiArgentinaIoni Bowcher RENEWAL
Costa B PoquetteAustraliaOnyama Limba UNQUALIFIED
Salvatore L KuskoIndiaAsiya Javayant NEGOTIATION
Aika C BriddickGermanyElwin Sharvill PROPOSAL
Jeanfrancois Z MaletSpainAnna Fali UNQUALIFIED
Aika U ShinkoIndiaIoni Bowcher RENEWAL
Johnson C ButtAustraliaElwin Sharvill PROPOSAL
Aruna M FigeroaArgentinaIvan Magalhaes NEW
Claire E BologniaCanadaIoni Bowcher PROPOSAL
Rodrigues W PoquetteSpainAnna Fali NEW
Sinclair T TollnerJapanIvan Magalhaes RENEWAL
Sinclair K AlbaresSpainOnyama Limba PROPOSAL
Octavia G PerinCanadaAnna Fali NEGOTIATION
Aditya B WhobreyFranceStephen Shaw QUALIFIED
Chavez K DilliardFranceIoni Bowcher UNQUALIFIED
Arvin X BologniaGermanyBernardo Dominic RENEWAL
Cody G DarakjyBrazilOnyama Limba NEGOTIATION
Kadeem O SergiRussiaAsiya Javayant RENEWAL
Antonio O FerenczBrazilOnyama Limba RENEWAL
Mujtaba I GarufiFranceOnyama Limba RENEWAL
Francesco T RulapaughArgentinaAnna Fali NEGOTIATION
Kadeem U InouyeAustraliaBernardo Dominic RENEWAL
Greenwood N NestleJapanStephen Shaw QUALIFIED
Chavez B IturbideBrazilStephen Shaw UNQUALIFIED
Arvin O ChuiAustraliaIvan Magalhaes QUALIFIED
Maisha F PaprockiBrazilIoni Bowcher 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>