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
Francesco W CaudyJapanOnyama Limba NEGOTIATION
Maria X WaycottSpainIvan Magalhaes NEW
James A CaudyBrazilAsiya Javayant NEW
Ivar X SlusarskiAustraliaIvan Magalhaes QUALIFIED
Maisha D BriddickJapanElwin Sharvill PROPOSAL
Salvatore N RutaIndiaElwin Sharvill NEW
Adams A CaldareraRussiaXuxue Feng NEGOTIATION
Ashley E CaudyFranceBernardo Dominic QUALIFIED
Silvio Y RimArgentinaOnyama Limba UNQUALIFIED
Sinclair Z WieserSpainXuxue Feng NEGOTIATION
Jennifer L SlusarskiCanadaElwin Sharvill NEGOTIATION
Kadeem M PaprockiSpainAsiya Javayant UNQUALIFIED
Emily L MarrierJapanBernardo Dominic PROPOSAL
Arvin W IturbideIndiaOnyama Limba RENEWAL
Antonio F RoysterUnited KingdomXuxue Feng NEW
Ashley F OldroydIndiaAmy Elsner NEW
Juan Y IturbideGermanyBernardo Dominic NEW
Silvio E VenereJapanIoni Bowcher QUALIFIED
Smith K KuskoArgentinaXuxue Feng PROPOSAL
Smith P RulapaughArgentinaAsiya Javayant UNQUALIFIED
Ricardo R MarrierRussiaIvan Magalhaes NEW
Kadeem Y NickaSpainAmy Elsner QUALIFIED
Kadeem L SergiRussiaIvan Magalhaes UNQUALIFIED
Adams E MorascaIndiaIvan Magalhaes NEGOTIATION
Maisha C SaylorsGermanyElwin Sharvill NEW
Juan B CaudyFranceAsiya Javayant RENEWAL
Silvio Z FollerCanadaOnyama Limba RENEWAL
Morrow S BowleyItalyAnna Fali NEGOTIATION
David C SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Smith U TollnerItalyAmy Elsner NEW
Wickens P KolmetzGermanyIoni Bowcher RENEWAL
Kadeem S CampainJapanElwin Sharvill PROPOSAL
Sinclair S NickaAustraliaAnna Fali NEW
Izzy C FlosiBrazilXuxue Feng QUALIFIED
Tony S BriddickSpainElwin Sharvill QUALIFIED
Costa L RimItalyElwin Sharvill NEGOTIATION
Ricardo F ChuiAustraliaAsiya Javayant QUALIFIED
Ricardo H RimIndiaIoni Bowcher RENEWAL
Mujtaba H RutaFranceIvan Magalhaes UNQUALIFIED
Isabel I FlosiJapanAmy Elsner PROPOSAL
Jones R VenereCanadaElwin Sharvill NEW
Costa A RoysterAustraliaIvan Magalhaes RENEWAL
Chavez D FlosiArgentinaAmy Elsner NEGOTIATION
Darci B CaudyAustraliaXuxue Feng QUALIFIED
Jefferson Z MaletSpainXuxue Feng PROPOSAL
Ivar F NickaSpainAsiya Javayant NEGOTIATION
Misaki A DilliardArgentinaAmy Elsner NEW
David Q WieserUnited KingdomOnyama Limba NEW
Sinclair C AlbaresCanadaIoni Bowcher UNQUALIFIED
Greenwood S VocelkaBrazilStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez C MaletAustraliaAmy Elsner RENEWAL
David Z NestleBrazilStephen Shaw PROPOSAL
Kaitlin D FollerItalyBernardo Dominic RENEWAL
Maisha F RimIndiaAsiya Javayant QUALIFIED
Octavia F StensethRussiaIoni Bowcher RENEWAL
Kaitlin V FlosiJapanIvan Magalhaes NEW
Stacey I DoeArgentinaAmy Elsner NEW
Julie A VenereUnited KingdomAsiya Javayant QUALIFIED
Isabel T WhobreySpainXuxue Feng QUALIFIED
Faith G MarrierArgentinaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin Z MaletArgentina2026-08-04Dorl, James J Esq RENEWAL92Anna Fali
1001Johnson U WieserFrance2026-08-04Truhlar And Truhlar Attys UNQUALIFIED98Asiya Javayant
1002Cody Y SergiGermany2026-08-04Feiner Bros PROPOSAL73Stephen Shaw
1003Greenwood B StockhamIndia2026-08-15Chapman, Ross E Esq UNQUALIFIED98Stephen Shaw
1004Silvio J SaylorsItaly2026-08-19Feiner Bros NEW80Anna Fali
1005Johnson R MaletCanada2026-07-31Dorl, James J Esq PROPOSAL74Ivan Magalhaes
1006Jefferson L FollerAustralia2026-08-20Chemel, James L Cpa NEGOTIATION75Amy Elsner
1007Aditya Q SaylorsArgentina2026-08-10Rousseaux, Michael Esq NEW19Asiya Javayant
1008Kadeem O FlosiArgentina2026-08-17Benton, John B Jr NEGOTIATION15Amy Elsner
1009Izzy I GlickJapan2026-08-16Buckley Miller Wright NEGOTIATION72Amy Elsner
1010Silvio A GarufiItaly2026-08-01Benton, John B Jr PROPOSAL38Anna Fali
1011Chavez B FigeroaUnited Kingdom2026-07-28Chapman, Ross E Esq RENEWAL7Asiya Javayant
1012Ricardo R SchemmerRussia2026-08-11King, Christopher A Esq NEGOTIATION93Elwin Sharvill
1013Cody U GauchoAustralia2026-08-19Morlong Associates NEGOTIATION13Elwin Sharvill
1014Jefferson M OldroydFrance2026-08-13Benton, John B Jr NEGOTIATION28Xuxue Feng
1015Tony B ButtBrazil2026-08-09Benton, John B Jr RENEWAL29Anna Fali
1016Alejandro D WaycottArgentina2026-08-10Feiner Bros NEGOTIATION24Onyama Limba
1017Sinclair Q FlosiGermany2026-08-21Printing Dimensions NEGOTIATION51Onyama Limba
1018Izzy K PaprockiArgentina2026-08-19Chemel, James L Cpa RENEWAL68Stephen Shaw
1019Salvatore O OstroskyArgentina2026-08-08Truhlar And Truhlar Attys QUALIFIED50Xuxue Feng
1020Jones K NestleSpain2026-08-16Chemel, James L Cpa NEGOTIATION75Ivan Magalhaes
1021Cody D WieserCanada2026-08-07Buckley Miller Wright UNQUALIFIED69Amy Elsner
1022Mayumi Y OldroydSpain2026-08-13Feltz Printing Service PROPOSAL80Ivan Magalhaes
1023Costa P RoysterGermany2026-08-21Feltz Printing Service QUALIFIED8Xuxue Feng
1024Johnson X AmigonBrazil2026-08-10Rangoni Of Florence NEGOTIATION80Onyama Limba
1025Aditya C RoysterJapan2026-07-31Chanay, Jeffrey A Esq RENEWAL59Ivan Magalhaes
1026Julie D RimBrazil2026-08-18Printing Dimensions NEW89Elwin Sharvill
1027Faith P NestleArgentina2026-08-10Rousseaux, Michael Esq PROPOSAL10Stephen Shaw
1028Clifford E AlbaresSpain2026-08-10Feltz Printing Service PROPOSAL6Xuxue Feng
1029Cody U CampainFrance2026-08-10Chapman, Ross E Esq PROPOSAL91Bernardo Dominic
1030Maria R PoquetteAustralia2026-08-22Buckley Miller Wright NEW58Xuxue Feng
1031Kadeem E SlusarskiIndia2026-07-26Rangoni Of Florence PROPOSAL24Bernardo Dominic
1032Kaitlin V InouyeSpain2026-08-21Rangoni Of Florence UNQUALIFIED79Bernardo Dominic
1033Isabel W KuskoArgentina2026-08-07Buckley Miller Wright NEW9Ioni Bowcher
1034Darci K CaldareraIndia2026-08-12Rangoni Of Florence PROPOSAL56Ivan Magalhaes
1035Isabel K RoysterGermany2026-08-15Feiner Bros NEW35Stephen Shaw
1036Johnson Z MaletBrazil2026-08-24Chemel, James L Cpa RENEWAL38Elwin Sharvill
1037Adams F CaudyBrazil2026-08-11Printing Dimensions NEGOTIATION45Xuxue Feng
1038Leja F ButtItaly2026-07-27Rangoni Of Florence NEW81Ioni Bowcher
1039Maria H PerinBrazil2026-08-10Feiner Bros UNQUALIFIED18Asiya Javayant
1040Wickens X CaudyCanada2026-08-03Buckley Miller Wright PROPOSAL37Ioni Bowcher
1041Salvatore B NestleIndia2026-08-24Feiner Bros UNQUALIFIED62Anna Fali
1042Costa F SaylorsJapan2026-08-02Truhlar And Truhlar Attys PROPOSAL96Elwin Sharvill
1043Silvio Q MaletUnited Kingdom2026-07-31King, Christopher A Esq RENEWAL22Amy Elsner
1044Ashley J PaprockiRussia2026-08-09Printing Dimensions QUALIFIED87Elwin Sharvill
1045Wickens X BriddickJapan2026-08-23Morlong Associates NEGOTIATION27Bernardo Dominic
1046Stacey M MarrierRussia2026-08-22Dorl, James J Esq RENEWAL51Anna Fali
1047Morrow T RoysterFrance2026-08-21Feiner Bros PROPOSAL33Xuxue Feng
1048Clifford O PaprockiCanada2026-08-20Buckley Miller Wright RENEWAL17Bernardo Dominic
1049Rodrigues S MaletFrance2026-08-06King, Christopher A Esq RENEWAL81Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Smith G KolmetzItalyElwin Sharvill NEGOTIATION
Johnson X MorascaRussiaAsiya Javayant RENEWAL
Misaki M RoysterSpainIoni Bowcher UNQUALIFIED
Johnson U GillianFranceStephen Shaw QUALIFIED
Mayumi W NestleAustraliaXuxue Feng PROPOSAL
Julie Y StockhamItalyAnna Fali QUALIFIED
Octavia O SchemmerBrazilAmy Elsner NEGOTIATION
Misaki H DoeCanadaOnyama Limba UNQUALIFIED
Isabel K ShinkoIndiaElwin Sharvill RENEWAL
Clifford C DoeBrazilStephen Shaw QUALIFIED
Misaki T StensethRussiaBernardo Dominic NEW
Claire I SaylorsArgentinaOnyama Limba PROPOSAL
Leja G IturbideBrazilAnna Fali PROPOSAL
Silvio J PoquetteUnited KingdomBernardo Dominic QUALIFIED
Juan X ChuiBrazilAnna Fali NEGOTIATION
Misaki R ButtUnited KingdomElwin Sharvill RENEWAL
Francesco W FerenczRussiaIvan Magalhaes UNQUALIFIED
Faith P VenereItalyAsiya Javayant PROPOSAL
Jones C VocelkaSpainIoni Bowcher NEW
Emily C MaletGermanyIvan Magalhaes PROPOSAL
Emily K GillianIndiaOnyama Limba QUALIFIED
Leon H DarakjyGermanyAsiya Javayant UNQUALIFIED
Salvatore C BowleyCanadaIvan Magalhaes NEGOTIATION
Chavez E VenereJapanIoni Bowcher PROPOSAL
Smith X NestleBrazilStephen Shaw NEGOTIATION
Antonio A CaudyItalyAmy Elsner QUALIFIED
Arvin Q RutaUnited KingdomXuxue Feng NEGOTIATION
Aruna S MarrierFranceElwin Sharvill UNQUALIFIED
Smith I FerenczGermanyAsiya Javayant UNQUALIFIED
Johnson U CaudyCanadaElwin Sharvill NEW
Greenwood I NickaSpainXuxue Feng NEGOTIATION
Izzy P DarakjyRussiaIvan Magalhaes UNQUALIFIED
Jennifer Q FigeroaArgentinaXuxue Feng NEGOTIATION
Aruna L FollerGermanyAmy Elsner NEGOTIATION
Jefferson W PerinItalyAnna Fali NEGOTIATION
Octavia Y WaycottRussiaAmy Elsner NEW
Jones M MarrierJapanIoni Bowcher PROPOSAL
Smith U RoysterFranceIvan Magalhaes QUALIFIED
Jennifer D OldroydJapanBernardo Dominic PROPOSAL
Costa U CaldareraArgentinaBernardo Dominic UNQUALIFIED
Aika I GarufiItalyXuxue Feng RENEWAL
Octavia T AlbaresFranceAsiya Javayant UNQUALIFIED
Salvatore H RulapaughAustraliaBernardo Dominic NEW
Juan I BriddickSpainBernardo Dominic PROPOSAL
Faith F MaletJapanStephen Shaw NEW
Arvin L InouyeAustraliaIvan Magalhaes QUALIFIED
Ricardo X RimIndiaOnyama Limba QUALIFIED
Deepesh J BowleyUnited KingdomOnyama Limba RENEWAL
Francesco P BowleyItalyOnyama Limba QUALIFIED
Mujtaba P ShinkoUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Leon S Vocelka
Kadeem G Nestle
Salvatore M Albares
Johnson L Ruta
Nicolas C Inouye
Aika Q Flosi
Jennifer H Schemmer
Antonio J Paprocki
Silvio R Oldroyd
Morrow H Shinko
Kadeem G Inouye
Clifford Z Glick
Silvio Q Poquette
Ivar Z Figeroa
Clifford U Sergi
Tony J Nicka
Johnson F Schemmer
Tony N Dilliard
Emily Q Briddick
Ricardo D Ruta
David Z Schemmer
Leja Y Kusko
Jeanfrancois A Glick
Maisha R Foller
Maria E Doe
Nicolas O Flosi
Salvatore V Saylors
Misaki U Nicka
Munro I Stockham
Kadeem K Amigon
Emily T Glick
Arvin S Kolmetz
Murillo B Saylors
Rodrigues K Foller
Alejandro R Marrier
Aika X Kusko
Morrow D Gaucho
Ashley T Ruta
Leon X Butt
Darci Z Malet
Clifford E Shinko
Jennifer K Glick
Aditya L Oldroyd
Maisha Y Nicka
Jefferson X Butt
Jennifer D Foller
Rodrigues C Morasca
Salvatore N Nestle
Adams J Sergi
Misaki N Tollner
IdCountryDate
1000Italy2026-08-15
1001Argentina2026-08-21
1002Italy2026-08-04
1003Brazil2026-08-18
1004India2026-08-07
1005Russia2026-07-28
1006Russia2026-08-18
1007Spain2026-08-08
1008Germany2026-08-13
1009United Kingdom2026-08-05
1010Spain2026-08-15
1011India2026-07-27
1012Australia2026-08-19
1013Brazil2026-08-04
1014Japan2026-08-15
1015United Kingdom2026-07-27
1016Japan2026-08-17
1017Germany2026-08-13
1018Spain2026-08-15
1019Germany2026-08-06
1020Germany2026-08-16
1021Germany2026-07-27
1022Australia2026-07-27
1023India2026-08-15
1024Brazil2026-08-20
1025Spain2026-08-16
1026Brazil2026-08-21
1027Italy2026-08-03
1028Japan2026-08-24
1029Brazil2026-07-29
1030Argentina2026-08-20
1031Germany2026-08-24
1032Canada2026-08-21
1033Brazil2026-08-12
1034United Kingdom2026-08-21
1035United Kingdom2026-08-10
1036India2026-08-21
1037United Kingdom2026-07-27
1038Brazil2026-08-20
1039Argentina2026-08-15
1040Germany2026-08-17
1041Canada2026-08-23
1042Argentina2026-07-26
1043Germany2026-08-09
1044Argentina2026-08-06
1045Australia2026-08-11
1046Canada2026-07-28
1047Brazil2026-07-28
1048Russia2026-08-14
1049Russia2026-07-28

On-Demand Data

NameIdCountryDate
Greenwood S Kolmetz1000Spain2026-08-01
Mujtaba Q Darakjy1001India2026-08-18
Silvio S Kusko1002Brazil2026-08-05
Arvin A Gillian1003Russia2026-08-12
Johnson X Slusarski1004United Kingdom2026-08-21
Izzy G Rulapaugh1005United Kingdom2026-07-26
Maisha D Paprocki1006India2026-07-29
Claire G Darakjy1007Australia2026-08-03
Cody R Caudy1008Canada2026-08-18
Faith M Campain1009Canada2026-08-16
Misaki K Saylors1010Spain2026-08-13
Chavez H Flosi1011India2026-08-05
Leon P Slusarski1012Spain2026-08-09
Tony M Kolmetz1013Australia2026-08-22
Sinclair K Royster1014Brazil2026-08-03
Octavia K Perin1015Japan2026-08-09
Smith C Wieser1016Canada2026-07-26
Izzy Y Garufi1017United Kingdom2026-08-23
Nicolas Y Malet1018Australia2026-08-09
Julie V Kusko1019Japan2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens P ChuiFranceAsiya Javayant QUALIFIED
Emily L DarakjyFranceXuxue Feng PROPOSAL
Morrow A SergiBrazilStephen Shaw NEW
Jennifer G CampainAustraliaElwin Sharvill RENEWAL
Kadeem A ChuiRussiaBernardo Dominic PROPOSAL
Kaitlin R ShinkoUnited KingdomIoni Bowcher PROPOSAL
Morrow R GauchoAustraliaIoni Bowcher UNQUALIFIED
Darci H VocelkaJapanIoni Bowcher NEW
Silvio I SaylorsItalyAnna Fali UNQUALIFIED
Kadeem K CaldareraArgentinaAnna Fali NEW
Aditya V AlbaresJapanStephen Shaw NEGOTIATION
Deepesh H OldroydBrazilStephen Shaw NEGOTIATION
Alejandro Z TollnerRussiaElwin Sharvill RENEWAL
Alejandro T RoysterSpainIvan Magalhaes QUALIFIED
Nicolas J ChuiCanadaAsiya Javayant QUALIFIED
Misaki X RulapaughSpainXuxue Feng PROPOSAL
Costa U GillianUnited KingdomStephen Shaw PROPOSAL
Ivar R OldroydAustraliaStephen Shaw UNQUALIFIED
Mujtaba T ButtArgentinaOnyama Limba QUALIFIED
Greenwood B KolmetzBrazilElwin Sharvill NEGOTIATION
Ivar R OldroydCanadaAsiya Javayant UNQUALIFIED
Wickens T StensethSpainAnna Fali PROPOSAL
James J CaldareraBrazilOnyama Limba PROPOSAL
Aditya M VocelkaItalyElwin Sharvill QUALIFIED
Emily M IturbideRussiaOnyama Limba UNQUALIFIED
Morrow I FigeroaRussiaAmy Elsner PROPOSAL
Greenwood V WhobreyBrazilAmy Elsner UNQUALIFIED
Jeanfrancois A RutaCanadaIvan Magalhaes RENEWAL
Ricardo P OldroydItalyStephen Shaw RENEWAL
Munro L WaycottSpainOnyama Limba RENEWAL
Arvin U VenereRussiaAnna Fali NEW
Alejandro Q WhobreyCanadaOnyama Limba RENEWAL
Salvatore D StensethArgentinaAmy Elsner UNQUALIFIED
Nicolas O DarakjyBrazilOnyama Limba PROPOSAL
Faith I NickaSpainAsiya Javayant QUALIFIED
Isabel D DoeRussiaIvan Magalhaes UNQUALIFIED
Johnson X WieserFranceIvan Magalhaes QUALIFIED
Francesco G InouyeJapanElwin Sharvill QUALIFIED
David O DilliardSpainAsiya Javayant PROPOSAL
Aruna J GillianRussiaXuxue Feng NEGOTIATION

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