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
Stacey D MorascaUnited KingdomAnna Fali RENEWAL
Jeanfrancois Z AmigonRussiaAmy Elsner NEW
Ivar V IturbideFranceAsiya Javayant NEW
Antonio N WaycottGermanyElwin Sharvill NEW
Mayumi Z RoysterBrazilXuxue Feng NEW
Munro H BriddickGermanyIoni Bowcher RENEWAL
Wickens W StockhamItalyElwin Sharvill RENEWAL
Jeanfrancois U StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore Z StensethBrazilAsiya Javayant PROPOSAL
Leja A WaycottJapanXuxue Feng RENEWAL
Mujtaba N SchemmerFranceIoni Bowcher NEW
Jennifer N PerinBrazilXuxue Feng QUALIFIED
Tony O GauchoBrazilBernardo Dominic UNQUALIFIED
Claire E ButtAustraliaAsiya Javayant UNQUALIFIED
Murillo E ButtRussiaOnyama Limba UNQUALIFIED
Ivar C StensethFranceXuxue Feng UNQUALIFIED
Greenwood V MacleadIndiaElwin Sharvill NEGOTIATION
Izzy I NickaFranceAmy Elsner RENEWAL
Ivar T FlosiAustraliaAsiya Javayant RENEWAL
Smith Y BriddickSpainBernardo Dominic QUALIFIED
Adams A WaycottIndiaAsiya Javayant PROPOSAL
Ivar A FlosiBrazilIoni Bowcher NEGOTIATION
Kaitlin W WaycottIndiaOnyama Limba NEW
Munro W NickaFranceIvan Magalhaes NEGOTIATION
Jeanfrancois X GarufiArgentinaStephen Shaw UNQUALIFIED
Greenwood A ChuiIndiaIoni Bowcher PROPOSAL
Nicolas K VocelkaArgentinaBernardo Dominic NEW
Morrow G SergiJapanOnyama Limba UNQUALIFIED
Morrow O SlusarskiIndiaAmy Elsner RENEWAL
Maisha G BowleyUnited KingdomElwin Sharvill PROPOSAL
Adams E PaprockiCanadaOnyama Limba QUALIFIED
Leon Y InouyeFranceBernardo Dominic UNQUALIFIED
Maisha N RutaIndiaIoni Bowcher UNQUALIFIED
Antonio C WaycottFranceXuxue Feng NEGOTIATION
Smith Y BowleyArgentinaAnna Fali NEW
Misaki X FollerAustraliaStephen Shaw NEGOTIATION
Morrow F TollnerRussiaAsiya Javayant PROPOSAL
Arvin X BologniaJapanElwin Sharvill RENEWAL
Silvio R PaprockiItalyAmy Elsner NEGOTIATION
Morrow W MaletJapanAnna Fali QUALIFIED
Claire P NestleItalyAnna Fali NEW
Faith U WhobreyBrazilIvan Magalhaes QUALIFIED
Alejandro P RoysterAustraliaAmy Elsner PROPOSAL
Jefferson Q KuskoUnited KingdomAmy Elsner RENEWAL
Julie P KuskoGermanyStephen Shaw UNQUALIFIED
Isabel G BologniaItalyStephen Shaw RENEWAL
Jones Q IturbideCanadaAsiya Javayant QUALIFIED
Julie D KolmetzIndiaOnyama Limba QUALIFIED
Johnson F AlbaresGermanyIoni Bowcher QUALIFIED
Claire N ChuiRussiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo V WaycottFranceOnyama Limba NEW
Deepesh N MarrierFranceXuxue Feng NEW
Aruna S StensethRussiaIoni Bowcher NEW
Munro R KolmetzCanadaAmy Elsner UNQUALIFIED
Faith B CaudyUnited KingdomElwin Sharvill NEGOTIATION
Murillo Y SergiCanadaBernardo Dominic UNQUALIFIED
Leja I OstroskyRussiaIvan Magalhaes QUALIFIED
Aruna E CaudyCanadaAmy Elsner NEW
Morrow K SergiAustraliaBernardo Dominic QUALIFIED
Munro Q StockhamIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams X InouyeFrance2026-07-01Rousseaux, Michael Esq QUALIFIED61Xuxue Feng
1001Julie H IturbideItaly2026-07-01Rangoni Of Florence QUALIFIED7Onyama Limba
1002Clifford U DilliardJapan2026-07-13Feltz Printing Service RENEWAL68Xuxue Feng
1003Leja U ShinkoFrance2026-06-30Truhlar And Truhlar Attys NEGOTIATION71Anna Fali
1004Darci F WhobreyGermany2026-07-10Feltz Printing Service PROPOSAL86Asiya Javayant
1005Johnson F FlosiFrance2026-06-29Chanay, Jeffrey A Esq PROPOSAL8Amy Elsner
1006Maisha E RulapaughFrance2026-07-18Feltz Printing Service PROPOSAL30Bernardo Dominic
1007Julie W GauchoCanada2026-06-29Dorl, James J Esq UNQUALIFIED72Amy Elsner
1008Maisha K PoquetteAustralia2026-07-21Printing Dimensions NEGOTIATION59Anna Fali
1009Salvatore Z BologniaGermany2026-07-21Dorl, James J Esq PROPOSAL68Xuxue Feng
1010Costa Q CaldareraJapan2026-07-24Feiner Bros PROPOSAL1Xuxue Feng
1011Clifford J KuskoJapan2026-07-24Feiner Bros QUALIFIED98Amy Elsner
1012Sinclair P DilliardItaly2026-07-08Dorl, James J Esq RENEWAL32Ioni Bowcher
1013Sinclair R GlickCanada2026-07-06Benton, John B Jr QUALIFIED20Anna Fali
1014Greenwood H CaudyCanada2026-07-09Rangoni Of Florence RENEWAL6Anna Fali
1015Salvatore L RulapaughSpain2026-07-20Chanay, Jeffrey A Esq PROPOSAL43Anna Fali
1016Cody L MaletSpain2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED1Ivan Magalhaes
1017Costa E WaycottIndia2026-07-20Morlong Associates UNQUALIFIED33Asiya Javayant
1018Ricardo E MaletFrance2026-07-11Benton, John B Jr UNQUALIFIED5Amy Elsner
1019Tony C FerenczBrazil2026-07-11Commercial Press UNQUALIFIED8Ivan Magalhaes
1020Mujtaba S MarrierGermany2026-07-17King, Christopher A Esq QUALIFIED49Bernardo Dominic
1021Kadeem I MacleadSpain2026-07-15Feiner Bros QUALIFIED49Stephen Shaw
1022Kadeem E AmigonBrazil2026-07-07Truhlar And Truhlar Attys UNQUALIFIED34Ivan Magalhaes
1023James F BriddickItaly2026-07-26Benton, John B Jr NEW33Asiya Javayant
1024Nicolas I TollnerGermany2026-07-01Commercial Press QUALIFIED60Stephen Shaw
1025Julie I VenereUnited Kingdom2026-07-24Printing Dimensions PROPOSAL33Ivan Magalhaes
1026Aruna X PaprockiIndia2026-07-16Chemel, James L Cpa NEW63Anna Fali
1027Leon D CaldareraAustralia2026-07-25Buckley Miller Wright UNQUALIFIED71Ivan Magalhaes
1028Maria K DarakjyJapan2026-07-06King, Christopher A Esq UNQUALIFIED99Amy Elsner
1029Silvio W SergiItaly2026-07-09Commercial Press UNQUALIFIED11Onyama Limba
1030Julie X SchemmerRussia2026-07-01Feiner Bros QUALIFIED56Xuxue Feng
1031Maisha Z RulapaughCanada2026-07-17Commercial Press RENEWAL0Ioni Bowcher
1032Francesco K StensethItaly2026-07-02Rangoni Of Florence QUALIFIED52Onyama Limba
1033Smith H NickaGermany2026-07-22Chanay, Jeffrey A Esq QUALIFIED11Elwin Sharvill
1034Julie I NickaRussia2026-07-13Chemel, James L Cpa UNQUALIFIED89Amy Elsner
1035Clifford T MaletJapan2026-07-22Chemel, James L Cpa NEW28Elwin Sharvill
1036Aika T DilliardCanada2026-06-28Printing Dimensions QUALIFIED54Xuxue Feng
1037Mujtaba M SchemmerSpain2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED40Ioni Bowcher
1038Antonio M OldroydItaly2026-07-19Morlong Associates NEGOTIATION91Onyama Limba
1039Isabel T GillianFrance2026-07-21Chapman, Ross E Esq QUALIFIED35Xuxue Feng
1040Kadeem A CaudyIndia2026-07-12Feiner Bros NEGOTIATION49Asiya Javayant
1041Ivar J SlusarskiArgentina2026-06-29Commercial Press NEGOTIATION32Anna Fali
1042Ricardo X SlusarskiArgentina2026-07-04Rangoni Of Florence NEGOTIATION83Elwin Sharvill
1043Morrow Z WieserIndia2026-07-23Rousseaux, Michael Esq QUALIFIED57Stephen Shaw
1044Jeanfrancois S RulapaughCanada2026-07-03Chanay, Jeffrey A Esq NEW16Amy Elsner
1045Mujtaba R StensethSpain2026-07-16Commercial Press RENEWAL29Amy Elsner
1046Juan Y RoysterSpain2026-07-18Feiner Bros RENEWAL13Ioni Bowcher
1047Aruna A RutaBrazil2026-07-04Buckley Miller Wright NEW3Elwin Sharvill
1048Arvin G GlickAustralia2026-06-29Morlong Associates NEGOTIATION6Asiya Javayant
1049David I MaletAustralia2026-06-29Dorl, James J Esq NEW36Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Morrow A MacleadGermanyStephen Shaw PROPOSAL
Murillo R NickaJapanIoni Bowcher NEGOTIATION
Maisha O AlbaresIndiaAsiya Javayant NEW
Smith R MacleadRussiaAsiya Javayant NEW
Smith J MaletAustraliaElwin Sharvill QUALIFIED
Ashley E MorascaAustraliaBernardo Dominic PROPOSAL
Maria J SaylorsGermanyIoni Bowcher NEW
Jeanfrancois W MaletUnited KingdomElwin Sharvill NEGOTIATION
Emily R PoquetteAustraliaOnyama Limba RENEWAL
Aruna K CaldareraSpainOnyama Limba PROPOSAL
Smith K InouyeAustraliaAmy Elsner UNQUALIFIED
Aika Y PerinUnited KingdomXuxue Feng PROPOSAL
Francesco A MaletUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair K WhobreyFranceXuxue Feng PROPOSAL
Sinclair V MaletAustraliaBernardo Dominic RENEWAL
Ashley I IturbideFranceStephen Shaw NEW
Salvatore M CaudyRussiaXuxue Feng RENEWAL
Costa F MacleadIndiaAnna Fali NEGOTIATION
Greenwood G RimIndiaAsiya Javayant UNQUALIFIED
Clifford I BologniaAustraliaIoni Bowcher PROPOSAL
Aruna K MorascaAustraliaElwin Sharvill PROPOSAL
Greenwood V SchemmerRussiaIoni Bowcher NEW
Tony M CaudyAustraliaBernardo Dominic RENEWAL
Aditya Q NestleJapanAsiya Javayant RENEWAL
Antonio P PerinArgentinaStephen Shaw QUALIFIED
Mayumi Z DoeBrazilElwin Sharvill QUALIFIED
Murillo I PoquetteCanadaAnna Fali RENEWAL
Ricardo H CaudyIndiaOnyama Limba NEGOTIATION
Kadeem S GlickItalyStephen Shaw QUALIFIED
Misaki E MarrierSpainOnyama Limba RENEWAL
Ashley K GillianItalyBernardo Dominic NEW
Jeanfrancois G StensethFranceAsiya Javayant QUALIFIED
Silvio H NestleSpainOnyama Limba UNQUALIFIED
Morrow L SlusarskiRussiaBernardo Dominic UNQUALIFIED
Leon Y StockhamIndiaXuxue Feng QUALIFIED
Maisha E RulapaughJapanAnna Fali NEW
Smith X MorascaSpainXuxue Feng PROPOSAL
Julie E AlbaresRussiaBernardo Dominic QUALIFIED
Tony L PoquetteRussiaAsiya Javayant NEGOTIATION
Maria U KuskoCanadaAsiya Javayant RENEWAL
Emily T WieserUnited KingdomAsiya Javayant NEW
Rodrigues Z MaletFranceOnyama Limba RENEWAL
Greenwood C CampainRussiaXuxue Feng UNQUALIFIED
Maisha M CampainSpainBernardo Dominic UNQUALIFIED
Jeanfrancois D ChuiJapanIoni Bowcher NEGOTIATION
Jennifer I IturbideBrazilIoni Bowcher PROPOSAL
Clifford C NickaRussiaBernardo Dominic NEW
Aika Q FigeroaSpainElwin Sharvill RENEWAL
Costa Z RutaIndiaAmy Elsner NEGOTIATION
Wickens K PerinAustraliaAmy Elsner NEGOTIATION
Frozen Columns
Name
Silvio P Malet
Izzy F Whobrey
Murillo K Albares
Ashley P Morasca
Rodrigues D Ostrosky
Aditya T Gillian
Antonio R Waycott
Deepesh Y Shinko
Izzy I Inouye
Mujtaba X Kolmetz
Juan S Wieser
Ricardo I Nicka
Aditya K Iturbide
Chavez K Caudy
Jefferson X Wieser
Clifford T Shinko
Morrow F Sergi
Isabel W Saylors
Stacey N Briddick
Octavia D Sergi
Aditya Q Saylors
Tony H Kusko
Isabel B Flosi
Darci S Vocelka
Smith X Saylors
Mujtaba P Darakjy
Emily Z Malet
Aditya T Gaucho
Rodrigues L Foller
Juan H Whobrey
Silvio U Caudy
Jones L Campain
Aruna E Royster
Leon X Rim
Mayumi T Inouye
Aika F Inouye
Claire M Campain
Emily L Flosi
Faith S Perin
Leja L Morasca
Izzy B Rulapaugh
Costa O Whobrey
Leja V Perin
Antonio U Foller
Smith G Malet
Murillo Y Ostrosky
Deepesh K Ferencz
Munro K Saylors
Aruna I Tollner
Maria B Schemmer
IdCountryDate
1000France2026-06-28
1001Brazil2026-07-23
1002India2026-07-01
1003India2026-07-14
1004Italy2026-06-27
1005India2026-07-03
1006Italy2026-07-10
1007Russia2026-07-23
1008Brazil2026-07-04
1009Germany2026-07-03
1010Italy2026-06-29
1011Brazil2026-07-11
1012Italy2026-07-04
1013Canada2026-07-02
1014Brazil2026-07-23
1015Australia2026-07-25
1016Australia2026-06-28
1017Japan2026-07-25
1018Brazil2026-07-04
1019Spain2026-07-11
1020Germany2026-07-07
1021Argentina2026-07-18
1022Australia2026-07-15
1023Russia2026-07-10
1024Australia2026-07-18
1025Canada2026-07-22
1026Germany2026-07-07
1027Brazil2026-07-10
1028Argentina2026-07-09
1029Germany2026-07-24
1030Australia2026-07-02
1031Japan2026-07-14
1032France2026-07-24
1033Russia2026-07-03
1034Brazil2026-07-02
1035Italy2026-07-13
1036Italy2026-07-04
1037United Kingdom2026-07-03
1038Germany2026-06-27
1039Australia2026-06-29
1040Brazil2026-07-21
1041Russia2026-07-24
1042United Kingdom2026-07-08
1043Spain2026-07-25
1044United Kingdom2026-07-24
1045Germany2026-06-28
1046Canada2026-07-09
1047United Kingdom2026-07-05
1048Canada2026-07-03
1049Australia2026-07-03

On-Demand Data

NameIdCountryDate
Izzy O Ferencz1000Brazil2026-07-24
Salvatore E Nicka1001Canada2026-07-06
Antonio H Campain1002Canada2026-06-27
Francesco D Malet1003Canada2026-07-01
David A Malet1004Japan2026-07-23
Claire K Malet1005India2026-07-24
Clifford S Morasca1006Russia2026-07-25
Emily W Rim1007Russia2026-07-22
David C Maclead1008Russia2026-07-07
Jennifer O Perin1009India2026-07-23
Ricardo B Inouye1010Spain2026-07-07
Jennifer J Caudy1011Brazil2026-07-02
Tony J Nestle1012Spain2026-07-11
Alejandro C Campain1013Italy2026-07-23
Smith M Inouye1014Spain2026-07-11
Izzy E Nestle1015France2026-07-10
Kaitlin Y Dilliard1016United Kingdom2026-06-27
Mayumi Y Rim1017Russia2026-07-12
Arvin N Paprocki1018Russia2026-07-23
Stacey N Albares1019Australia2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa L BologniaIndiaOnyama Limba RENEWAL
Arvin C BowleyIndiaBernardo Dominic RENEWAL
Tony L NickaAustraliaIoni Bowcher RENEWAL
Antonio N DoeAustraliaElwin Sharvill UNQUALIFIED
Ricardo U MaletGermanyElwin Sharvill NEW
Adams F FollerAustraliaIvan Magalhaes QUALIFIED
Isabel I FigeroaCanadaIvan Magalhaes PROPOSAL
Sinclair Z ShinkoRussiaAnna Fali QUALIFIED
Sinclair W DarakjyArgentinaBernardo Dominic RENEWAL
Alejandro U PerinIndiaBernardo Dominic RENEWAL
Jennifer R RoysterUnited KingdomStephen Shaw UNQUALIFIED
Kadeem E CampainIndiaAnna Fali RENEWAL
Aika E KolmetzArgentinaAmy Elsner NEGOTIATION
Claire L AlbaresBrazilOnyama Limba QUALIFIED
Johnson B SaylorsJapanStephen Shaw PROPOSAL
Arvin E SaylorsIndiaIoni Bowcher QUALIFIED
Rodrigues P FerenczRussiaIoni Bowcher NEW
Morrow M SergiItalyIvan Magalhaes PROPOSAL
Adams L ShinkoSpainOnyama Limba UNQUALIFIED
Jefferson U DarakjyGermanyIvan Magalhaes NEW
Alejandro D FollerJapanBernardo Dominic QUALIFIED
Ricardo L OstroskyJapanElwin Sharvill NEW
Leon F NestleCanadaIvan Magalhaes NEW
Wickens X GarufiFranceAmy Elsner UNQUALIFIED
Leja N CaudyIndiaAnna Fali RENEWAL
Julie F OstroskyIndiaElwin Sharvill NEW
Aika F WhobreyIndiaAmy Elsner RENEWAL
Munro L DarakjyItalyAsiya Javayant RENEWAL
Munro X StensethItalyAmy Elsner NEW
Murillo Z MorascaItalyXuxue Feng PROPOSAL
David H KuskoAustraliaAmy Elsner UNQUALIFIED
Aditya R ShinkoIndiaBernardo Dominic UNQUALIFIED
Cody J FerenczArgentinaIoni Bowcher QUALIFIED
Leja A GarufiAustraliaElwin Sharvill QUALIFIED
Arvin S RimCanadaStephen Shaw UNQUALIFIED
Aditya O BowleySpainElwin Sharvill RENEWAL
Chavez F NestleIndiaAmy Elsner RENEWAL
Alejandro A IturbideUnited KingdomAmy Elsner QUALIFIED
Silvio S StockhamUnited KingdomXuxue Feng UNQUALIFIED
Nicolas O InouyeAustraliaOnyama 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>