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
Arvin A NickaJapanAsiya Javayant NEGOTIATION
Deepesh E VocelkaIndiaStephen Shaw NEW
Maria A AmigonJapanElwin Sharvill UNQUALIFIED
Johnson Y SlusarskiJapanXuxue Feng QUALIFIED
Mayumi H BowleyFranceOnyama Limba PROPOSAL
Antonio V RutaAustraliaIoni Bowcher NEGOTIATION
Francesco Y MarrierArgentinaBernardo Dominic PROPOSAL
Alejandro K SergiArgentinaAsiya Javayant RENEWAL
Claire S SlusarskiFranceAmy Elsner NEW
Ashley I StockhamItalyAnna Fali UNQUALIFIED
Chavez M MaletCanadaOnyama Limba PROPOSAL
Adams K SaylorsSpainStephen Shaw QUALIFIED
Jeanfrancois R GillianAustraliaAsiya Javayant RENEWAL
Leja F MaletItalyElwin Sharvill UNQUALIFIED
David V NickaAustraliaAsiya Javayant RENEWAL
Maisha L FigeroaCanadaIvan Magalhaes PROPOSAL
Emily Q OldroydJapanIoni Bowcher UNQUALIFIED
Misaki C DarakjyCanadaOnyama Limba NEGOTIATION
Ricardo G RoysterAustraliaStephen Shaw UNQUALIFIED
Tony M ButtBrazilIoni Bowcher NEW
Alejandro G NestleCanadaElwin Sharvill PROPOSAL
Emily M ChuiSpainAsiya Javayant NEGOTIATION
Darci V MarrierGermanyIvan Magalhaes PROPOSAL
Ricardo R MarrierAustraliaAmy Elsner RENEWAL
Arvin O SlusarskiSpainOnyama Limba PROPOSAL
Alejandro E GlickCanadaStephen Shaw QUALIFIED
Smith I DarakjyJapanBernardo Dominic QUALIFIED
Jones H AmigonAustraliaAsiya Javayant PROPOSAL
Greenwood F IturbideItalyBernardo Dominic QUALIFIED
Silvio R FerenczFranceAsiya Javayant QUALIFIED
Wickens X MarrierGermanyOnyama Limba RENEWAL
Nicolas F DoeArgentinaXuxue Feng PROPOSAL
Wickens Q SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson X RoysterItalyBernardo Dominic NEW
Ashley S StensethAustraliaBernardo Dominic PROPOSAL
Morrow R WhobreyIndiaBernardo Dominic RENEWAL
Isabel C StockhamSpainIoni Bowcher RENEWAL
Julie R RoysterAustraliaOnyama Limba QUALIFIED
Deepesh Q VocelkaAustraliaElwin Sharvill RENEWAL
Costa Z DarakjyItalyStephen Shaw NEW
Aditya A OstroskySpainOnyama Limba RENEWAL
David K RoysterSpainXuxue Feng QUALIFIED
Aika F OldroydSpainBernardo Dominic QUALIFIED
Antonio Y WaycottGermanyStephen Shaw NEGOTIATION
Chavez G WieserRussiaBernardo Dominic UNQUALIFIED
Cody G RoysterArgentinaElwin Sharvill NEW
Isabel F VocelkaUnited KingdomXuxue Feng QUALIFIED
Salvatore X CaudyRussiaIvan Magalhaes UNQUALIFIED
Jones I BologniaBrazilAsiya Javayant NEW
Maisha H StockhamGermanyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood E FigeroaSpainAsiya Javayant NEW
Salvatore L PaprockiSpainAsiya Javayant UNQUALIFIED
Morrow V OldroydFranceStephen Shaw PROPOSAL
Mujtaba D SaylorsRussiaIoni Bowcher RENEWAL
Izzy U KolmetzItalyElwin Sharvill RENEWAL
Julie W MaletIndiaStephen Shaw NEGOTIATION
Aika L SergiCanadaBernardo Dominic PROPOSAL
Munro G DoeGermanyBernardo Dominic RENEWAL
Cody F DoeItalyAmy Elsner QUALIFIED
Costa L RoysterUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi I FlosiCanada2026-07-24Commercial Press QUALIFIED0Amy Elsner
1001Mujtaba I DoeGermany2026-07-13Benton, John B Jr RENEWAL9Ivan Magalhaes
1002Aruna I FigeroaArgentina2026-08-05Feltz Printing Service QUALIFIED71Xuxue Feng
1003Smith U WaycottCanada2026-07-29Chanay, Jeffrey A Esq PROPOSAL79Anna Fali
1004Claire T GauchoFrance2026-07-18Morlong Associates NEW5Elwin Sharvill
1005Leja S SchemmerSpain2026-08-07Commercial Press NEW78Ioni Bowcher
1006Mayumi Y CaldareraRussia2026-07-22Benton, John B Jr NEW31Asiya Javayant
1007Johnson T ButtSpain2026-07-31Benton, John B Jr RENEWAL2Ioni Bowcher
1008Cody F GlickBrazil2026-07-20Chanay, Jeffrey A Esq RENEWAL31Asiya Javayant
1009Emily W AlbaresUnited Kingdom2026-07-23Truhlar And Truhlar Attys UNQUALIFIED83Bernardo Dominic
1010Kadeem K WhobreyRussia2026-07-25Chapman, Ross E Esq NEW11Ivan Magalhaes
1011Maria V StensethRussia2026-07-26Feltz Printing Service UNQUALIFIED48Asiya Javayant
1012Juan R AlbaresFrance2026-07-20Truhlar And Truhlar Attys NEGOTIATION15Elwin Sharvill
1013Clifford O OstroskyArgentina2026-08-06Printing Dimensions PROPOSAL31Amy Elsner
1014Greenwood V PoquetteFrance2026-08-04King, Christopher A Esq QUALIFIED1Amy Elsner
1015Kaitlin J VocelkaAustralia2026-07-26King, Christopher A Esq NEW22Elwin Sharvill
1016Chavez H PerinArgentina2026-07-25Truhlar And Truhlar Attys NEGOTIATION28Bernardo Dominic
1017Salvatore O DoeFrance2026-08-08Feltz Printing Service NEGOTIATION99Elwin Sharvill
1018Francesco H IturbideSpain2026-07-21King, Christopher A Esq PROPOSAL87Ivan Magalhaes
1019Morrow G FerenczIndia2026-07-27Feltz Printing Service UNQUALIFIED30Asiya Javayant
1020Francesco Y DilliardJapan2026-08-08Chemel, James L Cpa RENEWAL72Elwin Sharvill
1021Darci Y SergiRussia2026-08-05Chemel, James L Cpa NEGOTIATION84Xuxue Feng
1022Izzy Q GlickUnited Kingdom2026-07-13Chapman, Ross E Esq RENEWAL22Ioni Bowcher
1023Claire R MaletJapan2026-07-14Chapman, Ross E Esq QUALIFIED88Stephen Shaw
1024Antonio H PaprockiItaly2026-07-12Feiner Bros QUALIFIED9Elwin Sharvill
1025Murillo I DarakjyBrazil2026-07-24Feiner Bros UNQUALIFIED17Asiya Javayant
1026Maisha J StensethAustralia2026-08-04Commercial Press NEGOTIATION92Onyama Limba
1027Ricardo P CaudyFrance2026-07-17Feltz Printing Service QUALIFIED23Onyama Limba
1028Claire B GauchoFrance2026-07-18Feltz Printing Service QUALIFIED43Ioni Bowcher
1029Kaitlin W RulapaughArgentina2026-07-22Rousseaux, Michael Esq RENEWAL80Bernardo Dominic
1030Antonio D SergiAustralia2026-07-24Buckley Miller Wright PROPOSAL87Xuxue Feng
1031Ivar T StensethItaly2026-08-05Chemel, James L Cpa NEGOTIATION48Ioni Bowcher
1032Ashley W FerenczRussia2026-08-06Printing Dimensions UNQUALIFIED50Elwin Sharvill
1033Darci H CampainIndia2026-08-08Printing Dimensions QUALIFIED48Stephen Shaw
1034Tony F OldroydJapan2026-07-10Chapman, Ross E Esq QUALIFIED0Stephen Shaw
1035Faith Z MarrierItaly2026-07-17Feltz Printing Service RENEWAL40Ioni Bowcher
1036Octavia J KolmetzItaly2026-07-20Buckley Miller Wright QUALIFIED91Elwin Sharvill
1037Jones R SchemmerUnited Kingdom2026-07-13Feiner Bros UNQUALIFIED84Xuxue Feng
1038Nicolas Z VocelkaJapan2026-07-18King, Christopher A Esq UNQUALIFIED23Xuxue Feng
1039Chavez J BologniaCanada2026-08-02Feiner Bros QUALIFIED49Xuxue Feng
1040Jennifer Q IturbideSpain2026-07-31Chanay, Jeffrey A Esq QUALIFIED18Stephen Shaw
1041Wickens F MacleadArgentina2026-07-22Commercial Press PROPOSAL46Xuxue Feng
1042Kadeem F NickaIndia2026-07-31Rangoni Of Florence QUALIFIED28Elwin Sharvill
1043Jeanfrancois F NickaAustralia2026-08-07Rangoni Of Florence NEGOTIATION70Elwin Sharvill
1044Jefferson S InouyeItaly2026-07-19King, Christopher A Esq QUALIFIED68Ioni Bowcher
1045Kaitlin Z FlosiJapan2026-07-31Dorl, James J Esq PROPOSAL47Bernardo Dominic
1046Wickens D SergiItaly2026-07-26Benton, John B Jr NEGOTIATION40Anna Fali
1047Kaitlin S StockhamArgentina2026-07-28Rangoni Of Florence RENEWAL26Asiya Javayant
1048Isabel E ChuiItaly2026-07-25Dorl, James J Esq NEW53Asiya Javayant
1049Octavia C NestleAustralia2026-07-27Commercial Press QUALIFIED27Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba G VocelkaItalyIoni Bowcher UNQUALIFIED
Emily Y WaycottAustraliaAsiya Javayant UNQUALIFIED
Izzy L BriddickCanadaStephen Shaw NEGOTIATION
Leja W BologniaUnited KingdomXuxue Feng NEW
Sinclair U DilliardIndiaAsiya Javayant UNQUALIFIED
Ricardo L SchemmerItalyStephen Shaw PROPOSAL
Mujtaba Q SchemmerJapanAsiya Javayant UNQUALIFIED
Antonio W AlbaresJapanOnyama Limba NEGOTIATION
Smith Z SaylorsJapanAnna Fali UNQUALIFIED
Tony V GlickJapanAmy Elsner RENEWAL
Aika A InouyeIndiaAnna Fali RENEWAL
Emily T GarufiRussiaAsiya Javayant RENEWAL
Ashley B SaylorsJapanAnna Fali NEW
Maisha W OstroskyArgentinaStephen Shaw NEGOTIATION
Alejandro A VenereArgentinaOnyama Limba NEGOTIATION
Costa W FigeroaRussiaElwin Sharvill QUALIFIED
Chavez W RimSpainAmy Elsner UNQUALIFIED
David F FollerIndiaAnna Fali RENEWAL
Faith K RoysterItalyStephen Shaw PROPOSAL
Misaki Y InouyeBrazilBernardo Dominic QUALIFIED
Antonio X FigeroaJapanIoni Bowcher UNQUALIFIED
Alejandro P MaletSpainElwin Sharvill RENEWAL
Greenwood L WieserRussiaXuxue Feng RENEWAL
Stacey K WhobreyIndiaXuxue Feng UNQUALIFIED
Misaki H FlosiSpainBernardo Dominic PROPOSAL
Ashley L GarufiIndiaElwin Sharvill NEW
Tony G BologniaGermanyOnyama Limba QUALIFIED
Jones U IturbideItalyBernardo Dominic NEGOTIATION
Aika P RoysterIndiaOnyama Limba QUALIFIED
Aditya Y MaletJapanAnna Fali NEW
Sinclair C MaletIndiaIoni Bowcher UNQUALIFIED
Johnson R IturbideUnited KingdomElwin Sharvill RENEWAL
Silvio N DilliardCanadaAnna Fali UNQUALIFIED
Julie G SergiItalyStephen Shaw RENEWAL
Munro V NickaArgentinaAsiya Javayant NEW
Silvio T ButtUnited KingdomBernardo Dominic PROPOSAL
Wickens M ShinkoSpainStephen Shaw RENEWAL
Sinclair J MaletBrazilElwin Sharvill NEW
Kadeem F RutaFranceStephen Shaw RENEWAL
Jeanfrancois T StensethRussiaAsiya Javayant UNQUALIFIED
Morrow A NickaUnited KingdomAmy Elsner NEW
Murillo V VenereGermanyIoni Bowcher NEW
Claire S StensethSpainXuxue Feng UNQUALIFIED
Greenwood H SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez N BowleyBrazilAnna Fali PROPOSAL
Adams K StockhamGermanyStephen Shaw RENEWAL
Ashley C KolmetzUnited KingdomIvan Magalhaes NEW
Maisha F RulapaughCanadaAsiya Javayant NEGOTIATION
Arvin L KuskoIndiaElwin Sharvill QUALIFIED
Octavia S VocelkaItalyBernardo Dominic QUALIFIED
Frozen Columns
Name
Ricardo O Garufi
Izzy V Paprocki
Greenwood X Paprocki
Silvio J Rim
Stacey U Malet
Sinclair X Inouye
Sinclair N Wieser
Faith E Garufi
Nicolas I Vocelka
Faith H Bolognia
Munro C Waycott
Emily M Paprocki
Isabel B Briddick
Jennifer D Poquette
Octavia M Chui
Mujtaba S Figeroa
Chavez O Paprocki
Aika G Chui
Mayumi V Vocelka
Clifford R Chui
Emily X Caldarera
Aika S Ruta
Maria R Doe
Murillo E Shinko
Izzy D Royster
James V Glick
Wickens F Malet
Leja B Gaucho
Izzy L Ruta
Salvatore A Venere
Izzy V Foller
Wickens V Oldroyd
Ashley K Venere
Kaitlin I Stockham
David L Iturbide
Cody E Saylors
Aditya V Campain
Leon F Amigon
Morrow M Sergi
Juan Q Dilliard
Cody S Doe
James S Kolmetz
Clifford X Iturbide
Johnson O Rulapaugh
Izzy M Briddick
Cody M Stenseth
Julie S Bowley
Jeanfrancois I Stenseth
Leja I Dilliard
Rodrigues L Malet
IdCountryDate
1000Argentina2026-08-07
1001France2026-08-03
1002Brazil2026-07-16
1003Italy2026-07-15
1004Australia2026-08-05
1005France2026-07-10
1006India2026-07-24
1007Italy2026-07-10
1008Italy2026-07-15
1009Spain2026-07-11
1010Germany2026-08-08
1011Argentina2026-07-26
1012India2026-08-08
1013Brazil2026-08-05
1014Germany2026-07-10
1015Russia2026-07-29
1016Germany2026-08-06
1017Australia2026-07-11
1018Russia2026-07-14
1019Spain2026-07-31
1020Brazil2026-07-10
1021France2026-08-02
1022India2026-07-17
1023Japan2026-08-03
1024Russia2026-07-13
1025United Kingdom2026-08-03
1026India2026-07-31
1027Spain2026-07-29
1028United Kingdom2026-07-24
1029Italy2026-07-14
1030France2026-07-24
1031Australia2026-07-12
1032Australia2026-07-13
1033United Kingdom2026-07-21
1034France2026-07-24
1035Spain2026-07-29
1036United Kingdom2026-07-23
1037Canada2026-07-28
1038Australia2026-07-12
1039Germany2026-07-11
1040Canada2026-08-06
1041France2026-07-17
1042Argentina2026-08-05
1043Japan2026-07-15
1044Argentina2026-08-02
1045Brazil2026-07-24
1046Spain2026-07-20
1047India2026-07-16
1048Brazil2026-07-21
1049Italy2026-07-31

On-Demand Data

NameIdCountryDate
Octavia P Oldroyd1000Brazil2026-07-25
David R Gaucho1001Canada2026-07-17
Julie X Waycott1002Argentina2026-08-06
Jeanfrancois C Sergi1003Spain2026-07-12
Adams I Paprocki1004India2026-08-03
Arvin S Stockham1005Japan2026-07-22
David L Stockham1006Italy2026-08-02
Jones X Nestle1007United Kingdom2026-07-11
Claire H Kusko1008Japan2026-08-03
Adams Q Marrier1009France2026-08-01
Mayumi B Schemmer1010United Kingdom2026-07-21
James C Slusarski1011Argentina2026-07-14
Aditya O Malet1012Russia2026-07-29
Juan L Marrier1013Germany2026-07-26
Maria K Slusarski1014Brazil2026-07-31
James D Tollner1015Spain2026-08-02
Ricardo F Garufi1016Australia2026-08-01
Rodrigues W Rulapaugh1017United Kingdom2026-07-28
Mujtaba P Dilliard1018Japan2026-08-07
Emily S Inouye1019Brazil2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey P AmigonSpainAnna Fali RENEWAL
Cody X KuskoAustraliaIvan Magalhaes PROPOSAL
Julie W DilliardFranceIoni Bowcher NEGOTIATION
Smith Y FlosiAustraliaBernardo Dominic RENEWAL
Octavia R WhobreySpainAnna Fali RENEWAL
Clifford V RimItalyAmy Elsner QUALIFIED
Leon R CampainBrazilBernardo Dominic QUALIFIED
Adams X VenereIndiaIoni Bowcher UNQUALIFIED
Alejandro H RoysterJapanIoni Bowcher UNQUALIFIED
Ricardo V SaylorsJapanAmy Elsner QUALIFIED
Juan T BriddickBrazilBernardo Dominic PROPOSAL
Rodrigues Y IturbideBrazilIoni Bowcher RENEWAL
Salvatore T ShinkoRussiaAmy Elsner UNQUALIFIED
Rodrigues L WhobreyBrazilAsiya Javayant NEW
Mujtaba D NestleJapanAsiya Javayant PROPOSAL
Aditya Q DoeAustraliaStephen Shaw PROPOSAL
Antonio N MarrierAustraliaElwin Sharvill NEGOTIATION
Ivar X PoquetteCanadaAsiya Javayant NEW
Rodrigues M StensethRussiaIoni Bowcher PROPOSAL
Maria M ChuiItalyAsiya Javayant RENEWAL
Alejandro L GarufiItalyOnyama Limba RENEWAL
Darci A ButtRussiaIoni Bowcher PROPOSAL
Munro L InouyeBrazilXuxue Feng UNQUALIFIED
David V BowleyCanadaBernardo Dominic PROPOSAL
Mujtaba T AlbaresUnited KingdomAsiya Javayant PROPOSAL
Jefferson G RutaUnited KingdomIoni Bowcher QUALIFIED
Juan T TollnerSpainOnyama Limba QUALIFIED
Costa X NestleUnited KingdomAsiya Javayant NEW
Adams H PerinJapanAnna Fali PROPOSAL
Cody R InouyeBrazilAmy Elsner PROPOSAL
Stacey C WaycottFranceAsiya Javayant NEGOTIATION
Octavia L SergiAustraliaElwin Sharvill PROPOSAL
Arvin H ButtGermanyIoni Bowcher UNQUALIFIED
Adams K OstroskyFranceIoni Bowcher NEW
Octavia K NickaAustraliaAnna Fali NEGOTIATION
Smith B FerenczArgentinaAnna Fali NEW
Faith M PaprockiSpainAsiya Javayant RENEWAL
Maisha Q AmigonCanadaOnyama Limba NEGOTIATION
Emily V FlosiCanadaIvan Magalhaes PROPOSAL
Ashley W TollnerBrazilXuxue Feng 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>