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 H MaletAustraliaElwin Sharvill PROPOSAL
Jones I GlickItalyXuxue Feng UNQUALIFIED
Isabel I OldroydArgentinaIvan Magalhaes QUALIFIED
Johnson X PerinFranceOnyama Limba PROPOSAL
Antonio N MarrierJapanElwin Sharvill QUALIFIED
Maisha N RutaAustraliaIoni Bowcher UNQUALIFIED
Greenwood R RulapaughCanadaIvan Magalhaes NEW
Leja G WaycottSpainIoni Bowcher PROPOSAL
Jeanfrancois L FlosiRussiaBernardo Dominic NEGOTIATION
Maisha W BriddickIndiaOnyama Limba NEW
Silvio D StockhamFranceAnna Fali QUALIFIED
Stacey F SchemmerArgentinaAsiya Javayant UNQUALIFIED
Arvin X MorascaFranceAmy Elsner NEGOTIATION
Stacey X BriddickSpainAnna Fali UNQUALIFIED
Tony N NestleFranceAmy Elsner QUALIFIED
Rodrigues G CaldareraBrazilOnyama Limba NEGOTIATION
Claire T KolmetzSpainStephen Shaw NEGOTIATION
Mayumi O GarufiBrazilBernardo Dominic UNQUALIFIED
Emily I WhobreyAustraliaXuxue Feng RENEWAL
Leon P CampainArgentinaIvan Magalhaes NEGOTIATION
Costa F MacleadBrazilStephen Shaw UNQUALIFIED
Sinclair E AmigonCanadaAsiya Javayant NEGOTIATION
Octavia M BriddickItalyBernardo Dominic NEGOTIATION
Cody O BowleyRussiaElwin Sharvill RENEWAL
Misaki Z SchemmerBrazilIoni Bowcher QUALIFIED
Jones O ChuiGermanyIoni Bowcher RENEWAL
Murillo E KuskoBrazilAmy Elsner NEW
Faith T FlosiUnited KingdomStephen Shaw NEGOTIATION
Mayumi R MarrierItalyIvan Magalhaes QUALIFIED
Aditya B SchemmerArgentinaOnyama Limba NEW
Alejandro U GlickGermanyIvan Magalhaes RENEWAL
Jefferson E AmigonRussiaXuxue Feng NEW
Costa S IturbideGermanyOnyama Limba RENEWAL
Leja W MarrierBrazilIoni Bowcher QUALIFIED
Jennifer Y StensethJapanOnyama Limba PROPOSAL
Izzy D GarufiUnited KingdomAmy Elsner NEW
Alejandro Z SergiSpainElwin Sharvill RENEWAL
Emily N FollerIndiaIvan Magalhaes UNQUALIFIED
Salvatore K MorascaFranceElwin Sharvill NEW
Rodrigues L CaldareraCanadaAsiya Javayant QUALIFIED
Cody Q FollerCanadaIvan Magalhaes PROPOSAL
Jones E GlickRussiaBernardo Dominic NEW
Adams J TollnerRussiaStephen Shaw QUALIFIED
Salvatore F ChuiCanadaStephen Shaw RENEWAL
Claire V IturbideFranceXuxue Feng RENEWAL
Arvin L RutaJapanAmy Elsner RENEWAL
Morrow Q PaprockiRussiaXuxue Feng UNQUALIFIED
Chavez F BologniaItalyAmy Elsner RENEWAL
Juan B GlickRussiaAmy Elsner QUALIFIED
Kaitlin D AmigonRussiaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer I RoysterItalyAsiya Javayant RENEWAL
Maisha A OstroskySpainStephen Shaw UNQUALIFIED
Claire G SergiBrazilStephen Shaw QUALIFIED
Stacey V RutaArgentinaAmy Elsner NEW
David I CaudyIndiaAmy Elsner NEGOTIATION
Murillo U VocelkaBrazilOnyama Limba NEGOTIATION
Adams L RutaSpainElwin Sharvill NEGOTIATION
Isabel U OldroydBrazilAsiya Javayant PROPOSAL
Munro O ShinkoAustraliaOnyama Limba RENEWAL
Cody D WaycottCanadaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James I MorascaGermany2026-06-26Chemel, James L Cpa RENEWAL2Elwin Sharvill
1001Leja Z GauchoBrazil2026-06-28Feltz Printing Service RENEWAL73Onyama Limba
1002Isabel O ChuiAustralia2026-07-01Chanay, Jeffrey A Esq PROPOSAL47Asiya Javayant
1003Arvin U MaletCanada2026-07-14Chapman, Ross E Esq UNQUALIFIED23Onyama Limba
1004Arvin H KuskoJapan2026-07-05Dorl, James J Esq NEGOTIATION41Elwin Sharvill
1005Aruna D ShinkoIndia2026-07-20Buckley Miller Wright NEW46Asiya Javayant
1006Jones W OldroydBrazil2026-07-14Commercial Press RENEWAL87Ioni Bowcher
1007Leon M ChuiJapan2026-07-05Dorl, James J Esq UNQUALIFIED17Elwin Sharvill
1008Johnson U MaletGermany2026-06-28Morlong Associates RENEWAL59Ivan Magalhaes
1009Maisha N SergiSpain2026-07-01Chanay, Jeffrey A Esq NEW24Stephen Shaw
1010Juan W NestleAustralia2026-07-03Chapman, Ross E Esq PROPOSAL37Xuxue Feng
1011Clifford V SaylorsItaly2026-06-25Buckley Miller Wright NEGOTIATION15Asiya Javayant
1012Chavez F AlbaresGermany2026-07-07Feltz Printing Service RENEWAL46Ioni Bowcher
1013Darci R StensethCanada2026-07-19Feiner Bros NEGOTIATION40Xuxue Feng
1014Faith U GlickArgentina2026-07-16Rangoni Of Florence RENEWAL22Amy Elsner
1015Kadeem N ChuiFrance2026-07-01Morlong Associates UNQUALIFIED29Onyama Limba
1016James J BologniaJapan2026-07-12Chemel, James L Cpa PROPOSAL7Ioni Bowcher
1017Leja R OldroydSpain2026-07-06Rangoni Of Florence NEGOTIATION5Bernardo Dominic
1018Izzy V DarakjyAustralia2026-06-30Buckley Miller Wright UNQUALIFIED10Anna Fali
1019Stacey G StensethBrazil2026-07-02Printing Dimensions NEGOTIATION7Amy Elsner
1020Clifford U SchemmerIndia2026-07-02Rousseaux, Michael Esq PROPOSAL72Bernardo Dominic
1021Mujtaba V TollnerArgentina2026-07-15Feiner Bros NEW54Amy Elsner
1022Isabel W VocelkaRussia2026-07-21Rousseaux, Michael Esq PROPOSAL8Ioni Bowcher
1023Maria O MorascaItaly2026-07-14Benton, John B Jr NEW4Anna Fali
1024Cody E SchemmerJapan2026-07-02Morlong Associates RENEWAL19Amy Elsner
1025Cody G OldroydSpain2026-06-23Buckley Miller Wright NEW17Bernardo Dominic
1026Faith K InouyeAustralia2026-07-05Commercial Press QUALIFIED83Onyama Limba
1027Adams C RulapaughFrance2026-07-10Chanay, Jeffrey A Esq NEGOTIATION6Elwin Sharvill
1028Ashley A GarufiArgentina2026-06-29Chanay, Jeffrey A Esq QUALIFIED70Bernardo Dominic
1029Leja X AlbaresUnited Kingdom2026-07-17Morlong Associates QUALIFIED36Ioni Bowcher
1030Izzy H TollnerAustralia2026-06-25Morlong Associates NEW61Amy Elsner
1031Stacey K WhobreyBrazil2026-07-18King, Christopher A Esq RENEWAL14Onyama Limba
1032Claire K MacleadSpain2026-06-27Truhlar And Truhlar Attys UNQUALIFIED78Onyama Limba
1033Chavez L BowleyCanada2026-07-13Printing Dimensions NEW85Onyama Limba
1034Leja W MarrierJapan2026-07-13Morlong Associates RENEWAL20Bernardo Dominic
1035Murillo H ShinkoItaly2026-07-05Chemel, James L Cpa QUALIFIED87Asiya Javayant
1036Julie B ChuiJapan2026-07-21Feiner Bros UNQUALIFIED27Stephen Shaw
1037Aditya R DarakjyGermany2026-07-02Rangoni Of Florence UNQUALIFIED97Ivan Magalhaes
1038Maisha D DilliardAustralia2026-07-15Commercial Press PROPOSAL12Ioni Bowcher
1039Chavez Q BowleyBrazil2026-06-25Chemel, James L Cpa UNQUALIFIED32Ioni Bowcher
1040Morrow K InouyeRussia2026-07-15Rousseaux, Michael Esq UNQUALIFIED62Elwin Sharvill
1041Greenwood P RimFrance2026-06-29Chanay, Jeffrey A Esq QUALIFIED64Anna Fali
1042Sinclair R NestleFrance2026-07-02Chemel, James L Cpa PROPOSAL61Elwin Sharvill
1043Wickens F WhobreyBrazil2026-07-11Feltz Printing Service NEW90Ioni Bowcher
1044Clifford A WhobreyIndia2026-07-10Dorl, James J Esq NEGOTIATION10Bernardo Dominic
1045Sinclair I PoquetteFrance2026-07-05Rangoni Of Florence NEGOTIATION36Bernardo Dominic
1046Ricardo T RutaSpain2026-07-13Feiner Bros NEGOTIATION32Ioni Bowcher
1047Smith J FigeroaJapan2026-06-30Benton, John B Jr RENEWAL55Anna Fali
1048Cody X TollnerArgentina2026-07-17Dorl, James J Esq NEW33Bernardo Dominic
1049Smith H FlosiFrance2026-07-06Rangoni Of Florence NEW11Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson E MaletCanadaIvan Magalhaes NEGOTIATION
Ivar D FlosiUnited KingdomBernardo Dominic NEGOTIATION
Ivar T RutaRussiaAsiya Javayant NEW
Leja L DarakjyItalyBernardo Dominic PROPOSAL
Jones E CaudyIndiaIvan Magalhaes PROPOSAL
Kaitlin H BowleyAustraliaElwin Sharvill RENEWAL
Julie V BriddickGermanyStephen Shaw UNQUALIFIED
Emily B DilliardIndiaStephen Shaw PROPOSAL
Kadeem G VenereSpainStephen Shaw RENEWAL
Mayumi N AmigonFranceIoni Bowcher UNQUALIFIED
Claire L PaprockiJapanStephen Shaw NEGOTIATION
Arvin U AmigonUnited KingdomOnyama Limba UNQUALIFIED
Smith P DilliardGermanyIoni Bowcher QUALIFIED
Francesco K GarufiAustraliaAsiya Javayant UNQUALIFIED
Greenwood C RimArgentinaBernardo Dominic NEGOTIATION
Isabel H VocelkaItalyElwin Sharvill NEW
Tony H IturbideAustraliaElwin Sharvill QUALIFIED
Stacey O SaylorsItalyIoni Bowcher NEGOTIATION
Aruna Z FollerCanadaBernardo Dominic NEW
Jones L CaldareraJapanAnna Fali UNQUALIFIED
Octavia G FlosiFranceElwin Sharvill RENEWAL
Leon W SlusarskiGermanyIoni Bowcher UNQUALIFIED
Morrow B GarufiArgentinaXuxue Feng NEGOTIATION
Johnson P GarufiArgentinaIoni Bowcher UNQUALIFIED
Antonio U RutaSpainXuxue Feng RENEWAL
Ashley A MacleadItalyAmy Elsner NEW
Emily A WaycottIndiaBernardo Dominic UNQUALIFIED
Leja L OldroydUnited KingdomStephen Shaw NEW
Kaitlin G ButtFranceXuxue Feng QUALIFIED
Morrow N PoquetteSpainAsiya Javayant NEW
Nicolas F FerenczAustraliaAmy Elsner QUALIFIED
Maisha L IturbideArgentinaAsiya Javayant PROPOSAL
David K ShinkoIndiaAmy Elsner QUALIFIED
Claire T FlosiJapanIvan Magalhaes NEGOTIATION
Jones P RoysterFranceIoni Bowcher UNQUALIFIED
Cody K VenereGermanyBernardo Dominic NEW
Aruna H MacleadArgentinaBernardo Dominic PROPOSAL
Clifford L InouyeFranceIvan Magalhaes UNQUALIFIED
Juan G CaudyJapanIoni Bowcher QUALIFIED
Ashley R SergiFranceBernardo Dominic PROPOSAL
Tony A FerenczArgentinaAnna Fali UNQUALIFIED
Alejandro S SergiUnited KingdomIvan Magalhaes NEW
David E VocelkaAustraliaElwin Sharvill NEW
Murillo Q MaletArgentinaAsiya Javayant NEGOTIATION
Aika X KolmetzIndiaIoni Bowcher NEW
Costa D NestleAustraliaAnna Fali QUALIFIED
Arvin S PoquetteItalyIoni Bowcher UNQUALIFIED
Rodrigues Y RulapaughGermanyStephen Shaw UNQUALIFIED
Salvatore J CaldareraItalyStephen Shaw QUALIFIED
Jones O FerenczCanadaAmy Elsner RENEWAL
Frozen Columns
Name
Antonio F Flosi
Kaitlin O Ruta
Maisha E Malet
Faith Z Sergi
David H Darakjy
Leon J Stenseth
Chavez B Ferencz
Jeanfrancois T Slusarski
James M Gaucho
Murillo P Amigon
Ivar P Oldroyd
Ivar N Poquette
Nicolas D Campain
Francesco V Nestle
Murillo T Vocelka
Julie P Perin
Octavia U Flosi
Darci U Caudy
Rodrigues X Schemmer
Nicolas Q Stockham
Aruna Q Kusko
Cody Z Royster
Aruna H Figeroa
Tony U Caudy
Ashley W Morasca
Mujtaba J Stenseth
Julie R Gaucho
Deepesh C Schemmer
Maria J Ostrosky
Aika E Chui
Murillo U Dilliard
Smith U Oldroyd
Salvatore F Venere
Faith L Nestle
Chavez Y Stenseth
Jefferson L Darakjy
Chavez K Darakjy
Julie F Perin
Morrow M Rim
Faith V Saylors
Julie L Venere
Greenwood T Royster
Leon D Figeroa
Aika J Iturbide
Costa J Darakjy
Nicolas L Shinko
Tony X Foller
Stacey V Caldarera
Nicolas I Morasca
Octavia B Kusko
IdCountryDate
1000Australia2026-07-05
1001United Kingdom2026-06-27
1002Spain2026-07-13
1003Russia2026-07-10
1004India2026-06-27
1005United Kingdom2026-06-28
1006Brazil2026-07-05
1007United Kingdom2026-06-25
1008United Kingdom2026-07-03
1009Japan2026-07-11
1010Argentina2026-07-03
1011Japan2026-06-28
1012Spain2026-07-20
1013United Kingdom2026-07-09
1014Japan2026-07-22
1015Canada2026-07-03
1016Argentina2026-06-26
1017Italy2026-07-08
1018Spain2026-07-21
1019Russia2026-07-18
1020Italy2026-06-29
1021France2026-06-24
1022Russia2026-07-16
1023Argentina2026-07-01
1024Canada2026-06-26
1025France2026-07-10
1026Italy2026-06-29
1027Spain2026-07-20
1028Germany2026-06-23
1029India2026-07-13
1030Italy2026-06-23
1031Japan2026-06-27
1032France2026-07-05
1033India2026-06-23
1034United Kingdom2026-07-09
1035India2026-07-13
1036India2026-07-18
1037Brazil2026-07-14
1038Spain2026-07-11
1039Spain2026-06-29
1040France2026-07-06
1041Canada2026-06-26
1042India2026-07-03
1043India2026-07-09
1044Italy2026-07-06
1045United Kingdom2026-07-08
1046Brazil2026-07-08
1047Spain2026-07-07
1048Russia2026-07-14
1049Australia2026-07-21

On-Demand Data

NameIdCountryDate
Kadeem U Kusko1000Spain2026-07-20
Sinclair I Saylors1001Germany2026-07-18
Costa U Kusko1002India2026-07-20
Leja W Slusarski1003Germany2026-07-21
Alejandro B Oldroyd1004Brazil2026-07-19
Leja A Campain1005India2026-07-08
Claire B Tollner1006Spain2026-07-12
Cody M Caudy1007Germany2026-07-13
Johnson W Perin1008Argentina2026-07-01
Clifford L Paprocki1009Canada2026-07-12
Sinclair Y Bowley1010Italy2026-07-04
Misaki G Malet1011United Kingdom2026-07-14
Jeanfrancois U Ferencz1012Italy2026-07-04
Johnson E Caudy1013France2026-07-01
Tony G Ruta1014Argentina2026-07-05
Aika R Chui1015Japan2026-07-13
Francesco D Albares1016Germany2026-07-08
Kaitlin H Rim1017Russia2026-06-25
Julie N Whobrey1018Spain2026-07-15
Silvio T Foller1019Argentina2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan V ButtBrazilIvan Magalhaes RENEWAL
David K WhobreyRussiaElwin Sharvill NEW
Leja X BriddickJapanBernardo Dominic NEGOTIATION
Kadeem C GarufiCanadaXuxue Feng UNQUALIFIED
Emily M CampainAustraliaIvan Magalhaes NEGOTIATION
Ashley K OldroydRussiaIvan Magalhaes NEGOTIATION
Jones B GauchoBrazilElwin Sharvill RENEWAL
Nicolas M KolmetzBrazilOnyama Limba RENEWAL
Julie U WieserCanadaIvan Magalhaes PROPOSAL
Chavez K NestleJapanAmy Elsner NEW
Jeanfrancois H DoeSpainAsiya Javayant NEGOTIATION
Claire X SaylorsFranceAnna Fali RENEWAL
Sinclair S CampainUnited KingdomElwin Sharvill PROPOSAL
Cody C PerinArgentinaBernardo Dominic RENEWAL
Kaitlin K ChuiItalyIvan Magalhaes QUALIFIED
Wickens I RimArgentinaElwin Sharvill NEW
Greenwood H GillianIndiaAmy Elsner PROPOSAL
Claire U KuskoRussiaAsiya Javayant RENEWAL
Rodrigues O RutaUnited KingdomAsiya Javayant QUALIFIED
Faith Q KolmetzItalyBernardo Dominic QUALIFIED
Julie U MaletIndiaBernardo Dominic RENEWAL
Faith H CaldareraRussiaAsiya Javayant QUALIFIED
Octavia T ChuiAustraliaAnna Fali PROPOSAL
Wickens D OstroskyBrazilAsiya Javayant NEW
Morrow H BriddickFranceAsiya Javayant RENEWAL
Greenwood N GlickUnited KingdomXuxue Feng PROPOSAL
Claire V KuskoIndiaXuxue Feng QUALIFIED
Rodrigues Y GarufiJapanAnna Fali RENEWAL
Alejandro I RulapaughRussiaBernardo Dominic RENEWAL
Adams Z PerinItalyElwin Sharvill UNQUALIFIED
Costa E DarakjyFranceElwin Sharvill NEW
David F BowleyItalyIoni Bowcher RENEWAL
Julie T GauchoCanadaIoni Bowcher NEW
Smith U PoquetteIndiaBernardo Dominic RENEWAL
Ivar C NestleRussiaAsiya Javayant UNQUALIFIED
Kaitlin G WaycottBrazilStephen Shaw RENEWAL
Salvatore M DarakjySpainIvan Magalhaes RENEWAL
Ashley Y MaletCanadaOnyama Limba PROPOSAL
Cody B PaprockiSpainElwin Sharvill NEGOTIATION
Sinclair R FlosiJapanBernardo Dominic PROPOSAL

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