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
Clifford T FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba T WhobreyJapanOnyama Limba PROPOSAL
Leja T FollerUnited KingdomXuxue Feng QUALIFIED
Aika K PaprockiSpainElwin Sharvill QUALIFIED
Ricardo H AlbaresArgentinaOnyama Limba QUALIFIED
Mayumi C MorascaAustraliaIvan Magalhaes RENEWAL
Alejandro S InouyeIndiaIoni Bowcher NEGOTIATION
Johnson W RutaGermanyElwin Sharvill RENEWAL
Salvatore H SaylorsUnited KingdomXuxue Feng PROPOSAL
Isabel Y SergiArgentinaIoni Bowcher PROPOSAL
Stacey F SchemmerRussiaBernardo Dominic PROPOSAL
Deepesh I CaldareraBrazilIvan Magalhaes UNQUALIFIED
Maria R VenereJapanIvan Magalhaes QUALIFIED
Ivar B NickaGermanyXuxue Feng UNQUALIFIED
Costa J DilliardIndiaAsiya Javayant UNQUALIFIED
Faith U GillianIndiaOnyama Limba QUALIFIED
Silvio P WieserCanadaIvan Magalhaes RENEWAL
Costa J VenereAustraliaIvan Magalhaes NEW
Alejandro F NickaUnited KingdomElwin Sharvill UNQUALIFIED
Arvin Y NickaIndiaAmy Elsner PROPOSAL
Jeanfrancois X OldroydSpainElwin Sharvill NEGOTIATION
Izzy N VenereFranceOnyama Limba NEW
Ashley A BologniaItalyStephen Shaw RENEWAL
Ricardo Q RulapaughItalyAsiya Javayant NEW
Jeanfrancois L ButtSpainAsiya Javayant NEGOTIATION
Aruna O MacleadBrazilAmy Elsner NEW
Kadeem T PaprockiRussiaAnna Fali QUALIFIED
Maria I StensethGermanyBernardo Dominic NEW
Jones I WieserGermanyAsiya Javayant RENEWAL
Faith S ButtRussiaXuxue Feng UNQUALIFIED
Misaki K MaletCanadaAmy Elsner QUALIFIED
Mujtaba I IturbideBrazilAsiya Javayant QUALIFIED
Rodrigues K CaudyItalyIoni Bowcher UNQUALIFIED
Arvin S RulapaughRussiaBernardo Dominic RENEWAL
Costa P NickaBrazilAnna Fali NEW
Izzy E MorascaGermanyBernardo Dominic PROPOSAL
Greenwood P ShinkoRussiaStephen Shaw QUALIFIED
Adams O CaudySpainAmy Elsner UNQUALIFIED
Silvio D GillianGermanyIvan Magalhaes RENEWAL
Julie G InouyeIndiaElwin Sharvill UNQUALIFIED
Ivar E OldroydGermanyAsiya Javayant NEW
Johnson P OldroydFranceAnna Fali PROPOSAL
Morrow E DilliardJapanIvan Magalhaes QUALIFIED
Adams K ChuiAustraliaOnyama Limba QUALIFIED
Silvio T MorascaUnited KingdomIoni Bowcher RENEWAL
Mayumi T VenereBrazilIoni Bowcher NEW
Julie G MarrierFranceIoni Bowcher NEW
Kaitlin Y RulapaughBrazilAsiya Javayant PROPOSAL
Nicolas K WaycottJapanElwin Sharvill QUALIFIED
James U FigeroaAustraliaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maria W TollnerBrazilOnyama Limba NEW
Misaki N BologniaArgentinaAmy Elsner QUALIFIED
Smith I VenereBrazilIoni Bowcher NEW
Izzy J IturbideUnited KingdomAnna Fali NEW
Aika V RimItalyBernardo Dominic NEW
Faith H MaletItalyAnna Fali NEW
Costa C PoquetteRussiaAsiya Javayant NEW
Ashley F DilliardBrazilIoni Bowcher QUALIFIED
David J FlosiRussiaOnyama Limba UNQUALIFIED
Salvatore A PerinAustraliaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody I InouyeGermany2026-06-19Morlong Associates NEGOTIATION85Bernardo Dominic
1001Mujtaba S BologniaFrance2026-06-28Rousseaux, Michael Esq NEGOTIATION13Xuxue Feng
1002Alejandro J CaudyUnited Kingdom2026-06-18Chapman, Ross E Esq QUALIFIED12Elwin Sharvill
1003Misaki G BowleyBrazil2026-06-22Morlong Associates NEW15Amy Elsner
1004Izzy Q FlosiJapan2026-07-01Printing Dimensions NEW97Amy Elsner
1005Tony C DoeCanada2026-06-23Feiner Bros QUALIFIED10Ivan Magalhaes
1006Deepesh D GlickRussia2026-06-17Feltz Printing Service NEGOTIATION91Onyama Limba
1007Tony F NickaGermany2026-06-26Dorl, James J Esq QUALIFIED67Amy Elsner
1008Isabel O StockhamCanada2026-06-11Printing Dimensions NEW88Asiya Javayant
1009Maria Z KuskoRussia2026-06-09Printing Dimensions NEW25Ioni Bowcher
1010Faith U BriddickAustralia2026-06-26Feltz Printing Service NEGOTIATION2Stephen Shaw
1011Maria W PerinIndia2026-06-26Feiner Bros UNQUALIFIED30Onyama Limba
1012Francesco T DoeRussia2026-06-22Benton, John B Jr NEW35Stephen Shaw
1013Aika K RulapaughUnited Kingdom2026-06-13Morlong Associates RENEWAL75Bernardo Dominic
1014Julie R OstroskyGermany2026-06-30Chanay, Jeffrey A Esq NEGOTIATION51Bernardo Dominic
1015Nicolas K ChuiBrazil2026-06-21Buckley Miller Wright QUALIFIED85Elwin Sharvill
1016Mujtaba S ButtGermany2026-06-15Chapman, Ross E Esq NEW67Ioni Bowcher
1017Aruna U CaudyArgentina2026-06-06Dorl, James J Esq RENEWAL1Onyama Limba
1018Faith P MaletItaly2026-07-03Truhlar And Truhlar Attys RENEWAL81Ivan Magalhaes
1019Faith O CampainArgentina2026-06-11Rangoni Of Florence UNQUALIFIED78Onyama Limba
1020Jones Q KolmetzBrazil2026-06-15Truhlar And Truhlar Attys NEW33Anna Fali
1021Deepesh Q RoysterFrance2026-07-05Feiner Bros PROPOSAL17Anna Fali
1022Tony M TollnerUnited Kingdom2026-06-30King, Christopher A Esq NEGOTIATION88Ioni Bowcher
1023Misaki I BriddickFrance2026-06-22Benton, John B Jr QUALIFIED86Asiya Javayant
1024Francesco Y MorascaSpain2026-06-07Morlong Associates NEW55Stephen Shaw
1025Sinclair Y MarrierJapan2026-07-02Truhlar And Truhlar Attys RENEWAL4Onyama Limba
1026Sinclair Z RulapaughRussia2026-06-23Printing Dimensions NEGOTIATION58Ioni Bowcher
1027Juan E KolmetzBrazil2026-06-11Dorl, James J Esq NEGOTIATION90Anna Fali
1028Isabel X PaprockiItaly2026-06-17Printing Dimensions NEGOTIATION48Xuxue Feng
1029Deepesh D StockhamGermany2026-06-28Feiner Bros NEW55Bernardo Dominic
1030Kaitlin U DilliardGermany2026-06-12Truhlar And Truhlar Attys RENEWAL84Amy Elsner
1031Tony S VocelkaArgentina2026-06-18Chapman, Ross E Esq UNQUALIFIED81Ivan Magalhaes
1032Smith E BriddickCanada2026-06-15Rousseaux, Michael Esq PROPOSAL42Elwin Sharvill
1033Tony A BowleyFrance2026-06-15Feltz Printing Service NEGOTIATION74Ivan Magalhaes
1034Chavez O FigeroaArgentina2026-06-19Chemel, James L Cpa PROPOSAL25Ivan Magalhaes
1035Jefferson O MorascaAustralia2026-06-07Rousseaux, Michael Esq RENEWAL83Xuxue Feng
1036Nicolas C KolmetzFrance2026-07-03Truhlar And Truhlar Attys QUALIFIED36Asiya Javayant
1037Sinclair S PaprockiCanada2026-06-08Truhlar And Truhlar Attys UNQUALIFIED39Anna Fali
1038Chavez D NestleCanada2026-06-23Chapman, Ross E Esq QUALIFIED44Asiya Javayant
1039Ricardo H PaprockiSpain2026-06-08Chanay, Jeffrey A Esq RENEWAL25Amy Elsner
1040Sinclair Q RulapaughArgentina2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED64Xuxue Feng
1041Kaitlin T TollnerRussia2026-06-15Truhlar And Truhlar Attys UNQUALIFIED16Stephen Shaw
1042Mujtaba B TollnerAustralia2026-06-17Benton, John B Jr QUALIFIED90Anna Fali
1043Kaitlin U FerenczRussia2026-06-16Dorl, James J Esq RENEWAL58Ivan Magalhaes
1044Deepesh J DilliardFrance2026-06-18Benton, John B Jr PROPOSAL75Stephen Shaw
1045Rodrigues P CaldareraBrazil2026-07-04Dorl, James J Esq QUALIFIED14Anna Fali
1046Smith M SergiIndia2026-06-07Feltz Printing Service QUALIFIED6Asiya Javayant
1047Tony O CaldareraBrazil2026-06-20Rangoni Of Florence QUALIFIED9Xuxue Feng
1048Deepesh A DoeBrazil2026-06-10Rousseaux, Michael Esq PROPOSAL65Stephen Shaw
1049Octavia R StockhamSpain2026-06-19Buckley Miller Wright UNQUALIFIED16Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leon Z GlickBrazilIvan Magalhaes NEW
Morrow X PaprockiGermanyOnyama Limba NEW
Morrow Q VocelkaJapanAnna Fali QUALIFIED
Morrow A GillianArgentinaAnna Fali UNQUALIFIED
Octavia K PerinArgentinaOnyama Limba PROPOSAL
Kaitlin K DoeJapanOnyama Limba NEGOTIATION
Morrow Z DoeFranceAsiya Javayant QUALIFIED
Aika F IturbideCanadaStephen Shaw NEGOTIATION
Sinclair W PaprockiRussiaAnna Fali NEGOTIATION
Greenwood H GauchoUnited KingdomOnyama Limba UNQUALIFIED
Cody W CampainSpainOnyama Limba NEW
Aruna U RutaAustraliaStephen Shaw NEGOTIATION
Jeanfrancois N RimArgentinaElwin Sharvill UNQUALIFIED
Mayumi O PerinAustraliaIvan Magalhaes UNQUALIFIED
Ivar G RoysterGermanyAsiya Javayant NEW
Cody Z FollerItalyIoni Bowcher NEW
Costa K CaudyArgentinaIoni Bowcher NEW
Deepesh O SaylorsJapanStephen Shaw UNQUALIFIED
Cody H MorascaGermanyXuxue Feng QUALIFIED
Leon J OldroydJapanAsiya Javayant RENEWAL
Greenwood E BriddickBrazilXuxue Feng PROPOSAL
Costa Z InouyeJapanBernardo Dominic QUALIFIED
Costa F StensethSpainOnyama Limba RENEWAL
Nicolas M ChuiBrazilAnna Fali NEGOTIATION
Murillo D OstroskyIndiaStephen Shaw QUALIFIED
Ivar Z WhobreyAustraliaElwin Sharvill RENEWAL
David J VocelkaRussiaAnna Fali PROPOSAL
Juan V StensethSpainIoni Bowcher RENEWAL
Arvin T RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Izzy Z GauchoGermanyIoni Bowcher RENEWAL
Johnson S FigeroaArgentinaAsiya Javayant NEGOTIATION
Jefferson U GauchoUnited KingdomIvan Magalhaes PROPOSAL
Juan L FlosiFranceAmy Elsner PROPOSAL
Deepesh C FlosiIndiaAmy Elsner UNQUALIFIED
Deepesh K MaletAustraliaIvan Magalhaes PROPOSAL
James K SchemmerJapanAnna Fali RENEWAL
Leon Y CaldareraCanadaElwin Sharvill QUALIFIED
Munro B WaycottArgentinaAsiya Javayant NEW
Murillo B MorascaBrazilIvan Magalhaes NEW
Morrow S NestleBrazilIvan Magalhaes RENEWAL
Smith K AlbaresAustraliaElwin Sharvill PROPOSAL
Misaki X RulapaughArgentinaAnna Fali UNQUALIFIED
Jennifer Q BologniaItalyStephen Shaw NEGOTIATION
Alejandro D WaycottSpainIvan Magalhaes PROPOSAL
Aruna X KolmetzJapanBernardo Dominic QUALIFIED
Johnson B AlbaresBrazilElwin Sharvill NEW
Isabel N IturbideAustraliaAnna Fali UNQUALIFIED
Mayumi V DoeUnited KingdomOnyama Limba NEGOTIATION
Stacey H FlosiArgentinaAsiya Javayant NEW
Greenwood M VocelkaFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Tony V Poquette
Mujtaba U Whobrey
Sinclair A Stenseth
Rodrigues F Maclead
Jones P Venere
Aruna G Perin
James N Gillian
Claire L Poquette
Emily R Venere
Clifford A Waycott
Octavia F Saylors
Julie V Marrier
Leja G Darakjy
Antonio F Chui
Tony F Kolmetz
Darci S Figeroa
Munro H Vocelka
Munro R Rim
Jennifer Z Waycott
Francesco D Rim
Juan Q Schemmer
Ivar D Darakjy
Costa J Perin
Sinclair N Slusarski
Greenwood H Rulapaugh
David S Rulapaugh
Ashley V Venere
Jefferson H Figeroa
Morrow A Rulapaugh
Jefferson S Nicka
Chavez E Rulapaugh
Munro M Waycott
Faith K Amigon
Arvin H Nestle
Silvio X Figeroa
Kaitlin E Whobrey
Faith D Iturbide
Maria O Ostrosky
Jeanfrancois I Albares
David E Rim
Ivar A Kusko
Mayumi Z Amigon
Greenwood F Shinko
Leja U Flosi
Stacey V Saylors
Kadeem J Royster
Misaki I Caudy
Nicolas A Amigon
Kadeem K Tollner
Aruna I Malet
IdCountryDate
1000Canada2026-06-30
1001Japan2026-06-24
1002Australia2026-06-20
1003Japan2026-06-30
1004United Kingdom2026-06-20
1005United Kingdom2026-06-30
1006Germany2026-06-12
1007Brazil2026-06-24
1008Italy2026-06-12
1009Russia2026-06-17
1010Australia2026-06-13
1011Canada2026-06-07
1012Spain2026-07-01
1013Argentina2026-07-02
1014Brazil2026-07-03
1015India2026-06-06
1016United Kingdom2026-06-13
1017India2026-06-15
1018Argentina2026-06-17
1019Japan2026-06-28
1020Italy2026-06-26
1021Japan2026-06-19
1022Argentina2026-06-08
1023Brazil2026-06-25
1024Spain2026-06-08
1025Germany2026-06-22
1026France2026-06-27
1027France2026-07-05
1028Italy2026-06-17
1029Italy2026-06-11
1030France2026-06-14
1031France2026-06-27
1032France2026-06-23
1033Australia2026-06-22
1034India2026-06-07
1035France2026-06-25
1036United Kingdom2026-06-07
1037Russia2026-06-08
1038France2026-06-18
1039Germany2026-06-25
1040Australia2026-06-25
1041Argentina2026-06-25
1042Russia2026-06-23
1043United Kingdom2026-06-20
1044Germany2026-06-22
1045Australia2026-06-12
1046France2026-06-24
1047Canada2026-06-24
1048India2026-06-15
1049Brazil2026-07-04

On-Demand Data

NameIdCountryDate
David T Royster1000Italy2026-06-12
Ivar N Garufi1001Brazil2026-06-12
Deepesh E Campain1002Argentina2026-06-29
Mujtaba M Schemmer1003Spain2026-06-19
James C Shinko1004United Kingdom2026-07-03
Leon E Bolognia1005Brazil2026-06-11
Morrow D Perin1006Italy2026-06-27
Jones J Perin1007France2026-06-20
Jeanfrancois X Chui1008Australia2026-07-02
Misaki A Figeroa1009Japan2026-06-08
Costa O Gillian1010India2026-06-08
Jones G Figeroa1011Canada2026-07-01
Ivar Z Chui1012Australia2026-06-20
Aruna F Oldroyd1013Italy2026-06-09
Adams K Rulapaugh1014United Kingdom2026-07-01
Greenwood B Shinko1015Canada2026-06-14
Jones K Bowley1016Spain2026-06-06
Ivar L Chui1017Australia2026-06-23
Kaitlin T Oldroyd1018France2026-06-30
Emily R Rulapaugh1019Italy2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro O GlickUnited KingdomIvan Magalhaes RENEWAL
Leon P MaletUnited KingdomAnna Fali QUALIFIED
Rodrigues T MacleadCanadaXuxue Feng QUALIFIED
Emily X ShinkoIndiaAnna Fali PROPOSAL
Wickens S MarrierJapanOnyama Limba QUALIFIED
Adams R DarakjyArgentinaElwin Sharvill PROPOSAL
Nicolas T MaletJapanAsiya Javayant NEW
David S NestleCanadaXuxue Feng NEW
Faith Y FlosiGermanyIoni Bowcher PROPOSAL
Chavez Q AlbaresRussiaAsiya Javayant NEW
Faith E VenereIndiaOnyama Limba NEW
Greenwood O CaudyUnited KingdomAnna Fali UNQUALIFIED
Chavez J ButtSpainStephen Shaw QUALIFIED
Cody T InouyeUnited KingdomStephen Shaw UNQUALIFIED
Adams Y KuskoGermanyAsiya Javayant QUALIFIED
Jones Z MarrierSpainBernardo Dominic PROPOSAL
Morrow X NestleBrazilStephen Shaw UNQUALIFIED
Jefferson O WhobreySpainIvan Magalhaes PROPOSAL
Smith Y BologniaAustraliaStephen Shaw PROPOSAL
Misaki Y WaycottItalyBernardo Dominic RENEWAL
Jones D NickaAustraliaIoni Bowcher RENEWAL
Sinclair S OstroskyAustraliaStephen Shaw PROPOSAL
Isabel Q MaletItalyIoni Bowcher QUALIFIED
Cody T DarakjyItalyIvan Magalhaes PROPOSAL
Leja O AmigonSpainStephen Shaw UNQUALIFIED
Ivar Q MorascaSpainAmy Elsner NEGOTIATION
Aditya N IturbideCanadaAnna Fali PROPOSAL
Cody C GarufiIndiaStephen Shaw UNQUALIFIED
Deepesh L ChuiItalyIoni Bowcher UNQUALIFIED
Smith U SchemmerCanadaAmy Elsner RENEWAL
Clifford G RutaRussiaAnna Fali UNQUALIFIED
Izzy T PoquetteGermanyXuxue Feng UNQUALIFIED
David X BriddickAustraliaXuxue Feng NEGOTIATION
Morrow D KolmetzBrazilIvan Magalhaes PROPOSAL
Leja N IturbideItalyStephen Shaw NEW
Julie Z OstroskyAustraliaElwin Sharvill QUALIFIED
Tony X OldroydCanadaAsiya Javayant QUALIFIED
Cody D PoquetteUnited KingdomAmy Elsner PROPOSAL
Antonio C PerinItalyStephen Shaw UNQUALIFIED
Salvatore S DarakjyAustraliaStephen Shaw 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>