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
Alejandro R CampainArgentinaXuxue Feng PROPOSAL
Juan M DoeFranceOnyama Limba NEGOTIATION
Ivar S PoquetteFranceAsiya Javayant NEGOTIATION
Mujtaba T GarufiAustraliaBernardo Dominic QUALIFIED
Faith G WaycottArgentinaBernardo Dominic UNQUALIFIED
Ashley Z OldroydRussiaXuxue Feng PROPOSAL
Jennifer C PaprockiGermanyAnna Fali PROPOSAL
James K CampainAustraliaXuxue Feng RENEWAL
Ricardo X AlbaresGermanyIoni Bowcher NEW
Ashley K BologniaArgentinaBernardo Dominic NEGOTIATION
Octavia H SlusarskiUnited KingdomElwin Sharvill NEW
Clifford J VocelkaAustraliaElwin Sharvill RENEWAL
Stacey O IturbideJapanStephen Shaw RENEWAL
Morrow Q FerenczFranceOnyama Limba NEGOTIATION
Clifford T ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood P CaldareraItalyAmy Elsner UNQUALIFIED
Chavez S AlbaresBrazilIoni Bowcher NEGOTIATION
Murillo S BologniaJapanAsiya Javayant UNQUALIFIED
Jones P TollnerRussiaBernardo Dominic UNQUALIFIED
Alejandro T WhobreyItalyElwin Sharvill RENEWAL
Nicolas G SaylorsCanadaStephen Shaw UNQUALIFIED
Aruna F PoquetteFranceAnna Fali RENEWAL
Kaitlin B CaudySpainElwin Sharvill NEW
Jeanfrancois V FlosiIndiaIoni Bowcher NEW
Isabel Y FerenczGermanyXuxue Feng PROPOSAL
Francesco U FlosiJapanOnyama Limba NEGOTIATION
Ricardo X BowleyBrazilBernardo Dominic RENEWAL
Jones V GauchoArgentinaIvan Magalhaes NEW
Adams D DarakjyRussiaIvan Magalhaes NEGOTIATION
Kaitlin H PaprockiArgentinaAmy Elsner RENEWAL
Leja W GarufiJapanXuxue Feng PROPOSAL
Clifford X StockhamGermanyIvan Magalhaes RENEWAL
Munro J FerenczFranceIoni Bowcher NEGOTIATION
James D OstroskyGermanyIvan Magalhaes RENEWAL
Rodrigues C SergiGermanyOnyama Limba RENEWAL
Greenwood S BologniaRussiaXuxue Feng UNQUALIFIED
Salvatore D PaprockiUnited KingdomAmy Elsner QUALIFIED
Stacey H FlosiArgentinaOnyama Limba NEW
Aditya V FollerJapanAsiya Javayant NEW
Morrow X ButtBrazilIoni Bowcher UNQUALIFIED
Isabel C ButtUnited KingdomElwin Sharvill PROPOSAL
Jefferson Z StockhamIndiaIoni Bowcher PROPOSAL
Julie H PerinJapanIvan Magalhaes PROPOSAL
Leja U MorascaRussiaOnyama Limba RENEWAL
Jefferson I OstroskyArgentinaStephen Shaw UNQUALIFIED
Mujtaba I WaycottJapanBernardo Dominic PROPOSAL
Johnson W FigeroaArgentinaBernardo Dominic RENEWAL
Jones Y NestleSpainAnna Fali QUALIFIED
Octavia K RimUnited KingdomElwin Sharvill UNQUALIFIED
Ashley R SergiSpainOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci I DarakjyRussiaXuxue Feng UNQUALIFIED
Costa L NestleItalyAmy Elsner QUALIFIED
Clifford Q DilliardUnited KingdomStephen Shaw RENEWAL
Smith A ButtUnited KingdomOnyama Limba PROPOSAL
Claire B OstroskyGermanyAnna Fali UNQUALIFIED
Adams T ButtBrazilIvan Magalhaes QUALIFIED
Johnson M GillianAustraliaIvan Magalhaes PROPOSAL
Juan P IturbideCanadaBernardo Dominic QUALIFIED
Wickens I RimBrazilXuxue Feng QUALIFIED
Nicolas T RimCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith R KuskoUnited Kingdom2026-08-29Morlong Associates NEGOTIATION99Xuxue Feng
1001Octavia T RoysterBrazil2026-08-08Rangoni Of Florence PROPOSAL61Asiya Javayant
1002Sinclair A RimRussia2026-08-06Morlong Associates RENEWAL1Ioni Bowcher
1003Silvio E MarrierFrance2026-08-23Chanay, Jeffrey A Esq UNQUALIFIED69Elwin Sharvill
1004Rodrigues G WaycottIndia2026-08-07King, Christopher A Esq NEGOTIATION94Anna Fali
1005Maisha V ShinkoJapan2026-08-26Commercial Press RENEWAL35Bernardo Dominic
1006Deepesh Y BriddickIndia2026-08-27Truhlar And Truhlar Attys QUALIFIED79Onyama Limba
1007Isabel Z StensethItaly2026-08-31Chanay, Jeffrey A Esq NEW21Ioni Bowcher
1008Claire L MaletJapan2026-08-25Chemel, James L Cpa RENEWAL91Anna Fali
1009Sinclair J AmigonArgentina2026-08-26Morlong Associates RENEWAL64Ioni Bowcher
1010Costa R FollerJapan2026-08-12Rousseaux, Michael Esq NEW29Stephen Shaw
1011Aruna A VocelkaIndia2026-08-12Buckley Miller Wright UNQUALIFIED50Anna Fali
1012Silvio Q ButtFrance2026-08-06Commercial Press UNQUALIFIED60Amy Elsner
1013Adams E InouyeAustralia2026-08-19Morlong Associates NEW85Amy Elsner
1014Mujtaba P RimGermany2026-08-11Chapman, Ross E Esq NEW80Asiya Javayant
1015Claire Y ShinkoAustralia2026-08-28Truhlar And Truhlar Attys RENEWAL95Amy Elsner
1016Tony F GlickAustralia2026-08-04Benton, John B Jr QUALIFIED99Amy Elsner
1017Johnson Y WaycottJapan2026-08-11Chanay, Jeffrey A Esq RENEWAL46Ioni Bowcher
1018Costa G CampainAustralia2026-08-24Dorl, James J Esq QUALIFIED69Onyama Limba
1019Chavez I OldroydFrance2026-08-15Buckley Miller Wright NEGOTIATION12Bernardo Dominic
1020Costa D PaprockiItaly2026-08-19Morlong Associates PROPOSAL69Amy Elsner
1021Darci S GarufiFrance2026-08-20Rousseaux, Michael Esq RENEWAL58Onyama Limba
1022Tony Q FlosiBrazil2026-08-05Rangoni Of Florence NEGOTIATION33Amy Elsner
1023Stacey L PerinGermany2026-08-31King, Christopher A Esq PROPOSAL19Ivan Magalhaes
1024Octavia G PaprockiIndia2026-08-20Commercial Press RENEWAL74Xuxue Feng
1025Ricardo S ChuiIndia2026-08-08Rousseaux, Michael Esq NEGOTIATION51Amy Elsner
1026Murillo E SchemmerAustralia2026-08-21Feiner Bros NEW60Elwin Sharvill
1027Mayumi C RutaAustralia2026-08-06Dorl, James J Esq QUALIFIED37Elwin Sharvill
1028Johnson M OldroydGermany2026-08-12Buckley Miller Wright NEW78Elwin Sharvill
1029Darci P PerinIndia2026-08-29Feltz Printing Service NEGOTIATION19Elwin Sharvill
1030Francesco U OldroydFrance2026-08-13Chanay, Jeffrey A Esq QUALIFIED79Stephen Shaw
1031Jefferson V MorascaSpain2026-08-21Rousseaux, Michael Esq NEGOTIATION66Asiya Javayant
1032Claire B RutaGermany2026-08-06Chemel, James L Cpa RENEWAL98Amy Elsner
1033Antonio K SaylorsItaly2026-08-13Feltz Printing Service PROPOSAL39Anna Fali
1034Leon Z WhobreyGermany2026-08-12Chemel, James L Cpa NEW70Ivan Magalhaes
1035Adams T AmigonIndia2026-09-02Printing Dimensions QUALIFIED89Amy Elsner
1036Adams G FollerGermany2026-08-19Chapman, Ross E Esq RENEWAL3Anna Fali
1037Ashley A IturbideIndia2026-08-16King, Christopher A Esq PROPOSAL42Onyama Limba
1038Alejandro R FlosiJapan2026-08-28Commercial Press NEW55Stephen Shaw
1039Antonio N IturbideJapan2026-08-25Rousseaux, Michael Esq QUALIFIED70Onyama Limba
1040Costa Z MorascaSpain2026-08-07King, Christopher A Esq RENEWAL79Asiya Javayant
1041Deepesh X ShinkoUnited Kingdom2026-08-28Feiner Bros RENEWAL62Stephen Shaw
1042Wickens H ChuiJapan2026-08-05Printing Dimensions NEGOTIATION81Ioni Bowcher
1043Isabel I WhobreyBrazil2026-08-29Benton, John B Jr UNQUALIFIED82Anna Fali
1044Misaki Z ButtGermany2026-08-18Commercial Press QUALIFIED2Bernardo Dominic
1045Salvatore S GillianFrance2026-08-18Buckley Miller Wright QUALIFIED29Elwin Sharvill
1046Francesco M BowleyUnited Kingdom2026-08-10Dorl, James J Esq QUALIFIED20Xuxue Feng
1047Costa J FerenczFrance2026-09-02Chanay, Jeffrey A Esq RENEWAL97Anna Fali
1048Jeanfrancois E IturbideUnited Kingdom2026-08-24Commercial Press UNQUALIFIED36Amy Elsner
1049Kaitlin Q StensethFrance2026-08-17Commercial Press UNQUALIFIED14Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Nicolas Z MaletFranceStephen Shaw PROPOSAL
Aruna H DarakjyFranceStephen Shaw RENEWAL
Claire C MacleadItalyIvan Magalhaes RENEWAL
Claire J KolmetzFranceIoni Bowcher RENEWAL
Jefferson Y TollnerJapanOnyama Limba RENEWAL
Rodrigues G VocelkaRussiaAmy Elsner NEGOTIATION
Julie J MaletJapanStephen Shaw UNQUALIFIED
Leja L PaprockiSpainOnyama Limba UNQUALIFIED
Aruna N RimAustraliaIoni Bowcher QUALIFIED
Antonio Z StockhamArgentinaIoni Bowcher RENEWAL
Clifford A KuskoBrazilStephen Shaw NEGOTIATION
Kaitlin Q StensethBrazilStephen Shaw NEW
Misaki H PoquetteJapanIoni Bowcher QUALIFIED
Julie Q InouyeItalyIvan Magalhaes QUALIFIED
Mujtaba G OldroydCanadaStephen Shaw NEGOTIATION
Silvio S SlusarskiRussiaAsiya Javayant RENEWAL
Ashley X NestleRussiaElwin Sharvill RENEWAL
Chavez B TollnerUnited KingdomAsiya Javayant NEGOTIATION
Kadeem P WaycottCanadaAsiya Javayant PROPOSAL
Tony X BologniaCanadaAnna Fali RENEWAL
Aditya A FerenczSpainAsiya Javayant QUALIFIED
Smith D PerinAustraliaIoni Bowcher NEGOTIATION
Munro R BriddickItalyAmy Elsner QUALIFIED
Kaitlin P WhobreyFranceAnna Fali QUALIFIED
Aruna K BologniaAustraliaBernardo Dominic RENEWAL
Clifford D KuskoJapanAmy Elsner RENEWAL
Arvin C MarrierFranceStephen Shaw PROPOSAL
Jennifer I WhobreyArgentinaAmy Elsner NEW
Mayumi X AmigonAustraliaAnna Fali PROPOSAL
Jefferson Q RutaItalyStephen Shaw NEGOTIATION
Isabel Q AlbaresIndiaStephen Shaw NEGOTIATION
Aika U BriddickJapanBernardo Dominic NEW
Wickens D FigeroaFranceOnyama Limba RENEWAL
Aika B SlusarskiItalyElwin Sharvill UNQUALIFIED
Silvio U GarufiArgentinaIoni Bowcher QUALIFIED
Deepesh G ShinkoRussiaIvan Magalhaes QUALIFIED
Greenwood L CampainBrazilIvan Magalhaes NEW
Salvatore Q FollerJapanXuxue Feng NEGOTIATION
Claire R GlickCanadaOnyama Limba UNQUALIFIED
Alejandro E MarrierGermanyAmy Elsner NEW
Wickens G RoysterIndiaOnyama Limba NEGOTIATION
Kaitlin X PoquetteGermanyElwin Sharvill PROPOSAL
Ivar X MaletArgentinaAsiya Javayant NEW
Juan I AlbaresRussiaAnna Fali NEW
Aika I RulapaughRussiaBernardo Dominic PROPOSAL
Deepesh K FigeroaIndiaIoni Bowcher NEW
Greenwood D OldroydIndiaAnna Fali NEGOTIATION
Ricardo S StockhamGermanyAmy Elsner NEW
Wickens E VocelkaGermanyIvan Magalhaes NEW
Johnson Q WieserFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Izzy O Bowley
Alejandro B Ferencz
Salvatore H Malet
Mayumi H Oldroyd
Jones S Oldroyd
Jeanfrancois D Darakjy
Sinclair O Maclead
Isabel Z Ostrosky
Salvatore N Tollner
Kadeem S Butt
Aditya R Rulapaugh
Chavez X Briddick
Maisha G Perin
Tony M Sergi
Sinclair U Morasca
Ricardo P Darakjy
Sinclair N Foller
Salvatore P Briddick
Johnson B Stenseth
Claire C Rulapaugh
Izzy C Ferencz
Alejandro M Saylors
Mujtaba P Stenseth
Ivar P Glick
Aruna A Malet
Stacey H Slusarski
Leon F Shinko
Leon E Ferencz
Emily I Slusarski
Claire Z Waycott
Munro W Albares
David N Wieser
Greenwood Z Oldroyd
Costa K Rim
Tony K Ostrosky
Clifford B Caldarera
Murillo J Malet
Johnson E Vocelka
David I Ostrosky
Smith Q Kolmetz
Nicolas A Malet
Nicolas I Oldroyd
Alejandro B Malet
Chavez R Oldroyd
Jennifer H Paprocki
Francesco E Waycott
Maria N Kusko
Sinclair S Maclead
Adams Z Wieser
Morrow E Dilliard
IdCountryDate
1000France2026-08-04
1001Japan2026-08-06
1002Spain2026-08-15
1003Spain2026-08-11
1004Germany2026-08-16
1005France2026-08-29
1006Japan2026-08-15
1007Australia2026-08-13
1008Russia2026-08-11
1009Germany2026-08-08
1010Argentina2026-08-15
1011Argentina2026-08-13
1012Germany2026-08-24
1013Germany2026-08-16
1014Italy2026-09-02
1015India2026-08-23
1016Japan2026-08-08
1017India2026-08-17
1018France2026-08-06
1019Brazil2026-08-12
1020Italy2026-08-12
1021India2026-08-19
1022India2026-08-13
1023Australia2026-08-06
1024Italy2026-08-29
1025Australia2026-08-25
1026Russia2026-08-18
1027Japan2026-08-14
1028India2026-09-02
1029Spain2026-08-24
1030Russia2026-08-27
1031India2026-08-04
1032India2026-08-28
1033Germany2026-08-24
1034Australia2026-08-12
1035Canada2026-08-19
1036Russia2026-08-26
1037Spain2026-08-15
1038Italy2026-08-12
1039Spain2026-08-16
1040Argentina2026-08-15
1041Brazil2026-08-22
1042Canada2026-08-24
1043Russia2026-08-14
1044Germany2026-08-28
1045United Kingdom2026-08-18
1046Germany2026-08-07
1047Russia2026-08-14
1048Argentina2026-08-15
1049Canada2026-08-08

On-Demand Data

NameIdCountryDate
Arvin L Ostrosky1000Australia2026-08-21
Smith E Malet1001Germany2026-08-31
Isabel T Glick1002Brazil2026-08-14
Kaitlin O Schemmer1003Russia2026-08-30
Izzy W Garufi1004Canada2026-08-07
Leja E Glick1005United Kingdom2026-09-01
Emily O Gillian1006Canada2026-08-17
Costa D Amigon1007Australia2026-08-20
Stacey R Oldroyd1008Argentina2026-08-17
David O Caldarera1009Russia2026-08-15
Deepesh A Tollner1010Germany2026-08-25
Jones N Bowley1011France2026-08-27
Ivar N Slusarski1012India2026-08-16
Misaki O Vocelka1013Japan2026-08-23
Adams I Whobrey1014Germany2026-08-06
Emily M Whobrey1015Brazil2026-08-17
Maria Q Albares1016Italy2026-08-27
Aruna Z Shinko1017Russia2026-08-30
Leja V Rim1018Italy2026-08-31
Mujtaba D Figeroa1019Canada2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha H AmigonGermanyIoni Bowcher PROPOSAL
Nicolas T WhobreyRussiaStephen Shaw QUALIFIED
Juan E StensethSpainStephen Shaw RENEWAL
Aditya Y CaldareraArgentinaElwin Sharvill UNQUALIFIED
Sinclair K IturbideBrazilAsiya Javayant QUALIFIED
Mayumi B RoysterJapanElwin Sharvill RENEWAL
Costa V InouyeItalyIvan Magalhaes NEW
Ricardo Y DarakjyItalyAnna Fali PROPOSAL
Johnson Z TollnerRussiaAnna Fali NEW
Ivar Z MaletJapanBernardo Dominic RENEWAL
Ivar Z KolmetzIndiaIvan Magalhaes PROPOSAL
Francesco X NickaCanadaOnyama Limba NEW
Ivar Y RulapaughFranceElwin Sharvill NEGOTIATION
Mujtaba W AmigonBrazilElwin Sharvill NEW
Aruna L RoysterGermanyStephen Shaw PROPOSAL
Jefferson S StockhamRussiaElwin Sharvill QUALIFIED
Faith R CaldareraCanadaAsiya Javayant NEGOTIATION
Julie J VocelkaBrazilAsiya Javayant NEW
Silvio S MaletRussiaXuxue Feng NEGOTIATION
Jefferson I GarufiRussiaAmy Elsner NEW
Chavez R MacleadUnited KingdomElwin Sharvill RENEWAL
Alejandro T OldroydItalyXuxue Feng RENEWAL
Smith O RimArgentinaBernardo Dominic NEW
Octavia W VocelkaIndiaAmy Elsner QUALIFIED
Munro V DarakjyAustraliaElwin Sharvill UNQUALIFIED
Munro R VenereUnited KingdomAmy Elsner PROPOSAL
Leon O WhobreyCanadaOnyama Limba QUALIFIED
Maisha M GarufiSpainAnna Fali UNQUALIFIED
Greenwood Y BriddickUnited KingdomIvan Magalhaes PROPOSAL
Darci Q RoysterItalyAmy Elsner QUALIFIED
Jeanfrancois W KuskoFranceIoni Bowcher NEW
Emily M WhobreyFranceIoni Bowcher NEW
Jefferson N CampainItalyIvan Magalhaes NEW
Antonio E ShinkoGermanyBernardo Dominic RENEWAL
Maisha Y NickaJapanAnna Fali PROPOSAL
Cody L MaletItalyAsiya Javayant NEW
Izzy S VenereAustraliaStephen Shaw NEGOTIATION
Ricardo E WaycottArgentinaElwin Sharvill NEW
Jones E NestleCanadaIoni Bowcher NEGOTIATION
Maisha S OldroydJapanAnna Fali RENEWAL

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