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
Costa U ButtAustraliaElwin Sharvill UNQUALIFIED
Morrow H MarrierAustraliaBernardo Dominic NEGOTIATION
Stacey R RoysterUnited KingdomBernardo Dominic RENEWAL
Aruna A GarufiRussiaOnyama Limba NEGOTIATION
Murillo E MaletBrazilXuxue Feng UNQUALIFIED
Mayumi T RutaItalyOnyama Limba UNQUALIFIED
Deepesh I MacleadJapanIoni Bowcher QUALIFIED
Mujtaba I RutaUnited KingdomIvan Magalhaes NEGOTIATION
Stacey Y PaprockiIndiaAsiya Javayant RENEWAL
Ashley H MorascaCanadaXuxue Feng NEW
Kaitlin C GlickUnited KingdomXuxue Feng UNQUALIFIED
Johnson J DoeUnited KingdomOnyama Limba RENEWAL
Claire V FerenczUnited KingdomAsiya Javayant RENEWAL
Kadeem I MarrierSpainOnyama Limba UNQUALIFIED
Leon F BriddickCanadaIvan Magalhaes NEW
James Q VenereSpainOnyama Limba RENEWAL
Jeanfrancois E MorascaGermanyIvan Magalhaes UNQUALIFIED
Aditya R GillianIndiaElwin Sharvill NEW
Munro V StensethJapanBernardo Dominic QUALIFIED
Leja L GlickBrazilElwin Sharvill UNQUALIFIED
Aika T ShinkoRussiaAmy Elsner NEGOTIATION
Chavez K GlickIndiaIvan Magalhaes QUALIFIED
Adams R SlusarskiCanadaAmy Elsner RENEWAL
Jones D SaylorsCanadaAnna Fali RENEWAL
Adams J AlbaresItalyAsiya Javayant PROPOSAL
Jones G PerinArgentinaAmy Elsner QUALIFIED
Claire D KolmetzSpainElwin Sharvill NEGOTIATION
Juan A StensethArgentinaAnna Fali UNQUALIFIED
Adams F DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Aika E TollnerItalyIvan Magalhaes NEGOTIATION
Faith W IturbideBrazilOnyama Limba NEGOTIATION
David V KuskoSpainAsiya Javayant NEGOTIATION
Ashley F FlosiUnited KingdomOnyama Limba QUALIFIED
Claire U GillianAustraliaBernardo Dominic QUALIFIED
Ashley R MarrierSpainOnyama Limba PROPOSAL
Jones P PaprockiIndiaXuxue Feng NEGOTIATION
Silvio U DoeUnited KingdomElwin Sharvill PROPOSAL
Claire O GillianAustraliaOnyama Limba NEW
Izzy B ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Aika K NestleCanadaOnyama Limba NEGOTIATION
Kaitlin X PaprockiBrazilElwin Sharvill NEGOTIATION
Mayumi P DoeGermanyIvan Magalhaes RENEWAL
Ricardo M FollerCanadaAnna Fali RENEWAL
Juan N FigeroaItalyBernardo Dominic QUALIFIED
Arvin N GillianFranceAmy Elsner QUALIFIED
Salvatore Y FigeroaItalyXuxue Feng RENEWAL
Morrow R WaycottItalyIoni Bowcher RENEWAL
Murillo Y NickaBrazilAnna Fali NEW
Deepesh W NickaRussiaOnyama Limba UNQUALIFIED
David J DarakjyGermanyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki V NestleJapanIvan Magalhaes RENEWAL
Mujtaba K NestleArgentinaXuxue Feng PROPOSAL
Antonio S DilliardRussiaIvan Magalhaes QUALIFIED
Francesco G AmigonGermanyXuxue Feng PROPOSAL
Clifford U RimJapanElwin Sharvill UNQUALIFIED
Kaitlin K WieserUnited KingdomXuxue Feng NEGOTIATION
David P DoeCanadaOnyama Limba NEGOTIATION
David J KolmetzFranceAmy Elsner QUALIFIED
Aruna R GlickCanadaElwin Sharvill NEW
Jennifer B RulapaughUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford C RulapaughCanada2025-05-31Feltz Printing Service RENEWAL6Anna Fali
1001Clifford N PoquetteUnited Kingdom2025-05-28Chemel, James L Cpa PROPOSAL90Stephen Shaw
1002Costa M PerinJapan2025-06-01Chemel, James L Cpa QUALIFIED46Ioni Bowcher
1003David F GauchoCanada2025-05-08Buckley Miller Wright QUALIFIED11Anna Fali
1004Silvio I StensethCanada2025-06-05Chapman, Ross E Esq UNQUALIFIED21Anna Fali
1005Aditya L FollerAustralia2025-05-18Buckley Miller Wright UNQUALIFIED27Anna Fali
1006Salvatore Q BriddickBrazil2025-05-23Rousseaux, Michael Esq NEGOTIATION12Ioni Bowcher
1007Jefferson H MacleadUnited Kingdom2025-05-12King, Christopher A Esq UNQUALIFIED29Elwin Sharvill
1008Ricardo V MacleadFrance2025-05-28Chanay, Jeffrey A Esq QUALIFIED10Ioni Bowcher
1009Wickens M CaldareraItaly2025-05-26Chemel, James L Cpa PROPOSAL40Bernardo Dominic
1010David G SaylorsCanada2025-06-05Chanay, Jeffrey A Esq RENEWAL61Stephen Shaw
1011Chavez K SchemmerFrance2025-05-24Chapman, Ross E Esq PROPOSAL33Xuxue Feng
1012Murillo Y MorascaFrance2025-05-08Truhlar And Truhlar Attys RENEWAL35Asiya Javayant
1013James N MarrierRussia2025-05-27Buckley Miller Wright NEGOTIATION63Bernardo Dominic
1014Isabel Y DilliardFrance2025-05-08Buckley Miller Wright QUALIFIED88Ioni Bowcher
1015Francesco Q SchemmerIndia2025-05-22Rousseaux, Michael Esq PROPOSAL43Bernardo Dominic
1016Misaki G BowleyUnited Kingdom2025-05-29Printing Dimensions PROPOSAL13Onyama Limba
1017Salvatore S GauchoBrazil2025-05-21Benton, John B Jr RENEWAL25Anna Fali
1018Emily U GarufiItaly2025-05-29Chanay, Jeffrey A Esq UNQUALIFIED78Bernardo Dominic
1019Jefferson O IturbideFrance2025-05-31Truhlar And Truhlar Attys UNQUALIFIED77Onyama Limba
1020Deepesh F WhobreyItaly2025-06-04Dorl, James J Esq PROPOSAL8Bernardo Dominic
1021Morrow J MarrierGermany2025-05-20Rangoni Of Florence RENEWAL4Anna Fali
1022Isabel L InouyeAustralia2025-05-11Dorl, James J Esq NEGOTIATION51Xuxue Feng
1023Adams Y DilliardGermany2025-05-13Truhlar And Truhlar Attys QUALIFIED2Elwin Sharvill
1024Kadeem K CaudyCanada2025-05-15Buckley Miller Wright NEW14Amy Elsner
1025Emily Y AlbaresArgentina2025-05-14Morlong Associates RENEWAL32Elwin Sharvill
1026Mujtaba W VenereSpain2025-05-29Rousseaux, Michael Esq RENEWAL48Asiya Javayant
1027Maria X FerenczGermany2025-05-19Buckley Miller Wright RENEWAL25Bernardo Dominic
1028Maria B KolmetzUnited Kingdom2025-05-09King, Christopher A Esq NEGOTIATION62Bernardo Dominic
1029James K TollnerArgentina2025-05-25Truhlar And Truhlar Attys RENEWAL81Elwin Sharvill
1030Aika T AlbaresArgentina2025-05-22Chapman, Ross E Esq NEGOTIATION39Asiya Javayant
1031Adams K NestleGermany2025-05-12Rangoni Of Florence PROPOSAL13Stephen Shaw
1032Faith Y OldroydGermany2025-05-22Chemel, James L Cpa QUALIFIED51Ioni Bowcher
1033Faith B AmigonJapan2025-05-10Dorl, James J Esq NEW91Elwin Sharvill
1034Mujtaba F WieserGermany2025-06-01Rangoni Of Florence PROPOSAL3Elwin Sharvill
1035Rodrigues B DilliardSpain2025-05-25Morlong Associates QUALIFIED65Stephen Shaw
1036Aruna N MarrierBrazil2025-05-13Buckley Miller Wright NEW52Stephen Shaw
1037Ivar L MaletIndia2025-05-29Chemel, James L Cpa NEGOTIATION91Xuxue Feng
1038Alejandro U MaletIndia2025-05-30Feiner Bros NEW27Xuxue Feng
1039Nicolas A MorascaGermany2025-05-10Rangoni Of Florence NEW68Xuxue Feng
1040Kadeem Y GlickRussia2025-05-30Printing Dimensions UNQUALIFIED65Stephen Shaw
1041Claire L VenereArgentina2025-05-19Chapman, Ross E Esq NEGOTIATION31Xuxue Feng
1042Juan I BowleyBrazil2025-06-01Feltz Printing Service PROPOSAL3Ivan Magalhaes
1043Silvio U GillianJapan2025-06-05Chanay, Jeffrey A Esq PROPOSAL99Asiya Javayant
1044Octavia W RoysterBrazil2025-05-12Rousseaux, Michael Esq QUALIFIED7Stephen Shaw
1045Adams L DoeBrazil2025-05-28Rousseaux, Michael Esq NEGOTIATION31Onyama Limba
1046Salvatore T OldroydFrance2025-05-24Chapman, Ross E Esq RENEWAL54Bernardo Dominic
1047Kaitlin J KuskoCanada2025-06-03Buckley Miller Wright QUALIFIED31Ioni Bowcher
1048Johnson O VenereSpain2025-05-18Dorl, James J Esq PROPOSAL88Ivan Magalhaes
1049Darci G IturbideSpain2025-05-16Benton, John B Jr QUALIFIED58Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro E PaprockiCanadaBernardo Dominic NEGOTIATION
Kadeem O KolmetzGermanyAsiya Javayant PROPOSAL
Johnson N MacleadJapanAmy Elsner QUALIFIED
Murillo A CaldareraFranceIoni Bowcher UNQUALIFIED
Kadeem K MorascaJapanXuxue Feng NEW
Wickens I GarufiFranceBernardo Dominic NEW
Isabel T NestleArgentinaStephen Shaw UNQUALIFIED
Ivar C SergiArgentinaXuxue Feng PROPOSAL
Johnson E OstroskySpainIvan Magalhaes QUALIFIED
Izzy Q NickaArgentinaIoni Bowcher PROPOSAL
Morrow G StockhamItalyStephen Shaw RENEWAL
Maisha I BowleyCanadaOnyama Limba UNQUALIFIED
Nicolas D GarufiUnited KingdomAsiya Javayant QUALIFIED
Claire C RimArgentinaOnyama Limba PROPOSAL
Jennifer H RulapaughArgentinaOnyama Limba RENEWAL
Ricardo M RutaGermanyStephen Shaw RENEWAL
Ivar N SergiArgentinaAsiya Javayant PROPOSAL
Leja N FerenczIndiaXuxue Feng NEW
Arvin I CaudyBrazilElwin Sharvill PROPOSAL
Francesco S WhobreyBrazilXuxue Feng NEGOTIATION
Isabel H MaletIndiaXuxue Feng NEGOTIATION
Darci O PerinAustraliaXuxue Feng PROPOSAL
Aditya J VocelkaArgentinaElwin Sharvill PROPOSAL
Ricardo S BowleyUnited KingdomAsiya Javayant UNQUALIFIED
David K RoysterFranceOnyama Limba PROPOSAL
Maria P IturbideRussiaAsiya Javayant RENEWAL
Jefferson H MaletRussiaXuxue Feng NEW
Rodrigues U KuskoAustraliaAmy Elsner NEW
Misaki A FlosiArgentinaBernardo Dominic QUALIFIED
Nicolas W StockhamArgentinaBernardo Dominic QUALIFIED
Jefferson N OstroskyAustraliaBernardo Dominic NEW
Antonio B FollerBrazilStephen Shaw QUALIFIED
Maisha M AmigonAustraliaOnyama Limba NEGOTIATION
Wickens B FerenczBrazilIvan Magalhaes QUALIFIED
Munro T GillianBrazilAmy Elsner UNQUALIFIED
Clifford Q NestleIndiaOnyama Limba QUALIFIED
Kadeem W OstroskyArgentinaAsiya Javayant QUALIFIED
James I BriddickIndiaBernardo Dominic QUALIFIED
Maria L NestleJapanAnna Fali RENEWAL
Jefferson X OstroskyRussiaBernardo Dominic NEGOTIATION
Claire N InouyeIndiaAsiya Javayant QUALIFIED
Kaitlin B DarakjyRussiaAsiya Javayant UNQUALIFIED
Leja G VocelkaArgentinaStephen Shaw PROPOSAL
Jefferson P ChuiItalyAmy Elsner QUALIFIED
Maisha F FerenczAustraliaAnna Fali NEW
Emily X OstroskyFranceStephen Shaw NEGOTIATION
Tony V PaprockiBrazilXuxue Feng UNQUALIFIED
Alejandro G PerinRussiaStephen Shaw NEGOTIATION
Deepesh X PerinJapanAnna Fali NEGOTIATION
Claire B AlbaresFranceIoni Bowcher PROPOSAL
Frozen Columns
Name
Maisha L Venere
Cody L Oldroyd
Rodrigues V Darakjy
Aika B Gillian
Julie J Stenseth
Nicolas B Bolognia
Aditya X Vocelka
Izzy G Malet
Isabel I Nestle
Izzy K Wieser
Jones J Bowley
Emily L Whobrey
Faith H Saylors
Arvin Y Morasca
Leon W Slusarski
Alejandro V Paprocki
Emily X Darakjy
Johnson U Caudy
Johnson V Iturbide
Wickens T Marrier
Isabel V Gaucho
Morrow E Maclead
Jennifer B Marrier
Clifford O Gaucho
Emily B Stockham
Sinclair Z Albares
Kaitlin A Ostrosky
Johnson P Shinko
Leja I Morasca
Leon M Bolognia
Maisha S Shinko
Morrow V Waycott
Emily K Bowley
Jones L Ferencz
Morrow L Waycott
James O Darakjy
Julie F Shinko
Tony T Flosi
Julie C Nestle
Aruna P Caldarera
Clifford I Caudy
James K Kusko
Arvin Z Figeroa
Jones S Stockham
Cody I Foller
Stacey B Morasca
Stacey R Rulapaugh
Nicolas Y Nicka
Stacey L Bolognia
Cody P Malet
IdCountryDate
1000Russia2025-05-08
1001Australia2025-05-26
1002United Kingdom2025-05-30
1003India2025-05-20
1004Japan2025-05-29
1005Japan2025-05-11
1006Brazil2025-05-11
1007India2025-05-09
1008India2025-05-09
1009Brazil2025-05-26
1010Argentina2025-05-11
1011France2025-05-16
1012Russia2025-06-04
1013Germany2025-05-19
1014Argentina2025-06-03
1015Spain2025-05-20
1016Italy2025-05-12
1017Russia2025-05-18
1018Japan2025-05-17
1019France2025-05-14
1020Australia2025-05-15
1021Italy2025-05-27
1022Italy2025-05-13
1023Australia2025-05-30
1024Argentina2025-05-15
1025Canada2025-05-23
1026Spain2025-05-29
1027France2025-05-08
1028Russia2025-05-13
1029Japan2025-05-09
1030India2025-05-19
1031France2025-05-30
1032Italy2025-05-28
1033Canada2025-05-24
1034Italy2025-05-15
1035France2025-05-28
1036Argentina2025-05-11
1037Russia2025-05-11
1038Spain2025-05-17
1039Canada2025-05-22
1040Australia2025-05-26
1041Brazil2025-05-24
1042Canada2025-05-16
1043Germany2025-05-29
1044Australia2025-05-23
1045Spain2025-05-12
1046France2025-05-16
1047Japan2025-06-06
1048Brazil2025-05-19
1049Australia2025-06-06

On-Demand Data

NameIdCountryDate
Octavia A Malet1000Spain2025-05-19
Greenwood W Slusarski1001Canada2025-05-20
Nicolas C Stenseth1002Australia2025-05-12
Aika I Gaucho1003United Kingdom2025-05-09
David Z Ferencz1004Argentina2025-05-20
Ivar S Dilliard1005India2025-06-04
Mujtaba E Wieser1006France2025-05-19
Ashley E Wieser1007Brazil2025-05-30
Johnson G Gaucho1008India2025-06-01
Clifford X Paprocki1009Russia2025-05-10
James E Figeroa1010Italy2025-05-29
Misaki C Rulapaugh1011Australia2025-05-19
Jefferson J Ostrosky1012United Kingdom2025-05-16
Juan O Saylors1013Spain2025-06-05
Deepesh P Briddick1014Australia2025-05-26
Rodrigues X Glick1015India2025-05-25
Ivar W Morasca1016Spain2025-05-29
Francesco X Malet1017Canada2025-06-03
Morrow V Bolognia1018Canada2025-05-08
Silvio R Kolmetz1019Canada2025-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa A GlickItalyIoni Bowcher UNQUALIFIED
Ivar X IturbideItalyAmy Elsner PROPOSAL
Emily M DilliardAustraliaAsiya Javayant NEGOTIATION
Ashley T NestleGermanyAsiya Javayant RENEWAL
Maisha N IturbideCanadaAnna Fali RENEWAL
Ivar B SaylorsJapanAnna Fali QUALIFIED
Leon E WhobreyArgentinaElwin Sharvill NEGOTIATION
Aruna U DilliardRussiaIvan Magalhaes UNQUALIFIED
Salvatore J DilliardBrazilAnna Fali RENEWAL
Izzy C GlickAustraliaAsiya Javayant NEW
Darci P PoquetteGermanyIoni Bowcher NEGOTIATION
David D WaycottUnited KingdomAsiya Javayant NEW
Chavez W MaletJapanXuxue Feng NEGOTIATION
Maisha T VenereRussiaAmy Elsner NEGOTIATION
Aditya D VocelkaJapanElwin Sharvill NEGOTIATION
Maisha Y MarrierFranceStephen Shaw NEW
Aditya U AlbaresArgentinaStephen Shaw RENEWAL
Leja F BologniaSpainXuxue Feng PROPOSAL
Jefferson B MaletCanadaBernardo Dominic UNQUALIFIED
Cody O GillianItalyElwin Sharvill UNQUALIFIED
Aditya A VenereSpainIoni Bowcher NEW
Ivar H NickaGermanyStephen Shaw NEW
Julie V BriddickUnited KingdomAmy Elsner NEGOTIATION
Ivar M VocelkaFranceAsiya Javayant NEGOTIATION
Arvin Y CaudyArgentinaAmy Elsner QUALIFIED
James B PoquetteBrazilAnna Fali QUALIFIED
Smith I StensethArgentinaBernardo Dominic NEGOTIATION
Jennifer Q VocelkaBrazilIvan Magalhaes PROPOSAL
Claire J VocelkaUnited KingdomIvan Magalhaes RENEWAL
Emily Y MaletJapanAnna Fali PROPOSAL
Silvio R RoysterJapanAsiya Javayant NEW
Jones S PoquetteBrazilIoni Bowcher NEGOTIATION
Sinclair B RulapaughArgentinaAsiya Javayant RENEWAL
Kadeem M MarrierCanadaAmy Elsner NEW
Ivar O OstroskyFranceOnyama Limba RENEWAL
Aditya D SergiBrazilElwin Sharvill QUALIFIED
Emily L DoeSpainAnna Fali RENEWAL
Isabel P VocelkaSpainIoni Bowcher PROPOSAL
Maisha S MaletUnited KingdomAnna Fali NEW
Smith C KuskoCanadaElwin Sharvill 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>