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
Cody V GauchoFranceAnna Fali RENEWAL
Jones V KolmetzAustraliaStephen Shaw UNQUALIFIED
Aruna U ChuiBrazilBernardo Dominic RENEWAL
Francesco D ShinkoIndiaBernardo Dominic PROPOSAL
Maisha X GarufiBrazilXuxue Feng UNQUALIFIED
Arvin R RoysterIndiaOnyama Limba QUALIFIED
Jennifer Q VenereUnited KingdomAmy Elsner RENEWAL
Morrow J ButtSpainBernardo Dominic QUALIFIED
Arvin H WaycottSpainXuxue Feng PROPOSAL
Chavez V PaprockiAustraliaStephen Shaw RENEWAL
Leon H CaldareraItalyOnyama Limba NEW
Wickens F GauchoSpainBernardo Dominic UNQUALIFIED
Alejandro J VenereBrazilBernardo Dominic QUALIFIED
Arvin K CaudyUnited KingdomBernardo Dominic QUALIFIED
Cody X WaycottJapanXuxue Feng PROPOSAL
Izzy O RulapaughCanadaIoni Bowcher RENEWAL
Kadeem G CaldareraBrazilAmy Elsner NEGOTIATION
Aruna I KuskoGermanyAsiya Javayant UNQUALIFIED
James N FigeroaJapanIoni Bowcher QUALIFIED
Tony R PaprockiRussiaElwin Sharvill PROPOSAL
Ricardo G PerinGermanyStephen Shaw QUALIFIED
Chavez G FerenczBrazilElwin Sharvill NEW
Antonio F GauchoUnited KingdomBernardo Dominic NEW
Isabel J MaletSpainIvan Magalhaes QUALIFIED
Izzy J MorascaFranceIoni Bowcher NEGOTIATION
Ashley Z DilliardRussiaElwin Sharvill PROPOSAL
Francesco A GarufiArgentinaAnna Fali QUALIFIED
Silvio M DilliardSpainXuxue Feng PROPOSAL
Jennifer S MorascaIndiaAsiya Javayant UNQUALIFIED
Octavia F SchemmerRussiaXuxue Feng PROPOSAL
Jeanfrancois A OstroskyRussiaAsiya Javayant QUALIFIED
Julie D VenereFranceBernardo Dominic UNQUALIFIED
Ashley K ButtGermanyOnyama Limba NEGOTIATION
Smith B WhobreyUnited KingdomStephen Shaw NEGOTIATION
Greenwood L OldroydIndiaBernardo Dominic NEGOTIATION
Claire L StensethArgentinaAmy Elsner NEGOTIATION
Costa Y DarakjyIndiaElwin Sharvill RENEWAL
Kadeem J WhobreyBrazilXuxue Feng QUALIFIED
Darci T KolmetzUnited KingdomBernardo Dominic QUALIFIED
Stacey P RulapaughBrazilAnna Fali RENEWAL
James G VocelkaSpainBernardo Dominic NEW
Clifford F KolmetzSpainIvan Magalhaes NEGOTIATION
Maria Z VocelkaCanadaAnna Fali PROPOSAL
Julie V RimJapanIvan Magalhaes NEW
Chavez W ShinkoSpainIoni Bowcher UNQUALIFIED
Tony J VocelkaJapanOnyama Limba QUALIFIED
Kaitlin G StensethAustraliaAmy Elsner QUALIFIED
Sinclair I TollnerFranceElwin Sharvill NEW
James P GlickUnited KingdomBernardo Dominic RENEWAL
Izzy S GillianFranceOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily Z BologniaRussiaXuxue Feng QUALIFIED
Alejandro T ButtBrazilElwin Sharvill NEW
Maisha G KuskoAustraliaIoni Bowcher PROPOSAL
Sinclair H RimSpainXuxue Feng QUALIFIED
Aruna R IturbideRussiaOnyama Limba PROPOSAL
Munro G ChuiBrazilAmy Elsner QUALIFIED
Isabel G StockhamCanadaStephen Shaw NEGOTIATION
Misaki Z GarufiRussiaBernardo Dominic NEGOTIATION
Francesco K GlickGermanyXuxue Feng UNQUALIFIED
Arvin X VenereIndiaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa E ButtItaly2026-07-23Rangoni Of Florence RENEWAL12Asiya Javayant
1001Aditya E FlosiGermany2026-07-25Feiner Bros RENEWAL39Elwin Sharvill
1002Aruna Q VocelkaCanada2026-07-31Dorl, James J Esq RENEWAL55Elwin Sharvill
1003Julie G WieserIndia2026-07-18Rousseaux, Michael Esq RENEWAL96Stephen Shaw
1004Leon R TollnerSpain2026-08-01Buckley Miller Wright UNQUALIFIED39Ivan Magalhaes
1005Octavia R SchemmerIndia2026-07-20Benton, John B Jr UNQUALIFIED79Elwin Sharvill
1006Leja M BologniaGermany2026-08-01Feiner Bros PROPOSAL33Stephen Shaw
1007Jefferson L PaprockiIndia2026-08-04Printing Dimensions PROPOSAL37Bernardo Dominic
1008Ivar R GillianGermany2026-07-21Feiner Bros NEW73Stephen Shaw
1009Morrow L SaylorsJapan2026-08-10Rousseaux, Michael Esq NEGOTIATION61Stephen Shaw
1010Leon I SchemmerUnited Kingdom2026-08-12Morlong Associates QUALIFIED51Onyama Limba
1011Darci W MorascaJapan2026-08-11Benton, John B Jr NEW67Bernardo Dominic
1012Clifford T WhobreyIndia2026-07-25Chanay, Jeffrey A Esq NEGOTIATION78Xuxue Feng
1013Deepesh G FlosiUnited Kingdom2026-08-07Rangoni Of Florence NEW6Stephen Shaw
1014Maria J FlosiAustralia2026-07-22King, Christopher A Esq PROPOSAL35Amy Elsner
1015Jefferson K FigeroaGermany2026-08-10Printing Dimensions NEGOTIATION8Elwin Sharvill
1016Stacey O ButtSpain2026-08-08Commercial Press UNQUALIFIED66Ioni Bowcher
1017Sinclair I PoquetteJapan2026-08-12Chemel, James L Cpa UNQUALIFIED76Ioni Bowcher
1018Arvin C FerenczCanada2026-08-05Rousseaux, Michael Esq PROPOSAL49Onyama Limba
1019Arvin C FlosiAustralia2026-08-01Benton, John B Jr RENEWAL36Xuxue Feng
1020David Y CampainBrazil2026-08-10Chanay, Jeffrey A Esq RENEWAL78Amy Elsner
1021James B RoysterBrazil2026-07-24Printing Dimensions NEW28Elwin Sharvill
1022Darci I CampainUnited Kingdom2026-08-10Rousseaux, Michael Esq PROPOSAL70Anna Fali
1023Tony T VenereJapan2026-08-04Feiner Bros UNQUALIFIED97Elwin Sharvill
1024Mayumi I DilliardSpain2026-07-17Feltz Printing Service NEW38Amy Elsner
1025Claire L WhobreyBrazil2026-07-24Rangoni Of Florence NEW84Amy Elsner
1026Aika W AmigonSpain2026-08-09Chapman, Ross E Esq PROPOSAL38Bernardo Dominic
1027Adams Z SaylorsCanada2026-08-01Buckley Miller Wright QUALIFIED39Amy Elsner
1028Octavia U BowleyRussia2026-08-12King, Christopher A Esq NEGOTIATION50Anna Fali
1029Ashley P KuskoRussia2026-08-08Commercial Press QUALIFIED96Anna Fali
1030Jennifer V NickaCanada2026-07-29Dorl, James J Esq QUALIFIED0Asiya Javayant
1031Ivar A RimItaly2026-07-28Chemel, James L Cpa UNQUALIFIED38Stephen Shaw
1032Costa A DilliardGermany2026-08-08King, Christopher A Esq PROPOSAL13Ioni Bowcher
1033Costa C WaycottSpain2026-08-06Morlong Associates RENEWAL2Stephen Shaw
1034Juan T BriddickGermany2026-08-04Dorl, James J Esq RENEWAL96Onyama Limba
1035Maisha P WieserCanada2026-07-25Rangoni Of Florence NEW52Ivan Magalhaes
1036James C PerinGermany2026-07-21Chemel, James L Cpa NEW29Bernardo Dominic
1037Jefferson M NickaAustralia2026-07-20Rousseaux, Michael Esq PROPOSAL77Elwin Sharvill
1038Nicolas K DilliardJapan2026-08-01Morlong Associates UNQUALIFIED64Stephen Shaw
1039Cody J StensethAustralia2026-08-10Feltz Printing Service RENEWAL0Stephen Shaw
1040Kadeem P CaldareraIndia2026-07-17Feltz Printing Service QUALIFIED1Elwin Sharvill
1041Stacey C SergiItaly2026-07-19King, Christopher A Esq PROPOSAL87Asiya Javayant
1042David U ChuiCanada2026-07-18Rousseaux, Michael Esq QUALIFIED64Amy Elsner
1043Nicolas B DoeGermany2026-08-11Buckley Miller Wright QUALIFIED73Bernardo Dominic
1044Julie Z BriddickArgentina2026-07-21Rangoni Of Florence RENEWAL58Elwin Sharvill
1045Stacey I ChuiUnited Kingdom2026-08-09Truhlar And Truhlar Attys PROPOSAL10Ioni Bowcher
1046Mujtaba S ButtRussia2026-08-13Chapman, Ross E Esq NEGOTIATION27Anna Fali
1047Leja Z ButtUnited Kingdom2026-07-20Feltz Printing Service PROPOSAL26Stephen Shaw
1048Leon W MaletArgentina2026-08-10Rousseaux, Michael Esq QUALIFIED60Elwin Sharvill
1049Mujtaba U CaudyUnited Kingdom2026-07-23Chanay, Jeffrey A Esq QUALIFIED77Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford N StockhamArgentinaIoni Bowcher UNQUALIFIED
Costa F ChuiCanadaAnna Fali NEGOTIATION
Francesco B DilliardRussiaAsiya Javayant RENEWAL
Jones B AmigonUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin E DilliardBrazilIvan Magalhaes RENEWAL
Antonio F StensethGermanyStephen Shaw NEW
Claire R MarrierJapanAsiya Javayant UNQUALIFIED
Darci W VenereItalyOnyama Limba PROPOSAL
Jefferson Z FollerRussiaAsiya Javayant NEW
Mujtaba S WaycottJapanAmy Elsner NEGOTIATION
Munro T MaletRussiaAsiya Javayant NEW
Julie E IturbideItalyAnna Fali PROPOSAL
Jennifer W PerinCanadaAsiya Javayant QUALIFIED
Adams D RimRussiaIoni Bowcher NEW
Leja M KuskoAustraliaIvan Magalhaes PROPOSAL
Munro Q MarrierItalyIvan Magalhaes NEGOTIATION
Misaki D DarakjyFranceOnyama Limba UNQUALIFIED
Munro H SchemmerJapanAnna Fali QUALIFIED
Faith H GlickBrazilElwin Sharvill NEW
Aika L MarrierBrazilStephen Shaw NEW
Izzy U DoeItalyBernardo Dominic NEGOTIATION
Rodrigues E SchemmerArgentinaAsiya Javayant UNQUALIFIED
Sinclair V CaudyJapanAmy Elsner PROPOSAL
Aditya F PaprockiCanadaOnyama Limba QUALIFIED
Deepesh I CaudyAustraliaElwin Sharvill QUALIFIED
Rodrigues M GauchoSpainXuxue Feng NEW
Rodrigues H FigeroaFranceXuxue Feng NEW
Adams R RoysterBrazilAnna Fali PROPOSAL
Smith S OldroydSpainIoni Bowcher UNQUALIFIED
Alejandro X ButtAustraliaElwin Sharvill PROPOSAL
Nicolas J DarakjyIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois I OstroskyIndiaStephen Shaw NEGOTIATION
Antonio B DarakjyCanadaAnna Fali QUALIFIED
Isabel O KuskoAustraliaBernardo Dominic RENEWAL
Kadeem C GarufiCanadaAnna Fali NEW
Wickens Y FollerFranceAnna Fali PROPOSAL
Ricardo Q ButtArgentinaAsiya Javayant PROPOSAL
Kadeem Z FollerFranceBernardo Dominic PROPOSAL
Mujtaba A FerenczCanadaStephen Shaw UNQUALIFIED
Jefferson U OldroydSpainIoni Bowcher NEW
Salvatore K IturbideAustraliaAsiya Javayant PROPOSAL
Deepesh X InouyeItalyAnna Fali QUALIFIED
Octavia I DilliardGermanyOnyama Limba RENEWAL
Aruna R FerenczBrazilIvan Magalhaes NEW
James B FlosiRussiaOnyama Limba QUALIFIED
Maria J VocelkaItalyStephen Shaw PROPOSAL
Antonio I KolmetzItalyAsiya Javayant NEGOTIATION
Tony D MaletSpainXuxue Feng RENEWAL
Aditya H MacleadArgentinaAnna Fali NEW
Juan F IturbideSpainElwin Sharvill RENEWAL
Frozen Columns
Name
Jeanfrancois P Slusarski
Cody X Amigon
Rodrigues X Glick
Stacey D Venere
Ricardo X Caudy
Octavia P Wieser
Arvin B Chui
Aika L Stockham
Munro G Flosi
Tony C Tollner
Aditya J Perin
Jeanfrancois O Ostrosky
Aruna W Rim
Aditya B Rulapaugh
Munro F Caudy
Murillo J Garufi
Adams H Whobrey
Mayumi E Garufi
Tony C Malet
Kadeem F Flosi
Morrow K Rim
Francesco I Poquette
Deepesh S Chui
Julie S Poquette
Cody H Chui
Wickens Z Saylors
Deepesh K Gaucho
Misaki Y Caudy
Juan D Ostrosky
Costa T Butt
Antonio F Tollner
Smith F Malet
Maisha Q Gillian
Mayumi F Doe
Ivar N Nicka
Morrow Q Oldroyd
Jennifer S Saylors
Wickens A Briddick
Wickens Q Nestle
Silvio Z Foller
Kadeem W Figeroa
Antonio V Bolognia
Jennifer N Glick
Costa G Tollner
Costa W Stenseth
Maisha Z Iturbide
Mayumi B Ferencz
Maria B Sergi
Juan O Darakjy
Julie B Saylors
IdCountryDate
1000Germany2026-07-23
1001Spain2026-07-19
1002Germany2026-07-15
1003Australia2026-07-26
1004France2026-07-17
1005Canada2026-07-27
1006United Kingdom2026-07-30
1007Argentina2026-08-02
1008Germany2026-08-03
1009Russia2026-08-02
1010Spain2026-08-10
1011United Kingdom2026-08-10
1012Russia2026-07-28
1013Brazil2026-07-30
1014Japan2026-07-28
1015Argentina2026-07-28
1016Spain2026-08-08
1017United Kingdom2026-08-08
1018Argentina2026-07-15
1019Australia2026-07-18
1020United Kingdom2026-08-02
1021Germany2026-07-22
1022India2026-07-24
1023France2026-07-23
1024Spain2026-08-04
1025Brazil2026-07-19
1026Argentina2026-08-06
1027Canada2026-07-29
1028Spain2026-08-12
1029Germany2026-07-25
1030Russia2026-08-05
1031Japan2026-07-26
1032Argentina2026-08-10
1033Germany2026-08-07
1034Argentina2026-08-03
1035Germany2026-08-09
1036India2026-08-13
1037Germany2026-08-10
1038Italy2026-07-23
1039Russia2026-08-07
1040France2026-07-25
1041Argentina2026-07-29
1042India2026-08-13
1043Japan2026-07-27
1044Spain2026-07-18
1045India2026-07-15
1046Germany2026-08-12
1047Italy2026-07-16
1048Russia2026-08-09
1049Argentina2026-08-12

On-Demand Data

NameIdCountryDate
Deepesh S Caudy1000Argentina2026-07-19
Clifford F Amigon1001Russia2026-08-06
Ivar G Maclead1002Germany2026-08-10
Smith X Waycott1003Australia2026-07-30
Nicolas D Malet1004Australia2026-07-15
Murillo M Slusarski1005United Kingdom2026-07-19
David M Perin1006Argentina2026-07-24
Aruna M Campain1007India2026-08-10
Maisha U Foller1008Spain2026-07-19
Munro J Morasca1009India2026-08-06
Smith V Stockham1010Japan2026-07-25
David V Nestle1011Italy2026-08-05
Emily Q Perin1012Japan2026-07-20
Tony G Maclead1013Australia2026-07-28
Jennifer I Glick1014Italy2026-08-05
Aruna Q Marrier1015Italy2026-07-31
Tony X Stenseth1016India2026-07-23
Rodrigues P Morasca1017Italy2026-08-12
Chavez N Iturbide1018Australia2026-08-09
Munro N Perin1019Canada2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David Q RoysterFranceBernardo Dominic QUALIFIED
Wickens F GauchoBrazilElwin Sharvill UNQUALIFIED
Isabel N FollerBrazilAsiya Javayant QUALIFIED
Jennifer O RutaAustraliaElwin Sharvill UNQUALIFIED
Arvin V SaylorsArgentinaOnyama Limba UNQUALIFIED
Morrow Q NestleIndiaAsiya Javayant UNQUALIFIED
Chavez S MacleadJapanIoni Bowcher RENEWAL
Mayumi E BologniaSpainElwin Sharvill NEW
David V RulapaughRussiaIvan Magalhaes UNQUALIFIED
Claire Y RoysterIndiaIvan Magalhaes UNQUALIFIED
Deepesh J WhobreyFranceIoni Bowcher PROPOSAL
Emily Y AmigonArgentinaXuxue Feng NEGOTIATION
Jennifer N WhobreyFranceAnna Fali RENEWAL
Adams O WhobreySpainOnyama Limba NEW
Greenwood N OldroydIndiaXuxue Feng RENEWAL
Sinclair F GlickIndiaBernardo Dominic PROPOSAL
Kadeem H SchemmerItalyOnyama Limba NEGOTIATION
Tony N ChuiIndiaIoni Bowcher UNQUALIFIED
Ricardo U StensethArgentinaStephen Shaw NEW
Juan B MorascaArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois Y PoquetteArgentinaIoni Bowcher UNQUALIFIED
Leja M NestleSpainBernardo Dominic NEW
Costa Q SlusarskiGermanyBernardo Dominic RENEWAL
Jefferson V VenereArgentinaAsiya Javayant UNQUALIFIED
Deepesh F RoysterBrazilAnna Fali NEW
Costa H FlosiAustraliaAnna Fali NEW
Francesco V StensethItalyAnna Fali QUALIFIED
Tony F KolmetzAustraliaXuxue Feng QUALIFIED
Munro B OldroydJapanOnyama Limba UNQUALIFIED
Tony X SchemmerRussiaElwin Sharvill PROPOSAL
Arvin C CaldareraAustraliaElwin Sharvill NEW
Julie Q KolmetzSpainXuxue Feng PROPOSAL
Claire O MaletJapanAsiya Javayant NEGOTIATION
James C ChuiJapanAsiya Javayant NEGOTIATION
Emily I VocelkaRussiaOnyama Limba UNQUALIFIED
Mujtaba B CaudyUnited KingdomAsiya Javayant QUALIFIED
Leja R ButtIndiaBernardo Dominic QUALIFIED
Ashley J StockhamItalyIoni Bowcher RENEWAL
Aruna W DarakjyJapanAsiya Javayant QUALIFIED
Stacey Q SergiIndiaAnna Fali QUALIFIED

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