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
Costa T IturbideJapanAsiya Javayant NEGOTIATION
Clifford E CampainAustraliaIoni Bowcher NEGOTIATION
Greenwood F ButtUnited KingdomElwin Sharvill QUALIFIED
Jefferson Z RulapaughJapanElwin Sharvill RENEWAL
Greenwood F PoquetteBrazilIoni Bowcher NEW
Izzy N OldroydCanadaXuxue Feng PROPOSAL
Arvin A SaylorsCanadaBernardo Dominic RENEWAL
Aruna Q ShinkoFranceXuxue Feng NEW
Ivar Q BriddickSpainAsiya Javayant NEW
Jennifer Y VocelkaIndiaAnna Fali PROPOSAL
Costa F StensethFranceIvan Magalhaes NEGOTIATION
Arvin Y StensethFranceAmy Elsner PROPOSAL
Antonio K CaldareraBrazilAnna Fali PROPOSAL
Ivar D OstroskyIndiaBernardo Dominic RENEWAL
Mujtaba F RulapaughIndiaIvan Magalhaes NEGOTIATION
Ricardo D MaletJapanXuxue Feng UNQUALIFIED
Deepesh Q TollnerBrazilIvan Magalhaes UNQUALIFIED
Tony O SlusarskiRussiaXuxue Feng QUALIFIED
David W StockhamJapanOnyama Limba QUALIFIED
Smith J TollnerRussiaOnyama Limba QUALIFIED
Kaitlin T GillianBrazilElwin Sharvill UNQUALIFIED
Silvio V VocelkaAustraliaAnna Fali PROPOSAL
Murillo J MarrierCanadaIoni Bowcher NEGOTIATION
Emily K StockhamJapanBernardo Dominic PROPOSAL
Maisha E BowleyAustraliaAnna Fali NEW
David W VocelkaGermanyIoni Bowcher QUALIFIED
Johnson N AlbaresRussiaXuxue Feng NEGOTIATION
Juan N RimArgentinaAmy Elsner NEW
Cody G RulapaughIndiaIoni Bowcher NEW
Arvin E VocelkaBrazilAsiya Javayant UNQUALIFIED
Smith T RutaGermanyXuxue Feng PROPOSAL
Deepesh G OstroskyUnited KingdomOnyama Limba RENEWAL
Murillo F CaudyCanadaIoni Bowcher UNQUALIFIED
Morrow Q DarakjyFranceAmy Elsner PROPOSAL
Jeanfrancois Q ChuiFranceXuxue Feng RENEWAL
Munro O WhobreyJapanIvan Magalhaes UNQUALIFIED
Arvin C FerenczIndiaAsiya Javayant NEGOTIATION
Munro V CaldareraFranceStephen Shaw QUALIFIED
Chavez L MaletUnited KingdomXuxue Feng QUALIFIED
Mujtaba L BriddickFranceAmy Elsner NEGOTIATION
Claire J FigeroaAustraliaBernardo Dominic UNQUALIFIED
Izzy Q StockhamAustraliaStephen Shaw UNQUALIFIED
Darci M PerinUnited KingdomAsiya Javayant UNQUALIFIED
Tony J InouyeGermanyAsiya Javayant PROPOSAL
Costa D GarufiArgentinaAsiya Javayant RENEWAL
Munro U DarakjyCanadaAmy Elsner NEW
Adams N IturbideAustraliaIvan Magalhaes QUALIFIED
Maria V ChuiBrazilIoni Bowcher PROPOSAL
Deepesh Q GarufiRussiaStephen Shaw PROPOSAL
Mayumi H MarrierIndiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kadeem G CaldareraSpainAsiya Javayant QUALIFIED
Jefferson U DarakjyIndiaAmy Elsner NEGOTIATION
Adams G WieserItalyOnyama Limba UNQUALIFIED
Costa X NickaJapanIvan Magalhaes QUALIFIED
Leja K CaldareraBrazilAmy Elsner UNQUALIFIED
Mujtaba M NickaUnited KingdomElwin Sharvill NEW
Octavia J GauchoItalyAnna Fali NEGOTIATION
Octavia R InouyeJapanAmy Elsner QUALIFIED
Leja W MorascaUnited KingdomAnna Fali UNQUALIFIED
Wickens U RimItalyOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya O PoquetteItaly2026-08-23Benton, John B Jr UNQUALIFIED92Onyama Limba
1001Tony I ShinkoArgentina2026-08-01King, Christopher A Esq NEW97Onyama Limba
1002Rodrigues N NestleUnited Kingdom2026-08-12Printing Dimensions RENEWAL55Elwin Sharvill
1003Aditya N OldroydSpain2026-08-01Chemel, James L Cpa NEW93Stephen Shaw
1004Greenwood A DilliardCanada2026-08-24Commercial Press PROPOSAL99Ivan Magalhaes
1005Smith P RutaRussia2026-08-03Benton, John B Jr UNQUALIFIED61Stephen Shaw
1006Silvio D DoeUnited Kingdom2026-08-08Chanay, Jeffrey A Esq PROPOSAL81Ioni Bowcher
1007Salvatore I MarrierIndia2026-08-14King, Christopher A Esq RENEWAL77Ioni Bowcher
1008Mayumi X SlusarskiCanada2026-08-24Feltz Printing Service NEGOTIATION2Asiya Javayant
1009Leja Z MorascaGermany2026-08-27Benton, John B Jr RENEWAL31Ioni Bowcher
1010Izzy Z TollnerArgentina2026-08-09Rousseaux, Michael Esq PROPOSAL93Bernardo Dominic
1011Clifford B DilliardGermany2026-08-26Buckley Miller Wright RENEWAL40Xuxue Feng
1012Jones I CampainArgentina2026-08-07Buckley Miller Wright RENEWAL28Stephen Shaw
1013Greenwood H OldroydGermany2026-08-12Chapman, Ross E Esq QUALIFIED74Elwin Sharvill
1014Maisha D CampainUnited Kingdom2026-08-09Rousseaux, Michael Esq QUALIFIED61Bernardo Dominic
1015Claire Y MarrierIndia2026-07-30Buckley Miller Wright QUALIFIED74Amy Elsner
1016Emily J CaldareraItaly2026-08-02Buckley Miller Wright RENEWAL97Bernardo Dominic
1017Francesco C NickaItaly2026-08-03Rousseaux, Michael Esq QUALIFIED91Stephen Shaw
1018Aika J DoeItaly2026-08-20Rangoni Of Florence PROPOSAL38Amy Elsner
1019Johnson Z WieserJapan2026-08-17Rangoni Of Florence NEW33Xuxue Feng
1020Ricardo Y VenereItaly2026-08-27Printing Dimensions NEW96Bernardo Dominic
1021Juan H SchemmerIndia2026-08-26Morlong Associates QUALIFIED59Xuxue Feng
1022Smith O WieserItaly2026-08-03Morlong Associates NEW70Amy Elsner
1023Jones R WieserIndia2026-08-24Chapman, Ross E Esq PROPOSAL71Ioni Bowcher
1024Greenwood C PerinGermany2026-08-23Commercial Press QUALIFIED27Ivan Magalhaes
1025Cody S CaldareraItaly2026-08-20Benton, John B Jr NEW90Ioni Bowcher
1026Jeanfrancois Q FlosiBrazil2026-08-25Feltz Printing Service NEW21Elwin Sharvill
1027Jennifer F FlosiAustralia2026-08-19Truhlar And Truhlar Attys NEGOTIATION31Stephen Shaw
1028Alejandro Q AlbaresItaly2026-08-17Chanay, Jeffrey A Esq PROPOSAL38Amy Elsner
1029Jeanfrancois L KuskoRussia2026-08-07Benton, John B Jr RENEWAL54Elwin Sharvill
1030Ashley Y DilliardGermany2026-08-08Dorl, James J Esq QUALIFIED37Stephen Shaw
1031Kaitlin E MorascaArgentina2026-07-30Printing Dimensions NEW27Stephen Shaw
1032Arvin A SchemmerGermany2026-08-11Rousseaux, Michael Esq UNQUALIFIED68Onyama Limba
1033Cody M SaylorsSpain2026-08-09Morlong Associates RENEWAL59Onyama Limba
1034Costa L WhobreyArgentina2026-08-24Commercial Press PROPOSAL2Elwin Sharvill
1035Chavez X NickaArgentina2026-08-12Truhlar And Truhlar Attys NEW2Onyama Limba
1036Costa L SlusarskiFrance2026-08-15Chanay, Jeffrey A Esq QUALIFIED46Xuxue Feng
1037Kadeem A NickaIndia2026-08-12Feiner Bros UNQUALIFIED48Onyama Limba
1038Izzy N SergiJapan2026-08-08Chemel, James L Cpa PROPOSAL80Ivan Magalhaes
1039Jones U DoeRussia2026-08-14Commercial Press NEW87Amy Elsner
1040Salvatore E CaudyBrazil2026-08-09Chemel, James L Cpa PROPOSAL14Stephen Shaw
1041Octavia X PerinArgentina2026-08-17Morlong Associates RENEWAL64Ivan Magalhaes
1042Smith V FlosiJapan2026-08-23Morlong Associates UNQUALIFIED38Stephen Shaw
1043Ashley E RimItaly2026-08-06Printing Dimensions UNQUALIFIED25Stephen Shaw
1044Smith Y BologniaUnited Kingdom2026-08-09Feltz Printing Service QUALIFIED52Elwin Sharvill
1045Nicolas R DilliardAustralia2026-08-01Chapman, Ross E Esq RENEWAL82Ioni Bowcher
1046Nicolas G BriddickItaly2026-08-24Rangoni Of Florence RENEWAL89Xuxue Feng
1047Isabel L SergiCanada2026-08-16Commercial Press PROPOSAL59Anna Fali
1048Nicolas O DilliardJapan2026-08-07Chapman, Ross E Esq NEW98Anna Fali
1049Jones D WieserItaly2026-08-13Printing Dimensions NEGOTIATION20Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy G MarrierGermanyAnna Fali NEW
Leja I PaprockiSpainBernardo Dominic PROPOSAL
Ricardo A GarufiJapanIoni Bowcher QUALIFIED
Adams K BologniaJapanAsiya Javayant UNQUALIFIED
Alejandro X RimArgentinaAsiya Javayant RENEWAL
Kadeem Q IturbideCanadaAmy Elsner PROPOSAL
Misaki O AmigonBrazilElwin Sharvill RENEWAL
Claire U RulapaughSpainXuxue Feng PROPOSAL
Ricardo G ChuiBrazilIoni Bowcher UNQUALIFIED
Johnson U BriddickArgentinaElwin Sharvill PROPOSAL
Jones E KuskoArgentinaXuxue Feng UNQUALIFIED
Greenwood S SergiSpainIvan Magalhaes RENEWAL
Misaki K NickaCanadaAnna Fali NEW
Costa O AmigonArgentinaXuxue Feng NEW
Arvin U SlusarskiItalyStephen Shaw UNQUALIFIED
Clifford Y AmigonFranceBernardo Dominic QUALIFIED
Kadeem C RulapaughIndiaAmy Elsner UNQUALIFIED
Adams D NickaSpainAmy Elsner NEGOTIATION
Juan D BologniaGermanyBernardo Dominic PROPOSAL
Chavez B FlosiSpainAmy Elsner NEW
Salvatore K AmigonCanadaXuxue Feng UNQUALIFIED
Emily B AlbaresArgentinaIvan Magalhaes QUALIFIED
Octavia W RimJapanAsiya Javayant RENEWAL
Morrow N CampainIndiaIvan Magalhaes PROPOSAL
Antonio P ShinkoIndiaBernardo Dominic UNQUALIFIED
Adams E MorascaSpainXuxue Feng NEW
Kadeem R MacleadBrazilElwin Sharvill PROPOSAL
Cody H VenereRussiaAnna Fali NEGOTIATION
Misaki Q RimBrazilAmy Elsner UNQUALIFIED
Kadeem W RutaUnited KingdomBernardo Dominic PROPOSAL
Faith D RoysterGermanyStephen Shaw RENEWAL
Greenwood T ButtArgentinaXuxue Feng NEW
Aruna L CaudyCanadaAmy Elsner QUALIFIED
Jones Y VocelkaRussiaIvan Magalhaes QUALIFIED
Jennifer R VocelkaUnited KingdomAsiya Javayant QUALIFIED
Izzy X MacleadIndiaIvan Magalhaes NEW
Leon T TollnerRussiaAmy Elsner UNQUALIFIED
Leja F SlusarskiAustraliaAnna Fali QUALIFIED
James Y NickaIndiaElwin Sharvill NEW
Claire G InouyeFranceIoni Bowcher PROPOSAL
Arvin U PerinRussiaIoni Bowcher QUALIFIED
Costa A NickaBrazilXuxue Feng UNQUALIFIED
Johnson V DoeSpainXuxue Feng PROPOSAL
Ivar P MaletArgentinaBernardo Dominic RENEWAL
Emily Q KolmetzAustraliaStephen Shaw RENEWAL
Antonio P FollerIndiaAnna Fali PROPOSAL
Alejandro R KuskoUnited KingdomAsiya Javayant RENEWAL
Tony E GillianRussiaIoni Bowcher QUALIFIED
Morrow U ChuiJapanIvan Magalhaes NEGOTIATION
Ricardo E RoysterItalyAnna Fali UNQUALIFIED
Frozen Columns
Name
Misaki T Campain
Francesco P Nicka
Smith W Paprocki
Julie P Caudy
Izzy D Nicka
Salvatore K Saylors
Salvatore C Stockham
Costa F Saylors
Jennifer B Caudy
Johnson Z Venere
Aika J Bolognia
Aika K Ruta
Misaki E Glick
Misaki G Waycott
Chavez D Whobrey
Mayumi Z Butt
Rodrigues L Butt
Octavia S Tollner
Maisha Q Flosi
Juan B Amigon
Kaitlin V Gaucho
Leja U Rulapaugh
Chavez M Chui
Johnson S Oldroyd
Aika I Oldroyd
Chavez Y Waycott
Jennifer Q Poquette
Ashley P Gillian
Ricardo M Amigon
Claire A Glick
Alejandro S Stenseth
Claire H Bowley
Aika C Oldroyd
Morrow H Venere
Julie M Iturbide
Kadeem Q Kusko
Mujtaba T Ostrosky
Antonio J Rulapaugh
Cody C Doe
Jennifer I Gillian
Silvio S Gillian
Misaki T Vocelka
Smith A Stenseth
Faith E Gillian
Juan B Shinko
Smith L Caldarera
Johnson D Kusko
Chavez D Rulapaugh
Johnson V Inouye
Aruna N Rulapaugh
IdCountryDate
1000Brazil2026-07-31
1001United Kingdom2026-08-13
1002France2026-08-10
1003Germany2026-08-04
1004Italy2026-08-21
1005Argentina2026-08-06
1006Canada2026-07-31
1007United Kingdom2026-08-27
1008Spain2026-08-24
1009Japan2026-07-31
1010France2026-07-31
1011Canada2026-08-08
1012Australia2026-08-16
1013United Kingdom2026-08-11
1014Spain2026-08-12
1015United Kingdom2026-08-02
1016France2026-08-19
1017Italy2026-08-06
1018France2026-08-02
1019India2026-08-18
1020India2026-07-31
1021Spain2026-08-10
1022India2026-08-22
1023France2026-08-21
1024Russia2026-08-04
1025Italy2026-08-10
1026Russia2026-08-08
1027Spain2026-08-13
1028United Kingdom2026-08-17
1029Argentina2026-08-17
1030Canada2026-08-12
1031Italy2026-08-03
1032Brazil2026-08-26
1033Russia2026-08-28
1034Argentina2026-08-19
1035France2026-08-07
1036Japan2026-08-25
1037India2026-08-06
1038Canada2026-08-17
1039France2026-08-04
1040India2026-08-15
1041France2026-08-10
1042Brazil2026-08-12
1043United Kingdom2026-08-19
1044United Kingdom2026-08-09
1045Japan2026-08-16
1046India2026-07-31
1047Australia2026-08-23
1048Argentina2026-08-14
1049Argentina2026-08-28

On-Demand Data

NameIdCountryDate
Chavez T Whobrey1000India2026-08-12
Nicolas B Dilliard1001Japan2026-08-04
Darci G Rulapaugh1002Argentina2026-08-02
Jefferson T Royster1003India2026-08-13
Alejandro W Ostrosky1004Australia2026-08-23
David X Caldarera1005India2026-08-27
Wickens T Whobrey1006Japan2026-08-09
James K Oldroyd1007Russia2026-08-04
Silvio H Stockham1008Italy2026-08-28
Jones J Kusko1009Russia2026-08-17
Mayumi Z Slusarski1010Russia2026-07-30
Jones H Saylors1011Italy2026-08-25
Greenwood X Campain1012Russia2026-08-03
Morrow Y Ostrosky1013India2026-08-11
Wickens A Shinko1014Spain2026-08-05
Leon S Briddick1015France2026-08-27
Smith Q Paprocki1016Spain2026-08-24
Izzy W Gaucho1017United Kingdom2026-08-10
Claire U Garufi1018United Kingdom2026-08-02
Mujtaba E Malet1019Italy2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon F RimGermanyIoni Bowcher QUALIFIED
Octavia N SaylorsUnited KingdomIoni Bowcher QUALIFIED
Misaki G FigeroaJapanIoni Bowcher PROPOSAL
James T FigeroaCanadaAmy Elsner RENEWAL
Sinclair O NickaRussiaAmy Elsner UNQUALIFIED
Morrow R NestleItalyOnyama Limba NEW
Octavia I RoysterIndiaElwin Sharvill PROPOSAL
Emily D StensethFranceXuxue Feng NEW
Silvio F WieserUnited KingdomAmy Elsner NEW
Munro A DilliardSpainAmy Elsner UNQUALIFIED
Kaitlin G NestleJapanAsiya Javayant QUALIFIED
Kadeem N CaldareraGermanyAmy Elsner RENEWAL
Claire A SlusarskiSpainAmy Elsner NEGOTIATION
Murillo U AlbaresCanadaAnna Fali RENEWAL
Claire C VocelkaRussiaOnyama Limba UNQUALIFIED
Antonio E VenereItalyElwin Sharvill QUALIFIED
Faith Y NickaUnited KingdomXuxue Feng QUALIFIED
Maria Z InouyeUnited KingdomIoni Bowcher UNQUALIFIED
Aika O ShinkoSpainElwin Sharvill RENEWAL
Morrow X SchemmerBrazilStephen Shaw NEGOTIATION
Misaki Q ButtUnited KingdomBernardo Dominic NEW
Aditya H VocelkaJapanIvan Magalhaes PROPOSAL
Wickens D MaletFranceBernardo Dominic UNQUALIFIED
Ashley P FollerIndiaAsiya Javayant NEGOTIATION
Isabel V GlickIndiaAmy Elsner UNQUALIFIED
Kaitlin J TollnerAustraliaElwin Sharvill UNQUALIFIED
Leon L StockhamCanadaXuxue Feng NEW
Chavez T RoysterIndiaOnyama Limba PROPOSAL
Leon B FerenczGermanyXuxue Feng NEW
Wickens A BologniaJapanAmy Elsner NEW
Nicolas Z VenereGermanyOnyama Limba QUALIFIED
James W MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens U FerenczJapanAnna Fali UNQUALIFIED
Aruna M VocelkaIndiaXuxue Feng QUALIFIED
Maria W BriddickFranceAsiya Javayant PROPOSAL
Johnson V GauchoArgentinaIoni Bowcher PROPOSAL
Emily D MaletUnited KingdomOnyama Limba RENEWAL
Francesco K BowleyFranceStephen Shaw RENEWAL
Morrow B SaylorsArgentinaStephen Shaw RENEWAL
Claire D MacleadCanadaAmy Elsner 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>