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
Clifford G InouyeItalyIvan Magalhaes NEW
Jennifer E WaycottFranceAnna Fali QUALIFIED
Stacey E KolmetzUnited KingdomAmy Elsner QUALIFIED
Leja W RoysterJapanXuxue Feng NEGOTIATION
Kaitlin D DilliardSpainStephen Shaw NEW
Emily N AmigonFranceBernardo Dominic NEGOTIATION
Silvio R ChuiIndiaAnna Fali RENEWAL
Leon P OstroskySpainBernardo Dominic PROPOSAL
Isabel G SergiArgentinaIoni Bowcher NEW
Morrow Y BowleyGermanyAsiya Javayant QUALIFIED
Arvin U OstroskySpainOnyama Limba QUALIFIED
Tony A OldroydSpainXuxue Feng QUALIFIED
Leon N PerinBrazilAnna Fali PROPOSAL
Mujtaba O BologniaUnited KingdomIoni Bowcher PROPOSAL
Ivar K VenereSpainOnyama Limba RENEWAL
Jennifer G StensethItalyXuxue Feng RENEWAL
Francesco T DilliardIndiaIvan Magalhaes NEW
Kaitlin M BowleyGermanyElwin Sharvill NEW
Chavez Z CaldareraGermanyXuxue Feng UNQUALIFIED
Francesco V RulapaughBrazilAsiya Javayant QUALIFIED
Isabel D SchemmerIndiaAmy Elsner QUALIFIED
Mayumi E ShinkoJapanIoni Bowcher UNQUALIFIED
Morrow B VocelkaCanadaOnyama Limba QUALIFIED
Leja P SaylorsGermanyIoni Bowcher PROPOSAL
Sinclair L SergiIndiaOnyama Limba RENEWAL
Costa N AlbaresIndiaAmy Elsner PROPOSAL
Aruna N MorascaIndiaStephen Shaw NEW
Sinclair L TollnerRussiaBernardo Dominic QUALIFIED
Kaitlin Y OldroydGermanyStephen Shaw NEW
Johnson F FollerFranceElwin Sharvill RENEWAL
Mujtaba Q RulapaughFranceBernardo Dominic PROPOSAL
Juan Y MaletFranceOnyama Limba RENEWAL
David O MarrierAustraliaIoni Bowcher PROPOSAL
Chavez K DoeRussiaElwin Sharvill QUALIFIED
Tony R CampainJapanStephen Shaw RENEWAL
Tony A BriddickCanadaBernardo Dominic RENEWAL
Izzy Y RutaUnited KingdomAsiya Javayant RENEWAL
Tony W GauchoFranceAnna Fali UNQUALIFIED
Aika T AlbaresSpainStephen Shaw UNQUALIFIED
Chavez D FerenczIndiaIoni Bowcher UNQUALIFIED
Adams X DilliardJapanStephen Shaw NEGOTIATION
Cody G RutaFranceStephen Shaw PROPOSAL
Antonio H RoysterIndiaOnyama Limba RENEWAL
Adams G FerenczBrazilAnna Fali NEW
Leja V NestleUnited KingdomAsiya Javayant NEW
Jeanfrancois Q GlickJapanXuxue Feng UNQUALIFIED
Costa B GillianArgentinaOnyama Limba NEGOTIATION
Misaki B GauchoRussiaIvan Magalhaes UNQUALIFIED
Ivar Y BologniaFranceAmy Elsner QUALIFIED
Arvin M RulapaughRussiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci M MaletSpainXuxue Feng QUALIFIED
Adams T WaycottItalyAmy Elsner RENEWAL
Misaki L CaldareraGermanyAnna Fali UNQUALIFIED
Arvin V PaprockiRussiaIoni Bowcher NEGOTIATION
Jefferson C WaycottSpainAmy Elsner PROPOSAL
Julie O GillianFranceBernardo Dominic RENEWAL
Izzy R DilliardJapanXuxue Feng NEGOTIATION
Kadeem Q KuskoIndiaAsiya Javayant PROPOSAL
Wickens V MarrierJapanIoni Bowcher NEGOTIATION
Maria Q MaletBrazilAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens E SergiAustralia2026-06-18King, Christopher A Esq NEW3Bernardo Dominic
1001David P WaycottCanada2026-07-05Benton, John B Jr NEGOTIATION7Bernardo Dominic
1002Johnson H SlusarskiItaly2026-06-17Buckley Miller Wright UNQUALIFIED44Stephen Shaw
1003Munro R RimGermany2026-06-15Buckley Miller Wright UNQUALIFIED1Stephen Shaw
1004Rodrigues Z PoquetteCanada2026-06-15Dorl, James J Esq NEGOTIATION34Xuxue Feng
1005James A VocelkaIndia2026-07-04Chemel, James L Cpa UNQUALIFIED25Asiya Javayant
1006Tony V MaletRussia2026-06-10Chapman, Ross E Esq PROPOSAL73Ioni Bowcher
1007Clifford I NestleArgentina2026-06-25Printing Dimensions NEGOTIATION94Xuxue Feng
1008Salvatore L VenereFrance2026-06-11Commercial Press NEW94Asiya Javayant
1009Francesco K ChuiFrance2026-06-08Morlong Associates PROPOSAL14Bernardo Dominic
1010Sinclair H AlbaresUnited Kingdom2026-07-04Buckley Miller Wright NEW88Bernardo Dominic
1011Aruna I StockhamRussia2026-06-09Chanay, Jeffrey A Esq UNQUALIFIED57Ioni Bowcher
1012Murillo D DoeUnited Kingdom2026-06-11Chanay, Jeffrey A Esq RENEWAL61Xuxue Feng
1013Murillo H BologniaItaly2026-06-07Dorl, James J Esq RENEWAL70Stephen Shaw
1014Octavia Q RutaJapan2026-06-15Chapman, Ross E Esq NEW60Amy Elsner
1015Octavia U CaudyCanada2026-06-21Rousseaux, Michael Esq NEW38Onyama Limba
1016Deepesh R ButtArgentina2026-07-02Dorl, James J Esq QUALIFIED77Bernardo Dominic
1017Stacey S MarrierItaly2026-06-30Feltz Printing Service PROPOSAL59Ivan Magalhaes
1018Leja K CaldareraBrazil2026-06-18Benton, John B Jr NEGOTIATION99Amy Elsner
1019Juan U ShinkoUnited Kingdom2026-06-25Dorl, James J Esq UNQUALIFIED38Amy Elsner
1020Aruna C InouyeArgentina2026-06-21Feiner Bros QUALIFIED75Anna Fali
1021Deepesh Y AlbaresRussia2026-07-02Feiner Bros QUALIFIED47Ivan Magalhaes
1022Maisha E ButtRussia2026-06-13Commercial Press RENEWAL26Asiya Javayant
1023Rodrigues Y MacleadUnited Kingdom2026-07-01Chanay, Jeffrey A Esq NEGOTIATION3Bernardo Dominic
1024Jefferson K DarakjyGermany2026-06-09Chapman, Ross E Esq NEGOTIATION45Anna Fali
1025Johnson G WaycottArgentina2026-06-28Rangoni Of Florence NEGOTIATION19Amy Elsner
1026Munro R AlbaresArgentina2026-06-26Truhlar And Truhlar Attys NEGOTIATION45Ivan Magalhaes
1027Clifford Q RutaIndia2026-06-19Rousseaux, Michael Esq NEGOTIATION72Anna Fali
1028Misaki A IturbideGermany2026-07-05Commercial Press QUALIFIED10Ioni Bowcher
1029Sinclair Z AmigonItaly2026-06-26Chemel, James L Cpa PROPOSAL85Asiya Javayant
1030Ivar L WaycottCanada2026-06-25Rousseaux, Michael Esq NEGOTIATION78Xuxue Feng
1031Adams H WaycottIndia2026-06-16Rangoni Of Florence UNQUALIFIED71Amy Elsner
1032Rodrigues C IturbideSpain2026-06-24Printing Dimensions QUALIFIED23Ivan Magalhaes
1033Izzy V FollerUnited Kingdom2026-06-25Chanay, Jeffrey A Esq NEGOTIATION33Amy Elsner
1034Chavez V FigeroaJapan2026-06-25Commercial Press QUALIFIED26Onyama Limba
1035Julie F KolmetzArgentina2026-06-10King, Christopher A Esq NEW10Asiya Javayant
1036Claire U FlosiSpain2026-06-27Rousseaux, Michael Esq NEW28Ioni Bowcher
1037Smith X GillianJapan2026-06-19Benton, John B Jr RENEWAL22Bernardo Dominic
1038Kadeem S TollnerFrance2026-06-25Feiner Bros QUALIFIED74Ivan Magalhaes
1039Clifford V BowleyUnited Kingdom2026-06-16King, Christopher A Esq NEGOTIATION39Ivan Magalhaes
1040Tony Q ShinkoRussia2026-06-19Rousseaux, Michael Esq RENEWAL33Onyama Limba
1041Jefferson G KuskoUnited Kingdom2026-06-25Benton, John B Jr NEGOTIATION76Anna Fali
1042Jeanfrancois H ShinkoFrance2026-07-04Dorl, James J Esq RENEWAL81Bernardo Dominic
1043Jefferson Q DarakjyJapan2026-07-01Rousseaux, Michael Esq QUALIFIED57Anna Fali
1044Silvio B GauchoRussia2026-07-03King, Christopher A Esq QUALIFIED42Anna Fali
1045Johnson J WieserFrance2026-06-13King, Christopher A Esq UNQUALIFIED65Amy Elsner
1046Sinclair O MaletItaly2026-06-25Feltz Printing Service NEW70Ioni Bowcher
1047Murillo W OstroskyItaly2026-06-25Rangoni Of Florence QUALIFIED3Anna Fali
1048Ashley E RutaUnited Kingdom2026-06-18Chanay, Jeffrey A Esq PROPOSAL99Ivan Magalhaes
1049Leon H GlickArgentina2026-06-30Commercial Press RENEWAL47Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar P FigeroaUnited KingdomIoni Bowcher NEW
Morrow D FerenczSpainAnna Fali NEGOTIATION
Leja O WieserGermanyOnyama Limba PROPOSAL
Johnson Z FerenczBrazilIvan Magalhaes NEW
Octavia V IturbideAustraliaAsiya Javayant RENEWAL
Aruna U InouyeArgentinaElwin Sharvill UNQUALIFIED
David G WieserGermanyAmy Elsner UNQUALIFIED
Salvatore X OstroskyItalyElwin Sharvill PROPOSAL
Faith M DilliardCanadaOnyama Limba QUALIFIED
Francesco W MarrierCanadaIvan Magalhaes NEW
Aditya B BriddickUnited KingdomElwin Sharvill PROPOSAL
Wickens J RoysterAustraliaElwin Sharvill UNQUALIFIED
Chavez U WieserFranceOnyama Limba RENEWAL
Adams A TollnerBrazilAsiya Javayant PROPOSAL
Leja R DarakjyGermanyBernardo Dominic RENEWAL
Kadeem K MaletAustraliaAmy Elsner PROPOSAL
Jefferson O GillianBrazilAmy Elsner PROPOSAL
Jones M AlbaresRussiaElwin Sharvill NEW
Arvin P NestleSpainStephen Shaw NEGOTIATION
Maisha Y StensethItalyOnyama Limba QUALIFIED
Jones K DarakjyRussiaElwin Sharvill NEGOTIATION
Johnson S DarakjyItalyXuxue Feng PROPOSAL
Emily K MorascaSpainElwin Sharvill UNQUALIFIED
Isabel N OldroydRussiaIvan Magalhaes PROPOSAL
Greenwood H SchemmerItalyElwin Sharvill PROPOSAL
Ashley P RulapaughCanadaBernardo Dominic RENEWAL
Jeanfrancois P VocelkaArgentinaStephen Shaw QUALIFIED
Jones X SaylorsAustraliaStephen Shaw NEGOTIATION
Misaki J RoysterFranceIoni Bowcher QUALIFIED
Ricardo S MaletAustraliaElwin Sharvill QUALIFIED
Tony T StensethJapanOnyama Limba NEW
Aditya H FerenczUnited KingdomAmy Elsner PROPOSAL
Jefferson Z RutaGermanyElwin Sharvill UNQUALIFIED
Greenwood F GauchoFranceXuxue Feng NEW
Aditya N OstroskyGermanyAnna Fali NEW
Leon W OldroydBrazilAnna Fali UNQUALIFIED
Johnson B WaycottFranceStephen Shaw NEGOTIATION
Izzy H BowleyFranceAsiya Javayant NEW
Mayumi P MorascaJapanElwin Sharvill QUALIFIED
Murillo F MacleadCanadaAnna Fali NEW
Kaitlin W AlbaresArgentinaStephen Shaw NEGOTIATION
Sinclair K IturbideUnited KingdomIvan Magalhaes RENEWAL
Ivar D AlbaresUnited KingdomAmy Elsner NEGOTIATION
Leon Y SchemmerUnited KingdomAmy Elsner NEGOTIATION
Mayumi A SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois D SaylorsRussiaAmy Elsner QUALIFIED
Francesco G ChuiGermanyAsiya Javayant NEGOTIATION
Kaitlin W FerenczFranceStephen Shaw NEGOTIATION
David H WhobreyCanadaIvan Magalhaes QUALIFIED
Kaitlin O GlickSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
Jones A Doe
Sinclair V Venere
Arvin N Caudy
Mujtaba H Nestle
Jones Y Perin
David I Caudy
Greenwood B Kusko
Maisha J Venere
Maisha Z Shinko
Chavez F Amigon
James H Marrier
Jennifer C Shinko
Jones Q Ostrosky
Aika T Sergi
Adams R Oldroyd
James J Briddick
Faith O Waycott
Jeanfrancois O Shinko
Misaki T Nestle
Kaitlin O Saylors
Jeanfrancois K Kolmetz
Murillo V Maclead
Alejandro F Marrier
Kaitlin K Gaucho
Francesco A Gaucho
Francesco Q Stenseth
Cody V Rim
Misaki R Ostrosky
Emily S Poquette
Cody Y Ferencz
Isabel J Malet
Munro A Shinko
Leon F Bowley
Salvatore F Briddick
Octavia Y Waycott
Mujtaba X Ferencz
Murillo Q Caudy
Jennifer T Bolognia
Sinclair H Malet
Munro A Bolognia
Chavez X Nestle
Francesco B Kusko
Alejandro D Foller
Johnson Z Dilliard
Kaitlin C Iturbide
Kadeem D Caldarera
Ivar D Nicka
Cody O Stenseth
Munro G Albares
Ricardo X Stockham
IdCountryDate
1000Canada2026-06-29
1001Germany2026-06-12
1002Brazil2026-06-07
1003Italy2026-07-01
1004India2026-06-07
1005United Kingdom2026-06-24
1006United Kingdom2026-06-08
1007Italy2026-06-18
1008India2026-06-10
1009Italy2026-06-08
1010Spain2026-06-27
1011Australia2026-06-30
1012Spain2026-06-27
1013Russia2026-06-26
1014Russia2026-07-02
1015Argentina2026-06-16
1016India2026-06-06
1017Russia2026-06-07
1018United Kingdom2026-06-24
1019Spain2026-06-25
1020Germany2026-06-29
1021Argentina2026-06-15
1022Argentina2026-06-16
1023United Kingdom2026-06-20
1024Canada2026-06-30
1025India2026-06-16
1026Russia2026-06-28
1027Russia2026-07-05
1028Japan2026-06-10
1029United Kingdom2026-06-08
1030Italy2026-07-01
1031Spain2026-06-28
1032Australia2026-06-13
1033Argentina2026-06-29
1034Russia2026-07-02
1035Brazil2026-06-09
1036Russia2026-06-30
1037Brazil2026-06-30
1038Australia2026-06-09
1039United Kingdom2026-07-01
1040Argentina2026-06-06
1041Spain2026-06-13
1042Argentina2026-06-13
1043Australia2026-07-04
1044Germany2026-06-30
1045Canada2026-06-29
1046Germany2026-06-10
1047India2026-06-08
1048Australia2026-07-02
1049India2026-06-15

On-Demand Data

NameIdCountryDate
Maisha Z Whobrey1000Japan2026-07-03
Claire Z Doe1001Australia2026-06-09
Ashley C Maclead1002Argentina2026-07-03
Clifford U Venere1003India2026-06-14
Maria X Poquette1004Japan2026-06-15
Misaki C Figeroa1005Spain2026-06-16
Juan N Sergi1006Italy2026-07-02
Wickens U Ostrosky1007Japan2026-06-22
Julie G Ruta1008Germany2026-06-07
Silvio T Ruta1009United Kingdom2026-07-03
Johnson X Poquette1010India2026-06-09
Nicolas O Poquette1011Spain2026-07-05
Silvio D Kolmetz1012Argentina2026-07-02
Kaitlin S Whobrey1013Italy2026-06-19
Sinclair U Vocelka1014Russia2026-06-22
Jennifer W Caldarera1015Brazil2026-06-19
Munro E Butt1016Brazil2026-06-08
Deepesh W Iturbide1017Spain2026-06-15
Cody Q Briddick1018India2026-06-22
Antonio L Flosi1019France2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel G GauchoFranceAmy Elsner RENEWAL
Isabel M FigeroaGermanyBernardo Dominic NEW
Francesco W RimCanadaAnna Fali QUALIFIED
Chavez G NestleItalyElwin Sharvill QUALIFIED
Chavez X SchemmerSpainOnyama Limba UNQUALIFIED
Jones T MacleadUnited KingdomStephen Shaw NEGOTIATION
Ricardo W WieserGermanyAnna Fali PROPOSAL
Smith P DoeGermanyIvan Magalhaes QUALIFIED
Tony Q VocelkaRussiaIoni Bowcher QUALIFIED
Arvin A SlusarskiBrazilAsiya Javayant RENEWAL
Octavia R PoquetteGermanyIvan Magalhaes UNQUALIFIED
Aruna U TollnerIndiaOnyama Limba UNQUALIFIED
Deepesh O WhobreyGermanyIvan Magalhaes RENEWAL
Ashley U VocelkaSpainIvan Magalhaes UNQUALIFIED
Faith Z GauchoItalyAmy Elsner QUALIFIED
Nicolas N RoysterRussiaIvan Magalhaes NEW
Claire T InouyeArgentinaBernardo Dominic NEW
James O SergiIndiaXuxue Feng NEGOTIATION
Juan I MaletArgentinaIoni Bowcher UNQUALIFIED
Kadeem P RimJapanIoni Bowcher PROPOSAL
Darci X SlusarskiCanadaStephen Shaw NEW
David S SergiSpainXuxue Feng UNQUALIFIED
Sinclair G FlosiIndiaXuxue Feng UNQUALIFIED
Rodrigues N SlusarskiSpainIvan Magalhaes NEW
Ashley Y OstroskyAustraliaIoni Bowcher UNQUALIFIED
Aditya E VenereArgentinaIoni Bowcher QUALIFIED
Juan E GarufiFranceStephen Shaw UNQUALIFIED
Ivar O SchemmerIndiaBernardo Dominic NEW
Aditya D RoysterGermanyElwin Sharvill UNQUALIFIED
Smith P DilliardGermanyAmy Elsner QUALIFIED
Leja N SaylorsCanadaAmy Elsner QUALIFIED
Octavia C GarufiIndiaAmy Elsner UNQUALIFIED
Leja J RoysterJapanBernardo Dominic QUALIFIED
Francesco O DilliardJapanAmy Elsner RENEWAL
Mujtaba F WieserGermanyAmy Elsner RENEWAL
James J OstroskyAustraliaAnna Fali NEW
Jefferson Q NestleItalyAnna Fali QUALIFIED
Isabel Y StockhamJapanXuxue Feng NEGOTIATION
Smith L VenereRussiaAmy Elsner NEW
James P PaprockiAustraliaAsiya Javayant 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>