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
David T MarrierItalyIoni Bowcher PROPOSAL
Nicolas X PaprockiUnited KingdomAsiya Javayant NEW
Johnson U RimJapanElwin Sharvill UNQUALIFIED
Stacey T IturbideJapanOnyama Limba UNQUALIFIED
Faith A RoysterUnited KingdomElwin Sharvill NEW
Smith E IturbideSpainAsiya Javayant QUALIFIED
Izzy E MorascaUnited KingdomAmy Elsner NEGOTIATION
Arvin M PoquetteCanadaBernardo Dominic RENEWAL
Jeanfrancois T WieserSpainXuxue Feng NEW
Faith V WaycottGermanyIoni Bowcher NEGOTIATION
Leja Z FlosiIndiaAnna Fali PROPOSAL
Maisha Z ChuiRussiaAnna Fali NEGOTIATION
Cody G ButtBrazilOnyama Limba UNQUALIFIED
Leon G PerinItalyXuxue Feng QUALIFIED
Munro T PoquetteIndiaBernardo Dominic RENEWAL
Faith V MaletArgentinaAnna Fali NEW
Murillo H MarrierSpainAsiya Javayant NEW
Silvio F OstroskyItalyAnna Fali UNQUALIFIED
Ashley R InouyeGermanyXuxue Feng NEGOTIATION
Izzy Z WhobreyRussiaIvan Magalhaes NEGOTIATION
Julie Y IturbideJapanAmy Elsner NEGOTIATION
Salvatore J FlosiSpainAmy Elsner UNQUALIFIED
Izzy L FollerSpainBernardo Dominic UNQUALIFIED
Jennifer B OstroskyCanadaAsiya Javayant NEGOTIATION
Mujtaba L SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Faith P StensethBrazilAnna Fali NEW
Misaki U AmigonFranceOnyama Limba UNQUALIFIED
Munro E RulapaughBrazilXuxue Feng NEW
Jefferson T WhobreySpainXuxue Feng NEW
Rodrigues F RoysterItalyIvan Magalhaes PROPOSAL
James T StockhamIndiaBernardo Dominic RENEWAL
James N VocelkaBrazilIoni Bowcher NEW
Jones Q SaylorsJapanAmy Elsner PROPOSAL
Morrow L BologniaItalyElwin Sharvill PROPOSAL
Stacey P FlosiFranceElwin Sharvill RENEWAL
Jennifer V RutaIndiaIvan Magalhaes RENEWAL
Salvatore A RulapaughArgentinaOnyama Limba QUALIFIED
Aruna B FollerJapanXuxue Feng QUALIFIED
Misaki E PoquetteIndiaIvan Magalhaes PROPOSAL
Sinclair Q CaudyUnited KingdomAsiya Javayant QUALIFIED
Antonio N WaycottCanadaXuxue Feng NEGOTIATION
Smith L NickaJapanAsiya Javayant QUALIFIED
Costa A SaylorsCanadaAsiya Javayant QUALIFIED
Isabel A StensethRussiaXuxue Feng NEGOTIATION
Tony W WieserSpainXuxue Feng UNQUALIFIED
Morrow E MarrierGermanyOnyama Limba NEW
Salvatore J OstroskyBrazilAmy Elsner QUALIFIED
Maria F FlosiBrazilAsiya Javayant PROPOSAL
Maisha Y ShinkoJapanBernardo Dominic NEGOTIATION
Tony T StockhamJapanAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha F NickaFranceElwin Sharvill RENEWAL
Juan C MaletBrazilOnyama Limba RENEWAL
Wickens Q RutaUnited KingdomIoni Bowcher RENEWAL
Mujtaba A SaylorsRussiaElwin Sharvill PROPOSAL
Rodrigues F FlosiUnited KingdomAsiya Javayant RENEWAL
Adams H CaldareraCanadaIvan Magalhaes RENEWAL
Aika A PerinItalyElwin Sharvill UNQUALIFIED
Tony G NestleBrazilBernardo Dominic NEGOTIATION
Izzy Z MaletJapanStephen Shaw PROPOSAL
Octavia O RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco V GarufiFrance2024-06-21Rousseaux, Michael Esq NEW73Asiya Javayant
1001Ivar Q GlickBrazil2024-06-12Feltz Printing Service NEW67Asiya Javayant
1002Morrow T FerenczUnited Kingdom2024-05-24King, Christopher A Esq NEGOTIATION91Elwin Sharvill
1003Greenwood B CaudyItaly2024-05-31Printing Dimensions NEGOTIATION62Ivan Magalhaes
1004Alejandro X SaylorsCanada2024-06-09Rousseaux, Michael Esq PROPOSAL65Asiya Javayant
1005Morrow T FollerUnited Kingdom2024-06-05Truhlar And Truhlar Attys RENEWAL54Elwin Sharvill
1006Maria X InouyeRussia2024-06-15Rangoni Of Florence QUALIFIED16Stephen Shaw
1007Alejandro U RulapaughFrance2024-06-18Chemel, James L Cpa PROPOSAL89Ioni Bowcher
1008Greenwood L AmigonFrance2024-05-26Dorl, James J Esq UNQUALIFIED73Elwin Sharvill
1009Isabel S RutaIndia2024-06-20King, Christopher A Esq NEGOTIATION48Elwin Sharvill
1010Jones U FollerRussia2024-06-12Buckley Miller Wright QUALIFIED93Bernardo Dominic
1011Mayumi X GauchoUnited Kingdom2024-06-18Feltz Printing Service PROPOSAL2Anna Fali
1012Morrow T GlickUnited Kingdom2024-06-07Buckley Miller Wright UNQUALIFIED40Asiya Javayant
1013Maria H ButtBrazil2024-06-08Buckley Miller Wright NEW91Ivan Magalhaes
1014Sinclair M SergiBrazil2024-06-20Chapman, Ross E Esq QUALIFIED24Ioni Bowcher
1015Octavia I MaletItaly2024-06-06Rangoni Of Florence RENEWAL49Amy Elsner
1016Adams N NestleJapan2024-06-14Rangoni Of Florence NEGOTIATION90Elwin Sharvill
1017Wickens Q BriddickUnited Kingdom2024-06-09Chapman, Ross E Esq UNQUALIFIED17Xuxue Feng
1018Arvin Y SlusarskiCanada2024-05-23Printing Dimensions UNQUALIFIED12Onyama Limba
1019Ivar T StensethItaly2024-06-20Benton, John B Jr NEGOTIATION77Asiya Javayant
1020Greenwood B PerinAustralia2024-06-17Truhlar And Truhlar Attys UNQUALIFIED19Onyama Limba
1021Alejandro B SchemmerArgentina2024-06-15Chapman, Ross E Esq QUALIFIED35Bernardo Dominic
1022Jones Q DilliardIndia2024-06-09Dorl, James J Esq RENEWAL17Amy Elsner
1023Adams T KolmetzItaly2024-06-01Chapman, Ross E Esq NEGOTIATION62Ioni Bowcher
1024Kadeem U RoysterFrance2024-06-10Commercial Press NEGOTIATION24Asiya Javayant
1025Tony E StensethAustralia2024-05-24Benton, John B Jr PROPOSAL28Ioni Bowcher
1026Aruna H RutaBrazil2024-05-30Buckley Miller Wright QUALIFIED10Xuxue Feng
1027Antonio V CampainUnited Kingdom2024-06-02Rangoni Of Florence QUALIFIED39Bernardo Dominic
1028Izzy J SlusarskiSpain2024-06-20Rousseaux, Michael Esq NEGOTIATION72Amy Elsner
1029Silvio P GarufiItaly2024-06-19Printing Dimensions PROPOSAL15Xuxue Feng
1030Adams R InouyeAustralia2024-05-25Feltz Printing Service NEGOTIATION97Ioni Bowcher
1031Arvin Y BologniaArgentina2024-06-12Feltz Printing Service PROPOSAL96Ivan Magalhaes
1032Deepesh C DoeCanada2024-05-28Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1033Mayumi A RoysterUnited Kingdom2024-06-21Benton, John B Jr NEGOTIATION43Onyama Limba
1034Aruna J FlosiIndia2024-06-15Chapman, Ross E Esq QUALIFIED94Onyama Limba
1035Maria P OldroydJapan2024-06-13Truhlar And Truhlar Attys UNQUALIFIED24Ioni Bowcher
1036David Y OldroydBrazil2024-06-04Feiner Bros QUALIFIED51Ivan Magalhaes
1037Johnson Q BowleyAustralia2024-06-14Buckley Miller Wright PROPOSAL8Onyama Limba
1038Claire Q DarakjyFrance2024-06-15King, Christopher A Esq RENEWAL76Anna Fali
1039Darci X SlusarskiAustralia2024-05-28Truhlar And Truhlar Attys QUALIFIED95Stephen Shaw
1040Jeanfrancois T BriddickUnited Kingdom2024-06-14Feltz Printing Service UNQUALIFIED77Asiya Javayant
1041Wickens V SaylorsIndia2024-06-01Chapman, Ross E Esq UNQUALIFIED85Bernardo Dominic
1042Francesco E RoysterRussia2024-06-19Benton, John B Jr PROPOSAL43Xuxue Feng
1043Kaitlin I FigeroaGermany2024-06-01Rousseaux, Michael Esq RENEWAL52Ioni Bowcher
1044Adams S AlbaresCanada2024-06-16Morlong Associates NEW50Stephen Shaw
1045Kadeem I ShinkoArgentina2024-06-01Dorl, James J Esq NEGOTIATION55Ivan Magalhaes
1046Rodrigues V GillianUnited Kingdom2024-06-06Commercial Press UNQUALIFIED29Xuxue Feng
1047Chavez L StensethRussia2024-05-28Feiner Bros PROPOSAL24Xuxue Feng
1048Costa P MacleadSpain2024-06-21Rousseaux, Michael Esq QUALIFIED9Xuxue Feng
1049Aika V GillianBrazil2024-06-06Benton, John B Jr UNQUALIFIED18Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Deepesh X PerinArgentinaAmy Elsner RENEWAL
Deepesh N MorascaUnited KingdomAsiya Javayant PROPOSAL
Isabel X SlusarskiJapanAmy Elsner UNQUALIFIED
Tony O VocelkaFranceXuxue Feng QUALIFIED
Murillo T FerenczJapanIvan Magalhaes RENEWAL
Leja T PerinBrazilStephen Shaw NEGOTIATION
Aditya F MorascaAustraliaIvan Magalhaes NEGOTIATION
Tony N GillianIndiaAmy Elsner QUALIFIED
Kadeem T WaycottArgentinaStephen Shaw NEGOTIATION
Munro B NickaJapanStephen Shaw UNQUALIFIED
Francesco E FerenczSpainAnna Fali QUALIFIED
Isabel Q FlosiFranceBernardo Dominic NEGOTIATION
Morrow V WieserJapanIoni Bowcher NEGOTIATION
Julie S WaycottRussiaStephen Shaw NEW
Francesco I OldroydArgentinaAmy Elsner NEGOTIATION
Antonio G CaldareraGermanyBernardo Dominic RENEWAL
Kadeem Z CaldareraUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois J TollnerGermanyBernardo Dominic PROPOSAL
Jones Z GlickJapanAmy Elsner UNQUALIFIED
Murillo X RutaArgentinaIoni Bowcher UNQUALIFIED
Ivar I KuskoArgentinaOnyama Limba RENEWAL
Rodrigues U DoeUnited KingdomXuxue Feng RENEWAL
Claire A CampainFranceAsiya Javayant RENEWAL
Adams U FigeroaArgentinaXuxue Feng PROPOSAL
Leon O MarrierIndiaIvan Magalhaes PROPOSAL
Sinclair N GarufiRussiaAnna Fali RENEWAL
James U BologniaUnited KingdomOnyama Limba RENEWAL
Jefferson Y FlosiJapanXuxue Feng NEGOTIATION
Cody E WieserCanadaBernardo Dominic NEW
Adams H AlbaresUnited KingdomOnyama Limba RENEWAL
Sinclair Q SergiGermanyElwin Sharvill RENEWAL
Kaitlin O ShinkoJapanXuxue Feng UNQUALIFIED
Leja H CaldareraSpainIoni Bowcher NEGOTIATION
Jefferson U MacleadBrazilAmy Elsner RENEWAL
Mujtaba K FerenczUnited KingdomAnna Fali RENEWAL
Aruna O TollnerItalyAnna Fali UNQUALIFIED
Deepesh X NestleIndiaBernardo Dominic NEW
Misaki N WaycottIndiaStephen Shaw QUALIFIED
Mayumi G MorascaItalyAsiya Javayant PROPOSAL
Johnson O DarakjyIndiaIvan Magalhaes UNQUALIFIED
Izzy B SergiUnited KingdomStephen Shaw NEGOTIATION
Leon X VenereUnited KingdomXuxue Feng QUALIFIED
Deepesh W FerenczFranceElwin Sharvill NEGOTIATION
Rodrigues S OstroskyIndiaIvan Magalhaes QUALIFIED
Emily T FollerUnited KingdomAmy Elsner PROPOSAL
Chavez N OstroskyArgentinaOnyama Limba RENEWAL
Nicolas Q VenereIndiaAmy Elsner PROPOSAL
Jeanfrancois M NestleRussiaIoni Bowcher QUALIFIED
Faith G FollerFranceAnna Fali NEW
Johnson Q OstroskyUnited KingdomBernardo Dominic QUALIFIED
Frozen Columns
Name
David E Figeroa
Faith H Albares
Juan V Rulapaugh
Mayumi H Vocelka
Sinclair H Chui
Smith A Caudy
Nicolas U Glick
Aruna A Foller
Izzy V Campain
Stacey W Shinko
Ivar G Morasca
Deepesh S Gillian
Maisha K Dilliard
Jennifer R Butt
Nicolas C Nestle
Aika J Briddick
Darci F Bolognia
Cody D Slusarski
Mujtaba R Bowley
Chavez R Malet
Ricardo Y Rim
Mayumi G Bolognia
Leon T Paprocki
Isabel L Poquette
Jefferson Q Figeroa
Ivar N Glick
Chavez L Maclead
Greenwood Z Stockham
David V Oldroyd
Clifford V Malet
Nicolas U Albares
Sinclair M Paprocki
Faith Z Saylors
Clifford N Chui
Mayumi R Maclead
Maisha V Royster
Adams A Ruta
Aika C Amigon
Morrow G Butt
Sinclair V Amigon
Sinclair C Marrier
Stacey K Saylors
Leon E Shinko
Mujtaba M Bolognia
Claire O Paprocki
Clifford G Caldarera
Antonio W Royster
Mayumi D Iturbide
Aika Y Nestle
Octavia B Schemmer
IdCountryDate
1000France2024-06-21
1001Russia2024-06-12
1002France2024-06-17
1003Spain2024-05-30
1004Russia2024-05-31
1005India2024-06-15
1006India2024-05-27
1007United Kingdom2024-05-27
1008India2024-06-21
1009Italy2024-05-28
1010Italy2024-06-03
1011United Kingdom2024-06-17
1012Argentina2024-05-23
1013Germany2024-06-17
1014United Kingdom2024-05-24
1015Spain2024-06-19
1016Argentina2024-05-27
1017Italy2024-05-28
1018Brazil2024-05-28
1019Australia2024-06-12
1020Brazil2024-05-27
1021Germany2024-06-20
1022India2024-05-28
1023Germany2024-05-25
1024Italy2024-06-13
1025Brazil2024-06-06
1026Canada2024-06-20
1027India2024-05-24
1028Russia2024-05-24
1029United Kingdom2024-06-15
1030Argentina2024-05-27
1031Russia2024-05-30
1032Spain2024-06-20
1033France2024-05-29
1034Spain2024-06-13
1035Italy2024-05-31
1036Australia2024-06-17
1037Brazil2024-06-18
1038Russia2024-06-17
1039United Kingdom2024-05-24
1040Spain2024-06-10
1041United Kingdom2024-06-10
1042Brazil2024-06-14
1043Germany2024-06-08
1044Canada2024-06-19
1045Germany2024-06-20
1046Brazil2024-06-12
1047Japan2024-06-21
1048Australia2024-05-27
1049Spain2024-06-05

On-Demand Data

NameIdCountryDate
Alejandro Z Poquette1000Germany2024-05-30
Sinclair Y Bowley1001India2024-06-18
Silvio Q Albares1002Spain2024-06-11
Leon W Wieser1003Japan2024-06-18
Clifford M Whobrey1004Germany2024-06-11
Arvin C Bowley1005Brazil2024-06-16
Francesco W Stenseth1006Japan2024-06-19
Maisha R Nicka1007Argentina2024-05-28
Tony U Royster1008France2024-06-03
Silvio M Bolognia1009Spain2024-06-08
Izzy Z Vocelka1010United Kingdom2024-06-06
Aditya P Garufi1011Italy2024-06-09
Clifford I Albares1012United Kingdom2024-06-06
Adams Z Ferencz1013India2024-05-31
Leon U Oldroyd1014Japan2024-06-11
Ashley H Nicka1015Argentina2024-06-04
Aruna O Stockham1016Canada2024-06-07
Juan S Caudy1017Australia2024-05-27
Antonio M Nestle1018Japan2024-06-08
Arvin Q Whobrey1019Germany2024-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa W ChuiItalyAmy Elsner NEGOTIATION
Deepesh Q AlbaresGermanyAsiya Javayant RENEWAL
Johnson X GlickSpainXuxue Feng UNQUALIFIED
Wickens H NickaIndiaIoni Bowcher PROPOSAL
James Y WieserIndiaAmy Elsner UNQUALIFIED
Chavez A CampainIndiaStephen Shaw NEW
Kadeem E BowleySpainElwin Sharvill UNQUALIFIED
Salvatore C MarrierArgentinaAmy Elsner NEGOTIATION
Julie M DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Claire O BriddickItalyAnna Fali NEGOTIATION
Aruna P FigeroaRussiaAnna Fali NEW
Jeanfrancois H DarakjySpainBernardo Dominic RENEWAL
Emily X BowleyAustraliaAnna Fali UNQUALIFIED
Smith L MacleadUnited KingdomIvan Magalhaes RENEWAL
Octavia A SchemmerArgentinaAnna Fali NEW
Cody D VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Isabel T KolmetzItalyXuxue Feng NEGOTIATION
Misaki W MacleadJapanStephen Shaw NEW
Murillo J DarakjyCanadaIoni Bowcher UNQUALIFIED
Nicolas L SergiAustraliaAsiya Javayant RENEWAL
Maisha Z StensethAustraliaIoni Bowcher NEGOTIATION
Silvio F SlusarskiSpainElwin Sharvill NEW
Aruna S WieserJapanIvan Magalhaes NEGOTIATION
Morrow X GillianIndiaElwin Sharvill RENEWAL
Ivar C VocelkaFranceOnyama Limba NEGOTIATION
Morrow E FigeroaItalyIvan Magalhaes QUALIFIED
Kadeem Q SergiFranceStephen Shaw PROPOSAL
Arvin N ChuiItalyAnna Fali RENEWAL
Emily O KolmetzAustraliaAmy Elsner NEW
Wickens G DoeIndiaAnna Fali RENEWAL
Faith E DoeRussiaElwin Sharvill NEGOTIATION
Murillo A CaudyGermanyIvan Magalhaes NEW
Deepesh Q PaprockiSpainBernardo Dominic PROPOSAL
Cody D MacleadIndiaStephen Shaw NEW
Deepesh H WaycottSpainIoni Bowcher NEGOTIATION
Salvatore O SlusarskiArgentinaIvan Magalhaes NEW
Ashley P RutaJapanIoni Bowcher NEW
Aika Y MaletJapanIoni Bowcher QUALIFIED
Greenwood U AlbaresGermanyOnyama Limba UNQUALIFIED
Adams N GauchoJapanStephen 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>