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
Cody H ButtAustraliaXuxue Feng NEW
Munro V MarrierCanadaIoni Bowcher PROPOSAL
Darci P VenereBrazilStephen Shaw NEGOTIATION
Emily R VenereSpainBernardo Dominic NEGOTIATION
Murillo K WhobreyUnited KingdomIoni Bowcher PROPOSAL
Alejandro G MorascaCanadaAmy Elsner NEW
Mujtaba B NestleAustraliaIoni Bowcher UNQUALIFIED
Jennifer J VenereItalyOnyama Limba NEGOTIATION
Darci E GarufiIndiaIoni Bowcher NEW
Aruna Z RimFranceIoni Bowcher UNQUALIFIED
Sinclair C MorascaIndiaElwin Sharvill NEGOTIATION
Silvio L AlbaresArgentinaBernardo Dominic NEW
Jefferson O DilliardAustraliaXuxue Feng UNQUALIFIED
Mayumi Q ShinkoFranceIvan Magalhaes NEW
Munro E ButtItalyIoni Bowcher QUALIFIED
Salvatore T MaletBrazilAsiya Javayant PROPOSAL
Darci L GlickCanadaStephen Shaw NEGOTIATION
Arvin V VocelkaIndiaElwin Sharvill NEW
Kaitlin W GauchoCanadaElwin Sharvill NEGOTIATION
Clifford R ShinkoJapanXuxue Feng QUALIFIED
Murillo M FollerBrazilElwin Sharvill NEW
Jones D PoquetteCanadaIoni Bowcher QUALIFIED
Munro W FigeroaIndiaIvan Magalhaes QUALIFIED
Smith I GauchoBrazilXuxue Feng UNQUALIFIED
Nicolas Q AlbaresItalyIoni Bowcher PROPOSAL
Maisha K MarrierFranceBernardo Dominic PROPOSAL
Costa C ShinkoJapanIvan Magalhaes QUALIFIED
Wickens A SaylorsFranceBernardo Dominic NEW
Octavia X RimBrazilIoni Bowcher NEW
Emily D SaylorsBrazilIoni Bowcher QUALIFIED
Mujtaba J InouyeBrazilStephen Shaw RENEWAL
Maisha F PoquetteArgentinaBernardo Dominic RENEWAL
Mujtaba O PaprockiCanadaIvan Magalhaes RENEWAL
Juan A CampainSpainElwin Sharvill PROPOSAL
Stacey G MaletFranceOnyama Limba UNQUALIFIED
Leja F MorascaCanadaIvan Magalhaes QUALIFIED
Claire A SchemmerAustraliaBernardo Dominic QUALIFIED
Arvin X MorascaArgentinaIoni Bowcher NEW
Mayumi I WieserFranceXuxue Feng UNQUALIFIED
Johnson A CampainArgentinaStephen Shaw UNQUALIFIED
Julie X OldroydArgentinaAmy Elsner RENEWAL
Darci G SaylorsJapanOnyama Limba QUALIFIED
Antonio N AlbaresIndiaStephen Shaw QUALIFIED
Murillo W OstroskyJapanIvan Magalhaes QUALIFIED
Murillo L FerenczAustraliaAmy Elsner PROPOSAL
Ricardo B MacleadJapanXuxue Feng RENEWAL
Stacey O DarakjySpainAmy Elsner PROPOSAL
Wickens E NestleRussiaAmy Elsner RENEWAL
Francesco Z OldroydIndiaOnyama Limba RENEWAL
Alejandro W StensethJapanAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna X CaldareraArgentinaXuxue Feng QUALIFIED
David J CaudySpainAnna Fali UNQUALIFIED
Jones K ShinkoArgentinaStephen Shaw PROPOSAL
Murillo Y KuskoUnited KingdomIoni Bowcher QUALIFIED
Murillo Z VenereFranceStephen Shaw RENEWAL
Rodrigues V WieserGermanyAnna Fali NEGOTIATION
Arvin Y WhobreyJapanBernardo Dominic NEGOTIATION
Isabel Q GlickArgentinaAsiya Javayant NEW
Antonio Z StockhamIndiaIoni Bowcher NEGOTIATION
Ricardo J InouyeGermanyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones R SchemmerArgentina2026-08-12Feltz Printing Service NEGOTIATION10Elwin Sharvill
1001Mujtaba U MacleadAustralia2026-08-12Printing Dimensions NEGOTIATION22Elwin Sharvill
1002Silvio F MaletCanada2026-08-01Rousseaux, Michael Esq UNQUALIFIED51Anna Fali
1003Claire G RoysterSpain2026-08-06Commercial Press NEGOTIATION66Ivan Magalhaes
1004Juan H CaldareraGermany2026-08-11Truhlar And Truhlar Attys RENEWAL65Xuxue Feng
1005Adams W TollnerCanada2026-08-07Truhlar And Truhlar Attys NEW47Ioni Bowcher
1006Maria K WaycottFrance2026-08-02Chemel, James L Cpa PROPOSAL20Anna Fali
1007Johnson I FollerSpain2026-08-15Rangoni Of Florence QUALIFIED15Elwin Sharvill
1008Kadeem S FollerSpain2026-07-28Benton, John B Jr QUALIFIED28Amy Elsner
1009Mujtaba V SchemmerUnited Kingdom2026-07-23Printing Dimensions NEGOTIATION0Xuxue Feng
1010James G StockhamGermany2026-07-23Morlong Associates QUALIFIED37Anna Fali
1011Murillo H MarrierJapan2026-07-28Rousseaux, Michael Esq UNQUALIFIED22Asiya Javayant
1012Ivar X AlbaresBrazil2026-07-26Dorl, James J Esq RENEWAL8Bernardo Dominic
1013Izzy D RulapaughFrance2026-07-22Benton, John B Jr RENEWAL87Asiya Javayant
1014Julie K MaletItaly2026-07-28Chanay, Jeffrey A Esq RENEWAL29Amy Elsner
1015Stacey F MorascaSpain2026-07-27Truhlar And Truhlar Attys NEGOTIATION99Amy Elsner
1016Mujtaba V MaletGermany2026-08-05Feltz Printing Service PROPOSAL84Ioni Bowcher
1017Sinclair X FollerRussia2026-07-28Feiner Bros QUALIFIED2Bernardo Dominic
1018Morrow T WaycottIndia2026-07-27Chapman, Ross E Esq PROPOSAL22Xuxue Feng
1019Rodrigues T FollerCanada2026-07-28Feiner Bros NEGOTIATION62Amy Elsner
1020Aditya I StockhamJapan2026-08-18Chemel, James L Cpa UNQUALIFIED13Bernardo Dominic
1021Isabel C WieserBrazil2026-08-18Dorl, James J Esq QUALIFIED14Amy Elsner
1022Smith D DoeCanada2026-08-02Commercial Press UNQUALIFIED28Bernardo Dominic
1023Aditya D StensethUnited Kingdom2026-08-18Rousseaux, Michael Esq QUALIFIED89Xuxue Feng
1024Morrow Q VenereArgentina2026-08-16Commercial Press NEGOTIATION80Asiya Javayant
1025Francesco T SergiUnited Kingdom2026-08-12Feiner Bros UNQUALIFIED6Elwin Sharvill
1026Aditya M CampainAustralia2026-08-08Chanay, Jeffrey A Esq QUALIFIED56Amy Elsner
1027Nicolas A PerinBrazil2026-08-18Truhlar And Truhlar Attys NEGOTIATION24Asiya Javayant
1028Faith A CaudyBrazil2026-07-30Dorl, James J Esq PROPOSAL73Ioni Bowcher
1029Jefferson U OldroydArgentina2026-08-09Feltz Printing Service PROPOSAL22Elwin Sharvill
1030Octavia V FerenczJapan2026-08-15Chemel, James L Cpa RENEWAL10Bernardo Dominic
1031Emily T KolmetzRussia2026-07-28Chemel, James L Cpa PROPOSAL16Amy Elsner
1032Faith K BriddickFrance2026-07-24Morlong Associates QUALIFIED67Bernardo Dominic
1033Faith M DilliardIndia2026-07-24Chapman, Ross E Esq RENEWAL22Ioni Bowcher
1034Morrow Y WhobreyFrance2026-08-02Morlong Associates NEW41Ivan Magalhaes
1035Izzy J KuskoFrance2026-07-23Printing Dimensions PROPOSAL34Ivan Magalhaes
1036Jefferson L MacleadRussia2026-07-24Printing Dimensions RENEWAL24Bernardo Dominic
1037Maisha I BologniaCanada2026-07-28Rousseaux, Michael Esq NEW3Onyama Limba
1038Aika K DarakjyIndia2026-08-20Rousseaux, Michael Esq QUALIFIED92Onyama Limba
1039Jones U ChuiRussia2026-07-24Printing Dimensions QUALIFIED28Anna Fali
1040Darci R DoeGermany2026-08-20Morlong Associates NEW96Amy Elsner
1041Clifford I DoeItaly2026-08-09Truhlar And Truhlar Attys RENEWAL3Ioni Bowcher
1042Jones D TollnerFrance2026-08-12Benton, John B Jr RENEWAL75Amy Elsner
1043Jeanfrancois P GillianRussia2026-08-05Benton, John B Jr UNQUALIFIED94Amy Elsner
1044Costa K AmigonItaly2026-08-16Buckley Miller Wright NEGOTIATION16Ivan Magalhaes
1045Nicolas K BologniaJapan2026-07-27Feltz Printing Service RENEWAL46Elwin Sharvill
1046Smith N BologniaItaly2026-08-20Chanay, Jeffrey A Esq NEGOTIATION81Stephen Shaw
1047Adams O NestleRussia2026-08-11Chanay, Jeffrey A Esq PROPOSAL13Stephen Shaw
1048Francesco N VenereFrance2026-08-10Chanay, Jeffrey A Esq NEGOTIATION86Xuxue Feng
1049Leja K ChuiSpain2026-08-18Rangoni Of Florence NEGOTIATION26Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Izzy M BriddickItalyAmy Elsner QUALIFIED
Ricardo Z RulapaughJapanAsiya Javayant UNQUALIFIED
Clifford X OstroskyRussiaStephen Shaw PROPOSAL
Misaki G KolmetzAustraliaStephen Shaw QUALIFIED
David J TollnerCanadaIoni Bowcher UNQUALIFIED
Antonio M GlickCanadaXuxue Feng UNQUALIFIED
Salvatore G GauchoCanadaAmy Elsner NEW
Faith R NestleAustraliaStephen Shaw UNQUALIFIED
Rodrigues O SlusarskiAustraliaBernardo Dominic PROPOSAL
Darci W SergiSpainBernardo Dominic NEW
Munro W IturbideGermanyXuxue Feng QUALIFIED
Ashley O SaylorsCanadaAsiya Javayant PROPOSAL
Faith G PaprockiGermanyIoni Bowcher NEGOTIATION
Aika G DilliardRussiaOnyama Limba UNQUALIFIED
Kadeem W AmigonJapanBernardo Dominic NEGOTIATION
Claire Z FollerAustraliaXuxue Feng NEW
Octavia D BowleyBrazilBernardo Dominic NEW
Rodrigues S SaylorsBrazilElwin Sharvill NEGOTIATION
Munro A SlusarskiItalyOnyama Limba QUALIFIED
Mayumi R GlickItalyStephen Shaw UNQUALIFIED
Leon J FollerBrazilBernardo Dominic PROPOSAL
Costa T CaudyFranceIoni Bowcher NEGOTIATION
Mujtaba H DoeIndiaElwin Sharvill RENEWAL
Aditya L FlosiItalyBernardo Dominic UNQUALIFIED
Tony O RulapaughItalyStephen Shaw RENEWAL
Stacey Q InouyeFranceAnna Fali RENEWAL
Mayumi K CaldareraFranceOnyama Limba PROPOSAL
Sinclair U BowleyUnited KingdomIoni Bowcher NEW
Kaitlin W AlbaresIndiaElwin Sharvill QUALIFIED
Smith V MarrierAustraliaStephen Shaw UNQUALIFIED
Izzy T OstroskyRussiaOnyama Limba RENEWAL
Munro D SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Ivar O GlickIndiaAmy Elsner NEGOTIATION
Darci H GillianArgentinaElwin Sharvill NEW
Clifford K CampainAustraliaStephen Shaw RENEWAL
Sinclair S GillianUnited KingdomIoni Bowcher QUALIFIED
Kadeem Y SergiIndiaIvan Magalhaes NEGOTIATION
Aruna F InouyeItalyOnyama Limba NEGOTIATION
Izzy X RutaArgentinaElwin Sharvill UNQUALIFIED
Misaki N MaletArgentinaBernardo Dominic PROPOSAL
Wickens G DoeJapanIoni Bowcher RENEWAL
Smith G ButtGermanyIvan Magalhaes PROPOSAL
Juan Q OldroydArgentinaIvan Magalhaes QUALIFIED
Aditya E StockhamAustraliaAsiya Javayant QUALIFIED
Costa S PerinUnited KingdomBernardo Dominic NEGOTIATION
Ashley V BowleyAustraliaBernardo Dominic NEGOTIATION
James E DoeIndiaStephen Shaw NEGOTIATION
Silvio K KolmetzGermanyBernardo Dominic NEGOTIATION
Jones N DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Tony S AlbaresIndiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Octavia A Ferencz
Stacey N Caudy
Greenwood F Inouye
Jefferson Y Gillian
Mayumi J Albares
Isabel G Poquette
Salvatore G Campain
Leon Z Malet
Mujtaba Q Albares
Isabel N Wieser
Kaitlin B Doe
Ivar H Foller
Rodrigues Z Bolognia
Maisha B Tollner
Izzy Y Nicka
Murillo R Briddick
Emily X Wieser
Leja K Ruta
Clifford K Ostrosky
Johnson P Briddick
Isabel H Tollner
Arvin H Maclead
Silvio A Campain
Costa B Gaucho
Costa D Sergi
Isabel V Ostrosky
Maria U Tollner
Maria A Wieser
Nicolas T Shinko
Nicolas Y Kolmetz
Ricardo S Amigon
Ivar M Vocelka
Aruna W Caldarera
Morrow Y Venere
Alejandro W Kusko
Kadeem N Sergi
Izzy K Butt
Kadeem U Dilliard
Aruna L Malet
Munro V Briddick
Aditya W Marrier
James C Waycott
Francesco W Caudy
Mujtaba M Morasca
Mayumi G Foller
Nicolas N Poquette
David B Perin
Costa P Morasca
Jeanfrancois K Stockham
Claire N Stockham
IdCountryDate
1000Brazil2026-08-18
1001Russia2026-08-01
1002Australia2026-08-19
1003Italy2026-08-03
1004Spain2026-08-01
1005Germany2026-08-16
1006Germany2026-07-28
1007Canada2026-08-01
1008Japan2026-08-04
1009Italy2026-08-05
1010Japan2026-07-23
1011Russia2026-08-16
1012Australia2026-08-09
1013United Kingdom2026-07-23
1014Germany2026-08-02
1015Canada2026-08-01
1016Italy2026-08-09
1017India2026-08-14
1018Germany2026-08-10
1019France2026-08-12
1020Italy2026-07-27
1021France2026-08-11
1022France2026-07-27
1023France2026-08-15
1024Brazil2026-07-22
1025India2026-08-01
1026Brazil2026-07-25
1027Russia2026-07-29
1028Germany2026-07-23
1029France2026-07-22
1030Spain2026-08-14
1031France2026-08-06
1032Brazil2026-08-09
1033Australia2026-08-02
1034Russia2026-07-25
1035India2026-08-11
1036Argentina2026-08-02
1037United Kingdom2026-08-03
1038Australia2026-07-30
1039Japan2026-08-03
1040Argentina2026-08-20
1041Russia2026-08-15
1042Italy2026-08-09
1043Russia2026-08-04
1044Spain2026-08-10
1045Japan2026-08-15
1046Germany2026-08-15
1047France2026-08-16
1048Spain2026-08-02
1049Russia2026-08-13

On-Demand Data

NameIdCountryDate
Morrow R Ferencz1000Russia2026-08-20
Juan Z Caldarera1001India2026-08-10
Morrow R Campain1002Italy2026-08-19
Juan G Gillian1003Brazil2026-08-05
Murillo V Stenseth1004India2026-07-24
Salvatore Y Nestle1005United Kingdom2026-08-08
Wickens I Morasca1006Germany2026-08-19
Misaki U Dilliard1007Canada2026-08-08
Maria B Morasca1008Argentina2026-08-05
Rodrigues W Tollner1009Italy2026-08-08
Chavez A Darakjy1010United Kingdom2026-08-11
James T Kusko1011Brazil2026-08-12
Jeanfrancois B Campain1012Germany2026-08-07
Juan V Schemmer1013Germany2026-08-06
Rodrigues Q Kolmetz1014Australia2026-08-06
Jeanfrancois W Tollner1015Italy2026-08-19
Leja E Ferencz1016Argentina2026-07-30
Kadeem A Perin1017Canada2026-08-03
Aika X Malet1018India2026-07-29
Chavez V Ostrosky1019Canada2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James J BologniaBrazilAmy Elsner QUALIFIED
Aditya R RoysterFranceIvan Magalhaes UNQUALIFIED
Isabel D CaudyUnited KingdomElwin Sharvill NEW
Francesco M BowleyAustraliaStephen Shaw NEW
Jennifer K ButtCanadaAnna Fali NEW
Claire K PoquetteRussiaAmy Elsner UNQUALIFIED
Jennifer F FlosiAustraliaElwin Sharvill PROPOSAL
Mujtaba N GillianArgentinaAsiya Javayant NEGOTIATION
Kaitlin K VenereIndiaIvan Magalhaes PROPOSAL
Ricardo J WieserGermanyOnyama Limba NEGOTIATION
Stacey C GillianGermanyIvan Magalhaes NEW
Antonio P BologniaUnited KingdomBernardo Dominic NEW
Murillo U ShinkoBrazilIvan Magalhaes PROPOSAL
Faith U ChuiIndiaIoni Bowcher RENEWAL
Faith K GlickFranceAsiya Javayant PROPOSAL
Johnson B SaylorsItalyAmy Elsner RENEWAL
Izzy M OstroskyIndiaIoni Bowcher NEW
Murillo E GarufiItalyElwin Sharvill UNQUALIFIED
Jennifer G GauchoArgentinaStephen Shaw NEGOTIATION
Mayumi S FigeroaIndiaOnyama Limba RENEWAL
Maisha D SchemmerGermanyBernardo Dominic RENEWAL
James C MaletSpainBernardo Dominic NEGOTIATION
Kadeem L WaycottSpainAsiya Javayant NEW
Deepesh E FollerUnited KingdomAmy Elsner UNQUALIFIED
Leja R MorascaSpainAsiya Javayant QUALIFIED
Murillo M TollnerArgentinaAmy Elsner PROPOSAL
Faith F OldroydAustraliaXuxue Feng NEW
David S StockhamArgentinaAnna Fali UNQUALIFIED
Jefferson O ShinkoCanadaBernardo Dominic RENEWAL
Francesco T OstroskyFranceStephen Shaw RENEWAL
Salvatore L MarrierFranceAmy Elsner PROPOSAL
Clifford A DilliardRussiaStephen Shaw UNQUALIFIED
Murillo N OldroydFranceElwin Sharvill PROPOSAL
Leja E MorascaBrazilAsiya Javayant NEW
Aika J GarufiFranceXuxue Feng PROPOSAL
David A ShinkoAustraliaAmy Elsner NEGOTIATION
Mujtaba F SaylorsCanadaXuxue Feng NEGOTIATION
Salvatore C MaletJapanIvan Magalhaes PROPOSAL
Ricardo D FollerGermanyIoni Bowcher UNQUALIFIED
Jennifer T BologniaGermanyStephen Shaw 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>