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 P GillianUnited KingdomElwin Sharvill NEGOTIATION
Salvatore S RoysterSpainIvan Magalhaes QUALIFIED
Antonio M GarufiBrazilBernardo Dominic QUALIFIED
Stacey E FollerIndiaIvan Magalhaes UNQUALIFIED
Jefferson R CaudySpainBernardo Dominic NEW
Leon V RimArgentinaAnna Fali NEW
Julie T CaudySpainIvan Magalhaes UNQUALIFIED
Leja D RimCanadaAnna Fali UNQUALIFIED
Ashley A CaudyRussiaStephen Shaw NEGOTIATION
Jeanfrancois X AlbaresIndiaAsiya Javayant PROPOSAL
Costa A SchemmerGermanyElwin Sharvill QUALIFIED
Aditya J RulapaughCanadaAnna Fali NEW
Emily U MacleadAustraliaStephen Shaw NEW
Izzy K PaprockiRussiaStephen Shaw NEGOTIATION
Mayumi C CaudyArgentinaAsiya Javayant QUALIFIED
Ricardo E DarakjySpainXuxue Feng PROPOSAL
Johnson T RulapaughUnited KingdomElwin Sharvill NEGOTIATION
Tony P BologniaUnited KingdomAnna Fali NEW
Johnson P WhobreyGermanyXuxue Feng UNQUALIFIED
Claire S GauchoGermanyAnna Fali RENEWAL
Aditya X MorascaItalyAnna Fali PROPOSAL
Johnson W BowleyArgentinaXuxue Feng RENEWAL
Morrow A PerinUnited KingdomIvan Magalhaes PROPOSAL
Maisha O PoquetteJapanBernardo Dominic RENEWAL
Silvio E MaletGermanyIoni Bowcher NEGOTIATION
Morrow S ButtGermanyAnna Fali QUALIFIED
Francesco V VenereJapanAnna Fali QUALIFIED
Isabel N MarrierIndiaIvan Magalhaes PROPOSAL
Johnson Q IturbideIndiaAmy Elsner UNQUALIFIED
Silvio V OldroydRussiaIvan Magalhaes NEW
Johnson H IturbideBrazilBernardo Dominic RENEWAL
Mayumi M FollerIndiaAsiya Javayant QUALIFIED
Mayumi J ButtBrazilIoni Bowcher UNQUALIFIED
Morrow B KuskoRussiaXuxue Feng NEGOTIATION
Chavez N OldroydCanadaStephen Shaw UNQUALIFIED
Leja S NestleBrazilIvan Magalhaes NEGOTIATION
Antonio L OldroydCanadaIoni Bowcher QUALIFIED
Aruna P VocelkaIndiaIoni Bowcher NEW
Greenwood U RoysterIndiaBernardo Dominic NEGOTIATION
Jennifer U IturbideUnited KingdomOnyama Limba NEGOTIATION
Aika U SchemmerIndiaAnna Fali QUALIFIED
Mayumi Q IturbideJapanElwin Sharvill PROPOSAL
Clifford U FigeroaBrazilAmy Elsner RENEWAL
Tony D StensethIndiaIvan Magalhaes RENEWAL
Wickens G RimBrazilIvan Magalhaes UNQUALIFIED
James O TollnerItalyBernardo Dominic UNQUALIFIED
Claire G PerinJapanOnyama Limba NEW
Costa E SchemmerRussiaAnna Fali PROPOSAL
Morrow H ButtUnited KingdomElwin Sharvill PROPOSAL
Salvatore Q IturbideRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi N GlickBrazilOnyama Limba QUALIFIED
Antonio M CaldareraCanadaAmy Elsner PROPOSAL
Ashley K CaudyIndiaElwin Sharvill UNQUALIFIED
Emily I PoquetteArgentinaStephen Shaw RENEWAL
Jones T DarakjyBrazilStephen Shaw QUALIFIED
Stacey S FollerFranceXuxue Feng QUALIFIED
Aika O WaycottAustraliaXuxue Feng QUALIFIED
Stacey V WaycottGermanyElwin Sharvill RENEWAL
Tony R WieserUnited KingdomOnyama Limba NEGOTIATION
Adams W OstroskyAustraliaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin E OldroydJapan2025-04-04Buckley Miller Wright NEGOTIATION32Ioni Bowcher
1001Mujtaba F VenereArgentina2025-04-12Buckley Miller Wright UNQUALIFIED2Bernardo Dominic
1002Johnson M RulapaughJapan2025-04-30Printing Dimensions RENEWAL47Xuxue Feng
1003Octavia D VocelkaUnited Kingdom2025-04-08Feiner Bros RENEWAL15Elwin Sharvill
1004James U CaldareraIndia2025-04-25Chanay, Jeffrey A Esq NEW15Ivan Magalhaes
1005Jeanfrancois L OldroydJapan2025-04-19King, Christopher A Esq PROPOSAL63Stephen Shaw
1006Aruna D RoysterJapan2025-04-16Benton, John B Jr NEGOTIATION2Amy Elsner
1007Sinclair H StockhamFrance2025-04-16Commercial Press QUALIFIED28Bernardo Dominic
1008Darci N CaldareraBrazil2025-04-28Commercial Press QUALIFIED43Asiya Javayant
1009Cody S SergiArgentina2025-04-07Morlong Associates UNQUALIFIED45Amy Elsner
1010Alejandro J OstroskyAustralia2025-04-15Printing Dimensions NEW3Amy Elsner
1011Sinclair L BriddickBrazil2025-04-01Chanay, Jeffrey A Esq UNQUALIFIED66Ioni Bowcher
1012Izzy B BologniaBrazil2025-04-03Commercial Press NEW53Xuxue Feng
1013Juan V AmigonItaly2025-04-26Chanay, Jeffrey A Esq RENEWAL73Elwin Sharvill
1014David F MacleadSpain2025-04-17Buckley Miller Wright NEW82Elwin Sharvill
1015Ricardo K OstroskyBrazil2025-04-11King, Christopher A Esq QUALIFIED2Elwin Sharvill
1016Izzy T GauchoAustralia2025-04-21Rousseaux, Michael Esq NEW78Elwin Sharvill
1017Jones H FigeroaArgentina2025-04-16Commercial Press NEW40Elwin Sharvill
1018Francesco E MaletGermany2025-04-18Feiner Bros NEGOTIATION48Xuxue Feng
1019Kaitlin O StockhamArgentina2025-04-24Feiner Bros PROPOSAL73Stephen Shaw
1020Smith G FigeroaGermany2025-04-21Commercial Press NEW50Amy Elsner
1021Jefferson X SergiGermany2025-04-13Rousseaux, Michael Esq NEGOTIATION59Asiya Javayant
1022Munro K MaletIndia2025-04-16Feiner Bros UNQUALIFIED7Ivan Magalhaes
1023Ricardo M CaudyAustralia2025-04-01Rousseaux, Michael Esq UNQUALIFIED27Amy Elsner
1024Alejandro S GarufiIndia2025-04-20Dorl, James J Esq UNQUALIFIED73Stephen Shaw
1025James W StockhamJapan2025-04-10Printing Dimensions QUALIFIED45Ivan Magalhaes
1026Misaki F PerinGermany2025-04-12Feiner Bros UNQUALIFIED12Asiya Javayant
1027Nicolas B SlusarskiItaly2025-04-02Commercial Press NEGOTIATION47Asiya Javayant
1028Darci D PaprockiIndia2025-04-27Morlong Associates NEGOTIATION34Ioni Bowcher
1029Mujtaba V BologniaCanada2025-04-06Feiner Bros NEGOTIATION52Elwin Sharvill
1030Ivar A MorascaIndia2025-04-12Truhlar And Truhlar Attys RENEWAL43Ivan Magalhaes
1031Jeanfrancois I NestleGermany2025-04-20Dorl, James J Esq PROPOSAL21Bernardo Dominic
1032Chavez I AlbaresAustralia2025-04-29Truhlar And Truhlar Attys UNQUALIFIED28Onyama Limba
1033Aditya H RoysterUnited Kingdom2025-04-04Truhlar And Truhlar Attys QUALIFIED5Anna Fali
1034Silvio X PaprockiJapan2025-04-16Benton, John B Jr UNQUALIFIED18Asiya Javayant
1035Jennifer C RoysterAustralia2025-04-10Chapman, Ross E Esq NEW44Ioni Bowcher
1036Antonio Y RutaAustralia2025-04-13Dorl, James J Esq NEW78Anna Fali
1037Jones B FollerFrance2025-04-02Truhlar And Truhlar Attys QUALIFIED39Asiya Javayant
1038Clifford L KolmetzSpain2025-04-10Feltz Printing Service QUALIFIED17Elwin Sharvill
1039Ashley K MacleadSpain2025-04-29Chapman, Ross E Esq NEGOTIATION4Elwin Sharvill
1040James E PerinItaly2025-04-13Buckley Miller Wright UNQUALIFIED10Xuxue Feng
1041Claire S DarakjyFrance2025-04-04Benton, John B Jr NEGOTIATION85Anna Fali
1042Jefferson J CaldareraRussia2025-04-06Dorl, James J Esq PROPOSAL20Bernardo Dominic
1043Greenwood I CaudyCanada2025-04-21Rousseaux, Michael Esq QUALIFIED82Xuxue Feng
1044Jones P ShinkoSpain2025-04-04Chanay, Jeffrey A Esq QUALIFIED30Onyama Limba
1045Mujtaba A BowleyGermany2025-04-16Rousseaux, Michael Esq NEGOTIATION84Xuxue Feng
1046Johnson W GarufiJapan2025-04-23Commercial Press RENEWAL43Amy Elsner
1047Murillo V GlickIndia2025-04-01Rousseaux, Michael Esq NEW95Anna Fali
1048Arvin F NestleAustralia2025-04-04Feltz Printing Service UNQUALIFIED48Asiya Javayant
1049Misaki K RoysterRussia2025-04-16Benton, John B Jr NEGOTIATION51Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Greenwood A AlbaresSpainElwin Sharvill PROPOSAL
Greenwood S CaldareraCanadaXuxue Feng UNQUALIFIED
Jefferson A SaylorsUnited KingdomElwin Sharvill NEW
Clifford S SergiArgentinaAmy Elsner NEW
Izzy P ShinkoBrazilAmy Elsner NEGOTIATION
Nicolas W BowleyBrazilElwin Sharvill NEGOTIATION
Jones G ButtAustraliaStephen Shaw NEW
James B NestleUnited KingdomIoni Bowcher RENEWAL
Emily Z StensethGermanyAnna Fali UNQUALIFIED
Maisha O GauchoBrazilAnna Fali QUALIFIED
Wickens U CaudyBrazilAnna Fali RENEWAL
Nicolas K CampainUnited KingdomAsiya Javayant RENEWAL
Alejandro U FigeroaJapanOnyama Limba PROPOSAL
Mayumi L VocelkaFranceIoni Bowcher NEW
Izzy T PoquetteFranceXuxue Feng PROPOSAL
Cody R VenereSpainOnyama Limba RENEWAL
Jeanfrancois Y BowleyJapanStephen Shaw NEW
Morrow K BologniaGermanyElwin Sharvill NEGOTIATION
Ivar K VenereUnited KingdomAsiya Javayant NEW
Cody T GlickGermanyIoni Bowcher NEGOTIATION
Morrow Y GillianItalyAsiya Javayant RENEWAL
David P StensethBrazilBernardo Dominic QUALIFIED
Izzy H IturbideCanadaBernardo Dominic NEGOTIATION
Kadeem D MorascaIndiaIoni Bowcher UNQUALIFIED
Octavia V SlusarskiBrazilAsiya Javayant UNQUALIFIED
Darci X MaletCanadaOnyama Limba NEGOTIATION
Kadeem M RoysterIndiaIoni Bowcher PROPOSAL
Morrow X SaylorsItalyIoni Bowcher NEGOTIATION
Aika E SlusarskiRussiaIvan Magalhaes RENEWAL
Sinclair M KuskoArgentinaAnna Fali NEW
Rodrigues L SlusarskiCanadaAnna Fali PROPOSAL
Claire P RulapaughSpainStephen Shaw PROPOSAL
Morrow C WhobreyCanadaAmy Elsner PROPOSAL
Tony U OldroydJapanAnna Fali NEW
Clifford A OstroskyCanadaBernardo Dominic NEW
Munro R MaletArgentinaAnna Fali NEGOTIATION
Costa Z CampainFranceElwin Sharvill NEW
Aika I RimAustraliaOnyama Limba QUALIFIED
Jones Z MaletUnited KingdomXuxue Feng NEGOTIATION
Murillo A PoquetteSpainOnyama Limba UNQUALIFIED
Juan C WaycottAustraliaElwin Sharvill NEGOTIATION
James L MarrierFranceBernardo Dominic NEW
Faith K GlickBrazilIoni Bowcher RENEWAL
Leja S RimIndiaXuxue Feng PROPOSAL
Alejandro M MaletArgentinaAmy Elsner NEW
Faith X GauchoFranceElwin Sharvill RENEWAL
Nicolas I DarakjyIndiaOnyama Limba PROPOSAL
Nicolas P SaylorsBrazilElwin Sharvill NEW
Johnson T CaldareraJapanAnna Fali RENEWAL
Francesco A AmigonUnited KingdomXuxue Feng RENEWAL
Frozen Columns
Name
Isabel T Vocelka
Octavia F Albares
Aruna X Vocelka
Greenwood F Campain
Cody T Inouye
Kaitlin E Briddick
Aika N Sergi
Juan O Malet
Greenwood V Rulapaugh
Juan W Amigon
Alejandro I Perin
Ivar Z Stockham
Kadeem T Paprocki
Jennifer Q Malet
Juan T Iturbide
David O Rulapaugh
Stacey N Venere
Octavia E Ferencz
Aika F Shinko
David L Gaucho
Chavez H Butt
Darci Y Foller
Murillo Y Garufi
Leja X Schemmer
Aruna U Perin
Ivar J Marrier
Kadeem Y Dilliard
Ashley R Iturbide
Deepesh I Schemmer
Murillo G Butt
Alejandro N Shinko
Clifford D Marrier
Johnson T Ostrosky
Clifford R Rim
Arvin C Chui
Sinclair S Maclead
Ricardo F Waycott
Ivar B Kolmetz
Emily O Malet
Smith I Malet
Antonio L Kusko
Sinclair D Sergi
James B Foller
Jeanfrancois A Nestle
Antonio K Dilliard
Darci Y Figeroa
Misaki M Inouye
Munro M Kolmetz
Ashley U Amigon
Maisha L Oldroyd
IdCountryDate
1000Japan2025-04-28
1001Germany2025-04-12
1002Spain2025-04-22
1003Canada2025-04-06
1004Germany2025-04-18
1005United Kingdom2025-04-18
1006Spain2025-04-14
1007Italy2025-04-08
1008Italy2025-04-02
1009Germany2025-04-23
1010Japan2025-04-01
1011India2025-04-24
1012Russia2025-04-30
1013France2025-04-15
1014France2025-04-17
1015India2025-04-19
1016Spain2025-04-30
1017Brazil2025-04-23
1018Russia2025-04-17
1019Australia2025-04-07
1020Italy2025-04-13
1021Italy2025-04-14
1022Argentina2025-04-06
1023Brazil2025-04-18
1024Argentina2025-04-26
1025United Kingdom2025-04-13
1026Brazil2025-04-09
1027United Kingdom2025-04-19
1028Italy2025-04-09
1029France2025-04-08
1030Argentina2025-04-16
1031Germany2025-04-10
1032France2025-04-13
1033India2025-04-13
1034Japan2025-04-08
1035Brazil2025-04-14
1036Australia2025-04-13
1037Japan2025-04-24
1038Canada2025-04-08
1039Australia2025-04-17
1040United Kingdom2025-04-29
1041Germany2025-04-25
1042India2025-04-13
1043United Kingdom2025-04-11
1044Japan2025-04-27
1045Italy2025-04-16
1046France2025-04-08
1047Italy2025-04-10
1048France2025-04-22
1049Spain2025-04-29

On-Demand Data

NameIdCountryDate
Salvatore S Stenseth1000United Kingdom2025-04-17
Aika S Venere1001Japan2025-04-17
Ashley Q Tollner1002Japan2025-04-19
Maisha Z Glick1003Germany2025-04-11
Emily Y Tollner1004Canada2025-04-04
David T Butt1005Argentina2025-04-14
Misaki N Paprocki1006India2025-04-19
Mayumi S Darakjy1007Russia2025-04-05
Emily P Bowley1008Germany2025-04-30
Maisha K Waycott1009Australia2025-04-01
Nicolas G Chui1010United Kingdom2025-04-28
Tony L Gillian1011Australia2025-04-27
Ricardo D Iturbide1012India2025-04-07
Johnson M Whobrey1013United Kingdom2025-04-29
Alejandro M Perin1014Spain2025-04-12
Mujtaba B Caudy1015Canada2025-04-30
Cody M Chui1016Japan2025-04-25
Silvio N Ferencz1017Spain2025-04-11
Julie B Kolmetz1018Australia2025-04-14
Johnson V Amigon1019Argentina2025-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley L ShinkoSpainElwin Sharvill NEGOTIATION
Aika H CaudyBrazilIoni Bowcher QUALIFIED
Octavia L SlusarskiItalyIvan Magalhaes QUALIFIED
Ivar L GarufiItalyIoni Bowcher NEGOTIATION
Izzy Q VocelkaBrazilAmy Elsner NEGOTIATION
Ashley N WieserBrazilIvan Magalhaes NEGOTIATION
James G WaycottBrazilOnyama Limba UNQUALIFIED
Jennifer Q VenereAustraliaAmy Elsner NEW
Antonio A RutaAustraliaXuxue Feng NEW
Jennifer F CampainFranceStephen Shaw NEGOTIATION
Maria X ShinkoArgentinaIoni Bowcher NEW
Julie X CaudyItalyStephen Shaw NEGOTIATION
Darci U FerenczArgentinaIvan Magalhaes RENEWAL
Julie J MaletCanadaAnna Fali QUALIFIED
Francesco G AlbaresRussiaAsiya Javayant NEW
Jennifer I MarrierArgentinaAsiya Javayant UNQUALIFIED
Greenwood J RulapaughBrazilOnyama Limba UNQUALIFIED
Izzy Y AmigonSpainIoni Bowcher NEGOTIATION
Octavia N ChuiAustraliaAnna Fali RENEWAL
Arvin H CaudyRussiaAmy Elsner NEGOTIATION
Aditya V MaletItalyOnyama Limba RENEWAL
James U DoeSpainOnyama Limba QUALIFIED
Claire A SlusarskiRussiaOnyama Limba RENEWAL
Morrow U BriddickCanadaStephen Shaw PROPOSAL
Jefferson X KuskoUnited KingdomAmy Elsner PROPOSAL
Deepesh A VocelkaArgentinaIvan Magalhaes RENEWAL
Aditya R AmigonItalyBernardo Dominic NEGOTIATION
Sinclair W WieserItalyIoni Bowcher NEGOTIATION
Leon I DoeArgentinaIvan Magalhaes NEGOTIATION
Cody M StockhamUnited KingdomIoni Bowcher RENEWAL
Maria L DarakjyUnited KingdomOnyama Limba NEGOTIATION
Sinclair H MaletRussiaAsiya Javayant RENEWAL
Greenwood U TollnerGermanyStephen Shaw NEGOTIATION
Mayumi S GillianGermanyAsiya Javayant QUALIFIED
Izzy H FerenczArgentinaStephen Shaw NEW
Jefferson A ShinkoGermanyXuxue Feng UNQUALIFIED
Izzy T TollnerGermanyBernardo Dominic UNQUALIFIED
Stacey W RoysterSpainAnna Fali PROPOSAL
Ashley V GlickArgentinaAsiya Javayant PROPOSAL
Arvin G CaudyItalyIvan Magalhaes PROPOSAL

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