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
Ashley V PerinItalyAsiya Javayant QUALIFIED
Francesco M NestleItalyXuxue Feng NEGOTIATION
Isabel H RutaGermanyAsiya Javayant UNQUALIFIED
Darci M MaletBrazilOnyama Limba PROPOSAL
Ricardo W GlickBrazilBernardo Dominic QUALIFIED
Claire B OstroskyAustraliaXuxue Feng NEW
Arvin K FlosiBrazilIoni Bowcher RENEWAL
Costa Q DoeAustraliaAmy Elsner NEGOTIATION
Munro K TollnerGermanyAsiya Javayant NEGOTIATION
Alejandro N MorascaGermanyAnna Fali NEW
Julie F RutaJapanAmy Elsner NEW
Antonio K FigeroaItalyStephen Shaw PROPOSAL
Rodrigues D KuskoCanadaAmy Elsner QUALIFIED
Kadeem Q GillianRussiaOnyama Limba RENEWAL
Sinclair Q StensethRussiaBernardo Dominic PROPOSAL
Smith C VenereRussiaAnna Fali NEGOTIATION
Murillo D CampainJapanXuxue Feng QUALIFIED
Morrow E SergiRussiaOnyama Limba PROPOSAL
Mujtaba N GarufiCanadaIvan Magalhaes NEW
Isabel Z GauchoArgentinaAnna Fali UNQUALIFIED
Isabel O AlbaresIndiaIoni Bowcher NEW
Wickens M FollerIndiaBernardo Dominic QUALIFIED
Leon T FigeroaAustraliaElwin Sharvill UNQUALIFIED
David G RoysterArgentinaAsiya Javayant PROPOSAL
Silvio H RimFranceAmy Elsner NEW
Antonio Q StockhamIndiaIvan Magalhaes QUALIFIED
James J GauchoIndiaAnna Fali RENEWAL
Mujtaba C FlosiSpainOnyama Limba NEGOTIATION
Silvio E SlusarskiJapanIoni Bowcher RENEWAL
Aika A BowleyJapanXuxue Feng RENEWAL
Deepesh Y FlosiCanadaIvan Magalhaes UNQUALIFIED
Costa B OldroydGermanyElwin Sharvill UNQUALIFIED
Munro Z PoquetteItalyStephen Shaw RENEWAL
Claire S CaldareraFranceXuxue Feng NEW
Isabel B KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Johnson Q TollnerBrazilIoni Bowcher PROPOSAL
Maria X CampainItalyIoni Bowcher UNQUALIFIED
Johnson P FigeroaAustraliaAnna Fali RENEWAL
Claire O GarufiFranceXuxue Feng NEGOTIATION
Stacey F SergiIndiaStephen Shaw RENEWAL
Kadeem G FollerUnited KingdomStephen Shaw RENEWAL
Aruna Y VocelkaSpainBernardo Dominic QUALIFIED
Leon B AmigonIndiaStephen Shaw RENEWAL
Mayumi N MacleadUnited KingdomXuxue Feng NEW
Kadeem M KolmetzFranceXuxue Feng NEGOTIATION
Smith J PerinRussiaOnyama Limba PROPOSAL
Stacey D StensethRussiaAnna Fali RENEWAL
Salvatore K ChuiBrazilIoni Bowcher UNQUALIFIED
Munro Y MaletUnited KingdomOnyama Limba QUALIFIED
Silvio Z WhobreyGermanyAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood E MorascaItalyOnyama Limba UNQUALIFIED
Silvio Q GlickBrazilElwin Sharvill QUALIFIED
Claire W CampainJapanElwin Sharvill RENEWAL
Chavez G SergiSpainAsiya Javayant PROPOSAL
Silvio Q WieserUnited KingdomAnna Fali NEW
Octavia T IturbideJapanAsiya Javayant QUALIFIED
Nicolas E RimCanadaElwin Sharvill RENEWAL
Chavez B StensethCanadaElwin Sharvill RENEWAL
Claire C ButtUnited KingdomIvan Magalhaes NEGOTIATION
Adams Y BriddickIndiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria K AlbaresAustralia2026-08-05Chapman, Ross E Esq QUALIFIED42Asiya Javayant
1001Francesco Y MacleadGermany2026-08-11Printing Dimensions NEGOTIATION57Stephen Shaw
1002Ashley J RutaSpain2026-07-25Rousseaux, Michael Esq QUALIFIED92Anna Fali
1003Jones R FollerFrance2026-08-04Dorl, James J Esq UNQUALIFIED9Ivan Magalhaes
1004Sinclair K AmigonCanada2026-07-24Chemel, James L Cpa NEGOTIATION22Amy Elsner
1005Juan T SergiBrazil2026-08-02Printing Dimensions UNQUALIFIED16Stephen Shaw
1006Octavia M SchemmerCanada2026-07-16Chapman, Ross E Esq QUALIFIED49Anna Fali
1007Cody A TollnerUnited Kingdom2026-08-11King, Christopher A Esq QUALIFIED41Asiya Javayant
1008Cody I ButtSpain2026-07-28Feiner Bros NEGOTIATION16Ioni Bowcher
1009Leja E NestleBrazil2026-07-18Feltz Printing Service UNQUALIFIED50Onyama Limba
1010Kadeem O FollerFrance2026-08-12Commercial Press NEW26Onyama Limba
1011Alejandro S MorascaCanada2026-07-23Chemel, James L Cpa QUALIFIED90Xuxue Feng
1012Leja X FerenczBrazil2026-08-04Benton, John B Jr NEW42Anna Fali
1013Silvio T NestleSpain2026-07-23Benton, John B Jr RENEWAL71Bernardo Dominic
1014Aditya P SlusarskiCanada2026-08-11Chapman, Ross E Esq PROPOSAL3Stephen Shaw
1015Nicolas X AmigonGermany2026-07-19Chapman, Ross E Esq RENEWAL74Anna Fali
1016Jones C BowleyFrance2026-08-11Chapman, Ross E Esq NEGOTIATION3Ioni Bowcher
1017Munro P NickaJapan2026-08-09King, Christopher A Esq UNQUALIFIED22Stephen Shaw
1018Greenwood X RoysterFrance2026-08-08Truhlar And Truhlar Attys QUALIFIED97Stephen Shaw
1019Jennifer F NickaArgentina2026-08-11Commercial Press RENEWAL23Elwin Sharvill
1020Nicolas U RutaFrance2026-07-19Printing Dimensions RENEWAL92Onyama Limba
1021Silvio I FerenczUnited Kingdom2026-07-21Feiner Bros UNQUALIFIED40Asiya Javayant
1022Faith X BowleyIndia2026-07-18Printing Dimensions PROPOSAL12Ivan Magalhaes
1023Aruna G GarufiArgentina2026-07-16Feiner Bros UNQUALIFIED92Anna Fali
1024Kadeem H PoquetteGermany2026-08-03Dorl, James J Esq PROPOSAL89Ioni Bowcher
1025Mayumi X WhobreyGermany2026-07-24Chapman, Ross E Esq RENEWAL52Stephen Shaw
1026Ashley K WaycottBrazil2026-08-11King, Christopher A Esq UNQUALIFIED20Onyama Limba
1027Izzy O WieserUnited Kingdom2026-07-23Chapman, Ross E Esq UNQUALIFIED47Onyama Limba
1028Darci H MacleadJapan2026-08-01Dorl, James J Esq PROPOSAL8Amy Elsner
1029Ivar Q InouyeItaly2026-07-23Feltz Printing Service NEW37Ivan Magalhaes
1030Johnson R KuskoCanada2026-08-13Chapman, Ross E Esq RENEWAL98Amy Elsner
1031Ricardo T DilliardBrazil2026-07-20Chapman, Ross E Esq NEGOTIATION30Stephen Shaw
1032Antonio G DarakjyGermany2026-07-31Chemel, James L Cpa PROPOSAL17Amy Elsner
1033Nicolas Z DilliardCanada2026-07-24Feiner Bros NEGOTIATION78Asiya Javayant
1034Maisha W MorascaGermany2026-07-22Morlong Associates QUALIFIED28Onyama Limba
1035Darci N SlusarskiBrazil2026-08-03Printing Dimensions NEW55Ioni Bowcher
1036Octavia O StockhamArgentina2026-08-13Chapman, Ross E Esq UNQUALIFIED34Amy Elsner
1037Chavez Z CaudyUnited Kingdom2026-08-11Morlong Associates NEW26Anna Fali
1038Isabel U VocelkaCanada2026-07-29Dorl, James J Esq NEGOTIATION91Bernardo Dominic
1039Murillo R RoysterJapan2026-07-20Dorl, James J Esq QUALIFIED93Onyama Limba
1040Jefferson M RutaCanada2026-07-17Feiner Bros QUALIFIED6Ivan Magalhaes
1041Maisha N VocelkaItaly2026-08-03Chemel, James L Cpa PROPOSAL53Ivan Magalhaes
1042Ricardo Z GillianGermany2026-07-17Truhlar And Truhlar Attys NEW93Stephen Shaw
1043Chavez V MaletSpain2026-07-30Chanay, Jeffrey A Esq NEW75Ivan Magalhaes
1044Claire J SergiUnited Kingdom2026-07-28Benton, John B Jr UNQUALIFIED48Ioni Bowcher
1045David H CaldareraUnited Kingdom2026-08-05Printing Dimensions NEW20Stephen Shaw
1046Mujtaba J SaylorsFrance2026-07-31Commercial Press NEW99Anna Fali
1047Wickens T OstroskyGermany2026-07-30Feltz Printing Service QUALIFIED39Onyama Limba
1048Jefferson N RimUnited Kingdom2026-07-31Commercial Press RENEWAL63Asiya Javayant
1049Claire I CaldareraCanada2026-07-29Chapman, Ross E Esq PROPOSAL51Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Tony Y DilliardCanadaXuxue Feng NEGOTIATION
Isabel R MaletArgentinaAsiya Javayant NEGOTIATION
Claire L StensethGermanyXuxue Feng QUALIFIED
Darci A MaletRussiaIoni Bowcher PROPOSAL
Clifford U VocelkaRussiaXuxue Feng UNQUALIFIED
James T MarrierFranceAnna Fali RENEWAL
Clifford X KolmetzIndiaBernardo Dominic UNQUALIFIED
Arvin L OldroydBrazilXuxue Feng RENEWAL
Salvatore X SlusarskiJapanAnna Fali RENEWAL
Arvin W GillianJapanIvan Magalhaes NEW
Faith I PoquetteIndiaBernardo Dominic NEGOTIATION
Johnson C MaletIndiaBernardo Dominic QUALIFIED
Aditya U PerinArgentinaAsiya Javayant QUALIFIED
Silvio N OstroskyJapanXuxue Feng NEW
Claire J NickaRussiaAsiya Javayant NEW
Julie O OldroydItalyIvan Magalhaes NEGOTIATION
Antonio X RoysterBrazilAnna Fali PROPOSAL
Leja A ShinkoCanadaAnna Fali PROPOSAL
Murillo X MaletItalyBernardo Dominic PROPOSAL
Adams A KolmetzUnited KingdomAnna Fali NEGOTIATION
Mayumi X StockhamItalyIoni Bowcher NEGOTIATION
Silvio Q MaletSpainStephen Shaw RENEWAL
Morrow S MorascaArgentinaBernardo Dominic NEW
Kaitlin U StensethJapanAmy Elsner PROPOSAL
Clifford S GillianSpainBernardo Dominic NEW
Costa B TollnerArgentinaAsiya Javayant PROPOSAL
Kadeem S CampainArgentinaStephen Shaw UNQUALIFIED
Ricardo X BriddickFranceIvan Magalhaes NEW
Faith T KolmetzFranceAnna Fali UNQUALIFIED
Izzy U GlickSpainBernardo Dominic NEW
Munro B FigeroaJapanAsiya Javayant NEW
Claire P OstroskyFranceXuxue Feng PROPOSAL
Maria F VenereCanadaBernardo Dominic NEGOTIATION
Salvatore Z InouyeIndiaIoni Bowcher PROPOSAL
Misaki Q CaudyCanadaStephen Shaw UNQUALIFIED
Arvin Z PoquetteFranceElwin Sharvill UNQUALIFIED
Jefferson L RulapaughArgentinaXuxue Feng RENEWAL
Deepesh K OldroydIndiaIvan Magalhaes RENEWAL
Costa F NickaJapanXuxue Feng PROPOSAL
Jefferson L IturbideIndiaOnyama Limba NEW
Ricardo P ButtItalyAmy Elsner QUALIFIED
Smith M KuskoItalyAsiya Javayant NEGOTIATION
Leja C RulapaughJapanStephen Shaw PROPOSAL
Octavia B OldroydItalyAsiya Javayant UNQUALIFIED
Ricardo Z MarrierItalyAsiya Javayant PROPOSAL
Morrow G WaycottAustraliaOnyama Limba PROPOSAL
Leon I RutaAustraliaAsiya Javayant UNQUALIFIED
Jennifer B NickaAustraliaElwin Sharvill NEGOTIATION
Leon X AmigonItalyElwin Sharvill NEGOTIATION
Murillo S DarakjyUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Wickens A Kolmetz
Sinclair C Garufi
Emily P Garufi
Smith T Gillian
Aruna F Oldroyd
David H Dilliard
Aditya D Figeroa
Johnson D Caldarera
Maisha F Royster
Julie X Wieser
Tony G Amigon
Clifford W Nestle
Jefferson N Schemmer
Greenwood G Garufi
Julie V Caudy
Salvatore K Whobrey
Aruna C Nestle
Isabel C Foller
Deepesh O Marrier
Nicolas O Garufi
Leon Y Darakjy
Misaki N Campain
Sinclair L Stockham
Munro E Ferencz
Munro M Glick
Jefferson A Ruta
Munro G Paprocki
Deepesh F Kusko
Stacey D Doe
Francesco D Amigon
Mujtaba D Stenseth
Jefferson D Bolognia
Octavia Y Stenseth
Smith B Caldarera
Leja S Royster
Stacey L Darakjy
Julie X Campain
Alejandro R Bowley
Ashley F Briddick
Jeanfrancois Q Ostrosky
Costa Q Gaucho
Munro X Gaucho
Morrow N Darakjy
Maisha V Flosi
Jefferson W Waycott
Leja E Vocelka
Smith P Chui
Mujtaba B Caudy
Aruna F Marrier
Rodrigues M Nestle
IdCountryDate
1000Japan2026-08-09
1001Canada2026-08-03
1002Brazil2026-07-24
1003United Kingdom2026-08-04
1004Brazil2026-08-01
1005Russia2026-08-01
1006Italy2026-08-12
1007Canada2026-07-26
1008Australia2026-07-25
1009India2026-07-22
1010Japan2026-07-28
1011Canada2026-07-29
1012Canada2026-08-14
1013Australia2026-07-29
1014Spain2026-07-19
1015Spain2026-07-28
1016Japan2026-07-20
1017Italy2026-07-18
1018Canada2026-07-18
1019India2026-08-02
1020Germany2026-07-26
1021Russia2026-07-26
1022Germany2026-08-06
1023Japan2026-07-25
1024Russia2026-08-02
1025Brazil2026-07-20
1026Spain2026-07-26
1027United Kingdom2026-08-11
1028France2026-08-09
1029Brazil2026-08-01
1030Spain2026-07-19
1031Canada2026-07-27
1032Canada2026-08-10
1033Japan2026-08-01
1034Spain2026-07-16
1035Spain2026-07-29
1036Russia2026-07-21
1037Canada2026-07-20
1038Spain2026-07-19
1039Argentina2026-08-08
1040Spain2026-08-09
1041India2026-07-27
1042Argentina2026-07-30
1043Brazil2026-07-25
1044France2026-07-30
1045Russia2026-07-17
1046Canada2026-07-30
1047Canada2026-07-25
1048Argentina2026-07-19
1049Japan2026-07-19

On-Demand Data

NameIdCountryDate
Darci W Ruta1000Japan2026-08-13
Kadeem O Garufi1001Russia2026-08-04
Mujtaba S Doe1002India2026-08-14
Emily O Waycott1003France2026-07-20
Adams O Tollner1004United Kingdom2026-08-03
Emily G Ostrosky1005United Kingdom2026-08-09
Ricardo K Iturbide1006Australia2026-07-22
Emily N Rim1007Australia2026-07-31
Murillo X Marrier1008India2026-07-20
Jeanfrancois I Butt1009India2026-08-09
Jefferson T Saylors1010Russia2026-08-13
Murillo V Inouye1011Brazil2026-08-03
Murillo N Stenseth1012Argentina2026-07-23
Francesco D Albares1013Japan2026-08-14
Greenwood F Tollner1014India2026-07-24
Antonio F Stockham1015Italy2026-08-14
Deepesh N Poquette1016Australia2026-07-25
Sinclair Q Campain1017United Kingdom2026-07-18
Munro W Schemmer1018Brazil2026-07-28
Octavia N Stenseth1019Italy2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley G KuskoRussiaIoni Bowcher QUALIFIED
Aditya G StockhamBrazilAnna Fali QUALIFIED
Misaki L MaletUnited KingdomAnna Fali UNQUALIFIED
Misaki C PaprockiFranceBernardo Dominic QUALIFIED
Ricardo Y TollnerAustraliaXuxue Feng QUALIFIED
Jefferson G DoeFranceIvan Magalhaes UNQUALIFIED
Cody H BologniaCanadaBernardo Dominic UNQUALIFIED
Claire H ButtIndiaIvan Magalhaes PROPOSAL
Adams T OldroydItalyOnyama Limba NEGOTIATION
Ivar X AmigonRussiaIoni Bowcher QUALIFIED
Cody L RutaFranceAnna Fali RENEWAL
Arvin H GauchoRussiaAnna Fali NEGOTIATION
Antonio D GarufiJapanOnyama Limba RENEWAL
Alejandro S IturbideIndiaXuxue Feng NEW
Antonio S SlusarskiAustraliaAmy Elsner UNQUALIFIED
Francesco Q IturbideUnited KingdomIvan Magalhaes PROPOSAL
Chavez S TollnerJapanAsiya Javayant NEW
Murillo M MarrierRussiaIvan Magalhaes NEW
Emily Y KolmetzBrazilOnyama Limba NEGOTIATION
Rodrigues I NestleAustraliaAsiya Javayant UNQUALIFIED
Claire C FlosiJapanAsiya Javayant NEW
Cody Q SchemmerJapanIoni Bowcher NEGOTIATION
David I DarakjyArgentinaAmy Elsner UNQUALIFIED
Deepesh W SergiItalyXuxue Feng NEGOTIATION
David R PaprockiCanadaIvan Magalhaes RENEWAL
Kadeem D TollnerUnited KingdomIvan Magalhaes PROPOSAL
Julie O BologniaFranceElwin Sharvill NEW
Morrow N VocelkaCanadaIoni Bowcher PROPOSAL
Deepesh J MacleadSpainStephen Shaw PROPOSAL
Claire I AmigonArgentinaAsiya Javayant UNQUALIFIED
Wickens U FigeroaItalyBernardo Dominic NEGOTIATION
Emily J GillianFranceElwin Sharvill UNQUALIFIED
Faith K GillianCanadaXuxue Feng NEW
Rodrigues R BowleyBrazilElwin Sharvill RENEWAL
James M WieserArgentinaAnna Fali NEW
Wickens H ShinkoJapanStephen Shaw UNQUALIFIED
Greenwood X GillianRussiaXuxue Feng NEW
Arvin D SlusarskiAustraliaAsiya Javayant RENEWAL
Costa W NestleAustraliaElwin Sharvill UNQUALIFIED
Cody R MaletJapanOnyama Limba 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>