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
Mujtaba W CampainFranceBernardo Dominic PROPOSAL
Johnson B PoquetteBrazilIvan Magalhaes QUALIFIED
Ricardo G RulapaughBrazilAsiya Javayant PROPOSAL
Arvin W RutaCanadaIoni Bowcher PROPOSAL
Clifford S KolmetzFranceAmy Elsner UNQUALIFIED
Aika Z OstroskySpainOnyama Limba NEGOTIATION
Jennifer I SergiRussiaAsiya Javayant NEW
Julie P BriddickBrazilIoni Bowcher QUALIFIED
Wickens B StensethRussiaIoni Bowcher QUALIFIED
Kaitlin F StockhamFranceIoni Bowcher RENEWAL
Maisha U VocelkaIndiaAsiya Javayant UNQUALIFIED
Stacey R FlosiCanadaIoni Bowcher QUALIFIED
Tony W GarufiBrazilStephen Shaw RENEWAL
Misaki P WhobreyItalyOnyama Limba RENEWAL
Jennifer Z VenereCanadaIvan Magalhaes NEGOTIATION
Adams C MaletRussiaElwin Sharvill NEW
Juan N RulapaughAustraliaAnna Fali RENEWAL
Murillo J GauchoGermanyStephen Shaw RENEWAL
Maria F MacleadGermanyElwin Sharvill QUALIFIED
Francesco I AlbaresRussiaIvan Magalhaes RENEWAL
Aruna A ChuiBrazilIvan Magalhaes UNQUALIFIED
Costa J PoquetteRussiaOnyama Limba NEW
Jeanfrancois N SergiSpainStephen Shaw NEGOTIATION
Leja P FerenczIndiaAmy Elsner NEGOTIATION
Julie R SergiFranceAnna Fali PROPOSAL
Greenwood A MarrierAustraliaStephen Shaw UNQUALIFIED
Julie I NestleArgentinaXuxue Feng PROPOSAL
Maria Q GauchoSpainIvan Magalhaes PROPOSAL
Wickens U WieserItalyAnna Fali NEW
Izzy R RutaSpainStephen Shaw UNQUALIFIED
Francesco C ShinkoRussiaAnna Fali NEGOTIATION
Alejandro H PoquetteJapanElwin Sharvill QUALIFIED
Emily G VenereRussiaElwin Sharvill PROPOSAL
Jefferson L StensethJapanOnyama Limba QUALIFIED
Juan F StensethGermanyStephen Shaw RENEWAL
Mayumi H TollnerItalyXuxue Feng NEW
Ricardo E NestleAustraliaAsiya Javayant RENEWAL
Wickens N FollerJapanAsiya Javayant RENEWAL
Emily G BologniaIndiaIoni Bowcher NEGOTIATION
Smith Z ChuiGermanyAnna Fali NEW
Jeanfrancois I BowleyJapanAnna Fali RENEWAL
Mujtaba K KuskoBrazilAsiya Javayant NEW
Jefferson R MarrierJapanBernardo Dominic QUALIFIED
Ivar D TollnerArgentinaIoni Bowcher RENEWAL
Costa I SchemmerGermanyAsiya Javayant UNQUALIFIED
Arvin N GlickGermanyOnyama Limba PROPOSAL
Nicolas O CampainCanadaElwin Sharvill QUALIFIED
Isabel S AlbaresSpainElwin Sharvill RENEWAL
Misaki S StockhamSpainBernardo Dominic RENEWAL
Jefferson U BowleyGermanyOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Munro R SergiJapanAsiya Javayant RENEWAL
Antonio N WaycottFranceAnna Fali PROPOSAL
Arvin M CaldareraFranceXuxue Feng QUALIFIED
Stacey U KolmetzUnited KingdomStephen Shaw NEW
Morrow W RoysterBrazilBernardo Dominic PROPOSAL
Juan P DoeGermanyXuxue Feng NEGOTIATION
Ricardo R ButtUnited KingdomOnyama Limba UNQUALIFIED
Murillo F TollnerCanadaIoni Bowcher PROPOSAL
Cody Z SlusarskiFranceAsiya Javayant UNQUALIFIED
Cody U NickaJapanOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow P DarakjySpain2025-06-08King, Christopher A Esq NEGOTIATION38Ioni Bowcher
1001Octavia E DarakjyUnited Kingdom2025-05-29Commercial Press PROPOSAL79Stephen Shaw
1002Chavez E GauchoBrazil2025-05-24Feiner Bros PROPOSAL57Asiya Javayant
1003Emily D StensethFrance2025-05-31Chapman, Ross E Esq RENEWAL21Stephen Shaw
1004Rodrigues X DarakjyArgentina2025-06-14Chemel, James L Cpa PROPOSAL69Onyama Limba
1005Leja X RimCanada2025-06-07Feltz Printing Service NEW50Anna Fali
1006Wickens L NickaGermany2025-05-18Commercial Press NEGOTIATION96Bernardo Dominic
1007Leja M BriddickFrance2025-06-03Rangoni Of Florence PROPOSAL53Stephen Shaw
1008James W VenereItaly2025-06-14Morlong Associates UNQUALIFIED36Onyama Limba
1009Isabel K CampainRussia2025-05-26Benton, John B Jr RENEWAL82Elwin Sharvill
1010Cody P RimIndia2025-05-30Buckley Miller Wright NEGOTIATION11Amy Elsner
1011Jennifer T AlbaresJapan2025-05-31Chanay, Jeffrey A Esq RENEWAL6Amy Elsner
1012David P CampainItaly2025-05-24Rangoni Of Florence RENEWAL47Onyama Limba
1013Tony S NickaGermany2025-05-18Feiner Bros NEGOTIATION25Amy Elsner
1014Octavia P BriddickItaly2025-06-06Chemel, James L Cpa UNQUALIFIED70Onyama Limba
1015Alejandro L NickaCanada2025-06-07Rangoni Of Florence NEGOTIATION51Elwin Sharvill
1016Jennifer C BologniaAustralia2025-06-14Rangoni Of Florence PROPOSAL30Ioni Bowcher
1017Tony B RimCanada2025-05-18Truhlar And Truhlar Attys QUALIFIED19Ioni Bowcher
1018Jefferson N FigeroaAustralia2025-05-23Chemel, James L Cpa QUALIFIED52Asiya Javayant
1019Maisha F SaylorsItaly2025-05-28Chanay, Jeffrey A Esq NEW15Bernardo Dominic
1020Maisha V KuskoGermany2025-06-11Chapman, Ross E Esq NEW96Xuxue Feng
1021Maisha J GlickRussia2025-06-11Morlong Associates UNQUALIFIED23Ioni Bowcher
1022Jones H VocelkaJapan2025-06-04Buckley Miller Wright NEGOTIATION35Elwin Sharvill
1023Alejandro P MarrierRussia2025-05-18Chanay, Jeffrey A Esq NEW48Elwin Sharvill
1024Maria F ShinkoArgentina2025-06-14Chapman, Ross E Esq QUALIFIED75Ioni Bowcher
1025Francesco X NickaJapan2025-06-13Commercial Press QUALIFIED17Xuxue Feng
1026Adams D FollerBrazil2025-06-16Buckley Miller Wright NEW61Asiya Javayant
1027Alejandro U RulapaughCanada2025-05-29Morlong Associates QUALIFIED59Onyama Limba
1028Salvatore V GlickUnited Kingdom2025-06-05Feiner Bros NEW25Elwin Sharvill
1029Maria M SlusarskiJapan2025-05-25Chapman, Ross E Esq QUALIFIED44Ivan Magalhaes
1030Rodrigues S GarufiAustralia2025-05-23Chemel, James L Cpa RENEWAL54Elwin Sharvill
1031Chavez K CaudySpain2025-05-27Feltz Printing Service NEGOTIATION3Asiya Javayant
1032Sinclair S VocelkaSpain2025-06-03Chanay, Jeffrey A Esq NEW36Onyama Limba
1033David H ChuiSpain2025-05-26Benton, John B Jr UNQUALIFIED81Onyama Limba
1034Emily Z MaletAustralia2025-06-11Commercial Press QUALIFIED26Stephen Shaw
1035Wickens B RoysterCanada2025-05-19Rangoni Of Florence NEW32Asiya Javayant
1036Morrow T PerinGermany2025-05-30Rousseaux, Michael Esq UNQUALIFIED74Bernardo Dominic
1037Emily A PaprockiBrazil2025-05-24Feiner Bros NEGOTIATION83Asiya Javayant
1038James F OstroskyRussia2025-06-14Feiner Bros NEW62Onyama Limba
1039Isabel C CampainRussia2025-06-15Rangoni Of Florence NEGOTIATION41Amy Elsner
1040Wickens J TollnerSpain2025-06-06Feiner Bros RENEWAL26Ioni Bowcher
1041Nicolas I SaylorsUnited Kingdom2025-06-03Buckley Miller Wright PROPOSAL24Anna Fali
1042Nicolas B StockhamBrazil2025-06-15Dorl, James J Esq NEGOTIATION15Asiya Javayant
1043Stacey L PoquetteCanada2025-06-08Feltz Printing Service NEW85Anna Fali
1044Alejandro G RoysterItaly2025-05-26Rangoni Of Florence UNQUALIFIED60Ivan Magalhaes
1045Salvatore W TollnerBrazil2025-06-09Feltz Printing Service RENEWAL40Ioni Bowcher
1046Nicolas L GarufiIndia2025-05-19Commercial Press NEGOTIATION60Stephen Shaw
1047Wickens I IturbideUnited Kingdom2025-05-23Printing Dimensions PROPOSAL58Ivan Magalhaes
1048Maria D OstroskyAustralia2025-06-11Morlong Associates QUALIFIED1Elwin Sharvill
1049Munro E CampainGermany2025-05-29Buckley Miller Wright PROPOSAL6Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba V TollnerItalyBernardo Dominic RENEWAL
Ashley I BowleyBrazilAnna Fali NEW
Morrow N WaycottItalyOnyama Limba UNQUALIFIED
Mujtaba V WieserCanadaOnyama Limba NEGOTIATION
Leja U CaldareraJapanBernardo Dominic UNQUALIFIED
Munro N SaylorsArgentinaIoni Bowcher PROPOSAL
Silvio Q TollnerAustraliaAnna Fali RENEWAL
Johnson U DarakjyUnited KingdomIoni Bowcher QUALIFIED
Murillo C VocelkaFranceAsiya Javayant PROPOSAL
Jennifer B CaldareraJapanOnyama Limba QUALIFIED
Francesco L AmigonArgentinaAmy Elsner RENEWAL
Wickens X GarufiIndiaAsiya Javayant UNQUALIFIED
Ivar R StensethRussiaAnna Fali NEW
Cody I SchemmerGermanyBernardo Dominic PROPOSAL
Leja W MaletSpainOnyama Limba QUALIFIED
Chavez M CampainBrazilStephen Shaw PROPOSAL
Kaitlin A RoysterArgentinaAnna Fali NEGOTIATION
Munro V ShinkoFranceXuxue Feng RENEWAL
Juan U ShinkoArgentinaAsiya Javayant NEGOTIATION
Alejandro K PerinBrazilStephen Shaw QUALIFIED
Jennifer B ShinkoUnited KingdomAnna Fali PROPOSAL
Alejandro F MaletArgentinaIvan Magalhaes RENEWAL
Sinclair H OstroskyCanadaAnna Fali PROPOSAL
Aika K AlbaresItalyXuxue Feng QUALIFIED
Aika D ButtJapanBernardo Dominic UNQUALIFIED
Antonio L CaudyUnited KingdomElwin Sharvill PROPOSAL
Juan E SaylorsGermanyElwin Sharvill UNQUALIFIED
Maisha L DilliardCanadaIoni Bowcher RENEWAL
Claire Y WhobreyCanadaXuxue Feng UNQUALIFIED
Alejandro Y ShinkoJapanElwin Sharvill UNQUALIFIED
Kadeem D TollnerItalyOnyama Limba NEGOTIATION
Antonio T WieserSpainElwin Sharvill PROPOSAL
Clifford Q PerinAustraliaOnyama Limba RENEWAL
Octavia G OldroydBrazilStephen Shaw NEW
Sinclair R OstroskyArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois B RoysterRussiaAnna Fali NEGOTIATION
Aika V CampainFranceAmy Elsner QUALIFIED
Salvatore O RutaSpainBernardo Dominic RENEWAL
Greenwood Y CaldareraCanadaAmy Elsner UNQUALIFIED
Clifford X VocelkaJapanIoni Bowcher QUALIFIED
David Z BowleyRussiaAsiya Javayant PROPOSAL
Maria I FlosiSpainAnna Fali NEW
Wickens Q CaldareraGermanyElwin Sharvill RENEWAL
Johnson I SaylorsItalyAmy Elsner QUALIFIED
Rodrigues J VenereAustraliaOnyama Limba UNQUALIFIED
Leon M ShinkoAustraliaAnna Fali RENEWAL
Nicolas C PerinItalyAsiya Javayant QUALIFIED
Misaki S KolmetzSpainIvan Magalhaes NEW
Antonio Y CaudyGermanyIvan Magalhaes NEGOTIATION
Cody V DoeBrazilBernardo Dominic RENEWAL
Frozen Columns
Name
Claire V Chui
Salvatore P Malet
Maria Q Foller
Rodrigues S Bolognia
Emily I Doe
Tony M Shinko
Isabel C Bolognia
Salvatore Q Rulapaugh
Munro X Shinko
Jeanfrancois E Caldarera
Juan N Malet
Kadeem Q Shinko
Octavia Q Bowley
Francesco R Iturbide
Aditya I Flosi
Clifford B Kusko
Isabel F Caldarera
Jefferson F Slusarski
Maria G Campain
Faith I Bolognia
Alejandro C Doe
Costa A Malet
Clifford E Oldroyd
Salvatore A Flosi
Salvatore J Ostrosky
Mujtaba N Venere
Silvio L Saylors
Sinclair D Morasca
Costa P Saylors
Emily V Bolognia
Silvio P Poquette
Mujtaba A Chui
Ashley D Morasca
Rodrigues Q Bolognia
Aruna F Ferencz
Izzy I Briddick
Stacey H Caldarera
Darci H Flosi
Clifford U Ruta
Emily Z Glick
Jefferson J Iturbide
Silvio X Wieser
Julie P Bolognia
Jeanfrancois C Oldroyd
Kaitlin R Venere
Maisha B Morasca
Ricardo D Gillian
Julie L Marrier
Cody O Figeroa
Isabel D Schemmer
IdCountryDate
1000Spain2025-06-01
1001Russia2025-06-14
1002Australia2025-05-31
1003France2025-06-13
1004Japan2025-06-13
1005United Kingdom2025-06-10
1006Germany2025-06-06
1007India2025-06-14
1008Germany2025-06-06
1009Canada2025-06-14
1010Argentina2025-05-26
1011Spain2025-06-04
1012Canada2025-05-19
1013Japan2025-05-31
1014Brazil2025-05-22
1015Spain2025-06-03
1016Italy2025-06-16
1017Russia2025-06-03
1018Brazil2025-05-31
1019Australia2025-05-22
1020Brazil2025-06-06
1021Germany2025-05-27
1022Spain2025-06-15
1023Russia2025-06-04
1024United Kingdom2025-05-18
1025Japan2025-06-09
1026United Kingdom2025-06-16
1027India2025-06-08
1028Argentina2025-05-22
1029Germany2025-06-13
1030France2025-06-05
1031United Kingdom2025-05-22
1032Argentina2025-06-10
1033Japan2025-06-06
1034India2025-06-04
1035Brazil2025-06-04
1036Canada2025-06-06
1037Russia2025-05-21
1038Argentina2025-06-05
1039United Kingdom2025-06-04
1040Canada2025-05-25
1041Japan2025-05-24
1042Russia2025-05-24
1043India2025-06-06
1044Spain2025-06-11
1045France2025-05-23
1046Brazil2025-06-05
1047Brazil2025-06-10
1048Russia2025-06-02
1049Russia2025-05-27

On-Demand Data

NameIdCountryDate
Greenwood K Glick1000India2025-05-18
Maria T Shinko1001Brazil2025-05-21
Adams E Kolmetz1002Australia2025-06-02
James I Nicka1003Japan2025-06-08
David U Maclead1004France2025-06-05
Julie U Inouye1005Spain2025-05-31
Jefferson N Doe1006Australia2025-06-07
Ashley A Bowley1007Japan2025-05-24
Misaki I Malet1008Germany2025-05-24
Silvio P Saylors1009France2025-06-02
Morrow G Stockham1010Australia2025-06-16
Rodrigues F Slusarski1011United Kingdom2025-05-25
Stacey G Flosi1012Canada2025-05-31
Chavez F Albares1013Canada2025-06-06
Jeanfrancois B Kolmetz1014France2025-06-15
Costa A Vocelka1015Argentina2025-06-01
Munro A Rulapaugh1016France2025-05-23
Wickens X Venere1017United Kingdom2025-06-07
Misaki W Whobrey1018France2025-06-04
Tony H Ostrosky1019Australia2025-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith S CaudyGermanyBernardo Dominic QUALIFIED
Salvatore B SaylorsFranceBernardo Dominic UNQUALIFIED
Ashley E PerinBrazilStephen Shaw RENEWAL
Claire N AmigonUnited KingdomIvan Magalhaes NEW
Aditya F GlickIndiaIoni Bowcher NEW
Deepesh F ChuiFranceAnna Fali QUALIFIED
Johnson O WieserSpainAsiya Javayant PROPOSAL
Emily T InouyeGermanyAsiya Javayant QUALIFIED
Francesco V KolmetzGermanyStephen Shaw QUALIFIED
Jefferson J TollnerAustraliaAnna Fali UNQUALIFIED
Aditya Y VenereItalyXuxue Feng NEW
Leon M ChuiIndiaIvan Magalhaes NEW
Sinclair Y DarakjyCanadaAmy Elsner RENEWAL
Costa F PaprockiJapanElwin Sharvill UNQUALIFIED
Francesco N MacleadFranceBernardo Dominic PROPOSAL
Clifford C GarufiCanadaXuxue Feng NEW
Wickens H BowleyGermanyOnyama Limba NEGOTIATION
Murillo F RutaSpainAsiya Javayant NEW
Deepesh L PerinAustraliaBernardo Dominic NEGOTIATION
Julie B ShinkoAustraliaXuxue Feng UNQUALIFIED
Rodrigues A StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Silvio Z RimItalyOnyama Limba UNQUALIFIED
Izzy I ButtBrazilXuxue Feng NEGOTIATION
Johnson M WhobreyArgentinaStephen Shaw NEGOTIATION
Munro V VocelkaRussiaXuxue Feng NEW
Murillo L InouyeItalyBernardo Dominic QUALIFIED
Francesco H WhobreyCanadaBernardo Dominic UNQUALIFIED
Johnson N SaylorsCanadaAnna Fali UNQUALIFIED
Ivar U KuskoItalyElwin Sharvill UNQUALIFIED
Jefferson R SchemmerGermanyOnyama Limba PROPOSAL
Claire L FollerIndiaIoni Bowcher NEGOTIATION
Darci J RoysterUnited KingdomBernardo Dominic QUALIFIED
Emily L OstroskyIndiaBernardo Dominic NEW
Isabel D PaprockiBrazilBernardo Dominic QUALIFIED
Emily P StockhamJapanAsiya Javayant RENEWAL
Isabel F OldroydAustraliaElwin Sharvill QUALIFIED
Leon Z VenereBrazilOnyama Limba RENEWAL
Jones J SchemmerArgentinaAmy Elsner UNQUALIFIED
Adams S VenereUnited KingdomAsiya Javayant QUALIFIED
Morrow O CampainAustraliaElwin 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>