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
Tony O MaletArgentinaStephen Shaw UNQUALIFIED
Arvin E CaudyItalyStephen Shaw PROPOSAL
Deepesh X ButtCanadaStephen Shaw RENEWAL
Faith T MaletIndiaIvan Magalhaes PROPOSAL
Jeanfrancois I WaycottIndiaOnyama Limba PROPOSAL
Sinclair C IturbideIndiaAnna Fali PROPOSAL
Stacey L SergiJapanBernardo Dominic NEGOTIATION
Aditya C CaudyCanadaIoni Bowcher RENEWAL
Murillo I SchemmerRussiaXuxue Feng NEW
James V ShinkoRussiaElwin Sharvill QUALIFIED
Arvin F SaylorsArgentinaStephen Shaw PROPOSAL
Jennifer W MorascaFranceOnyama Limba UNQUALIFIED
Antonio S GlickJapanOnyama Limba NEW
Jennifer Y SergiItalyXuxue Feng NEW
Murillo B IturbideBrazilBernardo Dominic NEGOTIATION
Alejandro U DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Deepesh P CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro D SaylorsItalyElwin Sharvill PROPOSAL
Francesco F StensethJapanXuxue Feng NEW
Maria F FlosiJapanOnyama Limba NEW
Mujtaba M FigeroaAustraliaAnna Fali NEW
Antonio F OldroydArgentinaAsiya Javayant UNQUALIFIED
Sinclair A PoquetteCanadaXuxue Feng NEGOTIATION
Rodrigues K BowleyJapanAmy Elsner NEGOTIATION
Mujtaba Y SaylorsRussiaIoni Bowcher RENEWAL
Octavia Y SaylorsUnited KingdomOnyama Limba NEW
Chavez Q GlickUnited KingdomOnyama Limba NEGOTIATION
Maria H RimJapanOnyama Limba NEGOTIATION
Aditya T InouyeAustraliaElwin Sharvill QUALIFIED
Kaitlin T GillianGermanyStephen Shaw QUALIFIED
Aditya D FlosiItalyBernardo Dominic NEW
Kaitlin F FollerUnited KingdomAnna Fali RENEWAL
Jennifer X BologniaBrazilOnyama Limba PROPOSAL
Jennifer Q GarufiJapanStephen Shaw RENEWAL
Stacey Z StockhamAustraliaAsiya Javayant NEW
Maisha N FlosiRussiaBernardo Dominic PROPOSAL
Cody N KuskoJapanIvan Magalhaes UNQUALIFIED
Claire K AlbaresGermanyAnna Fali RENEWAL
Smith O AlbaresArgentinaXuxue Feng QUALIFIED
Claire E ChuiUnited KingdomBernardo Dominic QUALIFIED
James U PerinSpainOnyama Limba RENEWAL
Deepesh O WieserGermanyOnyama Limba RENEWAL
Adams O ShinkoCanadaElwin Sharvill PROPOSAL
Wickens B RoysterArgentinaAsiya Javayant NEGOTIATION
Greenwood G BriddickArgentinaStephen Shaw NEGOTIATION
Ricardo Y VenereUnited KingdomElwin Sharvill NEW
Aika W InouyeJapanBernardo Dominic NEGOTIATION
Izzy P AmigonAustraliaStephen Shaw QUALIFIED
Ricardo A KolmetzGermanyIoni Bowcher RENEWAL
Deepesh Y GarufiRussiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy Y DilliardItalyOnyama Limba RENEWAL
Ivar D MarrierCanadaStephen Shaw QUALIFIED
Murillo U MarrierIndiaXuxue Feng RENEWAL
Claire E NestleFranceAsiya Javayant QUALIFIED
Deepesh C IturbideSpainXuxue Feng UNQUALIFIED
Claire N DilliardIndiaIvan Magalhaes NEGOTIATION
Darci B DoeRussiaAsiya Javayant PROPOSAL
Mujtaba D SergiAustraliaAmy Elsner QUALIFIED
Cody R DarakjyIndiaBernardo Dominic UNQUALIFIED
Aruna X VocelkaArgentinaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin R GlickIndia2026-08-18Truhlar And Truhlar Attys PROPOSAL50Xuxue Feng
1001Maria G PerinCanada2026-07-26Chemel, James L Cpa RENEWAL84Ivan Magalhaes
1002Nicolas K RimRussia2026-08-05Buckley Miller Wright PROPOSAL97Bernardo Dominic
1003Alejandro S GlickGermany2026-08-08Benton, John B Jr QUALIFIED68Ioni Bowcher
1004James C RoysterIndia2026-08-14Rangoni Of Florence NEW70Xuxue Feng
1005Ivar B PerinUnited Kingdom2026-07-25Morlong Associates NEGOTIATION45Xuxue Feng
1006Claire X FollerGermany2026-07-31Commercial Press NEGOTIATION41Xuxue Feng
1007Isabel G VenereSpain2026-08-16Buckley Miller Wright NEGOTIATION6Ioni Bowcher
1008Arvin Z SchemmerAustralia2026-08-10Printing Dimensions NEW92Anna Fali
1009Faith C BriddickIndia2026-08-04Truhlar And Truhlar Attys RENEWAL91Stephen Shaw
1010Kadeem D AlbaresFrance2026-07-27King, Christopher A Esq UNQUALIFIED83Ivan Magalhaes
1011Isabel M GlickCanada2026-07-30Feltz Printing Service RENEWAL52Onyama Limba
1012Maisha G SlusarskiGermany2026-08-09Dorl, James J Esq NEW66Amy Elsner
1013Mujtaba T BriddickAustralia2026-08-10Rangoni Of Florence NEW47Ivan Magalhaes
1014Leon U GauchoGermany2026-07-31King, Christopher A Esq RENEWAL66Anna Fali
1015Izzy C TollnerAustralia2026-07-30Morlong Associates NEGOTIATION47Onyama Limba
1016Murillo V DilliardBrazil2026-08-19Printing Dimensions RENEWAL84Ioni Bowcher
1017Ashley T DilliardGermany2026-08-03Commercial Press NEW7Onyama Limba
1018Arvin R ShinkoAustralia2026-08-13Benton, John B Jr NEGOTIATION22Amy Elsner
1019Wickens Z GauchoFrance2026-08-06Rangoni Of Florence RENEWAL86Ioni Bowcher
1020Misaki K RutaItaly2026-08-19Feltz Printing Service RENEWAL15Xuxue Feng
1021David W GlickRussia2026-08-13Feltz Printing Service QUALIFIED46Stephen Shaw
1022Izzy X IturbideItaly2026-08-19Chemel, James L Cpa UNQUALIFIED24Elwin Sharvill
1023Claire Q WaycottArgentina2026-08-03Printing Dimensions RENEWAL73Ivan Magalhaes
1024Clifford Q OldroydIndia2026-08-13Commercial Press QUALIFIED68Ivan Magalhaes
1025Julie Z OstroskyIndia2026-08-10Dorl, James J Esq QUALIFIED14Ivan Magalhaes
1026Arvin M DoeAustralia2026-07-30Morlong Associates NEW13Ivan Magalhaes
1027Ashley R RulapaughSpain2026-08-16Printing Dimensions NEW13Anna Fali
1028Adams W VenereItaly2026-07-31Rousseaux, Michael Esq NEGOTIATION96Amy Elsner
1029Stacey K CaudyRussia2026-08-04Rousseaux, Michael Esq RENEWAL6Ivan Magalhaes
1030Leon G MarrierJapan2026-07-24Feiner Bros RENEWAL70Bernardo Dominic
1031Darci U OstroskyJapan2026-08-04Printing Dimensions PROPOSAL45Amy Elsner
1032Jennifer D KolmetzArgentina2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED33Stephen Shaw
1033Alejandro M CaudyBrazil2026-08-03Rousseaux, Michael Esq RENEWAL26Amy Elsner
1034Ivar H SaylorsBrazil2026-07-30Dorl, James J Esq NEW11Elwin Sharvill
1035Aditya H IturbideJapan2026-08-01Morlong Associates QUALIFIED64Stephen Shaw
1036Alejandro F RulapaughFrance2026-07-30Printing Dimensions RENEWAL12Xuxue Feng
1037Silvio Y ChuiUnited Kingdom2026-07-26Chapman, Ross E Esq PROPOSAL20Ivan Magalhaes
1038Leon O PerinAustralia2026-08-12Feltz Printing Service PROPOSAL44Amy Elsner
1039Juan N OldroydJapan2026-08-10Chemel, James L Cpa PROPOSAL54Stephen Shaw
1040Kaitlin H PoquetteUnited Kingdom2026-07-22Truhlar And Truhlar Attys QUALIFIED82Anna Fali
1041Wickens J GlickRussia2026-08-10Chemel, James L Cpa QUALIFIED35Onyama Limba
1042Jefferson N SergiFrance2026-07-22Feltz Printing Service PROPOSAL33Asiya Javayant
1043Ricardo B CaudyJapan2026-08-06Printing Dimensions NEW26Ioni Bowcher
1044Aditya H PaprockiFrance2026-08-12Chanay, Jeffrey A Esq NEGOTIATION53Ioni Bowcher
1045Octavia V SergiSpain2026-07-31Dorl, James J Esq PROPOSAL52Onyama Limba
1046Tony F VocelkaBrazil2026-08-11Commercial Press RENEWAL32Onyama Limba
1047Alejandro J IturbideGermany2026-07-30Printing Dimensions RENEWAL20Xuxue Feng
1048Rodrigues H PerinJapan2026-08-10Rousseaux, Michael Esq RENEWAL90Onyama Limba
1049Nicolas T PoquetteIndia2026-07-30Feiner Bros UNQUALIFIED73Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Morrow B OldroydGermanyXuxue Feng UNQUALIFIED
Mujtaba W VocelkaItalyAsiya Javayant NEW
David V MaletCanadaStephen Shaw NEGOTIATION
Kadeem H PaprockiRussiaAmy Elsner RENEWAL
Costa P FerenczSpainIvan Magalhaes NEGOTIATION
Darci M FlosiItalyXuxue Feng RENEWAL
Julie W GarufiJapanAsiya Javayant PROPOSAL
Costa K RoysterJapanIvan Magalhaes UNQUALIFIED
Silvio X WaycottUnited KingdomAnna Fali NEW
Cody W PoquetteArgentinaIoni Bowcher NEGOTIATION
Munro W MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Octavia F CaldareraItalyElwin Sharvill PROPOSAL
Munro A SergiArgentinaAnna Fali QUALIFIED
Octavia X NickaRussiaAsiya Javayant PROPOSAL
Alejandro S WhobreyRussiaIoni Bowcher PROPOSAL
Maria S ButtIndiaAsiya Javayant PROPOSAL
Aditya R FlosiRussiaIvan Magalhaes QUALIFIED
Maisha M FigeroaCanadaIoni Bowcher RENEWAL
Jefferson O StensethSpainIvan Magalhaes QUALIFIED
David W PoquetteCanadaXuxue Feng NEGOTIATION
Claire C InouyeIndiaXuxue Feng PROPOSAL
Ashley S GarufiSpainXuxue Feng NEGOTIATION
Aruna D FigeroaJapanAnna Fali RENEWAL
Tony Z GarufiFranceOnyama Limba UNQUALIFIED
Johnson N CampainFranceOnyama Limba PROPOSAL
Stacey Z MaletJapanBernardo Dominic PROPOSAL
Johnson W CampainAustraliaAnna Fali PROPOSAL
Francesco L FerenczIndiaAmy Elsner RENEWAL
Antonio G BriddickItalyXuxue Feng PROPOSAL
Maria F ChuiItalyElwin Sharvill NEW
Alejandro P MacleadRussiaAnna Fali NEW
Maisha N DarakjyFranceOnyama Limba PROPOSAL
Deepesh E GauchoArgentinaIvan Magalhaes RENEWAL
Deepesh T MaletRussiaXuxue Feng NEGOTIATION
David T StensethFranceStephen Shaw UNQUALIFIED
Julie E BologniaItalyIvan Magalhaes PROPOSAL
Juan W MarrierUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois T CampainRussiaIvan Magalhaes NEGOTIATION
Nicolas Y ChuiItalyAsiya Javayant RENEWAL
Isabel X MorascaGermanyAmy Elsner RENEWAL
Murillo Q WaycottAustraliaAnna Fali NEGOTIATION
Aditya Z DarakjyRussiaAmy Elsner RENEWAL
Adams H DilliardRussiaIvan Magalhaes NEW
Salvatore U RimAustraliaAmy Elsner NEW
Ivar R CampainGermanyAmy Elsner NEGOTIATION
Kadeem S RutaUnited KingdomElwin Sharvill UNQUALIFIED
Aika D CaudyBrazilElwin Sharvill NEGOTIATION
Maria O BriddickFranceAsiya Javayant QUALIFIED
Leja H PaprockiItalyAmy Elsner NEW
Adams S CaudyUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Leja I Sergi
Alejandro B Butt
Silvio F Caudy
Jones U Rulapaugh
Claire P Venere
Adams N Nestle
Silvio S Schemmer
Maisha L Poquette
Ashley Q Glick
Tony L Albares
Mujtaba F Poquette
Kaitlin I Foller
Jones F Iturbide
Ashley C Waycott
James Y Dilliard
Mayumi R Morasca
James V Schemmer
Murillo G Waycott
Jennifer Y Kusko
Alejandro P Paprocki
Izzy Q Albares
Clifford O Vocelka
Aditya J Maclead
James I Glick
Leon R Ruta
Morrow Q Stockham
Sinclair D Whobrey
Aruna A Figeroa
Tony N Dilliard
Aruna L Dilliard
Ricardo R Kusko
Silvio N Gillian
Jennifer R Whobrey
Francesco T Malet
Aditya Y Glick
Smith P Flosi
Munro T Gillian
Wickens S Rim
Sinclair B Darakjy
Juan L Slusarski
Alejandro C Morasca
Mayumi S Wieser
Leon Q Bowley
Johnson U Rim
Murillo C Gaucho
Aruna O Oldroyd
Isabel E Morasca
Misaki B Butt
Jennifer V Saylors
Aruna A Ruta
IdCountryDate
1000United Kingdom2026-08-10
1001United Kingdom2026-08-16
1002Germany2026-08-11
1003France2026-08-16
1004France2026-08-04
1005Canada2026-07-27
1006Russia2026-08-03
1007Italy2026-08-06
1008Brazil2026-08-15
1009Canada2026-08-13
1010Japan2026-07-30
1011Canada2026-07-23
1012Australia2026-08-15
1013Argentina2026-07-30
1014Canada2026-08-16
1015France2026-08-13
1016Australia2026-08-07
1017Italy2026-08-14
1018Japan2026-08-14
1019Canada2026-07-23
1020France2026-08-15
1021Spain2026-08-14
1022France2026-08-08
1023Japan2026-08-10
1024Italy2026-07-22
1025Argentina2026-08-11
1026Australia2026-07-31
1027Canada2026-07-26
1028Spain2026-07-30
1029Japan2026-07-23
1030Australia2026-08-20
1031India2026-08-04
1032Canada2026-08-05
1033Argentina2026-08-10
1034Germany2026-07-29
1035Australia2026-08-09
1036Japan2026-07-28
1037Brazil2026-08-06
1038Argentina2026-08-18
1039Spain2026-08-14
1040Argentina2026-08-07
1041Russia2026-08-01
1042Italy2026-07-31
1043Russia2026-07-23
1044Russia2026-08-11
1045India2026-08-04
1046France2026-08-11
1047France2026-08-02
1048Russia2026-07-22
1049Japan2026-08-08

On-Demand Data

NameIdCountryDate
Adams V Butt1000United Kingdom2026-08-05
Leja M Albares1001Brazil2026-08-10
Cody M Flosi1002India2026-08-16
James Q Waycott1003Spain2026-08-08
Sinclair A Chui1004Japan2026-07-24
Darci B Nicka1005Russia2026-08-10
Murillo H Perin1006Spain2026-08-08
Stacey L Stockham1007Italy2026-08-10
James G Doe1008Brazil2026-08-18
Murillo M Campain1009Argentina2026-08-04
Adams Z Campain1010Canada2026-07-31
Ashley C Figeroa1011Canada2026-08-03
Francesco I Malet1012Canada2026-08-12
Cody W Garufi1013India2026-08-11
Darci Y Albares1014Italy2026-08-19
Aruna R Gaucho1015United Kingdom2026-08-13
Emily I Glick1016Brazil2026-08-19
Clifford A Wieser1017United Kingdom2026-08-15
Izzy R Gillian1018Brazil2026-08-07
Jennifer O Caldarera1019Argentina2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson L CampainArgentinaIoni Bowcher PROPOSAL
Murillo X AmigonAustraliaIoni Bowcher NEW
Silvio I RutaGermanyOnyama Limba PROPOSAL
Jennifer F PerinAustraliaAnna Fali RENEWAL
Sinclair Z GarufiAustraliaXuxue Feng PROPOSAL
Jennifer W WhobreyArgentinaIoni Bowcher UNQUALIFIED
Alejandro A MacleadAustraliaIvan Magalhaes RENEWAL
Nicolas U AmigonCanadaOnyama Limba PROPOSAL
Leja X SaylorsIndiaOnyama Limba RENEWAL
Darci S AmigonBrazilStephen Shaw QUALIFIED
Ashley I ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Ashley E MacleadSpainAnna Fali NEGOTIATION
Jefferson D SergiUnited KingdomOnyama Limba UNQUALIFIED
Jones W MarrierUnited KingdomAsiya Javayant QUALIFIED
Salvatore E OstroskyGermanyIvan Magalhaes NEGOTIATION
Kadeem Z StockhamBrazilAsiya Javayant PROPOSAL
Ashley N SlusarskiIndiaBernardo Dominic PROPOSAL
Tony X VenereArgentinaIoni Bowcher UNQUALIFIED
Mujtaba V DarakjyAustraliaAnna Fali PROPOSAL
Nicolas W KuskoUnited KingdomElwin Sharvill RENEWAL
Adams F MacleadSpainAsiya Javayant NEGOTIATION
Munro L IturbideSpainStephen Shaw QUALIFIED
Mayumi U NickaItalyIvan Magalhaes NEGOTIATION
Wickens L FlosiSpainAmy Elsner QUALIFIED
Mayumi H SaylorsBrazilOnyama Limba RENEWAL
Julie A NestleSpainElwin Sharvill RENEWAL
Morrow Z KuskoUnited KingdomAsiya Javayant PROPOSAL
Claire F RutaBrazilAmy Elsner PROPOSAL
Stacey W SergiBrazilOnyama Limba NEGOTIATION
Murillo A MaletJapanElwin Sharvill NEW
Julie G StensethItalyIoni Bowcher PROPOSAL
Jones Y WieserFranceAnna Fali QUALIFIED
Faith W GillianItalyXuxue Feng RENEWAL
Mujtaba F GillianIndiaIvan Magalhaes NEGOTIATION
Greenwood C RoysterItalyAsiya Javayant NEW
Costa O GarufiBrazilAnna Fali NEGOTIATION
Mujtaba B MacleadItalyXuxue Feng QUALIFIED
Nicolas L SaylorsGermanyElwin Sharvill UNQUALIFIED
Clifford U RutaItalyOnyama Limba QUALIFIED
Maria J RoysterJapanOnyama 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>