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
Aditya P StockhamIndiaOnyama Limba RENEWAL
Kaitlin M FerenczCanadaAnna Fali NEGOTIATION
Greenwood X SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Jones H SergiSpainXuxue Feng QUALIFIED
Leon F RulapaughIndiaStephen Shaw NEW
Sinclair O PaprockiAustraliaXuxue Feng PROPOSAL
Ricardo F DarakjyRussiaBernardo Dominic QUALIFIED
Jennifer X NestleFranceBernardo Dominic QUALIFIED
Ashley I CaudyItalyStephen Shaw NEGOTIATION
Emily D StockhamIndiaIvan Magalhaes RENEWAL
Chavez V DoeFranceBernardo Dominic NEGOTIATION
Francesco L MaletCanadaAsiya Javayant QUALIFIED
Izzy O MaletIndiaStephen Shaw NEW
Alejandro A CaldareraAustraliaAsiya Javayant PROPOSAL
Silvio N MarrierGermanyBernardo Dominic UNQUALIFIED
Emily I MaletArgentinaStephen Shaw NEGOTIATION
Salvatore B WaycottUnited KingdomStephen Shaw QUALIFIED
Wickens Q MarrierJapanAsiya Javayant UNQUALIFIED
James T WaycottArgentinaAnna Fali NEGOTIATION
Tony O RimAustraliaBernardo Dominic NEW
Silvio H RulapaughArgentinaIvan Magalhaes QUALIFIED
Francesco K AlbaresBrazilOnyama Limba NEGOTIATION
Kaitlin E ChuiUnited KingdomOnyama Limba UNQUALIFIED
Cody K IturbideFranceIvan Magalhaes NEGOTIATION
Wickens N MacleadItalyAmy Elsner NEGOTIATION
Claire X InouyeCanadaOnyama Limba RENEWAL
Aditya W FerenczRussiaAsiya Javayant PROPOSAL
Smith Q CampainUnited KingdomOnyama Limba NEW
Ashley X PoquetteIndiaStephen Shaw NEW
Smith B SaylorsItalyAnna Fali QUALIFIED
Cody H CaldareraCanadaStephen Shaw UNQUALIFIED
Nicolas Z KolmetzArgentinaAnna Fali NEGOTIATION
Munro Q NestleBrazilAnna Fali NEW
Emily A OstroskyArgentinaXuxue Feng PROPOSAL
Claire Z ChuiRussiaElwin Sharvill NEGOTIATION
Ashley S FerenczRussiaAmy Elsner PROPOSAL
Ashley W MaletRussiaAnna Fali NEGOTIATION
James Q SaylorsArgentinaStephen Shaw RENEWAL
Nicolas N CampainItalyOnyama Limba QUALIFIED
Darci I GarufiAustraliaXuxue Feng NEW
Jefferson O RimRussiaAnna Fali QUALIFIED
Julie B InouyeArgentinaBernardo Dominic PROPOSAL
Jefferson U WieserSpainIvan Magalhaes UNQUALIFIED
Jones G NickaIndiaBernardo Dominic RENEWAL
Claire H NestleItalyAnna Fali NEW
Kaitlin F StockhamJapanStephen Shaw NEW
Darci U GlickCanadaIvan Magalhaes QUALIFIED
Mayumi L RutaBrazilBernardo Dominic RENEWAL
Chavez T SergiCanadaOnyama Limba RENEWAL
Cody P FigeroaUnited KingdomIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson S KuskoSpainBernardo Dominic NEW
David G MaletArgentinaIvan Magalhaes UNQUALIFIED
Leja C RutaCanadaAmy Elsner NEW
Maisha O MaletJapanIvan Magalhaes NEGOTIATION
Alejandro I ChuiUnited KingdomStephen Shaw QUALIFIED
Julie M PaprockiSpainXuxue Feng PROPOSAL
Sinclair O ButtSpainXuxue Feng RENEWAL
Darci L BologniaArgentinaXuxue Feng PROPOSAL
Juan I CampainSpainIoni Bowcher RENEWAL
Ricardo D GarufiCanadaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony W IturbideGermany2025-06-12Chapman, Ross E Esq NEW13Asiya Javayant
1001Johnson X AlbaresCanada2025-06-09Chemel, James L Cpa RENEWAL53Amy Elsner
1002Stacey T FigeroaSpain2025-06-16Printing Dimensions NEGOTIATION91Stephen Shaw
1003Maria G StensethGermany2025-05-26Printing Dimensions PROPOSAL27Ioni Bowcher
1004Francesco I SlusarskiIndia2025-05-22King, Christopher A Esq NEW56Amy Elsner
1005Nicolas F FigeroaJapan2025-05-24Feiner Bros NEGOTIATION43Ivan Magalhaes
1006Morrow F FigeroaGermany2025-06-11Feiner Bros NEGOTIATION34Bernardo Dominic
1007Tony P StockhamArgentina2025-06-04Benton, John B Jr UNQUALIFIED42Ivan Magalhaes
1008Wickens T RoysterGermany2025-05-28Buckley Miller Wright NEW30Asiya Javayant
1009Darci R PaprockiArgentina2025-05-26King, Christopher A Esq NEW19Ioni Bowcher
1010Octavia B BologniaRussia2025-06-14Chanay, Jeffrey A Esq QUALIFIED73Asiya Javayant
1011Ashley E PoquetteUnited Kingdom2025-06-12Truhlar And Truhlar Attys UNQUALIFIED29Elwin Sharvill
1012Kadeem Z FigeroaUnited Kingdom2025-05-25Truhlar And Truhlar Attys NEGOTIATION15Xuxue Feng
1013Juan P MorascaAustralia2025-06-09Rousseaux, Michael Esq NEGOTIATION95Anna Fali
1014Maria R GarufiSpain2025-05-25Printing Dimensions QUALIFIED20Amy Elsner
1015Jeanfrancois D KuskoUnited Kingdom2025-05-18Rousseaux, Michael Esq PROPOSAL69Ivan Magalhaes
1016Jefferson D NestleBrazil2025-06-09Commercial Press QUALIFIED2Onyama Limba
1017Arvin H RoysterCanada2025-05-23King, Christopher A Esq RENEWAL62Elwin Sharvill
1018Smith T RimGermany2025-06-01Printing Dimensions NEW40Elwin Sharvill
1019Francesco C MaletItaly2025-06-02Benton, John B Jr UNQUALIFIED54Amy Elsner
1020Stacey D BologniaFrance2025-06-15Feltz Printing Service NEGOTIATION67Asiya Javayant
1021Darci X InouyeSpain2025-05-18Dorl, James J Esq RENEWAL31Stephen Shaw
1022Leon Q GarufiBrazil2025-05-18Rangoni Of Florence UNQUALIFIED34Stephen Shaw
1023Jeanfrancois U VocelkaUnited Kingdom2025-05-24Commercial Press QUALIFIED28Onyama Limba
1024Antonio P FlosiArgentina2025-06-14Feltz Printing Service NEGOTIATION81Stephen Shaw
1025Chavez B MacleadJapan2025-05-22Rousseaux, Michael Esq PROPOSAL57Ioni Bowcher
1026Rodrigues A GarufiSpain2025-05-19Truhlar And Truhlar Attys UNQUALIFIED96Onyama Limba
1027Antonio X SlusarskiGermany2025-05-21Rousseaux, Michael Esq RENEWAL12Asiya Javayant
1028Sinclair A BologniaRussia2025-06-16Commercial Press UNQUALIFIED80Asiya Javayant
1029Costa Z CaudyJapan2025-05-29Benton, John B Jr UNQUALIFIED66Stephen Shaw
1030Leon R SlusarskiItaly2025-06-13Chapman, Ross E Esq PROPOSAL55Amy Elsner
1031Morrow W FigeroaSpain2025-06-06Buckley Miller Wright QUALIFIED58Xuxue Feng
1032Chavez W OstroskyArgentina2025-05-27Buckley Miller Wright PROPOSAL72Bernardo Dominic
1033Aditya P StockhamJapan2025-06-02Benton, John B Jr NEGOTIATION88Anna Fali
1034Salvatore A KolmetzAustralia2025-06-11Buckley Miller Wright NEW19Ivan Magalhaes
1035Darci D NestleUnited Kingdom2025-05-18King, Christopher A Esq NEW78Stephen Shaw
1036Izzy C StensethGermany2025-06-03Chapman, Ross E Esq QUALIFIED25Ivan Magalhaes
1037Darci E MorascaBrazil2025-06-06Rousseaux, Michael Esq PROPOSAL48Onyama Limba
1038Adams G DilliardCanada2025-05-29Rangoni Of Florence RENEWAL99Bernardo Dominic
1039Maisha X GarufiJapan2025-06-01Feltz Printing Service RENEWAL63Amy Elsner
1040Jeanfrancois U SergiGermany2025-05-20Chapman, Ross E Esq NEW84Anna Fali
1041Nicolas E TollnerIndia2025-06-11King, Christopher A Esq NEGOTIATION1Stephen Shaw
1042Jones B SlusarskiIndia2025-06-16Benton, John B Jr QUALIFIED96Asiya Javayant
1043James F InouyeFrance2025-05-27Feiner Bros RENEWAL4Bernardo Dominic
1044Kaitlin T MacleadSpain2025-06-08Rangoni Of Florence NEW71Anna Fali
1045Salvatore F DilliardFrance2025-05-24Chapman, Ross E Esq NEGOTIATION6Bernardo Dominic
1046Julie G WhobreySpain2025-06-08Truhlar And Truhlar Attys NEGOTIATION87Amy Elsner
1047Murillo W SergiRussia2025-05-28Dorl, James J Esq RENEWAL51Asiya Javayant
1048Adams Y CaudyItaly2025-06-07Buckley Miller Wright PROPOSAL39Asiya Javayant
1049Leon D StockhamAustralia2025-06-12Rousseaux, Michael Esq QUALIFIED94Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro N AmigonUnited KingdomAsiya Javayant NEW
Leja M ShinkoArgentinaStephen Shaw NEW
Greenwood B BriddickGermanyAnna Fali UNQUALIFIED
Munro W PaprockiAustraliaStephen Shaw RENEWAL
Murillo Z SergiArgentinaStephen Shaw UNQUALIFIED
Clifford V BowleyRussiaAsiya Javayant RENEWAL
Maisha F FigeroaCanadaOnyama Limba PROPOSAL
Arvin I BologniaUnited KingdomXuxue Feng RENEWAL
Alejandro I VenereArgentinaAmy Elsner PROPOSAL
Jefferson W DoeGermanyAnna Fali QUALIFIED
Greenwood Q ShinkoAustraliaAnna Fali UNQUALIFIED
Sinclair C GauchoUnited KingdomAmy Elsner UNQUALIFIED
Claire E PerinIndiaXuxue Feng NEW
Jeanfrancois Y SlusarskiAustraliaOnyama Limba UNQUALIFIED
Salvatore T GillianJapanIvan Magalhaes QUALIFIED
Francesco H WhobreyCanadaIoni Bowcher UNQUALIFIED
Murillo F VocelkaItalyOnyama Limba NEGOTIATION
Leja C WieserGermanyAsiya Javayant QUALIFIED
Ricardo J RimCanadaAmy Elsner QUALIFIED
Wickens P MacleadCanadaIoni Bowcher RENEWAL
Aruna K CaudyUnited KingdomIvan Magalhaes NEW
Octavia G GlickUnited KingdomXuxue Feng RENEWAL
Stacey U RutaBrazilBernardo Dominic UNQUALIFIED
Misaki Z GauchoItalyAmy Elsner NEGOTIATION
Kadeem Q TollnerIndiaIoni Bowcher PROPOSAL
Julie D MarrierSpainOnyama Limba PROPOSAL
Kadeem P SergiSpainAmy Elsner NEGOTIATION
Morrow Y DarakjyRussiaAsiya Javayant UNQUALIFIED
Tony B GlickItalyAmy Elsner UNQUALIFIED
Faith K NickaGermanyIoni Bowcher NEGOTIATION
Murillo K WaycottItalyAmy Elsner QUALIFIED
Francesco P MacleadFranceElwin Sharvill UNQUALIFIED
Mayumi J SchemmerItalyElwin Sharvill RENEWAL
Jennifer J FerenczIndiaAmy Elsner RENEWAL
Maria P AmigonArgentinaOnyama Limba RENEWAL
Deepesh U ShinkoGermanyStephen Shaw NEGOTIATION
Sinclair J DarakjyAustraliaElwin Sharvill UNQUALIFIED
Ashley J MaletItalyElwin Sharvill PROPOSAL
Leon W AmigonCanadaIoni Bowcher QUALIFIED
Kadeem B MorascaGermanyXuxue Feng NEW
Morrow W NickaFranceIoni Bowcher NEGOTIATION
Johnson X IturbideCanadaStephen Shaw QUALIFIED
Ivar N DoeRussiaXuxue Feng RENEWAL
Leon J RutaIndiaXuxue Feng NEW
Darci D RimItalyAmy Elsner QUALIFIED
Faith T SaylorsAustraliaIoni Bowcher UNQUALIFIED
Johnson I MorascaSpainXuxue Feng PROPOSAL
Alejandro Q GauchoItalyAnna Fali NEGOTIATION
Juan K DarakjyRussiaAmy Elsner NEGOTIATION
Ivar M AlbaresFranceBernardo Dominic RENEWAL
Frozen Columns
Name
Greenwood Y Schemmer
James B Albares
Chavez J Ferencz
Murillo J Sergi
Chavez K Chui
Mujtaba C Campain
Maisha W Malet
Claire C Poquette
Munro T Briddick
Greenwood S Caudy
Nicolas F Ostrosky
Darci W Iturbide
Antonio Y Tollner
Leon L Nicka
David M Briddick
Deepesh A Ostrosky
Ivar K Stockham
Clifford F Waycott
Ivar O Stenseth
Cody A Amigon
Ashley T Waycott
Maria Y Briddick
Faith W Bolognia
Cody O Doe
Costa Y Nicka
Kadeem V Ruta
Leon G Malet
Leja N Rulapaugh
Octavia X Perin
Leja H Inouye
Antonio N Bolognia
James X Kusko
Ricardo D Malet
Octavia H Malet
Morrow N Chui
Aditya E Wieser
Aditya C Oldroyd
Greenwood L Sergi
Jennifer V Tollner
Wickens W Darakjy
Jefferson K Foller
Morrow O Caudy
Mujtaba S Sergi
Isabel N Sergi
Aruna A Waycott
James N Rulapaugh
Nicolas A Shinko
Mujtaba C Butt
Kadeem S Foller
Ashley B Saylors
IdCountryDate
1000Germany2025-05-24
1001United Kingdom2025-05-19
1002Australia2025-06-16
1003France2025-06-03
1004India2025-05-24
1005France2025-05-20
1006Canada2025-05-24
1007Australia2025-05-26
1008Spain2025-05-31
1009Brazil2025-06-08
1010Russia2025-06-10
1011Russia2025-05-29
1012Spain2025-05-25
1013Brazil2025-05-19
1014Germany2025-05-28
1015Canada2025-06-14
1016Spain2025-06-07
1017Canada2025-06-16
1018Australia2025-06-14
1019India2025-05-18
1020Germany2025-06-06
1021Germany2025-05-29
1022Canada2025-05-24
1023Australia2025-06-08
1024Brazil2025-05-30
1025Argentina2025-06-16
1026Argentina2025-05-24
1027India2025-06-03
1028Argentina2025-06-04
1029Russia2025-06-09
1030India2025-06-14
1031Brazil2025-05-18
1032India2025-06-07
1033Russia2025-05-31
1034Argentina2025-05-20
1035United Kingdom2025-05-21
1036Australia2025-05-29
1037Brazil2025-06-06
1038France2025-05-27
1039Japan2025-06-11
1040Spain2025-06-16
1041India2025-06-16
1042Italy2025-05-24
1043India2025-05-29
1044India2025-05-23
1045Spain2025-06-13
1046France2025-06-16
1047France2025-06-12
1048India2025-05-19
1049Canada2025-06-12

On-Demand Data

NameIdCountryDate
Francesco Y Rim1000France2025-06-14
Kaitlin K Stenseth1001Brazil2025-06-14
Aditya Z Flosi1002Argentina2025-06-11
Maria W Stockham1003Germany2025-06-07
Darci I Chui1004Argentina2025-05-18
Jennifer O Glick1005France2025-05-20
Jefferson J Garufi1006Spain2025-05-30
Munro X Flosi1007Canada2025-06-15
Izzy U Briddick1008Italy2025-06-10
Aika D Schemmer1009Germany2025-05-31
Juan G Marrier1010Australia2025-06-04
Julie M Venere1011France2025-05-31
Maria X Figeroa1012Australia2025-05-26
Darci B Garufi1013Brazil2025-06-14
Ivar B Stenseth1014Spain2025-06-05
Alejandro U Waycott1015Canada2025-06-05
Cody I Caudy1016Italy2025-05-30
David B Malet1017France2025-06-04
Arvin D Waycott1018Argentina2025-06-15
Faith Z Butt1019France2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo W PoquetteSpainElwin Sharvill PROPOSAL
Aika I FollerAustraliaIoni Bowcher NEW
Sinclair R WieserBrazilOnyama Limba NEGOTIATION
Salvatore M InouyeGermanyAsiya Javayant NEGOTIATION
Misaki S RutaRussiaAmy Elsner NEGOTIATION
Wickens Y OstroskyIndiaStephen Shaw QUALIFIED
Salvatore C StensethIndiaIoni Bowcher PROPOSAL
Alejandro G GarufiRussiaXuxue Feng PROPOSAL
Francesco K RulapaughSpainOnyama Limba PROPOSAL
Faith D BriddickRussiaAmy Elsner UNQUALIFIED
Greenwood D WaycottBrazilXuxue Feng PROPOSAL
Jefferson E NestleBrazilAsiya Javayant UNQUALIFIED
Nicolas V RimAustraliaOnyama Limba NEGOTIATION
Stacey O VocelkaGermanyStephen Shaw NEGOTIATION
Wickens J VocelkaRussiaAnna Fali PROPOSAL
Faith W VenereItalyOnyama Limba UNQUALIFIED
Chavez S BologniaJapanAmy Elsner NEGOTIATION
Francesco R WaycottUnited KingdomStephen Shaw NEGOTIATION
Johnson B OldroydJapanIvan Magalhaes RENEWAL
Aruna B KolmetzFranceElwin Sharvill PROPOSAL
Ivar W BologniaItalyStephen Shaw RENEWAL
Kaitlin G GauchoArgentinaIvan Magalhaes UNQUALIFIED
Wickens U DoeCanadaStephen Shaw QUALIFIED
Leon B GlickAustraliaXuxue Feng QUALIFIED
Kadeem G MarrierFranceIoni Bowcher NEGOTIATION
Ricardo E RutaCanadaIvan Magalhaes NEGOTIATION
Clifford V OldroydCanadaOnyama Limba RENEWAL
Maria F RimUnited KingdomStephen Shaw RENEWAL
Silvio N PerinFranceElwin Sharvill NEGOTIATION
Munro T DoeRussiaStephen Shaw NEW
Francesco B RimGermanyStephen Shaw QUALIFIED
Isabel A DoeUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues Q StockhamGermanyAmy Elsner QUALIFIED
James C PaprockiAustraliaOnyama Limba PROPOSAL
Francesco P DilliardSpainAmy Elsner NEW
Aruna E VocelkaJapanStephen Shaw NEW
Deepesh Z MaletJapanAnna Fali NEGOTIATION
Maria W KuskoRussiaAmy Elsner QUALIFIED
Jennifer D KolmetzCanadaAnna Fali RENEWAL
Kadeem Q KolmetzArgentinaBernardo Dominic 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>