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
Julie T DarakjyGermanyXuxue Feng QUALIFIED
Adams G SergiBrazilAnna Fali RENEWAL
Jefferson G BologniaAustraliaOnyama Limba NEGOTIATION
Ricardo P FollerBrazilXuxue Feng NEW
Maria R FerenczBrazilElwin Sharvill NEGOTIATION
Claire M ChuiSpainIvan Magalhaes PROPOSAL
Darci Q FerenczAustraliaIoni Bowcher RENEWAL
Maria V OldroydFranceElwin Sharvill PROPOSAL
Francesco O FerenczCanadaAmy Elsner RENEWAL
Jennifer R DilliardJapanElwin Sharvill PROPOSAL
Murillo Z RoysterUnited KingdomElwin Sharvill RENEWAL
Tony E GillianIndiaIoni Bowcher PROPOSAL
Mujtaba W GillianJapanAsiya Javayant RENEWAL
Johnson Y ChuiSpainIoni Bowcher NEW
Arvin J BologniaRussiaStephen Shaw RENEWAL
Jeanfrancois J RoysterRussiaBernardo Dominic NEW
Izzy A VenereGermanyBernardo Dominic NEGOTIATION
Leja R BologniaCanadaAsiya Javayant PROPOSAL
Salvatore A VocelkaIndiaAsiya Javayant NEGOTIATION
Clifford X DilliardUnited KingdomAsiya Javayant PROPOSAL
Greenwood A GauchoArgentinaAmy Elsner NEGOTIATION
Deepesh K GauchoBrazilIoni Bowcher QUALIFIED
Salvatore T VocelkaAustraliaIvan Magalhaes NEGOTIATION
Leon U IturbideItalyAnna Fali UNQUALIFIED
Maria Q CampainJapanAsiya Javayant RENEWAL
Ivar D DarakjyArgentinaIoni Bowcher NEGOTIATION
Smith J FollerArgentinaBernardo Dominic NEGOTIATION
Rodrigues W CampainBrazilXuxue Feng UNQUALIFIED
Julie J DarakjyIndiaAsiya Javayant RENEWAL
Darci A SaylorsAustraliaXuxue Feng UNQUALIFIED
Chavez I DilliardIndiaBernardo Dominic QUALIFIED
Kaitlin Y NestleCanadaAsiya Javayant PROPOSAL
Rodrigues Y WaycottUnited KingdomBernardo Dominic PROPOSAL
Clifford R CaudyFranceAsiya Javayant PROPOSAL
Wickens E KolmetzCanadaIvan Magalhaes NEGOTIATION
Emily G MorascaRussiaStephen Shaw NEW
Smith M SlusarskiRussiaAnna Fali RENEWAL
James P MacleadFranceStephen Shaw NEW
Antonio M MaletIndiaIoni Bowcher NEGOTIATION
Adams F MarrierSpainXuxue Feng NEGOTIATION
Jeanfrancois D MacleadRussiaAnna Fali NEW
Alejandro N GauchoBrazilBernardo Dominic RENEWAL
Nicolas G ButtIndiaOnyama Limba QUALIFIED
Julie S KolmetzSpainBernardo Dominic NEGOTIATION
Kaitlin S SergiItalyXuxue Feng RENEWAL
Stacey L DilliardAustraliaXuxue Feng QUALIFIED
Silvio Q MaletJapanStephen Shaw NEGOTIATION
Johnson W PoquetteGermanyOnyama Limba UNQUALIFIED
Claire X AmigonArgentinaAsiya Javayant RENEWAL
Cody C PerinItalyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha X NickaUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba D ChuiIndiaBernardo Dominic NEGOTIATION
Stacey Z KolmetzRussiaStephen Shaw PROPOSAL
Kaitlin U FigeroaIndiaAnna Fali QUALIFIED
Ivar W KolmetzItalyXuxue Feng RENEWAL
Munro F AmigonSpainIoni Bowcher NEW
Emily K VocelkaJapanAsiya Javayant NEGOTIATION
Adams I FollerSpainAmy Elsner UNQUALIFIED
Mujtaba E KolmetzItalyIvan Magalhaes NEW
Isabel G NickaCanadaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro F IturbideCanada2025-04-26Chemel, James L Cpa NEW1Onyama Limba
1001Morrow T StockhamUnited Kingdom2025-04-28Buckley Miller Wright PROPOSAL18Ioni Bowcher
1002Izzy C MacleadFrance2025-04-14Rangoni Of Florence RENEWAL92Onyama Limba
1003Juan R ButtSpain2025-04-06King, Christopher A Esq RENEWAL11Asiya Javayant
1004Sinclair J FollerGermany2025-04-18King, Christopher A Esq NEGOTIATION32Elwin Sharvill
1005Wickens H WhobreyBrazil2025-04-15Chanay, Jeffrey A Esq RENEWAL70Bernardo Dominic
1006Aruna I MarrierGermany2025-03-31Chanay, Jeffrey A Esq UNQUALIFIED50Ioni Bowcher
1007Faith E GarufiItaly2025-04-22Feiner Bros UNQUALIFIED80Asiya Javayant
1008Stacey J ShinkoCanada2025-04-16Feltz Printing Service QUALIFIED22Elwin Sharvill
1009Jones P GauchoIndia2025-04-08Printing Dimensions NEGOTIATION51Onyama Limba
1010Jones P RutaCanada2025-04-08Benton, John B Jr UNQUALIFIED17Xuxue Feng
1011Isabel P ChuiJapan2025-04-18Printing Dimensions QUALIFIED62Anna Fali
1012Maisha V MorascaArgentina2025-04-04King, Christopher A Esq PROPOSAL69Ivan Magalhaes
1013Mujtaba G SaylorsJapan2025-04-10Chanay, Jeffrey A Esq QUALIFIED0Anna Fali
1014Munro H StockhamSpain2025-04-15Feltz Printing Service UNQUALIFIED93Elwin Sharvill
1015Deepesh Y RulapaughArgentina2025-03-31Commercial Press UNQUALIFIED81Stephen Shaw
1016Leja A DilliardAustralia2025-04-10Morlong Associates NEGOTIATION71Onyama Limba
1017Mujtaba B StockhamUnited Kingdom2025-04-24Feiner Bros NEW88Stephen Shaw
1018Kadeem R WhobreySpain2025-04-18Buckley Miller Wright PROPOSAL73Asiya Javayant
1019David N DilliardIndia2025-04-17Buckley Miller Wright NEW94Amy Elsner
1020Maria T OldroydItaly2025-03-31Dorl, James J Esq NEW32Anna Fali
1021Mujtaba J FigeroaCanada2025-04-06Rousseaux, Michael Esq RENEWAL38Asiya Javayant
1022Silvio O IturbideIndia2025-04-12Truhlar And Truhlar Attys QUALIFIED94Asiya Javayant
1023Aditya E FlosiBrazil2025-04-06Commercial Press UNQUALIFIED28Xuxue Feng
1024Jefferson P FlosiJapan2025-04-03King, Christopher A Esq PROPOSAL86Xuxue Feng
1025Sinclair L FerenczCanada2025-04-05Buckley Miller Wright NEGOTIATION99Anna Fali
1026Munro D DilliardGermany2025-04-22Commercial Press NEGOTIATION18Ivan Magalhaes
1027Leon Q FigeroaFrance2025-04-08King, Christopher A Esq PROPOSAL7Xuxue Feng
1028Greenwood V GarufiRussia2025-04-26Chemel, James L Cpa RENEWAL0Xuxue Feng
1029Maisha Y RimSpain2025-04-03King, Christopher A Esq QUALIFIED8Onyama Limba
1030Murillo D ChuiSpain2025-04-21Dorl, James J Esq QUALIFIED41Ioni Bowcher
1031Smith B GauchoSpain2025-04-08Rangoni Of Florence UNQUALIFIED19Amy Elsner
1032Misaki R RoysterArgentina2025-04-23Chapman, Ross E Esq RENEWAL88Elwin Sharvill
1033Mayumi L KuskoFrance2025-04-26Morlong Associates RENEWAL41Ivan Magalhaes
1034Leon X GlickCanada2025-03-31Morlong Associates UNQUALIFIED27Amy Elsner
1035Aruna P ButtGermany2025-04-27Buckley Miller Wright QUALIFIED11Ioni Bowcher
1036Izzy K RutaJapan2025-04-14Morlong Associates UNQUALIFIED92Amy Elsner
1037Costa U FigeroaFrance2025-04-18Buckley Miller Wright NEGOTIATION39Asiya Javayant
1038Leja A NestleUnited Kingdom2025-04-12Rousseaux, Michael Esq RENEWAL66Xuxue Feng
1039Cody T IturbideArgentina2025-04-07Chanay, Jeffrey A Esq NEW79Bernardo Dominic
1040Cody Q StensethItaly2025-04-29Dorl, James J Esq NEW34Ioni Bowcher
1041Kaitlin T RutaSpain2025-04-14Dorl, James J Esq UNQUALIFIED15Ivan Magalhaes
1042Emily Y MarrierItaly2025-04-14Chemel, James L Cpa NEGOTIATION90Ivan Magalhaes
1043Salvatore J TollnerGermany2025-04-29Commercial Press RENEWAL50Bernardo Dominic
1044Cody F ButtBrazil2025-04-03Printing Dimensions NEW39Ioni Bowcher
1045Rodrigues R StockhamAustralia2025-04-28Morlong Associates NEW33Amy Elsner
1046Emily K BriddickFrance2025-04-07King, Christopher A Esq UNQUALIFIED57Bernardo Dominic
1047Stacey I BriddickUnited Kingdom2025-04-11Printing Dimensions QUALIFIED50Amy Elsner
1048Leon G InouyeFrance2025-04-20Chapman, Ross E Esq UNQUALIFIED60Amy Elsner
1049Jones V CampainCanada2025-04-14Commercial Press PROPOSAL67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith N NestleGermanyAmy Elsner NEGOTIATION
Francesco Y GlickSpainElwin Sharvill UNQUALIFIED
Cody W SergiJapanAnna Fali QUALIFIED
Salvatore C TollnerIndiaIvan Magalhaes PROPOSAL
Wickens X PerinFranceStephen Shaw NEGOTIATION
Maisha K RulapaughGermanyStephen Shaw NEGOTIATION
Kaitlin A IturbideArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois I RimFranceAnna Fali PROPOSAL
Maisha E MorascaAustraliaStephen Shaw UNQUALIFIED
Ivar Q VenereUnited KingdomElwin Sharvill RENEWAL
Rodrigues J MarrierSpainStephen Shaw NEGOTIATION
Rodrigues O RutaGermanyStephen Shaw NEW
David U ChuiJapanAsiya Javayant NEGOTIATION
Rodrigues M NickaCanadaElwin Sharvill PROPOSAL
Darci V FollerGermanyStephen Shaw QUALIFIED
Adams U NickaRussiaAsiya Javayant NEGOTIATION
Nicolas U MacleadJapanAmy Elsner NEW
Costa H CaudyFranceAsiya Javayant RENEWAL
Clifford W RulapaughCanadaAsiya Javayant NEGOTIATION
Juan G CaldareraIndiaXuxue Feng PROPOSAL
Nicolas B WieserArgentinaBernardo Dominic QUALIFIED
Aditya T AlbaresSpainAsiya Javayant RENEWAL
Kaitlin M CaldareraJapanAsiya Javayant NEGOTIATION
Salvatore R DarakjyUnited KingdomAnna Fali NEGOTIATION
Salvatore N CampainGermanyOnyama Limba UNQUALIFIED
Izzy L TollnerSpainBernardo Dominic RENEWAL
Darci T VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Tony N StensethItalyXuxue Feng PROPOSAL
Silvio R DilliardJapanXuxue Feng PROPOSAL
Maria R OldroydBrazilIoni Bowcher RENEWAL
David O PoquetteItalyAmy Elsner NEW
Munro K ChuiSpainIoni Bowcher PROPOSAL
Kaitlin Z FerenczCanadaXuxue Feng PROPOSAL
Chavez Z NestleBrazilAmy Elsner NEGOTIATION
Leon N RulapaughCanadaIoni Bowcher QUALIFIED
Francesco C SlusarskiGermanyIoni Bowcher PROPOSAL
Adams H PoquetteJapanStephen Shaw NEGOTIATION
Munro Y FigeroaArgentinaOnyama Limba NEGOTIATION
Sinclair T StensethUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer T MorascaItalyAsiya Javayant RENEWAL
Emily H PerinBrazilBernardo Dominic PROPOSAL
Jones A MacleadSpainIvan Magalhaes UNQUALIFIED
Sinclair V CaudySpainAnna Fali NEGOTIATION
Misaki N SlusarskiGermanyAnna Fali RENEWAL
Clifford N IturbideArgentinaIoni Bowcher PROPOSAL
Mujtaba B BriddickCanadaIoni Bowcher RENEWAL
Emily V CampainRussiaIvan Magalhaes RENEWAL
Adams C PoquetteBrazilXuxue Feng NEGOTIATION
Aika F GlickItalyStephen Shaw NEGOTIATION
Aruna X IturbideFranceIoni Bowcher PROPOSAL
Frozen Columns
Name
Kaitlin V Bowley
Stacey J Tollner
Clifford M Chui
Arvin T Figeroa
Ricardo X Gillian
Emily M Bolognia
Stacey N Morasca
Arvin K Ostrosky
Nicolas N Oldroyd
Greenwood I Albares
Mayumi H Darakjy
Chavez Y Albares
Jones W Doe
Leon B Nicka
Izzy Y Caudy
Kaitlin R Slusarski
Leon W Oldroyd
Leon J Gillian
Aruna I Oldroyd
Kaitlin Q Stenseth
Arvin X Nicka
Jefferson D Stockham
Kadeem I Sergi
Leon G Campain
Arvin N Inouye
Chavez V Nestle
Antonio Z Oldroyd
James S Briddick
Nicolas Z Glick
Rodrigues W Tollner
Murillo Q Stockham
Isabel X Tollner
Ivar Z Stenseth
Smith H Inouye
Tony D Iturbide
David F Saylors
David X Nestle
Aditya G Maclead
Faith M Gillian
Francesco J Bowley
Greenwood I Kolmetz
Chavez M Venere
Tony J Ostrosky
Tony L Gillian
Wickens N Shinko
Leja T Ruta
Maria N Caldarera
Aruna W Briddick
Jones I Shinko
Mayumi K Darakjy
IdCountryDate
1000United Kingdom2025-04-13
1001India2025-04-27
1002Australia2025-04-26
1003United Kingdom2025-04-27
1004United Kingdom2025-04-06
1005Japan2025-04-14
1006Brazil2025-04-28
1007France2025-04-21
1008India2025-04-18
1009Italy2025-04-19
1010India2025-04-21
1011United Kingdom2025-04-09
1012Spain2025-04-28
1013Brazil2025-04-27
1014Russia2025-04-03
1015Spain2025-03-31
1016Brazil2025-04-18
1017Spain2025-04-19
1018Canada2025-04-03
1019United Kingdom2025-04-22
1020Argentina2025-04-20
1021Argentina2025-04-26
1022Brazil2025-04-29
1023Italy2025-04-29
1024Spain2025-04-22
1025France2025-04-28
1026Argentina2025-04-24
1027Argentina2025-04-16
1028Canada2025-04-20
1029Italy2025-04-02
1030India2025-04-21
1031France2025-04-06
1032Argentina2025-04-12
1033Canada2025-04-10
1034France2025-04-19
1035Germany2025-04-20
1036Germany2025-04-01
1037Italy2025-04-16
1038United Kingdom2025-04-26
1039United Kingdom2025-04-22
1040Germany2025-04-12
1041Spain2025-04-29
1042Argentina2025-04-06
1043Argentina2025-04-16
1044United Kingdom2025-04-17
1045India2025-04-12
1046Russia2025-04-14
1047Spain2025-04-04
1048Italy2025-04-09
1049Italy2025-04-12

On-Demand Data

NameIdCountryDate
Smith F Stockham1000Australia2025-04-10
Leja D Rim1001Italy2025-04-15
Silvio E Inouye1002Spain2025-04-23
Maria N Albares1003Argentina2025-04-07
Jones K Figeroa1004Spain2025-04-16
Smith N Caudy1005Russia2025-04-03
Munro E Iturbide1006Canada2025-04-01
Munro N Bowley1007Australia2025-04-29
Costa M Kusko1008France2025-04-15
Julie J Morasca1009Italy2025-04-08
Misaki M Dilliard1010France2025-04-29
Jennifer B Poquette1011United Kingdom2025-04-01
Ricardo J Ruta1012Australia2025-04-12
Mujtaba K Gillian1013Japan2025-04-29
Rodrigues G Rim1014France2025-04-05
Rodrigues K Albares1015Spain2025-04-21
Isabel D Waycott1016France2025-04-03
David V Paprocki1017Argentina2025-04-01
Salvatore F Flosi1018India2025-04-23
Wickens W Nestle1019United Kingdom2025-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika P IturbideItalyStephen Shaw NEGOTIATION
Jeanfrancois D GillianSpainOnyama Limba NEGOTIATION
Mayumi G FigeroaArgentinaOnyama Limba RENEWAL
Julie G WhobreyArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois W PaprockiUnited KingdomBernardo Dominic RENEWAL
Darci N VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Clifford M KuskoSpainAnna Fali NEGOTIATION
Arvin G RoysterGermanyAnna Fali RENEWAL
Isabel V VenereUnited KingdomXuxue Feng QUALIFIED
Juan E SergiItalyOnyama Limba NEGOTIATION
Costa O WaycottGermanyIoni Bowcher PROPOSAL
Arvin P BologniaCanadaStephen Shaw PROPOSAL
Izzy Y PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson D CaldareraCanadaAmy Elsner UNQUALIFIED
Juan T RutaBrazilAmy Elsner PROPOSAL
Maria I AmigonSpainIoni Bowcher PROPOSAL
Murillo E CampainAustraliaIvan Magalhaes NEW
Nicolas T InouyeFranceStephen Shaw NEW
Faith N SchemmerArgentinaIoni Bowcher NEGOTIATION
Murillo L FerenczArgentinaElwin Sharvill RENEWAL
Chavez Q GlickAustraliaXuxue Feng RENEWAL
Aika J VocelkaJapanAmy Elsner NEGOTIATION
Murillo M ButtUnited KingdomIvan Magalhaes PROPOSAL
Cody C GlickJapanOnyama Limba PROPOSAL
Leja I OstroskyAustraliaStephen Shaw UNQUALIFIED
Ashley M WieserAustraliaStephen Shaw PROPOSAL
Aika D GlickBrazilIoni Bowcher NEW
Aruna V InouyeFranceIvan Magalhaes RENEWAL
Francesco G FigeroaCanadaAmy Elsner QUALIFIED
Deepesh V FlosiCanadaBernardo Dominic QUALIFIED
Jeanfrancois C GillianBrazilIvan Magalhaes QUALIFIED
Wickens E GauchoJapanStephen Shaw NEW
Mujtaba U WhobreyRussiaAnna Fali NEW
Tony C RutaAustraliaAsiya Javayant NEGOTIATION
Arvin H SchemmerFranceIoni Bowcher NEW
Chavez R FerenczItalyBernardo Dominic RENEWAL
Salvatore S GillianBrazilStephen Shaw UNQUALIFIED
Julie F AlbaresFranceIvan Magalhaes QUALIFIED
Faith W AlbaresCanadaIoni Bowcher QUALIFIED
Silvio J NickaRussiaOnyama Limba RENEWAL

<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>