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
Jones M WhobreyCanadaXuxue Feng UNQUALIFIED
Leja F AlbaresBrazilIvan Magalhaes NEGOTIATION
Wickens G SchemmerGermanyAmy Elsner UNQUALIFIED
Alejandro D BriddickIndiaStephen Shaw UNQUALIFIED
Darci V BologniaUnited KingdomElwin Sharvill QUALIFIED
Chavez Z OstroskyUnited KingdomIvan Magalhaes NEW
Morrow U DarakjyJapanAmy Elsner RENEWAL
Sinclair G InouyeJapanAmy Elsner PROPOSAL
Adams M MacleadAustraliaXuxue Feng QUALIFIED
Mujtaba U NickaCanadaOnyama Limba UNQUALIFIED
Silvio C SlusarskiJapanIvan Magalhaes QUALIFIED
Cody A StockhamGermanyIoni Bowcher NEGOTIATION
Emily F MaletItalyOnyama Limba NEGOTIATION
Stacey W IturbideFranceIoni Bowcher UNQUALIFIED
Ricardo N MaletJapanAnna Fali RENEWAL
Leon L RulapaughIndiaBernardo Dominic RENEWAL
Kaitlin J RutaBrazilBernardo Dominic PROPOSAL
Nicolas P AlbaresAustraliaIvan Magalhaes NEW
Jeanfrancois I PerinGermanyXuxue Feng NEGOTIATION
Ivar X AmigonFranceStephen Shaw QUALIFIED
Maisha L InouyeUnited KingdomOnyama Limba UNQUALIFIED
Chavez N ChuiUnited KingdomOnyama Limba NEGOTIATION
Juan K KuskoArgentinaAmy Elsner NEGOTIATION
Jeanfrancois E MacleadUnited KingdomElwin Sharvill RENEWAL
Jefferson U NickaFranceIvan Magalhaes RENEWAL
Mujtaba P FerenczUnited KingdomStephen Shaw NEW
Jennifer R NestleAustraliaIoni Bowcher QUALIFIED
Maria V CaldareraAustraliaXuxue Feng QUALIFIED
Emily B VenereSpainOnyama Limba PROPOSAL
Johnson E RulapaughCanadaBernardo Dominic NEW
Jennifer I MaletArgentinaElwin Sharvill UNQUALIFIED
Mayumi J CaldareraRussiaXuxue Feng QUALIFIED
Stacey V PerinArgentinaAsiya Javayant UNQUALIFIED
Stacey F WhobreyIndiaIvan Magalhaes UNQUALIFIED
Emily S StensethSpainElwin Sharvill PROPOSAL
Morrow E DoeAustraliaIvan Magalhaes NEGOTIATION
Rodrigues C FlosiArgentinaStephen Shaw RENEWAL
Kaitlin C PaprockiArgentinaXuxue Feng QUALIFIED
Sinclair K DoeArgentinaIoni Bowcher RENEWAL
Misaki R InouyeUnited KingdomStephen Shaw UNQUALIFIED
Maria B BowleyAustraliaIoni Bowcher UNQUALIFIED
Deepesh N NickaCanadaIvan Magalhaes RENEWAL
Jeanfrancois R MarrierFranceIvan Magalhaes PROPOSAL
Juan M CampainRussiaIoni Bowcher QUALIFIED
Deepesh M GlickFranceAnna Fali NEGOTIATION
Cody O RimUnited KingdomStephen Shaw UNQUALIFIED
Darci Y NestleFranceElwin Sharvill NEW
Ivar L IturbideUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois N ShinkoRussiaAnna Fali NEW
Cody S InouyeGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Octavia K GauchoBrazilBernardo Dominic QUALIFIED
Stacey I OldroydSpainElwin Sharvill RENEWAL
Emily U SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Salvatore T WhobreySpainIvan Magalhaes NEW
Kadeem N FollerRussiaBernardo Dominic UNQUALIFIED
Rodrigues D MacleadAustraliaIoni Bowcher QUALIFIED
James U NestleFranceXuxue Feng NEW
Salvatore B MaletSpainOnyama Limba PROPOSAL
Mayumi S InouyeSpainOnyama Limba PROPOSAL
Sinclair D DilliardItalyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin Y ChuiRussia2024-05-30Commercial Press NEGOTIATION55Amy Elsner
1001Ivar V OldroydCanada2024-06-18Chanay, Jeffrey A Esq NEW28Ivan Magalhaes
1002Mujtaba H CaldareraRussia2024-06-18King, Christopher A Esq PROPOSAL51Onyama Limba
1003Leja O MarrierArgentina2024-05-25Printing Dimensions PROPOSAL73Ivan Magalhaes
1004Aruna X MaletJapan2024-06-04Printing Dimensions PROPOSAL49Stephen Shaw
1005Ivar Z RoysterIndia2024-06-19King, Christopher A Esq NEGOTIATION23Xuxue Feng
1006Adams C RoysterAustralia2024-06-19Dorl, James J Esq RENEWAL70Elwin Sharvill
1007Adams S ChuiGermany2024-05-30Rousseaux, Michael Esq QUALIFIED26Stephen Shaw
1008Leon F AlbaresFrance2024-06-05Buckley Miller Wright QUALIFIED20Ioni Bowcher
1009Faith T ShinkoSpain2024-06-03Dorl, James J Esq QUALIFIED28Elwin Sharvill
1010Silvio Y GlickIndia2024-06-15Feiner Bros NEGOTIATION51Ivan Magalhaes
1011Silvio Q RimIndia2024-06-21Printing Dimensions QUALIFIED30Bernardo Dominic
1012Adams M OldroydItaly2024-05-31Truhlar And Truhlar Attys UNQUALIFIED21Ivan Magalhaes
1013Costa T KolmetzAustralia2024-05-29Printing Dimensions NEW72Stephen Shaw
1014Alejandro A TollnerRussia2024-05-29Buckley Miller Wright NEGOTIATION22Bernardo Dominic
1015Aditya U MaletSpain2024-05-26Chemel, James L Cpa PROPOSAL66Ioni Bowcher
1016Octavia P NestleJapan2024-06-05Truhlar And Truhlar Attys PROPOSAL57Elwin Sharvill
1017Octavia F PoquetteIndia2024-05-23Buckley Miller Wright UNQUALIFIED48Amy Elsner
1018Leja M GauchoFrance2024-06-12Buckley Miller Wright QUALIFIED38Stephen Shaw
1019James K AlbaresJapan2024-05-29Chanay, Jeffrey A Esq RENEWAL89Ioni Bowcher
1020Jones C MorascaJapan2024-05-28Chapman, Ross E Esq RENEWAL56Ioni Bowcher
1021Faith V ShinkoGermany2024-05-24Chanay, Jeffrey A Esq UNQUALIFIED89Xuxue Feng
1022Johnson F SergiRussia2024-06-02Benton, John B Jr UNQUALIFIED14Amy Elsner
1023Tony D FollerAustralia2024-06-17Dorl, James J Esq PROPOSAL66Amy Elsner
1024Maisha W MorascaSpain2024-06-20Feltz Printing Service UNQUALIFIED27Stephen Shaw
1025Mayumi Z ButtGermany2024-05-30Chapman, Ross E Esq PROPOSAL86Onyama Limba
1026Cody X MacleadUnited Kingdom2024-06-16Feiner Bros NEGOTIATION1Bernardo Dominic
1027Morrow W PerinUnited Kingdom2024-06-10King, Christopher A Esq PROPOSAL16Amy Elsner
1028Antonio F MacleadBrazil2024-05-29Benton, John B Jr PROPOSAL45Ioni Bowcher
1029Emily T DoeCanada2024-06-05Chapman, Ross E Esq PROPOSAL44Bernardo Dominic
1030Ivar T PaprockiFrance2024-06-19Chemel, James L Cpa NEW83Amy Elsner
1031Wickens M VenereUnited Kingdom2024-06-04Chanay, Jeffrey A Esq RENEWAL15Bernardo Dominic
1032Faith X FerenczSpain2024-06-05Printing Dimensions NEGOTIATION91Elwin Sharvill
1033Chavez D GillianAustralia2024-05-29Chanay, Jeffrey A Esq UNQUALIFIED55Ioni Bowcher
1034Ricardo O SchemmerUnited Kingdom2024-05-25King, Christopher A Esq RENEWAL49Elwin Sharvill
1035Sinclair O GillianItaly2024-06-17King, Christopher A Esq QUALIFIED24Bernardo Dominic
1036Antonio E BriddickJapan2024-06-20Feltz Printing Service RENEWAL81Amy Elsner
1037Chavez Z WhobreyIndia2024-05-27Rousseaux, Michael Esq PROPOSAL76Stephen Shaw
1038Ricardo W PoquetteJapan2024-06-09Morlong Associates NEGOTIATION82Asiya Javayant
1039Jones Y FlosiJapan2024-06-07Rangoni Of Florence RENEWAL21Anna Fali
1040Maria Z CaudyUnited Kingdom2024-05-24Rousseaux, Michael Esq PROPOSAL47Elwin Sharvill
1041Mayumi J SaylorsIndia2024-05-30Rangoni Of Florence RENEWAL49Anna Fali
1042Julie Q MaletIndia2024-06-04Truhlar And Truhlar Attys PROPOSAL80Asiya Javayant
1043Claire R InouyeSpain2024-06-10Feiner Bros UNQUALIFIED2Amy Elsner
1044Alejandro X AmigonCanada2024-06-08Chemel, James L Cpa UNQUALIFIED99Xuxue Feng
1045Francesco X MaletAustralia2024-06-07Rousseaux, Michael Esq NEGOTIATION75Bernardo Dominic
1046Maria G CaldareraUnited Kingdom2024-05-26Printing Dimensions UNQUALIFIED40Bernardo Dominic
1047Cody Z WhobreyCanada2024-06-08King, Christopher A Esq PROPOSAL16Ioni Bowcher
1048Octavia R TollnerIndia2024-05-31Feiner Bros RENEWAL68Onyama Limba
1049Ivar G TollnerIndia2024-05-31King, Christopher A Esq QUALIFIED87Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Tony X OldroydCanadaAmy Elsner QUALIFIED
Ashley W NestleAustraliaBernardo Dominic UNQUALIFIED
Emily A SchemmerRussiaAmy Elsner UNQUALIFIED
James U OstroskyRussiaXuxue Feng NEW
Greenwood Q GillianIndiaIvan Magalhaes UNQUALIFIED
Emily N FigeroaIndiaStephen Shaw UNQUALIFIED
Maisha R NickaBrazilStephen Shaw NEGOTIATION
Greenwood F RutaUnited KingdomXuxue Feng UNQUALIFIED
Chavez J WhobreyItalyStephen Shaw QUALIFIED
Chavez V InouyeSpainXuxue Feng NEW
James X SaylorsItalyIvan Magalhaes UNQUALIFIED
Claire C MaletSpainXuxue Feng QUALIFIED
Octavia C FerenczGermanyElwin Sharvill UNQUALIFIED
Maisha X GarufiItalyAnna Fali RENEWAL
Antonio N RimSpainElwin Sharvill PROPOSAL
Kadeem N SchemmerGermanyXuxue Feng NEW
Isabel D MaletGermanyAsiya Javayant RENEWAL
Jones H DarakjyRussiaIoni Bowcher QUALIFIED
Ivar Q SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Jones K BriddickAustraliaElwin Sharvill PROPOSAL
Ashley B WhobreySpainBernardo Dominic NEW
Smith Z DilliardIndiaOnyama Limba RENEWAL
Costa S PaprockiArgentinaBernardo Dominic RENEWAL
Greenwood S FerenczUnited KingdomElwin Sharvill NEGOTIATION
Deepesh S MaletUnited KingdomIvan Magalhaes QUALIFIED
Maisha I RoysterJapanBernardo Dominic PROPOSAL
Mayumi U MacleadGermanyXuxue Feng UNQUALIFIED
Cody U GarufiUnited KingdomOnyama Limba QUALIFIED
Greenwood N StockhamIndiaAsiya Javayant NEW
Jennifer Z RutaSpainAmy Elsner NEGOTIATION
Greenwood T SlusarskiSpainElwin Sharvill QUALIFIED
Aika G RoysterArgentinaXuxue Feng PROPOSAL
Smith X OldroydItalyAnna Fali UNQUALIFIED
Jones G GlickJapanElwin Sharvill PROPOSAL
Jennifer L OstroskyCanadaAsiya Javayant NEW
Leja K KolmetzJapanOnyama Limba QUALIFIED
Cody P OstroskyItalyStephen Shaw QUALIFIED
Ricardo N GarufiGermanyBernardo Dominic RENEWAL
Adams Y AlbaresGermanyIoni Bowcher UNQUALIFIED
Claire A ChuiArgentinaAnna Fali RENEWAL
Maisha Y ShinkoAustraliaOnyama Limba QUALIFIED
Jeanfrancois J StensethUnited KingdomBernardo Dominic UNQUALIFIED
Silvio L SergiGermanyAmy Elsner PROPOSAL
Jones F OldroydRussiaElwin Sharvill NEW
Smith Z RutaJapanIvan Magalhaes QUALIFIED
Nicolas Z DilliardAustraliaStephen Shaw NEGOTIATION
Aika F WaycottRussiaStephen Shaw PROPOSAL
Ivar O GlickGermanyAmy Elsner QUALIFIED
Alejandro J KuskoJapanIoni Bowcher QUALIFIED
Kaitlin A DarakjyBrazilStephen Shaw QUALIFIED
Frozen Columns
Name
Tony M Chui
James B Marrier
Tony F Sergi
Kadeem A Stockham
Jeanfrancois F Ferencz
Faith G Campain
Cody L Oldroyd
Murillo B Dilliard
Murillo Z Albares
Greenwood P Campain
Misaki T Foller
Wickens W Perin
Ashley E Oldroyd
Faith D Royster
Claire H Royster
Aditya G Butt
Claire R Rim
Jeanfrancois I Gillian
Darci T Poquette
Emily Y Inouye
Cody Y Schemmer
Greenwood U Wieser
Leja G Malet
Adams B Tollner
Ivar F Stockham
Chavez F Gaucho
Ricardo Z Garufi
Costa F Venere
Jennifer Z Nestle
Julie G Bolognia
Adams P Wieser
Leon V Waycott
Emily H Amigon
Clifford X Slusarski
Claire T Butt
Murillo O Slusarski
Arvin X Venere
Mujtaba X Briddick
Isabel P Ostrosky
Mujtaba S Bowley
Misaki Y Shinko
Jones E Bolognia
Ashley B Stenseth
Misaki F Venere
Alejandro C Butt
Greenwood P Waycott
Smith I Albares
Clifford X Oldroyd
Costa W Kolmetz
Maisha I Venere
IdCountryDate
1000Russia2024-05-30
1001Australia2024-06-02
1002Italy2024-06-11
1003India2024-06-05
1004Canada2024-06-12
1005Japan2024-06-09
1006Canada2024-05-29
1007Brazil2024-06-08
1008Germany2024-05-27
1009India2024-06-20
1010Argentina2024-06-05
1011United Kingdom2024-05-27
1012United Kingdom2024-06-13
1013France2024-05-30
1014Australia2024-05-24
1015Germany2024-06-11
1016Japan2024-06-04
1017Argentina2024-06-02
1018Australia2024-05-28
1019Germany2024-06-20
1020United Kingdom2024-05-26
1021Italy2024-06-02
1022Russia2024-06-20
1023Argentina2024-06-20
1024Italy2024-06-11
1025France2024-06-09
1026Australia2024-06-17
1027France2024-05-29
1028Italy2024-06-15
1029Spain2024-06-19
1030Germany2024-05-26
1031Australia2024-06-15
1032Argentina2024-06-14
1033Germany2024-06-12
1034Japan2024-06-01
1035India2024-05-28
1036Brazil2024-05-27
1037France2024-05-24
1038India2024-06-07
1039Argentina2024-05-25
1040Italy2024-06-20
1041Canada2024-05-25
1042France2024-06-09
1043Japan2024-05-26
1044Argentina2024-06-20
1045Italy2024-06-02
1046Australia2024-06-16
1047France2024-05-25
1048Germany2024-06-14
1049Brazil2024-06-01

On-Demand Data

NameIdCountryDate
Silvio F Ferencz1000Argentina2024-06-14
Leon K Rim1001Germany2024-05-30
Faith A Venere1002Australia2024-06-04
Wickens B Vocelka1003Germany2024-06-20
Faith D Kusko1004France2024-06-18
Leja X Caldarera1005Spain2024-06-08
Sinclair C Tollner1006Brazil2024-05-25
Jennifer E Amigon1007Canada2024-06-17
Faith S Sergi1008Japan2024-06-05
Adams G Maclead1009United Kingdom2024-06-06
Jeanfrancois T Sergi1010Argentina2024-05-23
Izzy H Whobrey1011Argentina2024-06-09
Antonio Z Iturbide1012Australia2024-05-23
Greenwood Q Shinko1013India2024-05-27
Mayumi E Butt1014Germany2024-06-13
Nicolas Z Amigon1015Brazil2024-06-15
Morrow E Chui1016Argentina2024-06-17
Wickens E Figeroa1017France2024-05-25
Faith Q Whobrey1018Canada2024-06-21
Tony E Saylors1019Brazil2024-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P RoysterCanadaElwin Sharvill QUALIFIED
Cody R ChuiUnited KingdomStephen Shaw NEW
Kadeem Y PaprockiSpainStephen Shaw NEW
Aruna H MacleadUnited KingdomAmy Elsner NEW
Deepesh S SchemmerIndiaElwin Sharvill UNQUALIFIED
Izzy Q GauchoAustraliaElwin Sharvill UNQUALIFIED
Ricardo V FlosiSpainStephen Shaw NEGOTIATION
Greenwood S PoquetteAustraliaXuxue Feng UNQUALIFIED
Wickens M OldroydArgentinaIoni Bowcher NEW
Stacey Q MaletBrazilIoni Bowcher QUALIFIED
Faith O DilliardJapanAsiya Javayant QUALIFIED
Clifford R PerinArgentinaElwin Sharvill PROPOSAL
Adams X SchemmerGermanyAsiya Javayant PROPOSAL
Smith H OstroskyArgentinaIoni Bowcher UNQUALIFIED
Morrow T RutaBrazilAsiya Javayant PROPOSAL
Munro O NestleSpainIoni Bowcher NEW
Jeanfrancois K PerinGermanyBernardo Dominic QUALIFIED
Maria E ButtJapanElwin Sharvill NEGOTIATION
Jennifer D OstroskyBrazilAnna Fali RENEWAL
Nicolas I DilliardJapanXuxue Feng UNQUALIFIED
Mujtaba R DoeBrazilStephen Shaw NEW
Emily X WieserCanadaElwin Sharvill PROPOSAL
Francesco P FigeroaRussiaElwin Sharvill NEW
Johnson U DoeCanadaAnna Fali QUALIFIED
Leja Q SlusarskiBrazilBernardo Dominic PROPOSAL
Costa K StensethGermanyAmy Elsner NEW
Munro W DarakjyItalyBernardo Dominic RENEWAL
Emily B FollerArgentinaIoni Bowcher UNQUALIFIED
Mujtaba R VocelkaFranceIoni Bowcher RENEWAL
Stacey W SaylorsSpainAnna Fali NEW
Leon B RimJapanXuxue Feng RENEWAL
Sinclair J FerenczArgentinaOnyama Limba PROPOSAL
Ivar B OldroydIndiaAnna Fali QUALIFIED
Faith S GarufiAustraliaOnyama Limba UNQUALIFIED
Aika W OstroskyFranceAmy Elsner UNQUALIFIED
Claire R AlbaresFranceIoni Bowcher RENEWAL
Mujtaba E CaldareraGermanyAnna Fali QUALIFIED
Faith E RoysterIndiaXuxue Feng QUALIFIED
Aditya O RulapaughIndiaAmy Elsner UNQUALIFIED
Chavez V KuskoItalyIvan Magalhaes 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>