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
Wickens N MaletBrazilXuxue Feng NEW
Faith N RutaBrazilIvan Magalhaes RENEWAL
Isabel M BologniaItalyXuxue Feng RENEWAL
David M ShinkoGermanyElwin Sharvill NEGOTIATION
Ricardo Q DarakjyArgentinaXuxue Feng NEW
Jennifer C MacleadBrazilOnyama Limba UNQUALIFIED
Stacey V RimGermanyXuxue Feng QUALIFIED
Emily Y MarrierArgentinaAsiya Javayant UNQUALIFIED
Mujtaba B CampainSpainAmy Elsner NEW
Izzy W DoeBrazilAsiya Javayant RENEWAL
Deepesh M NickaCanadaOnyama Limba QUALIFIED
Smith A BowleySpainXuxue Feng PROPOSAL
Jennifer L AmigonBrazilIoni Bowcher PROPOSAL
Jefferson K ShinkoGermanyStephen Shaw RENEWAL
Jefferson J ChuiCanadaXuxue Feng UNQUALIFIED
Salvatore N FigeroaUnited KingdomXuxue Feng NEW
Jones G PoquetteItalyElwin Sharvill QUALIFIED
Aruna T FlosiIndiaStephen Shaw NEGOTIATION
Nicolas Z ButtFranceAmy Elsner RENEWAL
Mayumi M MacleadJapanBernardo Dominic NEW
Aika F OstroskyBrazilStephen Shaw UNQUALIFIED
Misaki T BriddickGermanyStephen Shaw NEGOTIATION
Juan V OldroydUnited KingdomAsiya Javayant PROPOSAL
Aditya K PerinJapanAmy Elsner NEGOTIATION
David R BriddickSpainAnna Fali PROPOSAL
Leja L KolmetzRussiaAmy Elsner PROPOSAL
Clifford D CampainSpainStephen Shaw NEGOTIATION
Johnson I GauchoCanadaAmy Elsner QUALIFIED
Alejandro L WieserItalyAmy Elsner NEW
Stacey U BowleyItalyElwin Sharvill NEW
Sinclair I FollerAustraliaElwin Sharvill PROPOSAL
Claire B TollnerUnited KingdomStephen Shaw PROPOSAL
Faith B WhobreyUnited KingdomAnna Fali NEW
Maria L SlusarskiUnited KingdomIoni Bowcher NEW
Mayumi Z ChuiFranceOnyama Limba NEGOTIATION
Juan D MaletSpainXuxue Feng NEW
Wickens G KuskoIndiaIoni Bowcher RENEWAL
Leon L SchemmerItalyBernardo Dominic UNQUALIFIED
Ricardo R MarrierRussiaElwin Sharvill QUALIFIED
James M MorascaIndiaAsiya Javayant PROPOSAL
Smith S DarakjyCanadaElwin Sharvill QUALIFIED
Mujtaba S RoysterGermanyAnna Fali NEGOTIATION
Ricardo A StockhamBrazilAsiya Javayant PROPOSAL
Clifford S WieserIndiaAsiya Javayant NEGOTIATION
Faith M DoeBrazilIvan Magalhaes PROPOSAL
Leon A FollerJapanAmy Elsner PROPOSAL
Johnson W GauchoUnited KingdomBernardo Dominic NEW
Juan R RoysterCanadaAsiya Javayant NEGOTIATION
Izzy Z MacleadArgentinaBernardo Dominic UNQUALIFIED
Misaki H MaletCanadaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams R KolmetzUnited KingdomAnna Fali RENEWAL
Emily W KolmetzAustraliaOnyama Limba QUALIFIED
Isabel I RoysterItalyIvan Magalhaes QUALIFIED
Jeanfrancois G WieserBrazilAsiya Javayant NEGOTIATION
Jennifer N PerinUnited KingdomIvan Magalhaes NEW
Darci L WaycottFranceIvan Magalhaes QUALIFIED
Aditya L AmigonFranceIvan Magalhaes NEW
Emily L DilliardJapanAsiya Javayant PROPOSAL
Alejandro G PaprockiBrazilXuxue Feng UNQUALIFIED
Emily H GillianCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson E IturbideGermany2025-05-26Feiner Bros UNQUALIFIED5Asiya Javayant
1001Cody O ButtFrance2025-06-04Dorl, James J Esq RENEWAL49Ioni Bowcher
1002Sinclair N CaldareraBrazil2025-05-25Truhlar And Truhlar Attys QUALIFIED50Ioni Bowcher
1003Tony C DilliardArgentina2025-05-19Rousseaux, Michael Esq RENEWAL24Bernardo Dominic
1004Stacey F ChuiUnited Kingdom2025-05-14Rangoni Of Florence NEGOTIATION32Asiya Javayant
1005Aditya B KolmetzUnited Kingdom2025-06-05Rousseaux, Michael Esq UNQUALIFIED7Ioni Bowcher
1006Jones N TollnerAustralia2025-05-21Chapman, Ross E Esq QUALIFIED63Xuxue Feng
1007Costa V TollnerFrance2025-05-27Morlong Associates NEGOTIATION3Onyama Limba
1008Jeanfrancois H GillianGermany2025-06-05Printing Dimensions NEW36Ivan Magalhaes
1009Kadeem V ShinkoRussia2025-06-01Chemel, James L Cpa QUALIFIED26Onyama Limba
1010Costa W MorascaGermany2025-05-25Dorl, James J Esq QUALIFIED39Xuxue Feng
1011Wickens Y MaletIndia2025-05-23Benton, John B Jr UNQUALIFIED38Onyama Limba
1012Deepesh D KuskoItaly2025-05-18Rangoni Of Florence RENEWAL66Asiya Javayant
1013Octavia T FerenczIndia2025-06-08Feiner Bros QUALIFIED19Ioni Bowcher
1014Claire Y SchemmerItaly2025-05-30Dorl, James J Esq NEW95Bernardo Dominic
1015Octavia N TollnerFrance2025-05-26Chemel, James L Cpa RENEWAL65Ioni Bowcher
1016Darci O MorascaBrazil2025-05-29Truhlar And Truhlar Attys PROPOSAL55Xuxue Feng
1017Mayumi C StockhamBrazil2025-05-27Morlong Associates PROPOSAL79Asiya Javayant
1018Aika C GauchoUnited Kingdom2025-05-21Commercial Press QUALIFIED93Onyama Limba
1019Alejandro W TollnerUnited Kingdom2025-05-26Morlong Associates PROPOSAL0Asiya Javayant
1020Leon Z CampainArgentina2025-06-09Truhlar And Truhlar Attys NEW59Xuxue Feng
1021Emily A GlickRussia2025-06-02Chanay, Jeffrey A Esq UNQUALIFIED18Anna Fali
1022Juan H MaletArgentina2025-06-08Buckley Miller Wright RENEWAL14Stephen Shaw
1023Juan L WieserRussia2025-06-07Buckley Miller Wright NEGOTIATION72Stephen Shaw
1024Silvio E GlickRussia2025-05-28Chemel, James L Cpa UNQUALIFIED25Asiya Javayant
1025Nicolas T GarufiBrazil2025-05-21Chapman, Ross E Esq QUALIFIED2Ioni Bowcher
1026Leon F CaudyGermany2025-05-22Chanay, Jeffrey A Esq NEGOTIATION31Onyama Limba
1027Jefferson S StensethFrance2025-05-26Buckley Miller Wright QUALIFIED23Onyama Limba
1028Cody B TollnerSpain2025-06-04Benton, John B Jr PROPOSAL86Elwin Sharvill
1029Wickens M SlusarskiItaly2025-06-02Rousseaux, Michael Esq QUALIFIED87Bernardo Dominic
1030Aruna Q ShinkoJapan2025-05-17Chanay, Jeffrey A Esq RENEWAL81Bernardo Dominic
1031Ivar N RoysterFrance2025-05-31Dorl, James J Esq PROPOSAL26Anna Fali
1032Jefferson F RutaAustralia2025-05-27Rousseaux, Michael Esq UNQUALIFIED58Bernardo Dominic
1033Claire O GauchoSpain2025-06-08Chanay, Jeffrey A Esq UNQUALIFIED81Ioni Bowcher
1034Nicolas B FlosiSpain2025-05-17Feltz Printing Service QUALIFIED18Ivan Magalhaes
1035Aika W SlusarskiCanada2025-05-22Morlong Associates QUALIFIED62Asiya Javayant
1036Maisha D PaprockiAustralia2025-05-22Feltz Printing Service PROPOSAL63Amy Elsner
1037Aruna R MaletFrance2025-05-31Truhlar And Truhlar Attys QUALIFIED42Anna Fali
1038Isabel H WaycottUnited Kingdom2025-05-29Feltz Printing Service PROPOSAL72Ioni Bowcher
1039Chavez P ShinkoIndia2025-05-27Feltz Printing Service RENEWAL15Xuxue Feng
1040Aika V AlbaresBrazil2025-06-08Feiner Bros UNQUALIFIED54Stephen Shaw
1041Juan R NickaSpain2025-05-17Chapman, Ross E Esq UNQUALIFIED55Bernardo Dominic
1042Greenwood Q OstroskyAustralia2025-05-21Rangoni Of Florence PROPOSAL67Asiya Javayant
1043Isabel F BologniaArgentina2025-06-04Chapman, Ross E Esq PROPOSAL95Asiya Javayant
1044Aruna W AmigonItaly2025-06-03Printing Dimensions RENEWAL87Stephen Shaw
1045Leja D VocelkaBrazil2025-05-28Buckley Miller Wright UNQUALIFIED60Anna Fali
1046Faith U VenereArgentina2025-05-23Chemel, James L Cpa NEGOTIATION21Ivan Magalhaes
1047Jennifer C ShinkoAustralia2025-05-17Dorl, James J Esq QUALIFIED1Amy Elsner
1048Juan S MorascaFrance2025-06-11Chapman, Ross E Esq NEGOTIATION87Stephen Shaw
1049David M SaylorsBrazil2025-06-09Truhlar And Truhlar Attys UNQUALIFIED33Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire C BowleyJapanElwin Sharvill RENEWAL
Chavez E GlickUnited KingdomAmy Elsner NEGOTIATION
Deepesh V RulapaughAustraliaIoni Bowcher UNQUALIFIED
Wickens Y InouyeFranceStephen Shaw PROPOSAL
Jones U RulapaughAustraliaOnyama Limba NEGOTIATION
Juan S ChuiUnited KingdomIoni Bowcher PROPOSAL
Claire I MaletSpainBernardo Dominic NEGOTIATION
Maisha T SaylorsSpainAsiya Javayant UNQUALIFIED
Misaki C GauchoFranceAsiya Javayant NEGOTIATION
Smith T FerenczGermanyBernardo Dominic UNQUALIFIED
Kaitlin X WaycottAustraliaStephen Shaw QUALIFIED
Leon F SchemmerJapanIvan Magalhaes QUALIFIED
Juan R SchemmerJapanAnna Fali UNQUALIFIED
Antonio A ButtRussiaAsiya Javayant PROPOSAL
Rodrigues B WaycottUnited KingdomIoni Bowcher PROPOSAL
Clifford G NickaGermanyIoni Bowcher RENEWAL
Chavez S MarrierUnited KingdomIoni Bowcher QUALIFIED
Rodrigues X DoeGermanyAmy Elsner NEGOTIATION
Izzy F PoquetteGermanyAmy Elsner NEW
Deepesh M FollerAustraliaAsiya Javayant NEW
Johnson V AmigonCanadaElwin Sharvill PROPOSAL
Izzy L GarufiBrazilIvan Magalhaes NEGOTIATION
Kadeem P PerinItalyAnna Fali NEW
Cody N RutaGermanyIoni Bowcher NEGOTIATION
Misaki V OstroskySpainIoni Bowcher NEGOTIATION
Leja W CaudyRussiaIvan Magalhaes PROPOSAL
Kadeem C AlbaresRussiaAmy Elsner QUALIFIED
Darci H NickaRussiaStephen Shaw NEW
Darci O CampainGermanyOnyama Limba QUALIFIED
Jeanfrancois C PerinSpainXuxue Feng UNQUALIFIED
Costa Z SaylorsArgentinaAnna Fali QUALIFIED
Jeanfrancois D AmigonAustraliaElwin Sharvill UNQUALIFIED
Kaitlin V WhobreyItalyIvan Magalhaes QUALIFIED
Faith S FigeroaFranceBernardo Dominic PROPOSAL
Salvatore R VenereBrazilAnna Fali UNQUALIFIED
Jeanfrancois X RoysterAustraliaAmy Elsner NEW
Jones M DarakjyItalyBernardo Dominic NEGOTIATION
Leja Y DilliardCanadaIoni Bowcher RENEWAL
Rodrigues Y MarrierRussiaStephen Shaw RENEWAL
Aditya A OstroskySpainIoni Bowcher PROPOSAL
David M RoysterUnited KingdomOnyama Limba NEGOTIATION
Maria D KuskoGermanyAmy Elsner PROPOSAL
Salvatore T MorascaSpainOnyama Limba QUALIFIED
Faith R SergiSpainXuxue Feng PROPOSAL
Morrow X SchemmerRussiaXuxue Feng NEGOTIATION
Salvatore Q NickaSpainAmy Elsner UNQUALIFIED
Kadeem Q StockhamAustraliaAnna Fali NEW
Costa Z SergiIndiaAnna Fali NEW
Octavia G DoeBrazilAnna Fali NEW
Ricardo S MorascaArgentinaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
David N Gaucho
Munro B Butt
Chavez G Caudy
Mujtaba H Caldarera
Johnson H Gaucho
Wickens B Figeroa
Francesco H Malet
Mujtaba I Stockham
Emily H Butt
Jefferson Y Caldarera
Aika R Amigon
Julie I Nestle
Leja D Iturbide
Kadeem T Albares
Mayumi D Butt
Ivar U Nestle
Arvin X Chui
Mujtaba N Vocelka
Kaitlin R Paprocki
Jeanfrancois E Kusko
Leja B Vocelka
Smith Q Ostrosky
Tony N Caudy
Ivar R Sergi
Nicolas V Caudy
Misaki W Doe
David N Gillian
Johnson T Saylors
Antonio T Foller
Deepesh P Caudy
Ashley Z Nicka
Claire M Ferencz
Octavia E Iturbide
Jefferson Q Stockham
Antonio I Marrier
Costa F Butt
Leon B Ferencz
Wickens U Vocelka
Ivar I Caudy
Jones Z Malet
Jennifer C Whobrey
Ashley O Dilliard
Leja R Bolognia
Aditya X Paprocki
Ivar V Figeroa
Jones N Glick
James U Wieser
Cody G Inouye
Julie E Rim
Tony J Maclead
IdCountryDate
1000Australia2025-05-18
1001Argentina2025-06-09
1002India2025-05-31
1003Argentina2025-06-11
1004France2025-06-01
1005Spain2025-05-28
1006Italy2025-05-23
1007Japan2025-05-21
1008India2025-06-01
1009Australia2025-06-07
1010Japan2025-06-03
1011Argentina2025-05-30
1012Germany2025-05-20
1013Canada2025-06-10
1014India2025-05-29
1015Brazil2025-05-28
1016Russia2025-06-04
1017Germany2025-05-14
1018United Kingdom2025-05-18
1019Canada2025-05-22
1020Germany2025-05-20
1021Japan2025-05-19
1022Australia2025-06-04
1023Argentina2025-05-29
1024India2025-05-17
1025Japan2025-05-22
1026Canada2025-05-25
1027Spain2025-05-16
1028Canada2025-05-23
1029Australia2025-06-10
1030France2025-05-24
1031Germany2025-06-09
1032Brazil2025-05-17
1033Spain2025-05-16
1034Argentina2025-05-17
1035Canada2025-06-11
1036Spain2025-06-03
1037Germany2025-06-09
1038France2025-05-16
1039Brazil2025-05-28
1040Japan2025-05-23
1041France2025-06-07
1042Russia2025-05-16
1043Italy2025-06-02
1044Germany2025-06-12
1045Italy2025-06-06
1046Italy2025-05-14
1047India2025-06-08
1048Italy2025-05-31
1049Spain2025-06-08

On-Demand Data

NameIdCountryDate
Sinclair W Albares1000Germany2025-05-19
Leon F Malet1001Canada2025-05-14
Isabel R Perin1002Spain2025-06-06
James A Flosi1003India2025-06-01
Morrow F Waycott1004Russia2025-05-16
Adams W Tollner1005Italy2025-06-09
Arvin W Inouye1006Brazil2025-06-10
Clifford U Caldarera1007Germany2025-05-19
Jones S Ferencz1008United Kingdom2025-06-10
Adams V Gaucho1009United Kingdom2025-05-26
Jones U Oldroyd1010United Kingdom2025-05-18
Deepesh G Bowley1011United Kingdom2025-06-05
Nicolas T Whobrey1012Germany2025-05-31
Jones O Stockham1013Spain2025-05-15
Faith U Albares1014Canada2025-06-07
Morrow S Malet1015Germany2025-06-12
Arvin C Rim1016India2025-05-20
Silvio H Ruta1017Russia2025-05-16
Stacey Y Whobrey1018France2025-06-11
Mujtaba E Figeroa1019United Kingdom2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba A MorascaArgentinaStephen Shaw NEGOTIATION
Kadeem I MaletGermanyStephen Shaw NEW
Jennifer O DoeBrazilOnyama Limba PROPOSAL
Juan J AlbaresUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois T RutaGermanyAnna Fali PROPOSAL
Munro F ShinkoUnited KingdomOnyama Limba NEGOTIATION
Jennifer W AmigonJapanAsiya Javayant RENEWAL
Rodrigues I CampainGermanyIvan Magalhaes QUALIFIED
Wickens X PerinBrazilIvan Magalhaes RENEWAL
Jones F RulapaughItalyAmy Elsner NEGOTIATION
Mujtaba Q InouyeGermanyAmy Elsner NEW
James H FlosiItalyBernardo Dominic NEW
Antonio E VocelkaJapanStephen Shaw RENEWAL
Kadeem W TollnerJapanAnna Fali NEGOTIATION
Kaitlin O DilliardBrazilIoni Bowcher UNQUALIFIED
Tony O FlosiBrazilBernardo Dominic NEGOTIATION
Murillo O ChuiFranceAmy Elsner RENEWAL
Aditya Y KuskoItalyIvan Magalhaes NEGOTIATION
Clifford I WaycottIndiaAsiya Javayant PROPOSAL
Francesco T MaletBrazilElwin Sharvill PROPOSAL
James Z AlbaresBrazilStephen Shaw UNQUALIFIED
Darci J VocelkaJapanIvan Magalhaes NEGOTIATION
Ivar I SlusarskiGermanyStephen Shaw RENEWAL
Julie M FerenczSpainOnyama Limba NEW
Faith N AmigonArgentinaIvan Magalhaes RENEWAL
Adams R GillianIndiaXuxue Feng NEGOTIATION
Julie Y PaprockiIndiaElwin Sharvill NEW
Kadeem I PerinGermanyElwin Sharvill RENEWAL
Isabel K FollerArgentinaAsiya Javayant QUALIFIED
Greenwood B KuskoArgentinaIvan Magalhaes NEGOTIATION
Julie U FerenczCanadaStephen Shaw UNQUALIFIED
Mujtaba C PoquetteFranceElwin Sharvill UNQUALIFIED
Antonio C StockhamItalyBernardo Dominic UNQUALIFIED
Juan L GillianCanadaStephen Shaw PROPOSAL
Wickens L IturbideRussiaAnna Fali RENEWAL
Ashley B VocelkaSpainXuxue Feng PROPOSAL
Izzy O MaletSpainAsiya Javayant NEW
Emily B StockhamGermanyElwin Sharvill NEW
Costa Q PaprockiCanadaElwin Sharvill NEGOTIATION
David S FollerBrazilElwin Sharvill 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>