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
Jeanfrancois B GillianCanadaOnyama Limba NEW
Maria K PerinUnited KingdomOnyama Limba QUALIFIED
Francesco K VenereRussiaOnyama Limba NEGOTIATION
Maisha J AmigonIndiaBernardo Dominic QUALIFIED
Adams E BriddickGermanyIvan Magalhaes RENEWAL
Salvatore D StensethIndiaXuxue Feng PROPOSAL
Tony K IturbideAustraliaStephen Shaw NEGOTIATION
Emily U CaudyItalyXuxue Feng UNQUALIFIED
Maria E WieserJapanBernardo Dominic QUALIFIED
Faith X NickaRussiaOnyama Limba UNQUALIFIED
Silvio C WhobreyCanadaBernardo Dominic UNQUALIFIED
Ricardo W IturbideSpainBernardo Dominic RENEWAL
Leon Z NestleArgentinaXuxue Feng UNQUALIFIED
Kadeem P SchemmerJapanBernardo Dominic NEGOTIATION
Alejandro N MorascaGermanyXuxue Feng UNQUALIFIED
Ivar D DarakjyAustraliaIvan Magalhaes PROPOSAL
Aika P MaletRussiaAnna Fali QUALIFIED
Smith P MacleadCanadaIoni Bowcher NEW
Smith L GlickFranceOnyama Limba PROPOSAL
Ivar W GauchoIndiaIvan Magalhaes PROPOSAL
Alejandro S NickaFranceAmy Elsner RENEWAL
Jefferson I MaletRussiaIvan Magalhaes QUALIFIED
Jennifer M IturbideIndiaBernardo Dominic NEW
Nicolas I IturbideGermanyAsiya Javayant PROPOSAL
James R StockhamFranceOnyama Limba RENEWAL
Julie O PerinRussiaIoni Bowcher NEGOTIATION
Octavia N BowleyBrazilAsiya Javayant QUALIFIED
Ivar N NestleAustraliaAnna Fali QUALIFIED
Julie Y MaletGermanyAnna Fali RENEWAL
Octavia O GillianUnited KingdomElwin Sharvill QUALIFIED
Salvatore W OldroydFranceStephen Shaw NEW
Ivar C NickaRussiaIvan Magalhaes UNQUALIFIED
Deepesh C WaycottSpainStephen Shaw UNQUALIFIED
Nicolas R WhobreySpainIvan Magalhaes RENEWAL
Deepesh T NestleAustraliaIoni Bowcher NEW
Darci O DoeSpainIvan Magalhaes NEGOTIATION
David K WieserAustraliaXuxue Feng QUALIFIED
Ricardo X WhobreyArgentinaAsiya Javayant UNQUALIFIED
Ricardo Y NickaJapanIvan Magalhaes UNQUALIFIED
Munro Q CampainArgentinaIoni Bowcher NEW
Johnson W StockhamArgentinaIvan Magalhaes NEGOTIATION
Kaitlin O KolmetzGermanyAmy Elsner NEGOTIATION
Chavez O RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro U MacleadAustraliaAmy Elsner NEGOTIATION
Faith L BriddickRussiaAsiya Javayant PROPOSAL
Antonio A SergiJapanElwin Sharvill RENEWAL
Rodrigues U BriddickItalyIoni Bowcher QUALIFIED
Jennifer S StockhamFranceBernardo Dominic RENEWAL
Darci A VenereGermanyIvan Magalhaes QUALIFIED
Leon Z BriddickFranceIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith R StockhamFranceIoni Bowcher NEGOTIATION
Aika F NickaCanadaStephen Shaw QUALIFIED
Faith K PoquetteItalyAsiya Javayant RENEWAL
Cody H DilliardItalyOnyama Limba NEW
Kadeem U MacleadSpainAnna Fali RENEWAL
Mayumi H TollnerAustraliaAnna Fali NEW
Mayumi R GauchoArgentinaAsiya Javayant RENEWAL
Johnson P GlickAustraliaAmy Elsner NEW
James U FigeroaSpainOnyama Limba PROPOSAL
Tony L ButtFranceElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood E MaletFrance2024-06-14Truhlar And Truhlar Attys UNQUALIFIED95Elwin Sharvill
1001Johnson I WieserIndia2024-06-08Rousseaux, Michael Esq NEGOTIATION67Bernardo Dominic
1002Stacey V IturbideAustralia2024-05-30Commercial Press NEGOTIATION94Stephen Shaw
1003Jeanfrancois H SergiFrance2024-05-29Printing Dimensions QUALIFIED93Bernardo Dominic
1004Adams O StensethGermany2024-06-20Buckley Miller Wright UNQUALIFIED65Xuxue Feng
1005David E BriddickJapan2024-05-30Printing Dimensions UNQUALIFIED87Xuxue Feng
1006Deepesh U CaudyUnited Kingdom2024-06-05Feiner Bros PROPOSAL51Bernardo Dominic
1007Clifford F FollerCanada2024-05-26Commercial Press QUALIFIED7Amy Elsner
1008Chavez B ChuiSpain2024-05-29Buckley Miller Wright PROPOSAL68Elwin Sharvill
1009Jones R DilliardFrance2024-06-24Chanay, Jeffrey A Esq QUALIFIED31Asiya Javayant
1010Aruna R ShinkoGermany2024-06-05Printing Dimensions NEGOTIATION71Amy Elsner
1011Faith C RutaGermany2024-06-23Benton, John B Jr NEGOTIATION89Onyama Limba
1012Isabel F WhobreySpain2024-06-03Chanay, Jeffrey A Esq UNQUALIFIED67Ivan Magalhaes
1013Emily F BologniaJapan2024-05-29Truhlar And Truhlar Attys NEW92Anna Fali
1014Mayumi P NickaSpain2024-06-10Truhlar And Truhlar Attys UNQUALIFIED99Onyama Limba
1015Morrow T AmigonRussia2024-05-31Buckley Miller Wright NEGOTIATION17Amy Elsner
1016Ricardo D GlickItaly2024-06-13Rousseaux, Michael Esq QUALIFIED70Amy Elsner
1017Juan Q VenereArgentina2024-06-01Commercial Press RENEWAL19Asiya Javayant
1018Arvin W PaprockiGermany2024-05-27King, Christopher A Esq PROPOSAL41Onyama Limba
1019Jones S RoysterArgentina2024-06-10Chapman, Ross E Esq NEGOTIATION69Stephen Shaw
1020Kadeem C InouyeIndia2024-06-11Chapman, Ross E Esq QUALIFIED85Ivan Magalhaes
1021Leon X RulapaughArgentina2024-05-30Buckley Miller Wright UNQUALIFIED93Ioni Bowcher
1022Sinclair C BowleyBrazil2024-06-02Feiner Bros NEW44Stephen Shaw
1023Sinclair W FerenczFrance2024-06-11Feltz Printing Service NEW3Amy Elsner
1024Maria G FigeroaCanada2024-06-16Dorl, James J Esq NEGOTIATION0Onyama Limba
1025Stacey S BologniaCanada2024-06-24Truhlar And Truhlar Attys QUALIFIED66Onyama Limba
1026Jennifer X FlosiSpain2024-06-11Chemel, James L Cpa PROPOSAL38Asiya Javayant
1027Francesco J FlosiAustralia2024-06-18Rousseaux, Michael Esq PROPOSAL48Bernardo Dominic
1028Greenwood Z WaycottJapan2024-06-16King, Christopher A Esq RENEWAL26Ivan Magalhaes
1029Faith G GlickGermany2024-06-03King, Christopher A Esq QUALIFIED53Ioni Bowcher
1030Ricardo Q OldroydJapan2024-06-15Truhlar And Truhlar Attys NEW87Elwin Sharvill
1031Maria S GillianFrance2024-06-15Rangoni Of Florence RENEWAL41Ivan Magalhaes
1032Cody J StensethSpain2024-06-09Commercial Press NEGOTIATION81Amy Elsner
1033Darci A WhobreyCanada2024-06-20Chemel, James L Cpa QUALIFIED52Amy Elsner
1034Jefferson R MaletIndia2024-06-17Chanay, Jeffrey A Esq RENEWAL2Stephen Shaw
1035Octavia I MarrierAustralia2024-05-27King, Christopher A Esq RENEWAL39Asiya Javayant
1036Juan B ShinkoItaly2024-06-19Truhlar And Truhlar Attys NEW57Onyama Limba
1037David F GlickArgentina2024-06-07Feltz Printing Service RENEWAL52Ivan Magalhaes
1038Costa V ChuiArgentina2024-06-11Rangoni Of Florence NEGOTIATION42Onyama Limba
1039Maisha R SlusarskiRussia2024-06-16Chanay, Jeffrey A Esq NEW11Amy Elsner
1040Wickens L FigeroaRussia2024-05-30Feiner Bros UNQUALIFIED48Bernardo Dominic
1041Antonio A SlusarskiArgentina2024-06-11Truhlar And Truhlar Attys RENEWAL20Stephen Shaw
1042Adams Y DarakjyAustralia2024-06-10Morlong Associates RENEWAL67Ioni Bowcher
1043Aika T WieserJapan2024-05-28Printing Dimensions NEGOTIATION36Amy Elsner
1044Juan S RutaJapan2024-06-11Truhlar And Truhlar Attys NEGOTIATION6Asiya Javayant
1045Aika C FlosiArgentina2024-06-08Morlong Associates NEW13Ioni Bowcher
1046Darci L PoquetteItaly2024-06-08Chapman, Ross E Esq UNQUALIFIED72Elwin Sharvill
1047Rodrigues K ChuiUnited Kingdom2024-06-01King, Christopher A Esq UNQUALIFIED16Elwin Sharvill
1048Kaitlin F FlosiUnited Kingdom2024-05-27King, Christopher A Esq NEGOTIATION4Onyama Limba
1049Aruna I GauchoGermany2024-06-21Chapman, Ross E Esq UNQUALIFIED36Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna U VocelkaRussiaOnyama Limba NEGOTIATION
Antonio A CaldareraJapanStephen Shaw RENEWAL
Kadeem N WieserRussiaAnna Fali NEW
Maisha G VocelkaJapanAmy Elsner NEGOTIATION
Chavez U DilliardIndiaXuxue Feng NEGOTIATION
Chavez K PoquetteItalyIoni Bowcher QUALIFIED
Emily A PerinIndiaOnyama Limba UNQUALIFIED
Claire X CaudyBrazilElwin Sharvill PROPOSAL
Deepesh E WieserUnited KingdomIoni Bowcher UNQUALIFIED
Cody I NickaUnited KingdomAsiya Javayant PROPOSAL
Aika X NestleRussiaXuxue Feng NEGOTIATION
Misaki T GillianRussiaAsiya Javayant PROPOSAL
David L WieserArgentinaOnyama Limba UNQUALIFIED
Murillo I IturbideBrazilIvan Magalhaes RENEWAL
Aika F ShinkoJapanXuxue Feng RENEWAL
Misaki O MaletItalyIoni Bowcher NEGOTIATION
Silvio Q TollnerAustraliaBernardo Dominic RENEWAL
Clifford C PerinIndiaAnna Fali QUALIFIED
Costa L AlbaresBrazilXuxue Feng QUALIFIED
Johnson G MorascaGermanyXuxue Feng NEGOTIATION
Wickens M CampainItalyXuxue Feng QUALIFIED
Faith A GauchoBrazilBernardo Dominic PROPOSAL
Deepesh M FigeroaUnited KingdomAmy Elsner NEW
Johnson U MarrierArgentinaIoni Bowcher NEGOTIATION
Claire V AlbaresRussiaAsiya Javayant NEGOTIATION
Aika C AlbaresSpainXuxue Feng RENEWAL
Maisha L PerinCanadaAmy Elsner PROPOSAL
Claire B ButtSpainIoni Bowcher UNQUALIFIED
Morrow I FlosiItalyStephen Shaw UNQUALIFIED
Jennifer J AlbaresGermanyIoni Bowcher NEGOTIATION
Tony R SchemmerSpainStephen Shaw UNQUALIFIED
Aruna J StensethJapanOnyama Limba NEGOTIATION
David W BologniaBrazilOnyama Limba NEGOTIATION
Rodrigues A CaudyItalyIoni Bowcher RENEWAL
Misaki E OstroskyCanadaAsiya Javayant NEGOTIATION
Kaitlin B SaylorsAustraliaIoni Bowcher UNQUALIFIED
Ashley U SlusarskiGermanyBernardo Dominic NEGOTIATION
Jeanfrancois N SaylorsItalyBernardo Dominic UNQUALIFIED
Faith O GlickRussiaIoni Bowcher NEW
Cody G GlickUnited KingdomStephen Shaw PROPOSAL
Aditya V ChuiGermanyAsiya Javayant NEGOTIATION
Arvin B DoeItalyIvan Magalhaes NEGOTIATION
Juan R BologniaSpainAmy Elsner NEGOTIATION
Aika E FlosiSpainAmy Elsner NEW
Izzy P MacleadAustraliaIvan Magalhaes NEW
Cody D FollerItalyXuxue Feng PROPOSAL
Alejandro K AlbaresGermanyStephen Shaw QUALIFIED
Aruna I PerinGermanyBernardo Dominic NEGOTIATION
Munro Z GillianIndiaOnyama Limba UNQUALIFIED
Tony L PoquetteBrazilAsiya Javayant QUALIFIED
Frozen Columns
Name
Izzy M Nicka
Alejandro J Whobrey
Kadeem X Maclead
Isabel P Nestle
Murillo Y Saylors
Aruna P Shinko
Mujtaba S Iturbide
Leon R Kolmetz
Izzy P Stockham
Jefferson P Vocelka
Tony G Royster
Smith J Schemmer
Nicolas D Malet
Emily D Butt
Ashley L Venere
Darci E Stockham
Sinclair S Bowley
Nicolas D Stockham
Cody U Rulapaugh
Ashley E Schemmer
Costa W Royster
Antonio Y Malet
Murillo K Malet
Jeanfrancois L Marrier
Antonio I Ostrosky
Morrow E Slusarski
Mayumi U Rulapaugh
Deepesh Q Garufi
Aruna D Royster
Stacey L Amigon
Kaitlin V Poquette
Costa P Iturbide
Julie J Slusarski
Emily S Saylors
Arvin L Gaucho
Claire H Stenseth
Ivar M Kusko
Izzy X Tollner
Aruna H Darakjy
Kadeem X Maclead
Mayumi X Doe
Isabel A Rulapaugh
Deepesh O Poquette
David K Stockham
James B Chui
Jones J Ruta
Murillo Z Nicka
Arvin O Rim
Jones G Figeroa
Emily C Ruta
IdCountryDate
1000Spain2024-06-16
1001United Kingdom2024-06-06
1002United Kingdom2024-06-18
1003Canada2024-06-07
1004Spain2024-06-14
1005Japan2024-05-29
1006Japan2024-06-04
1007Argentina2024-06-19
1008Italy2024-06-06
1009Canada2024-05-31
1010Russia2024-06-05
1011Spain2024-06-16
1012Argentina2024-06-23
1013Japan2024-06-15
1014Canada2024-06-06
1015Brazil2024-06-07
1016France2024-06-18
1017Australia2024-06-06
1018France2024-06-15
1019United Kingdom2024-06-21
1020Australia2024-06-03
1021India2024-06-18
1022Germany2024-05-29
1023Brazil2024-06-15
1024Germany2024-06-14
1025Canada2024-06-20
1026France2024-06-12
1027Japan2024-06-12
1028Brazil2024-06-02
1029Germany2024-06-22
1030France2024-06-22
1031Australia2024-06-21
1032Italy2024-06-13
1033United Kingdom2024-06-09
1034Spain2024-05-30
1035Japan2024-05-28
1036United Kingdom2024-06-22
1037Brazil2024-05-29
1038India2024-06-23
1039Canada2024-06-09
1040Brazil2024-06-11
1041Canada2024-05-30
1042India2024-06-04
1043Japan2024-06-08
1044Spain2024-06-01
1045Brazil2024-06-24
1046Spain2024-06-16
1047Germany2024-06-24
1048Japan2024-06-10
1049United Kingdom2024-06-24

On-Demand Data

NameIdCountryDate
Leja Z Glick1000Argentina2024-05-26
Faith Y Albares1001Spain2024-06-06
Johnson Y Nicka1002Australia2024-05-27
Kaitlin L Rim1003Italy2024-06-05
Arvin D Waycott1004Brazil2024-06-16
Greenwood A Caudy1005Italy2024-06-20
Mayumi I Amigon1006Germany2024-06-22
Johnson C Garufi1007Canada2024-06-23
David V Shinko1008Canada2024-06-21
Chavez P Waycott1009Australia2024-06-21
Wickens M Gillian1010United Kingdom2024-06-18
Isabel P Briddick1011Spain2024-06-22
Isabel Y Slusarski1012Australia2024-05-29
Aika U Chui1013Russia2024-06-14
Emily V Flosi1014Canada2024-06-20
Julie F Wieser1015United Kingdom2024-06-16
Silvio D Caudy1016India2024-06-05
Chavez P Garufi1017Brazil2024-06-19
Ricardo Q Iturbide1018Russia2024-06-15
Munro C Darakjy1019France2024-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith G MaletJapanAmy Elsner RENEWAL
Jennifer A CampainBrazilIoni Bowcher QUALIFIED
Jeanfrancois V InouyeJapanAmy Elsner RENEWAL
Leon X KuskoItalyAmy Elsner RENEWAL
Ivar J FlosiRussiaIoni Bowcher QUALIFIED
Deepesh W KuskoAustraliaBernardo Dominic PROPOSAL
Adams S FigeroaBrazilBernardo Dominic RENEWAL
Ivar G MorascaBrazilBernardo Dominic NEGOTIATION
Munro N SergiGermanyOnyama Limba NEW
Octavia G MarrierFranceElwin Sharvill RENEWAL
Leon G MorascaGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois H PoquetteAustraliaXuxue Feng QUALIFIED
Octavia W SaylorsFranceOnyama Limba QUALIFIED
Maisha L RimAustraliaIoni Bowcher PROPOSAL
Kaitlin K RoysterSpainIvan Magalhaes PROPOSAL
Arvin J CampainUnited KingdomXuxue Feng QUALIFIED
Silvio Z PaprockiUnited KingdomAmy Elsner QUALIFIED
Clifford I BriddickJapanElwin Sharvill RENEWAL
Aruna N RimAustraliaIvan Magalhaes PROPOSAL
Ivar L FigeroaFranceIoni Bowcher QUALIFIED
Kaitlin E MarrierItalyOnyama Limba NEW
Jones T CampainBrazilAnna Fali NEGOTIATION
Faith T ButtArgentinaAnna Fali PROPOSAL
Jones Q FigeroaGermanyBernardo Dominic QUALIFIED
Johnson L VocelkaUnited KingdomStephen Shaw PROPOSAL
Julie K CaldareraSpainIvan Magalhaes RENEWAL
Nicolas S SergiUnited KingdomAsiya Javayant NEGOTIATION
Ivar J CaldareraRussiaOnyama Limba NEGOTIATION
Johnson Q MaletIndiaElwin Sharvill RENEWAL
Octavia M VocelkaAustraliaAmy Elsner PROPOSAL
Nicolas I VocelkaFranceAmy Elsner UNQUALIFIED
Izzy I MarrierArgentinaAnna Fali NEW
Claire X RutaAustraliaOnyama Limba PROPOSAL
Silvio Z ChuiFranceStephen Shaw PROPOSAL
Julie I MaletSpainAnna Fali NEW
Maisha P VenereSpainStephen Shaw NEGOTIATION
Deepesh L AmigonAustraliaElwin Sharvill NEGOTIATION
Ricardo D DilliardSpainXuxue Feng RENEWAL
Arvin B FigeroaArgentinaAmy Elsner QUALIFIED
Murillo T StockhamCanadaOnyama Limba 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>