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
Rodrigues S NestleCanadaXuxue Feng PROPOSAL
Silvio Q IturbideSpainElwin Sharvill UNQUALIFIED
Faith M PerinSpainXuxue Feng RENEWAL
Leon Z RimArgentinaBernardo Dominic QUALIFIED
Arvin R DilliardIndiaOnyama Limba RENEWAL
Rodrigues W OldroydGermanyIvan Magalhaes PROPOSAL
Greenwood V RutaIndiaAnna Fali UNQUALIFIED
Ashley P TollnerAustraliaStephen Shaw QUALIFIED
Juan H MarrierArgentinaElwin Sharvill QUALIFIED
Deepesh B TollnerJapanOnyama Limba RENEWAL
Jefferson N CampainIndiaIvan Magalhaes RENEWAL
Aika G SlusarskiRussiaOnyama Limba NEW
Aditya P FerenczBrazilAnna Fali NEW
Leja V StockhamIndiaBernardo Dominic NEW
Jefferson X OldroydIndiaIvan Magalhaes QUALIFIED
Juan V VocelkaAustraliaAsiya Javayant NEW
Mujtaba J PerinBrazilAsiya Javayant NEGOTIATION
Kaitlin M MorascaGermanyAnna Fali QUALIFIED
Jones Q VocelkaBrazilXuxue Feng QUALIFIED
Cody A RimItalyIoni Bowcher PROPOSAL
Murillo X NestleUnited KingdomAnna Fali NEW
Jones A CampainAustraliaStephen Shaw NEW
Murillo D SaylorsRussiaAsiya Javayant RENEWAL
Costa B RutaIndiaElwin Sharvill NEW
Isabel S MorascaItalyStephen Shaw PROPOSAL
Claire U KolmetzCanadaElwin Sharvill UNQUALIFIED
Ivar J CaudyRussiaAsiya Javayant RENEWAL
Jones J PaprockiIndiaXuxue Feng NEGOTIATION
Adams R WhobreyItalyStephen Shaw NEW
Aika G SlusarskiItalyElwin Sharvill NEGOTIATION
Emily A SchemmerAustraliaOnyama Limba NEW
Antonio D PerinAustraliaIvan Magalhaes NEGOTIATION
Clifford H BriddickJapanIoni Bowcher NEGOTIATION
Tony I DarakjyItalyElwin Sharvill NEGOTIATION
Jennifer G GlickGermanyIoni Bowcher RENEWAL
Octavia L StockhamRussiaAsiya Javayant QUALIFIED
Misaki O ButtBrazilOnyama Limba RENEWAL
Mayumi K AmigonBrazilOnyama Limba PROPOSAL
Jefferson G FlosiRussiaXuxue Feng QUALIFIED
Emily N MaletAustraliaAsiya Javayant PROPOSAL
Jefferson H DoeFranceOnyama Limba RENEWAL
Aika U AmigonCanadaAmy Elsner NEW
Jeanfrancois O ChuiRussiaAnna Fali QUALIFIED
Silvio D DilliardAustraliaStephen Shaw RENEWAL
Mujtaba R SergiRussiaIoni Bowcher QUALIFIED
Stacey U MorascaSpainAmy Elsner QUALIFIED
Faith M StockhamItalyIoni Bowcher NEW
Darci X InouyeUnited KingdomXuxue Feng PROPOSAL
Tony D DoeItalyStephen Shaw NEGOTIATION
Francesco S FollerIndiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer I SergiAustraliaAsiya Javayant NEW
Sinclair D FerenczSpainAsiya Javayant PROPOSAL
Mayumi N GarufiRussiaAsiya Javayant PROPOSAL
Izzy O OstroskyGermanyStephen Shaw QUALIFIED
Nicolas X StensethArgentinaAsiya Javayant UNQUALIFIED
Juan D SlusarskiFranceAsiya Javayant PROPOSAL
Darci C OldroydItalyAmy Elsner QUALIFIED
Greenwood K NickaArgentinaBernardo Dominic NEGOTIATION
James F DoeIndiaOnyama Limba UNQUALIFIED
Octavia L InouyeSpainIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba D GlickCanada2026-07-12Dorl, James J Esq NEGOTIATION61Amy Elsner
1001Misaki D CaldareraCanada2026-06-29Chemel, James L Cpa PROPOSAL21Ivan Magalhaes
1002Cody S VocelkaBrazil2026-07-24Buckley Miller Wright QUALIFIED21Onyama Limba
1003Darci D WaycottJapan2026-07-09Printing Dimensions NEGOTIATION75Anna Fali
1004Aika N WieserBrazil2026-07-02Dorl, James J Esq RENEWAL90Amy Elsner
1005Ivar E GauchoGermany2026-07-11Morlong Associates PROPOSAL91Amy Elsner
1006Munro N RulapaughRussia2026-07-15Chemel, James L Cpa UNQUALIFIED98Stephen Shaw
1007Julie V ChuiAustralia2026-07-02Truhlar And Truhlar Attys PROPOSAL59Asiya Javayant
1008Morrow B DarakjyCanada2026-07-25Truhlar And Truhlar Attys RENEWAL48Stephen Shaw
1009Chavez J VocelkaJapan2026-07-12Rangoni Of Florence NEW66Elwin Sharvill
1010Aditya K WhobreyFrance2026-07-02Dorl, James J Esq PROPOSAL53Bernardo Dominic
1011Emily K AmigonBrazil2026-07-17Feltz Printing Service UNQUALIFIED25Ivan Magalhaes
1012Nicolas R WieserIndia2026-07-27Chemel, James L Cpa UNQUALIFIED90Amy Elsner
1013Arvin D DoeUnited Kingdom2026-07-18Chapman, Ross E Esq UNQUALIFIED7Asiya Javayant
1014Maria E CaldareraGermany2026-07-01Chanay, Jeffrey A Esq RENEWAL63Elwin Sharvill
1015Octavia F AlbaresAustralia2026-07-01King, Christopher A Esq PROPOSAL26Asiya Javayant
1016Jefferson E RoysterArgentina2026-06-30Chemel, James L Cpa QUALIFIED13Stephen Shaw
1017Nicolas V SchemmerBrazil2026-07-05Chapman, Ross E Esq NEGOTIATION33Ivan Magalhaes
1018Faith G NickaJapan2026-07-17Morlong Associates NEGOTIATION4Asiya Javayant
1019Kaitlin N ChuiSpain2026-07-18Truhlar And Truhlar Attys NEGOTIATION64Stephen Shaw
1020Arvin Z DilliardFrance2026-07-27Truhlar And Truhlar Attys RENEWAL63Ivan Magalhaes
1021Antonio F OldroydJapan2026-07-10Dorl, James J Esq RENEWAL7Amy Elsner
1022Jeanfrancois B StockhamCanada2026-07-25Buckley Miller Wright RENEWAL62Elwin Sharvill
1023Arvin T BowleyItaly2026-06-28Morlong Associates UNQUALIFIED11Elwin Sharvill
1024Silvio J GauchoRussia2026-07-07Feiner Bros NEW15Bernardo Dominic
1025Ashley B GillianGermany2026-07-11Chanay, Jeffrey A Esq RENEWAL27Onyama Limba
1026Stacey X WhobreyBrazil2026-07-17Morlong Associates NEW64Elwin Sharvill
1027Leon W BologniaArgentina2026-07-03Morlong Associates QUALIFIED83Anna Fali
1028Salvatore O RimGermany2026-07-06Printing Dimensions UNQUALIFIED37Xuxue Feng
1029Misaki G SergiAustralia2026-07-06Printing Dimensions RENEWAL32Ioni Bowcher
1030Ashley O OstroskyUnited Kingdom2026-07-23Commercial Press PROPOSAL40Ivan Magalhaes
1031Alejandro J MaletGermany2026-07-21King, Christopher A Esq QUALIFIED69Amy Elsner
1032Wickens H RoysterUnited Kingdom2026-07-25Chemel, James L Cpa QUALIFIED83Anna Fali
1033Cody Y SlusarskiFrance2026-07-23Chanay, Jeffrey A Esq NEGOTIATION22Bernardo Dominic
1034Greenwood E FigeroaJapan2026-06-28Feltz Printing Service QUALIFIED43Stephen Shaw
1035Maria W OstroskyRussia2026-07-27Rangoni Of Florence QUALIFIED84Ivan Magalhaes
1036Johnson Q DoeBrazil2026-07-01King, Christopher A Esq PROPOSAL34Ioni Bowcher
1037Stacey H BriddickGermany2026-07-12Printing Dimensions QUALIFIED14Amy Elsner
1038Francesco A WhobreyRussia2026-06-29Truhlar And Truhlar Attys RENEWAL13Ivan Magalhaes
1039Salvatore W WhobreyRussia2026-07-10Commercial Press UNQUALIFIED75Stephen Shaw
1040Chavez L CampainSpain2026-07-22Morlong Associates NEGOTIATION99Stephen Shaw
1041Leon A FollerAustralia2026-07-14King, Christopher A Esq QUALIFIED62Asiya Javayant
1042Adams I ButtBrazil2026-07-04Buckley Miller Wright UNQUALIFIED14Ioni Bowcher
1043Sinclair T MaletGermany2026-07-14King, Christopher A Esq QUALIFIED53Xuxue Feng
1044Cody Q DarakjyAustralia2026-07-01Chanay, Jeffrey A Esq RENEWAL57Amy Elsner
1045Kaitlin B InouyeBrazil2026-07-21Morlong Associates NEGOTIATION97Amy Elsner
1046Leon I VenereGermany2026-07-12Rangoni Of Florence NEW59Ioni Bowcher
1047Francesco R FerenczArgentina2026-07-05Chapman, Ross E Esq PROPOSAL45Amy Elsner
1048Alejandro J IturbideArgentina2026-07-05Benton, John B Jr NEW6Ivan Magalhaes
1049Murillo Y SlusarskiCanada2026-07-26Printing Dimensions UNQUALIFIED84Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David Y FerenczSpainIvan Magalhaes NEW
Aruna M OldroydUnited KingdomAnna Fali RENEWAL
Alejandro V PaprockiAustraliaAsiya Javayant PROPOSAL
Tony T ButtCanadaAmy Elsner NEW
Francesco Q BowleyItalyIvan Magalhaes QUALIFIED
Smith O KolmetzGermanyIvan Magalhaes RENEWAL
Claire I PoquetteFranceIvan Magalhaes NEGOTIATION
Leja Z AmigonArgentinaOnyama Limba PROPOSAL
Emily F NickaItalyStephen Shaw PROPOSAL
David M GillianArgentinaXuxue Feng PROPOSAL
Sinclair A TollnerSpainBernardo Dominic UNQUALIFIED
Kaitlin Z PerinCanadaIoni Bowcher PROPOSAL
Arvin M DilliardItalyAsiya Javayant NEW
Deepesh I GillianRussiaElwin Sharvill RENEWAL
Claire U GauchoFranceIoni Bowcher UNQUALIFIED
Kadeem Z FollerItalyAmy Elsner UNQUALIFIED
Maisha H MaletGermanyIvan Magalhaes NEGOTIATION
Johnson M AmigonGermanyStephen Shaw UNQUALIFIED
James T MorascaCanadaOnyama Limba UNQUALIFIED
Rodrigues L RoysterCanadaXuxue Feng UNQUALIFIED
Morrow A MacleadIndiaIvan Magalhaes QUALIFIED
Johnson F GarufiSpainElwin Sharvill NEW
Jefferson R BriddickSpainOnyama Limba RENEWAL
Rodrigues Y GauchoUnited KingdomStephen Shaw PROPOSAL
Greenwood Q DarakjyJapanOnyama Limba NEW
Maria W SaylorsSpainElwin Sharvill QUALIFIED
Salvatore J PoquetteSpainXuxue Feng NEW
Francesco A IturbideUnited KingdomXuxue Feng NEW
Izzy L FlosiCanadaAmy Elsner NEW
Faith Z GlickAustraliaAnna Fali RENEWAL
Misaki L SaylorsJapanStephen Shaw UNQUALIFIED
Salvatore Z BriddickIndiaElwin Sharvill NEGOTIATION
Tony Z SaylorsAustraliaBernardo Dominic RENEWAL
Isabel L PaprockiItalyOnyama Limba NEGOTIATION
Mujtaba Y BowleyArgentinaStephen Shaw QUALIFIED
Faith F GlickUnited KingdomOnyama Limba RENEWAL
Cody R BologniaItalyXuxue Feng UNQUALIFIED
Clifford H VocelkaArgentinaXuxue Feng NEGOTIATION
Costa G SchemmerItalyAnna Fali PROPOSAL
Greenwood H BowleyJapanAsiya Javayant NEGOTIATION
Deepesh M GillianCanadaIoni Bowcher NEW
Aika B CaudyGermanyStephen Shaw NEGOTIATION
Juan G SlusarskiCanadaAsiya Javayant NEW
Ashley M GillianIndiaIvan Magalhaes RENEWAL
Francesco B OldroydGermanyAnna Fali NEGOTIATION
Juan S PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Aika U IturbideFranceOnyama Limba PROPOSAL
Costa F FigeroaSpainAmy Elsner NEGOTIATION
Smith J TollnerSpainAmy Elsner NEGOTIATION
Johnson K WhobreyFranceIoni Bowcher PROPOSAL
Frozen Columns
Name
Jefferson L Morasca
Clifford R Royster
Leja G Flosi
Julie O Marrier
David Y Dilliard
Ashley Z Figeroa
Izzy J Foller
David J Butt
Salvatore L Chui
Wickens H Royster
Greenwood O Flosi
James S Dilliard
Leja I Bolognia
Morrow G Morasca
Aditya R Iturbide
Faith L Iturbide
Clifford I Campain
Leja G Iturbide
Silvio H Nicka
Mujtaba I Malet
Maisha C Ruta
Kadeem N Ruta
Deepesh T Kusko
Arvin K Gillian
Jones D Dilliard
Arvin Q Ferencz
Izzy Q Whobrey
Leon Y Venere
Costa O Bolognia
Francesco H Flosi
Mujtaba X Foller
James N Stenseth
Jefferson A Marrier
Stacey D Briddick
Deepesh L Chui
Deepesh S Ferencz
Mujtaba F Rim
Darci W Garufi
Maria Q Oldroyd
Clifford R Schemmer
Sinclair T Ruta
Kadeem Z Poquette
Darci F Gillian
Chavez E Vocelka
Cody O Morasca
Kadeem Y Waycott
Jennifer P Bolognia
Misaki R Sergi
Kadeem E Campain
Costa N Bolognia
IdCountryDate
1000Germany2026-06-28
1001Argentina2026-07-17
1002Japan2026-06-30
1003Australia2026-06-28
1004India2026-07-24
1005United Kingdom2026-07-03
1006France2026-07-18
1007Spain2026-07-21
1008Spain2026-06-29
1009United Kingdom2026-06-30
1010Spain2026-07-07
1011Italy2026-06-30
1012France2026-07-06
1013Spain2026-07-25
1014United Kingdom2026-07-08
1015India2026-07-04
1016France2026-07-03
1017Italy2026-07-01
1018Brazil2026-07-08
1019Italy2026-07-19
1020Japan2026-07-25
1021Germany2026-07-11
1022Russia2026-07-20
1023Argentina2026-07-15
1024United Kingdom2026-07-08
1025France2026-07-25
1026Spain2026-07-12
1027Spain2026-07-23
1028Australia2026-07-01
1029Spain2026-07-19
1030Spain2026-06-30
1031Russia2026-07-24
1032India2026-07-12
1033Germany2026-07-11
1034Argentina2026-07-21
1035India2026-07-21
1036India2026-06-30
1037Spain2026-07-02
1038Argentina2026-07-10
1039Spain2026-07-19
1040United Kingdom2026-07-24
1041India2026-07-04
1042France2026-07-17
1043Australia2026-07-15
1044Japan2026-07-18
1045Spain2026-07-24
1046Argentina2026-07-19
1047Brazil2026-07-13
1048Australia2026-07-01
1049Spain2026-07-17

On-Demand Data

NameIdCountryDate
Jefferson R Caldarera1000Argentina2026-06-28
Jeanfrancois M Inouye1001Italy2026-07-21
Aditya P Albares1002Italy2026-07-10
Salvatore A Whobrey1003United Kingdom2026-07-15
Murillo A Rulapaugh1004United Kingdom2026-07-08
Aruna K Vocelka1005Argentina2026-07-26
Ricardo E Bolognia1006Italy2026-07-21
Morrow N Schemmer1007France2026-07-07
Sinclair G Nestle1008Argentina2026-07-12
Aruna B Garufi1009France2026-07-07
Faith W Wieser1010India2026-07-10
Antonio D Foller1011United Kingdom2026-07-25
James K Ostrosky1012Germany2026-07-19
James Y Tollner1013Australia2026-07-23
Sinclair W Schemmer1014Germany2026-07-03
Julie U Flosi1015Russia2026-07-06
Jeanfrancois J Iturbide1016Japan2026-07-25
Costa S Rim1017Japan2026-07-15
Tony J Paprocki1018Italy2026-07-17
Isabel F Royster1019Japan2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie X AlbaresItalyIoni Bowcher NEW
Morrow G RoysterJapanStephen Shaw PROPOSAL
Jones T FerenczRussiaElwin Sharvill NEGOTIATION
Stacey V SergiIndiaStephen Shaw QUALIFIED
Costa K DarakjyArgentinaAnna Fali UNQUALIFIED
Munro X CampainItalyOnyama Limba NEGOTIATION
Silvio J MacleadJapanOnyama Limba PROPOSAL
Greenwood M BriddickAustraliaIoni Bowcher NEW
Stacey E ShinkoAustraliaAsiya Javayant RENEWAL
Morrow V GarufiItalyAnna Fali NEW
Maria N FlosiGermanyIvan Magalhaes RENEWAL
Adams I VocelkaAustraliaIvan Magalhaes QUALIFIED
Murillo V WaycottJapanIvan Magalhaes PROPOSAL
James F ShinkoRussiaIvan Magalhaes NEW
Aika W PerinCanadaXuxue Feng UNQUALIFIED
Julie C OldroydItalyAsiya Javayant NEGOTIATION
Rodrigues O IturbideFranceBernardo Dominic PROPOSAL
Aditya J DoeArgentinaAsiya Javayant QUALIFIED
Darci U CampainIndiaElwin Sharvill NEW
Izzy B ShinkoRussiaXuxue Feng UNQUALIFIED
Darci C KuskoUnited KingdomAmy Elsner NEW
Aruna P FollerCanadaAsiya Javayant RENEWAL
Rodrigues C CaudyBrazilBernardo Dominic PROPOSAL
Jones H GlickArgentinaAnna Fali UNQUALIFIED
Clifford W BriddickRussiaAsiya Javayant RENEWAL
Wickens Z VenereIndiaAmy Elsner NEGOTIATION
Ricardo B PaprockiSpainAmy Elsner UNQUALIFIED
Maisha E AmigonGermanyBernardo Dominic QUALIFIED
David L WieserAustraliaAsiya Javayant UNQUALIFIED
Salvatore B PaprockiSpainOnyama Limba NEGOTIATION
Ivar M CaldareraAustraliaAmy Elsner NEW
Mayumi V SergiRussiaXuxue Feng PROPOSAL
Octavia N PoquetteSpainOnyama Limba QUALIFIED
Misaki T DoeGermanyStephen Shaw PROPOSAL
Johnson Q OldroydBrazilIoni Bowcher PROPOSAL
James B BowleyFranceBernardo Dominic UNQUALIFIED
Jeanfrancois L WieserGermanyAnna Fali QUALIFIED
Aika I AmigonJapanAmy Elsner NEGOTIATION
Stacey Q FollerSpainAmy Elsner UNQUALIFIED
David B OstroskyFranceIvan Magalhaes 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>