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
Jeanfrancois S IturbideArgentinaAsiya Javayant RENEWAL
Aditya N RoysterArgentinaBernardo Dominic RENEWAL
Alejandro Y PaprockiJapanBernardo Dominic UNQUALIFIED
Emily P TollnerJapanIoni Bowcher NEGOTIATION
Morrow I SlusarskiBrazilStephen Shaw QUALIFIED
Mujtaba Y InouyeArgentinaAnna Fali QUALIFIED
Tony W PoquetteCanadaXuxue Feng NEW
Mujtaba S StensethGermanyAnna Fali NEGOTIATION
Ivar B CampainIndiaIoni Bowcher RENEWAL
Ashley Q CampainGermanyStephen Shaw NEGOTIATION
Clifford E PoquetteRussiaStephen Shaw QUALIFIED
Faith U OldroydUnited KingdomXuxue Feng NEGOTIATION
Mayumi O IturbideCanadaElwin Sharvill NEGOTIATION
Deepesh U FigeroaIndiaIoni Bowcher UNQUALIFIED
Aruna P PoquetteFranceAsiya Javayant NEGOTIATION
Adams M BologniaGermanyXuxue Feng UNQUALIFIED
Smith O KolmetzFranceAsiya Javayant PROPOSAL
Jefferson J IturbideBrazilIvan Magalhaes PROPOSAL
Ashley M RoysterUnited KingdomAnna Fali PROPOSAL
Antonio R ShinkoGermanyStephen Shaw RENEWAL
Mayumi P CaldareraFranceXuxue Feng PROPOSAL
Alejandro W PerinJapanAsiya Javayant NEW
Wickens M RutaRussiaElwin Sharvill NEW
Aditya L PerinSpainIoni Bowcher RENEWAL
James V PerinBrazilAmy Elsner QUALIFIED
Faith P RulapaughRussiaXuxue Feng UNQUALIFIED
Maria B ShinkoCanadaIvan Magalhaes QUALIFIED
Kaitlin R NestleJapanStephen Shaw PROPOSAL
Ashley K GarufiSpainStephen Shaw UNQUALIFIED
Aditya V MarrierJapanAsiya Javayant UNQUALIFIED
Ashley U ButtUnited KingdomAmy Elsner NEGOTIATION
James F CampainJapanAmy Elsner UNQUALIFIED
Sinclair Q PoquetteItalyOnyama Limba UNQUALIFIED
Rodrigues N SaylorsIndiaXuxue Feng PROPOSAL
Smith T DarakjyCanadaOnyama Limba PROPOSAL
Misaki F FerenczAustraliaAsiya Javayant UNQUALIFIED
Faith S GillianIndiaOnyama Limba NEGOTIATION
Faith F MorascaUnited KingdomIvan Magalhaes PROPOSAL
Smith O CaldareraJapanAsiya Javayant NEGOTIATION
Leon Z FollerIndiaAnna Fali UNQUALIFIED
Salvatore D AlbaresGermanyAnna Fali RENEWAL
Clifford X CaudyBrazilAmy Elsner UNQUALIFIED
Octavia K WieserJapanXuxue Feng NEGOTIATION
Emily O PaprockiJapanAnna Fali NEW
Ashley X KuskoItalyXuxue Feng QUALIFIED
Tony O GillianCanadaAnna Fali NEW
Adams Z ChuiGermanyIoni Bowcher UNQUALIFIED
Greenwood H DoeArgentinaOnyama Limba NEGOTIATION
Costa K BologniaRussiaAmy Elsner NEW
Jones R OldroydFranceAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie A MaletItalyIvan Magalhaes RENEWAL
Stacey G InouyeIndiaOnyama Limba NEGOTIATION
Julie N BriddickRussiaIoni Bowcher UNQUALIFIED
Juan M GlickCanadaXuxue Feng NEGOTIATION
Silvio A VocelkaFranceAsiya Javayant NEW
Jeanfrancois Q GarufiFranceIvan Magalhaes UNQUALIFIED
Stacey T TollnerUnited KingdomIvan Magalhaes QUALIFIED
Isabel P CampainAustraliaXuxue Feng PROPOSAL
Mayumi H GlickJapanStephen Shaw RENEWAL
Izzy A TollnerRussiaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon J BriddickRussia2026-08-06Truhlar And Truhlar Attys PROPOSAL35Onyama Limba
1001Clifford H BriddickFrance2026-08-04Commercial Press QUALIFIED0Xuxue Feng
1002Aditya T StensethSpain2026-08-06Dorl, James J Esq UNQUALIFIED60Elwin Sharvill
1003Smith G VenereJapan2026-07-21Truhlar And Truhlar Attys RENEWAL18Xuxue Feng
1004David H OldroydJapan2026-07-29Chapman, Ross E Esq NEGOTIATION7Onyama Limba
1005Morrow Y DilliardCanada2026-07-20Printing Dimensions RENEWAL60Asiya Javayant
1006Rodrigues U VocelkaSpain2026-07-19Feiner Bros UNQUALIFIED19Ioni Bowcher
1007Maria Z CampainCanada2026-07-29Rousseaux, Michael Esq UNQUALIFIED6Ioni Bowcher
1008Greenwood W DarakjySpain2026-08-02King, Christopher A Esq PROPOSAL67Asiya Javayant
1009Antonio C NestleCanada2026-08-03Truhlar And Truhlar Attys UNQUALIFIED24Asiya Javayant
1010Adams H GlickArgentina2026-08-09Chanay, Jeffrey A Esq PROPOSAL93Stephen Shaw
1011Mayumi P RoysterGermany2026-08-10Benton, John B Jr PROPOSAL55Amy Elsner
1012Costa P GlickBrazil2026-08-13Truhlar And Truhlar Attys QUALIFIED89Ioni Bowcher
1013James X WieserJapan2026-08-12Rangoni Of Florence RENEWAL54Asiya Javayant
1014Jones L GauchoRussia2026-07-29Feltz Printing Service UNQUALIFIED58Asiya Javayant
1015Greenwood G FollerJapan2026-07-26Truhlar And Truhlar Attys QUALIFIED63Asiya Javayant
1016Chavez L BriddickRussia2026-08-10Chemel, James L Cpa UNQUALIFIED7Anna Fali
1017Costa S CampainUnited Kingdom2026-07-19Rangoni Of Florence NEGOTIATION33Asiya Javayant
1018Kaitlin S DoeSpain2026-07-18King, Christopher A Esq NEW98Elwin Sharvill
1019Mayumi T AlbaresJapan2026-08-10Chemel, James L Cpa UNQUALIFIED45Xuxue Feng
1020Aditya X RimAustralia2026-08-08Truhlar And Truhlar Attys RENEWAL40Stephen Shaw
1021Jones Z MaletFrance2026-07-27Buckley Miller Wright QUALIFIED93Ioni Bowcher
1022Aruna W CaldareraAustralia2026-08-15King, Christopher A Esq QUALIFIED56Bernardo Dominic
1023David J FigeroaRussia2026-08-07Buckley Miller Wright UNQUALIFIED80Xuxue Feng
1024Arvin R NickaUnited Kingdom2026-08-04Chanay, Jeffrey A Esq NEGOTIATION44Onyama Limba
1025Maisha A RimFrance2026-08-14Buckley Miller Wright RENEWAL81Asiya Javayant
1026James Q AmigonArgentina2026-07-17Feltz Printing Service UNQUALIFIED55Elwin Sharvill
1027Stacey R FigeroaGermany2026-07-21King, Christopher A Esq QUALIFIED5Ioni Bowcher
1028Alejandro J SchemmerGermany2026-08-14Commercial Press RENEWAL91Bernardo Dominic
1029Ivar N WhobreyCanada2026-07-23King, Christopher A Esq UNQUALIFIED73Asiya Javayant
1030Arvin W MarrierFrance2026-08-14Feiner Bros NEGOTIATION12Xuxue Feng
1031Francesco L CaldareraItaly2026-07-23Benton, John B Jr NEW92Bernardo Dominic
1032Wickens R PerinJapan2026-08-14Rousseaux, Michael Esq NEGOTIATION68Ioni Bowcher
1033Silvio A CaldareraJapan2026-08-05Feltz Printing Service NEW96Stephen Shaw
1034Jones K PerinRussia2026-07-25Buckley Miller Wright RENEWAL3Asiya Javayant
1035Chavez B TollnerJapan2026-08-15Truhlar And Truhlar Attys UNQUALIFIED96Ioni Bowcher
1036Jeanfrancois C SergiArgentina2026-07-23Chapman, Ross E Esq QUALIFIED88Stephen Shaw
1037Deepesh F ChuiGermany2026-07-24Benton, John B Jr PROPOSAL20Onyama Limba
1038Claire O FollerAustralia2026-07-17Feltz Printing Service QUALIFIED67Amy Elsner
1039Murillo Y GillianUnited Kingdom2026-07-29Chemel, James L Cpa UNQUALIFIED88Stephen Shaw
1040Kaitlin O FigeroaRussia2026-07-28Buckley Miller Wright QUALIFIED41Xuxue Feng
1041Misaki P KolmetzIndia2026-07-31Feltz Printing Service NEGOTIATION79Ivan Magalhaes
1042Claire Z SchemmerCanada2026-07-22Dorl, James J Esq NEGOTIATION60Stephen Shaw
1043Mayumi A RimRussia2026-08-09Feltz Printing Service NEW2Asiya Javayant
1044Izzy P CaldareraCanada2026-07-23Rangoni Of Florence PROPOSAL73Xuxue Feng
1045Salvatore J ChuiItaly2026-07-31Chemel, James L Cpa NEW14Ivan Magalhaes
1046Costa T BowleySpain2026-07-20Buckley Miller Wright QUALIFIED56Asiya Javayant
1047Greenwood V GarufiJapan2026-07-30Truhlar And Truhlar Attys RENEWAL72Elwin Sharvill
1048Leja I StockhamFrance2026-07-21Benton, John B Jr QUALIFIED45Ivan Magalhaes
1049Jennifer C DarakjyIndia2026-07-17Chemel, James L Cpa UNQUALIFIED47Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony W AlbaresUnited KingdomStephen Shaw NEGOTIATION
Tony V MacleadFranceAsiya Javayant PROPOSAL
Kaitlin O InouyeUnited KingdomStephen Shaw QUALIFIED
Smith C BriddickArgentinaAmy Elsner PROPOSAL
Jefferson Z SlusarskiItalyXuxue Feng PROPOSAL
Ashley C BologniaArgentinaAnna Fali NEGOTIATION
Costa F SlusarskiGermanyXuxue Feng RENEWAL
Sinclair B MaletItalyAnna Fali PROPOSAL
Morrow D OstroskyAustraliaXuxue Feng UNQUALIFIED
Leon P DoeIndiaAmy Elsner QUALIFIED
Misaki W BowleyArgentinaStephen Shaw RENEWAL
Leja O CampainArgentinaIvan Magalhaes QUALIFIED
Morrow B SlusarskiJapanElwin Sharvill RENEWAL
Kaitlin X DoeIndiaOnyama Limba NEW
Alejandro N KolmetzRussiaOnyama Limba NEW
Silvio E SlusarskiAustraliaStephen Shaw UNQUALIFIED
Ivar D MacleadAustraliaIvan Magalhaes UNQUALIFIED
Leja M BriddickSpainXuxue Feng RENEWAL
Greenwood F CampainJapanIoni Bowcher QUALIFIED
Mayumi K MarrierCanadaIvan Magalhaes NEW
Rodrigues Y FlosiAustraliaIoni Bowcher PROPOSAL
Arvin F SchemmerIndiaElwin Sharvill UNQUALIFIED
Faith A MorascaGermanyIoni Bowcher NEW
Smith A GarufiIndiaElwin Sharvill PROPOSAL
Misaki E SlusarskiGermanyStephen Shaw NEW
Kaitlin K AmigonSpainAmy Elsner RENEWAL
Nicolas I PerinRussiaAsiya Javayant NEW
Mujtaba M SchemmerRussiaOnyama Limba RENEWAL
Jennifer G DoeCanadaIoni Bowcher RENEWAL
Jeanfrancois H ButtItalyXuxue Feng PROPOSAL
Jefferson S FigeroaUnited KingdomElwin Sharvill RENEWAL
Julie Y InouyeSpainElwin Sharvill PROPOSAL
Ricardo V MorascaJapanAmy Elsner QUALIFIED
Ivar M FerenczItalyAsiya Javayant PROPOSAL
Emily A PoquetteRussiaIoni Bowcher QUALIFIED
Octavia A FigeroaCanadaAmy Elsner RENEWAL
Misaki S RoysterRussiaAnna Fali UNQUALIFIED
Kadeem U BriddickBrazilStephen Shaw NEW
Deepesh Y BologniaJapanBernardo Dominic PROPOSAL
Maisha Y TollnerIndiaAmy Elsner PROPOSAL
Jeanfrancois Q MarrierItalyAmy Elsner UNQUALIFIED
Izzy E TollnerUnited KingdomBernardo Dominic QUALIFIED
Leon X NestleGermanyElwin Sharvill RENEWAL
Johnson C GillianGermanyOnyama Limba PROPOSAL
Emily L FlosiRussiaElwin Sharvill UNQUALIFIED
Jeanfrancois W RoysterAustraliaAmy Elsner UNQUALIFIED
Sinclair H DoeBrazilXuxue Feng QUALIFIED
Jones I DarakjyBrazilOnyama Limba UNQUALIFIED
Smith H SergiArgentinaAnna Fali PROPOSAL
Morrow V PaprockiArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Maisha A Perin
Ricardo M Albares
Greenwood D Bowley
Stacey K Butt
Emily O Iturbide
Nicolas M Campain
Smith S Ruta
Julie I Stockham
Costa H Poquette
Ricardo W Shinko
Murillo L Kolmetz
James E Flosi
Morrow E Ruta
Faith F Venere
Costa O Caldarera
Costa S Slusarski
Darci Z Kusko
Smith P Bowley
Misaki O Whobrey
Silvio I Dilliard
Johnson H Venere
Arvin Q Glick
Ricardo Z Inouye
Kadeem L Stockham
Faith L Caldarera
James A Wieser
Smith X Whobrey
Clifford F Oldroyd
Stacey R Flosi
Jeanfrancois V Rulapaugh
Clifford W Doe
Chavez G Amigon
Claire Z Darakjy
Rodrigues O Foller
Arvin I Royster
Murillo V Malet
Claire J Gillian
Salvatore S Poquette
Jones Y Poquette
James P Malet
Arvin D Gillian
Aruna B Butt
Salvatore Y Poquette
Ashley D Gaucho
Munro C Briddick
Chavez V Venere
Jefferson S Maclead
Mujtaba E Tollner
Darci P Glick
Leon B Maclead
IdCountryDate
1000Japan2026-07-25
1001Germany2026-07-21
1002United Kingdom2026-08-12
1003France2026-07-24
1004Japan2026-08-05
1005Argentina2026-07-20
1006Canada2026-07-27
1007Canada2026-08-10
1008Brazil2026-07-30
1009Germany2026-08-11
1010Spain2026-07-22
1011Italy2026-07-27
1012Canada2026-08-12
1013Russia2026-07-21
1014India2026-07-25
1015Spain2026-07-21
1016France2026-07-25
1017Brazil2026-07-29
1018Italy2026-07-31
1019Canada2026-08-12
1020Italy2026-07-31
1021India2026-08-14
1022France2026-07-21
1023Australia2026-07-27
1024Brazil2026-08-09
1025India2026-08-13
1026France2026-07-22
1027Australia2026-07-21
1028Japan2026-07-20
1029Germany2026-07-29
1030Japan2026-08-10
1031Italy2026-08-07
1032Australia2026-08-10
1033Canada2026-08-14
1034Brazil2026-08-07
1035Brazil2026-08-12
1036United Kingdom2026-08-11
1037Spain2026-07-20
1038Australia2026-08-15
1039Brazil2026-08-11
1040Japan2026-08-09
1041Canada2026-07-24
1042France2026-07-17
1043Germany2026-07-18
1044Argentina2026-07-27
1045Italy2026-08-13
1046India2026-07-24
1047Brazil2026-07-21
1048Canada2026-08-07
1049Argentina2026-07-28

On-Demand Data

NameIdCountryDate
Morrow S Venere1000India2026-07-27
Juan F Bolognia1001Argentina2026-07-19
David K Dilliard1002Italy2026-08-03
Juan I Kolmetz1003Italy2026-07-19
Munro D Royster1004Canada2026-08-01
Ricardo U Royster1005Russia2026-08-02
Leon T Chui1006Russia2026-07-18
Sinclair D Wieser1007India2026-07-20
Adams G Briddick1008Australia2026-07-26
Greenwood G Caldarera1009United Kingdom2026-07-23
Deepesh H Butt1010India2026-08-12
Deepesh G Glick1011Russia2026-07-20
Ashley O Perin1012Japan2026-08-11
Mayumi E Stenseth1013Japan2026-08-14
Johnson O Inouye1014Argentina2026-08-10
Morrow T Rulapaugh1015India2026-07-25
Kadeem M Malet1016Russia2026-08-07
Darci F Saylors1017Australia2026-08-14
Rodrigues J Kolmetz1018Spain2026-08-15
James L Rulapaugh1019Argentina2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair O GlickArgentinaOnyama Limba NEW
Clifford L SergiFranceIvan Magalhaes PROPOSAL
Jennifer C OldroydFranceAnna Fali RENEWAL
Leja A CaldareraRussiaAsiya Javayant PROPOSAL
Julie V PaprockiSpainOnyama Limba NEGOTIATION
Morrow E BowleySpainIvan Magalhaes NEW
Juan U FollerJapanBernardo Dominic PROPOSAL
Kaitlin N ButtGermanyStephen Shaw RENEWAL
Aditya Y WhobreyAustraliaIoni Bowcher QUALIFIED
Leon V PoquetteJapanAsiya Javayant RENEWAL
Isabel T VenereSpainBernardo Dominic NEW
Mayumi S AmigonJapanElwin Sharvill QUALIFIED
Cody M GauchoFranceElwin Sharvill NEW
Emily E CaldareraGermanyAnna Fali QUALIFIED
Octavia G CampainSpainXuxue Feng PROPOSAL
Faith Z MarrierGermanyElwin Sharvill UNQUALIFIED
Rodrigues K TollnerIndiaElwin Sharvill QUALIFIED
Francesco I TollnerIndiaIoni Bowcher PROPOSAL
Cody W GauchoFranceXuxue Feng QUALIFIED
Johnson C PerinFranceOnyama Limba NEGOTIATION
James E FlosiSpainAmy Elsner UNQUALIFIED
Ashley A FigeroaJapanElwin Sharvill NEGOTIATION
Adams C MorascaSpainIoni Bowcher NEW
Ivar D BriddickRussiaAmy Elsner NEW
Wickens C MarrierIndiaStephen Shaw UNQUALIFIED
Juan F BologniaSpainAsiya Javayant PROPOSAL
Aruna S BowleyRussiaAnna Fali UNQUALIFIED
Wickens A GillianSpainAsiya Javayant QUALIFIED
Francesco O ShinkoUnited KingdomElwin Sharvill NEW
Smith R PoquetteRussiaXuxue Feng NEW
Sinclair P VocelkaGermanyElwin Sharvill UNQUALIFIED
James D PerinItalyIvan Magalhaes PROPOSAL
Aika K WaycottFranceBernardo Dominic PROPOSAL
Kadeem P TollnerBrazilAnna Fali NEGOTIATION
Alejandro X DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Johnson E SlusarskiCanadaBernardo Dominic QUALIFIED
Ivar W StockhamBrazilBernardo Dominic UNQUALIFIED
Rodrigues F GauchoSpainAnna Fali RENEWAL
Mujtaba H AmigonSpainAsiya Javayant PROPOSAL
Nicolas A KolmetzFranceOnyama Limba 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>