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
Maria Q AmigonBrazilOnyama Limba RENEWAL
Francesco T RimRussiaAnna Fali UNQUALIFIED
Julie X OstroskyBrazilStephen Shaw QUALIFIED
Mujtaba E CampainBrazilXuxue Feng QUALIFIED
Kadeem B MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford V SchemmerBrazilIoni Bowcher NEW
Costa A FigeroaFranceElwin Sharvill UNQUALIFIED
Cody P AmigonBrazilIvan Magalhaes UNQUALIFIED
Isabel S CaudyCanadaOnyama Limba QUALIFIED
Darci I InouyeSpainAmy Elsner QUALIFIED
Nicolas L ButtBrazilElwin Sharvill UNQUALIFIED
Emily D OstroskyRussiaElwin Sharvill QUALIFIED
Rodrigues A ButtCanadaXuxue Feng UNQUALIFIED
Jefferson V KuskoItalyBernardo Dominic NEGOTIATION
Munro K NestleArgentinaAsiya Javayant NEGOTIATION
Jones T NestleIndiaAsiya Javayant NEW
Jefferson L SchemmerGermanyIvan Magalhaes NEGOTIATION
Francesco R FigeroaArgentinaElwin Sharvill RENEWAL
Jennifer N ButtFranceIoni Bowcher NEW
Jefferson B GillianJapanIoni Bowcher UNQUALIFIED
Wickens P NickaArgentinaAmy Elsner QUALIFIED
Aditya G StockhamUnited KingdomAsiya Javayant NEGOTIATION
Juan L SlusarskiIndiaIvan Magalhaes NEGOTIATION
Leja R FlosiSpainBernardo Dominic UNQUALIFIED
Costa V BowleyUnited KingdomXuxue Feng PROPOSAL
Mayumi R AmigonBrazilIvan Magalhaes PROPOSAL
Mayumi Y WaycottRussiaOnyama Limba RENEWAL
Ashley C CampainItalyIvan Magalhaes UNQUALIFIED
Stacey W WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Antonio B CampainJapanOnyama Limba QUALIFIED
Jefferson S MarrierAustraliaIvan Magalhaes NEGOTIATION
Rodrigues F RimItalyAsiya Javayant NEW
Cody M MorascaBrazilAnna Fali PROPOSAL
Cody X WaycottAustraliaIoni Bowcher NEW
Aruna S FerenczSpainAnna Fali NEGOTIATION
Francesco L TollnerUnited KingdomStephen Shaw PROPOSAL
James D StensethSpainElwin Sharvill QUALIFIED
Sinclair V AlbaresItalyAmy Elsner QUALIFIED
Jefferson P AlbaresCanadaStephen Shaw PROPOSAL
Deepesh Q PaprockiItalyElwin Sharvill RENEWAL
Jeanfrancois B NestleIndiaIvan Magalhaes QUALIFIED
Ivar K SaylorsAustraliaOnyama Limba PROPOSAL
Jefferson N BriddickArgentinaAsiya Javayant RENEWAL
Claire T OstroskyFranceIvan Magalhaes UNQUALIFIED
Clifford R CaldareraSpainIvan Magalhaes NEGOTIATION
Tony V SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Aditya H PoquetteJapanAsiya Javayant NEW
Aditya D GlickIndiaAmy Elsner RENEWAL
Aditya Z MorascaRussiaAnna Fali NEW
Octavia A BowleyArgentinaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas T RulapaughBrazilOnyama Limba RENEWAL
Sinclair U AmigonUnited KingdomStephen Shaw NEW
Stacey X MacleadGermanyAmy Elsner QUALIFIED
James U MorascaAustraliaStephen Shaw NEGOTIATION
Maisha M SchemmerUnited KingdomStephen Shaw NEW
Mujtaba S CaldareraUnited KingdomStephen Shaw QUALIFIED
Johnson Z InouyeUnited KingdomStephen Shaw PROPOSAL
Salvatore B VocelkaBrazilBernardo Dominic RENEWAL
Julie K StensethIndiaIoni Bowcher QUALIFIED
Cody K MorascaItalyIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi Q MacleadUnited Kingdom2026-07-11Chapman, Ross E Esq UNQUALIFIED34Amy Elsner
1001Adams T WhobreySpain2026-07-10King, Christopher A Esq UNQUALIFIED63Bernardo Dominic
1002Leon X RutaAustralia2026-07-26Chemel, James L Cpa NEGOTIATION27Anna Fali
1003Arvin O MorascaRussia2026-07-12Chapman, Ross E Esq NEGOTIATION74Bernardo Dominic
1004Jefferson L FlosiGermany2026-07-26Chemel, James L Cpa QUALIFIED97Asiya Javayant
1005Wickens L GillianCanada2026-07-19Truhlar And Truhlar Attys RENEWAL33Asiya Javayant
1006Johnson Z CampainItaly2026-07-16Feltz Printing Service UNQUALIFIED30Onyama Limba
1007Isabel F WhobreyCanada2026-08-03Chapman, Ross E Esq QUALIFIED65Elwin Sharvill
1008Kadeem B GillianItaly2026-07-30Benton, John B Jr PROPOSAL12Amy Elsner
1009Mujtaba X MaletRussia2026-07-08Chemel, James L Cpa NEW59Xuxue Feng
1010Johnson C DilliardCanada2026-07-20Rousseaux, Michael Esq UNQUALIFIED86Anna Fali
1011David P TollnerArgentina2026-07-12Chapman, Ross E Esq RENEWAL95Asiya Javayant
1012Chavez P SchemmerCanada2026-07-30Truhlar And Truhlar Attys PROPOSAL98Elwin Sharvill
1013Kaitlin O InouyeAustralia2026-08-04Commercial Press NEW19Asiya Javayant
1014Octavia B PaprockiRussia2026-07-25Benton, John B Jr NEGOTIATION64Anna Fali
1015Clifford E WaycottItaly2026-07-13Chapman, Ross E Esq NEGOTIATION20Onyama Limba
1016Francesco E KolmetzUnited Kingdom2026-07-18Dorl, James J Esq PROPOSAL63Elwin Sharvill
1017Munro N MacleadFrance2026-07-20Chanay, Jeffrey A Esq NEGOTIATION8Amy Elsner
1018Darci S AmigonUnited Kingdom2026-07-30Morlong Associates RENEWAL42Stephen Shaw
1019Maisha S CaudyUnited Kingdom2026-07-10Rangoni Of Florence UNQUALIFIED57Onyama Limba
1020Octavia K FlosiBrazil2026-07-23Dorl, James J Esq NEW1Ivan Magalhaes
1021Misaki G RoysterJapan2026-07-25Truhlar And Truhlar Attys PROPOSAL78Ioni Bowcher
1022Ricardo B KuskoBrazil2026-07-21Morlong Associates NEW88Amy Elsner
1023Greenwood R TollnerGermany2026-07-08Rangoni Of Florence QUALIFIED53Anna Fali
1024Mayumi L RoysterIndia2026-07-14Morlong Associates UNQUALIFIED88Bernardo Dominic
1025Ricardo M GauchoFrance2026-07-08Dorl, James J Esq NEW66Xuxue Feng
1026Izzy J PerinItaly2026-07-13Chapman, Ross E Esq QUALIFIED7Stephen Shaw
1027Octavia K SchemmerItaly2026-07-06Dorl, James J Esq RENEWAL80Ivan Magalhaes
1028Jennifer O CaudyJapan2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED88Asiya Javayant
1029Stacey U RimBrazil2026-07-13Chanay, Jeffrey A Esq RENEWAL0Anna Fali
1030Leon U GlickSpain2026-07-23Buckley Miller Wright PROPOSAL56Asiya Javayant
1031Salvatore W PerinFrance2026-07-10Feltz Printing Service NEGOTIATION43Xuxue Feng
1032Sinclair A FlosiCanada2026-07-12Chanay, Jeffrey A Esq PROPOSAL27Stephen Shaw
1033Ashley S RimSpain2026-07-24Buckley Miller Wright PROPOSAL45Stephen Shaw
1034Aditya T DoeSpain2026-07-13King, Christopher A Esq UNQUALIFIED88Xuxue Feng
1035Aruna V CaldareraBrazil2026-07-11Feltz Printing Service PROPOSAL82Asiya Javayant
1036Julie H ShinkoBrazil2026-07-22Feltz Printing Service PROPOSAL28Xuxue Feng
1037Ricardo M IturbideGermany2026-07-09Rousseaux, Michael Esq QUALIFIED0Asiya Javayant
1038Octavia D RoysterUnited Kingdom2026-07-23Buckley Miller Wright NEW12Amy Elsner
1039Adams J FerenczIndia2026-07-30Morlong Associates UNQUALIFIED7Asiya Javayant
1040Darci H WieserUnited Kingdom2026-07-30Feiner Bros RENEWAL8Anna Fali
1041Maria Z InouyeCanada2026-08-02Printing Dimensions PROPOSAL90Elwin Sharvill
1042Isabel T StensethItaly2026-07-31Morlong Associates RENEWAL81Amy Elsner
1043Greenwood U KolmetzJapan2026-08-02Rousseaux, Michael Esq NEGOTIATION30Ioni Bowcher
1044Aditya G IturbideFrance2026-07-19Rangoni Of Florence QUALIFIED73Stephen Shaw
1045Leja V SlusarskiRussia2026-07-10Feltz Printing Service QUALIFIED32Stephen Shaw
1046Mayumi M BriddickRussia2026-07-09Chapman, Ross E Esq NEW39Bernardo Dominic
1047Cody Y AmigonSpain2026-07-07Truhlar And Truhlar Attys NEW77Ivan Magalhaes
1048Sinclair Y MaletJapan2026-08-01Truhlar And Truhlar Attys NEW23Bernardo Dominic
1049Tony E OldroydAustralia2026-07-24Dorl, James J Esq UNQUALIFIED99Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Misaki Z DilliardSpainElwin Sharvill UNQUALIFIED
Chavez H GlickAustraliaElwin Sharvill NEW
Leon E NestleFranceAnna Fali QUALIFIED
Rodrigues U ButtJapanIvan Magalhaes RENEWAL
Arvin S GauchoItalyOnyama Limba QUALIFIED
Jeanfrancois C StockhamBrazilXuxue Feng NEGOTIATION
Aditya F StockhamGermanyAmy Elsner PROPOSAL
Antonio W CampainFranceIvan Magalhaes PROPOSAL
Kadeem Y FerenczArgentinaAmy Elsner RENEWAL
Wickens A WieserRussiaStephen Shaw NEGOTIATION
Rodrigues Q RimItalyBernardo Dominic QUALIFIED
Misaki B InouyeAustraliaIoni Bowcher NEW
Nicolas V RutaIndiaIoni Bowcher NEGOTIATION
Salvatore U NickaIndiaAsiya Javayant NEW
Jeanfrancois O CaudyUnited KingdomXuxue Feng NEGOTIATION
Greenwood N MarrierItalyAnna Fali NEGOTIATION
Munro N StockhamSpainIoni Bowcher NEW
Jefferson O RoysterSpainAmy Elsner PROPOSAL
Jones X OldroydUnited KingdomStephen Shaw PROPOSAL
Aruna X MorascaSpainAmy Elsner RENEWAL
Mujtaba F MacleadGermanyElwin Sharvill PROPOSAL
Isabel X GlickGermanyIvan Magalhaes NEGOTIATION
David O KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Salvatore X KolmetzFranceIoni Bowcher UNQUALIFIED
Ivar N CaldareraArgentinaOnyama Limba RENEWAL
Francesco E BologniaUnited KingdomElwin Sharvill QUALIFIED
Ivar N InouyeUnited KingdomAnna Fali PROPOSAL
Francesco S WaycottArgentinaIvan Magalhaes RENEWAL
Juan A AmigonGermanyIoni Bowcher NEGOTIATION
Jefferson M RulapaughGermanyOnyama Limba PROPOSAL
Juan G SergiArgentinaXuxue Feng UNQUALIFIED
Isabel P DilliardSpainIvan Magalhaes RENEWAL
Darci Z StensethGermanyStephen Shaw QUALIFIED
Murillo J WaycottGermanyAmy Elsner NEW
Greenwood Y DilliardRussiaStephen Shaw QUALIFIED
Jennifer I ShinkoBrazilAsiya Javayant UNQUALIFIED
David F IturbideGermanyOnyama Limba NEGOTIATION
Chavez M StockhamJapanIvan Magalhaes PROPOSAL
Adams M WhobreyAustraliaOnyama Limba NEW
Isabel P MacleadCanadaAsiya Javayant RENEWAL
Wickens A CampainAustraliaAsiya Javayant NEGOTIATION
Antonio F SchemmerJapanElwin Sharvill QUALIFIED
Octavia S GillianJapanAsiya Javayant UNQUALIFIED
Chavez I MaletJapanOnyama Limba RENEWAL
Izzy J OldroydCanadaElwin Sharvill RENEWAL
Julie J RimUnited KingdomIvan Magalhaes NEGOTIATION
Ashley L BologniaJapanAmy Elsner UNQUALIFIED
Ashley X TollnerRussiaBernardo Dominic UNQUALIFIED
David P RimBrazilIvan Magalhaes RENEWAL
Wickens P MaletIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Stacey B Schemmer
Darci O Rim
Aditya B Maclead
Tony G Sergi
Aditya P Shinko
Mayumi I Amigon
Aditya U Whobrey
Octavia M Ruta
Cody F Rulapaugh
Leon A Darakjy
Leja B Bowley
Leon R Chui
Cody V Caldarera
Tony P Caudy
Costa F Gillian
Aruna V Kusko
Faith O Ruta
Mujtaba I Sergi
Julie D Glick
Maria F Slusarski
Deepesh X Iturbide
Leja U Morasca
Ashley R Marrier
Salvatore L Gaucho
Silvio X Amigon
Cody H Garufi
Johnson D Kusko
Aika T Saylors
Julie B Gillian
Munro Z Malet
Alejandro X Garufi
Ashley V Royster
Adams D Briddick
Ashley A Sergi
James V Venere
Antonio H Briddick
Kadeem K Amigon
Sinclair I Ruta
Kaitlin S Wieser
Adams X Shinko
Jennifer H Malet
Claire W Caldarera
Emily L Saylors
Mayumi Y Royster
Alejandro P Butt
Antonio T Bolognia
Morrow E Vocelka
Kaitlin C Iturbide
Emily X Royster
David Z Campain
IdCountryDate
1000Argentina2026-07-15
1001Spain2026-07-29
1002Italy2026-07-23
1003Argentina2026-07-20
1004Japan2026-08-03
1005Japan2026-07-31
1006Canada2026-07-22
1007Italy2026-08-04
1008Russia2026-07-25
1009United Kingdom2026-07-10
1010Japan2026-07-29
1011Spain2026-07-11
1012Australia2026-07-07
1013Spain2026-07-09
1014India2026-07-25
1015Brazil2026-07-25
1016India2026-07-07
1017Russia2026-08-03
1018United Kingdom2026-07-24
1019Germany2026-08-04
1020Spain2026-07-21
1021India2026-07-23
1022Brazil2026-07-28
1023Russia2026-08-03
1024Germany2026-07-19
1025Germany2026-07-14
1026Japan2026-07-11
1027Russia2026-07-30
1028Russia2026-07-15
1029France2026-08-02
1030Germany2026-07-28
1031Italy2026-07-20
1032Canada2026-07-10
1033Russia2026-07-08
1034Brazil2026-07-09
1035Argentina2026-07-10
1036Canada2026-07-26
1037Japan2026-07-08
1038United Kingdom2026-07-24
1039Russia2026-07-18
1040Canada2026-07-30
1041Russia2026-07-31
1042India2026-07-19
1043France2026-07-29
1044Argentina2026-07-28
1045India2026-07-14
1046Argentina2026-07-14
1047Spain2026-07-06
1048United Kingdom2026-07-11
1049United Kingdom2026-07-21

On-Demand Data

NameIdCountryDate
Clifford Q Shinko1000Germany2026-07-17
Maisha Y Poquette1001United Kingdom2026-07-31
Morrow Q Bowley1002Japan2026-08-04
Sinclair F Flosi1003Italy2026-07-13
Cody Q Morasca1004Spain2026-07-31
Aruna D Ostrosky1005Italy2026-07-20
Deepesh V Waycott1006United Kingdom2026-07-24
Maria P Kusko1007Russia2026-07-16
Antonio B Kolmetz1008Australia2026-08-01
Aika A Waycott1009Russia2026-07-06
Smith D Flosi1010Russia2026-07-30
Faith V Albares1011Japan2026-07-28
Adams C Bowley1012Spain2026-08-02
Greenwood F Waycott1013Germany2026-07-25
Leon H Gaucho1014Spain2026-07-15
Aika O Nicka1015Canada2026-08-02
Sinclair H Glick1016France2026-07-21
Emily Q Caldarera1017Italy2026-07-13
Johnson R Kolmetz1018Brazil2026-07-23
Aditya V Dilliard1019France2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo L ChuiRussiaAsiya Javayant QUALIFIED
Murillo V BologniaSpainAnna Fali UNQUALIFIED
Antonio R GauchoUnited KingdomElwin Sharvill QUALIFIED
Tony H OldroydItalyOnyama Limba NEGOTIATION
Silvio O FlosiGermanyXuxue Feng RENEWAL
Ivar Y InouyeCanadaIoni Bowcher NEGOTIATION
Salvatore E DilliardFranceOnyama Limba QUALIFIED
Johnson T BowleyGermanyIvan Magalhaes PROPOSAL
Sinclair U NickaAustraliaOnyama Limba PROPOSAL
Morrow I KolmetzUnited KingdomAnna Fali NEGOTIATION
Isabel X NickaSpainXuxue Feng RENEWAL
Deepesh U IturbideArgentinaOnyama Limba QUALIFIED
Izzy Q RoysterAustraliaOnyama Limba RENEWAL
Nicolas Z GlickIndiaElwin Sharvill PROPOSAL
James W RimUnited KingdomStephen Shaw PROPOSAL
Maisha D PaprockiArgentinaXuxue Feng NEGOTIATION
David Y FollerAustraliaBernardo Dominic RENEWAL
Kadeem K FerenczCanadaAmy Elsner UNQUALIFIED
Clifford Q RutaCanadaXuxue Feng QUALIFIED
Salvatore R MaletAustraliaAnna Fali NEW
Octavia L ChuiBrazilAsiya Javayant PROPOSAL
Antonio N MaletUnited KingdomAmy Elsner QUALIFIED
Maria B TollnerIndiaIoni Bowcher NEGOTIATION
Wickens Z StensethUnited KingdomIoni Bowcher RENEWAL
Mayumi B BriddickFranceElwin Sharvill NEW
Octavia O NickaRussiaBernardo Dominic RENEWAL
Darci W TollnerArgentinaIvan Magalhaes NEGOTIATION
Nicolas C NickaArgentinaAnna Fali NEGOTIATION
Maria O KolmetzGermanyAsiya Javayant NEGOTIATION
Murillo J WieserJapanElwin Sharvill NEGOTIATION
Tony M InouyeAustraliaXuxue Feng QUALIFIED
Leon N MaletBrazilOnyama Limba PROPOSAL
Emily F ButtArgentinaAnna Fali NEW
Mayumi S RimSpainStephen Shaw QUALIFIED
Clifford Y InouyeCanadaBernardo Dominic UNQUALIFIED
Murillo Y GillianBrazilXuxue Feng UNQUALIFIED
Antonio V FollerJapanBernardo Dominic RENEWAL
James M WaycottAustraliaElwin Sharvill RENEWAL
Octavia Z GlickRussiaStephen Shaw QUALIFIED
Nicolas D ButtUnited KingdomIvan Magalhaes 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>