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
James J DarakjyArgentinaAmy Elsner NEGOTIATION
Greenwood H OstroskyRussiaAnna Fali NEW
Chavez K CaldareraJapanOnyama Limba NEGOTIATION
Izzy K SaylorsJapanAsiya Javayant NEGOTIATION
Costa Z SergiAustraliaAnna Fali UNQUALIFIED
Cody U PerinArgentinaAsiya Javayant QUALIFIED
Jennifer H WaycottUnited KingdomAsiya Javayant NEW
Silvio N MacleadSpainIvan Magalhaes NEGOTIATION
Murillo X FerenczItalyIvan Magalhaes QUALIFIED
Rodrigues M StockhamBrazilBernardo Dominic NEW
Izzy B ChuiIndiaOnyama Limba QUALIFIED
Aruna V WhobreyFranceXuxue Feng PROPOSAL
Ricardo U MorascaSpainElwin Sharvill NEGOTIATION
Tony U ButtGermanyXuxue Feng NEW
Jennifer B WhobreySpainBernardo Dominic NEW
Morrow N PerinBrazilOnyama Limba QUALIFIED
Ivar K PoquetteSpainAnna Fali NEGOTIATION
Isabel Y NickaBrazilIvan Magalhaes UNQUALIFIED
Aruna Q AmigonSpainBernardo Dominic PROPOSAL
Mujtaba D PerinAustraliaAmy Elsner NEW
Claire D VenereUnited KingdomIoni Bowcher NEGOTIATION
Ashley E GarufiBrazilStephen Shaw NEGOTIATION
Arvin I ShinkoArgentinaAsiya Javayant NEGOTIATION
Ashley F SaylorsAustraliaBernardo Dominic QUALIFIED
Juan Y BologniaArgentinaXuxue Feng PROPOSAL
Aika H MorascaAustraliaAsiya Javayant RENEWAL
Francesco Q RutaSpainOnyama Limba RENEWAL
Cody Q RoysterAustraliaStephen Shaw UNQUALIFIED
Aika V GillianItalyOnyama Limba NEW
Murillo S NickaAustraliaXuxue Feng NEW
Octavia S CaldareraGermanyStephen Shaw QUALIFIED
Maria X NestleGermanyElwin Sharvill NEW
Jeanfrancois X RimArgentinaStephen Shaw NEW
Johnson S OstroskySpainOnyama Limba RENEWAL
Mujtaba R GarufiRussiaXuxue Feng RENEWAL
Costa A SergiItalyBernardo Dominic RENEWAL
Kadeem T BowleyGermanyAnna Fali UNQUALIFIED
Kaitlin Q IturbideJapanIvan Magalhaes PROPOSAL
Sinclair E PoquetteBrazilIvan Magalhaes RENEWAL
Johnson K KolmetzCanadaIvan Magalhaes NEGOTIATION
Murillo P PaprockiSpainIoni Bowcher RENEWAL
Jefferson V CaudyGermanyIvan Magalhaes NEGOTIATION
Faith B MacleadItalyXuxue Feng UNQUALIFIED
Munro V AlbaresAustraliaAsiya Javayant NEGOTIATION
Aruna D ShinkoFranceIvan Magalhaes NEGOTIATION
Jeanfrancois D PerinGermanyElwin Sharvill NEGOTIATION
Morrow Y SlusarskiArgentinaAmy Elsner NEGOTIATION
Jennifer Y SlusarskiSpainAnna Fali QUALIFIED
Leon O RulapaughFranceAnna Fali QUALIFIED
Clifford H TollnerCanadaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Claire M ChuiGermanyAnna Fali NEW
Stacey R MaletFranceAsiya Javayant QUALIFIED
Adams A RutaRussiaAnna Fali RENEWAL
Morrow V FigeroaItalyIvan Magalhaes RENEWAL
Julie R ChuiRussiaIoni Bowcher QUALIFIED
James D SlusarskiIndiaBernardo Dominic UNQUALIFIED
Izzy L FlosiItalyAsiya Javayant UNQUALIFIED
Julie W SchemmerUnited KingdomStephen Shaw NEW
Wickens P AlbaresCanadaIvan Magalhaes NEGOTIATION
Darci H RulapaughBrazilElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro X GillianSpain2026-07-05Morlong Associates QUALIFIED96Stephen Shaw
1001Rodrigues L GillianJapan2026-07-31Buckley Miller Wright PROPOSAL72Ivan Magalhaes
1002Salvatore K ChuiAustralia2026-07-14King, Christopher A Esq RENEWAL49Ioni Bowcher
1003Murillo H CampainAustralia2026-07-19Morlong Associates QUALIFIED34Ivan Magalhaes
1004Julie Y IturbideCanada2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED26Ivan Magalhaes
1005Claire U DilliardSpain2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED77Anna Fali
1006James Q AmigonGermany2026-07-16Printing Dimensions PROPOSAL9Xuxue Feng
1007Leja I WaycottFrance2026-07-08Benton, John B Jr RENEWAL97Ioni Bowcher
1008Isabel Q RoysterItaly2026-07-24Commercial Press NEGOTIATION69Stephen Shaw
1009Adams S PaprockiGermany2026-07-06Morlong Associates UNQUALIFIED30Xuxue Feng
1010Deepesh I GarufiItaly2026-07-14King, Christopher A Esq QUALIFIED58Bernardo Dominic
1011Costa M AmigonSpain2026-07-23Rousseaux, Michael Esq RENEWAL10Stephen Shaw
1012Murillo K DoeIndia2026-07-26Chemel, James L Cpa NEGOTIATION77Elwin Sharvill
1013Misaki K MarrierIndia2026-07-28Commercial Press RENEWAL45Onyama Limba
1014Stacey U MaletItaly2026-07-04Feiner Bros QUALIFIED3Xuxue Feng
1015Mujtaba P FigeroaCanada2026-07-18Benton, John B Jr PROPOSAL28Asiya Javayant
1016Smith O DoeGermany2026-07-25Benton, John B Jr NEGOTIATION1Bernardo Dominic
1017Juan E FlosiIndia2026-07-21Feltz Printing Service QUALIFIED97Xuxue Feng
1018Jones A DarakjySpain2026-07-19Morlong Associates QUALIFIED80Stephen Shaw
1019Tony Y NestleSpain2026-07-07King, Christopher A Esq QUALIFIED63Elwin Sharvill
1020Alejandro A KuskoCanada2026-07-06Dorl, James J Esq RENEWAL57Xuxue Feng
1021Nicolas S RutaItaly2026-07-18Feltz Printing Service NEGOTIATION36Amy Elsner
1022Emily L AmigonAustralia2026-07-16Morlong Associates NEW7Stephen Shaw
1023Misaki D BologniaIndia2026-07-15Printing Dimensions QUALIFIED22Stephen Shaw
1024Wickens V RoysterArgentina2026-07-20King, Christopher A Esq UNQUALIFIED29Amy Elsner
1025Costa P MacleadUnited Kingdom2026-07-19Benton, John B Jr NEGOTIATION30Ivan Magalhaes
1026Ricardo X TollnerGermany2026-07-17Dorl, James J Esq RENEWAL84Ivan Magalhaes
1027Antonio B DarakjyBrazil2026-07-25Rousseaux, Michael Esq NEW18Onyama Limba
1028Nicolas K ShinkoJapan2026-07-29Morlong Associates PROPOSAL86Onyama Limba
1029Ricardo E GauchoIndia2026-07-15Chapman, Ross E Esq UNQUALIFIED52Onyama Limba
1030Misaki A OldroydCanada2026-07-07Benton, John B Jr RENEWAL74Ivan Magalhaes
1031Silvio K StockhamBrazil2026-07-23Commercial Press RENEWAL6Bernardo Dominic
1032Juan C DarakjySpain2026-07-22Benton, John B Jr NEW90Onyama Limba
1033Wickens H VenereBrazil2026-07-03Rousseaux, Michael Esq PROPOSAL5Asiya Javayant
1034Salvatore Q BowleyItaly2026-07-16Truhlar And Truhlar Attys QUALIFIED19Amy Elsner
1035Izzy E KolmetzAustralia2026-07-19Dorl, James J Esq RENEWAL40Ioni Bowcher
1036Clifford D NestleIndia2026-07-21Commercial Press NEW77Xuxue Feng
1037Izzy U WhobreyGermany2026-07-15Morlong Associates RENEWAL75Onyama Limba
1038Aditya C KuskoIndia2026-07-11Buckley Miller Wright NEW96Onyama Limba
1039James X InouyeUnited Kingdom2026-07-19King, Christopher A Esq NEGOTIATION87Ivan Magalhaes
1040Maisha J BologniaJapan2026-07-14Truhlar And Truhlar Attys NEW11Bernardo Dominic
1041Nicolas T StensethJapan2026-07-31Feiner Bros UNQUALIFIED70Amy Elsner
1042Salvatore C OstroskyUnited Kingdom2026-07-11Chapman, Ross E Esq QUALIFIED81Xuxue Feng
1043Octavia V MaletArgentina2026-07-28Truhlar And Truhlar Attys QUALIFIED90Ivan Magalhaes
1044Juan N RulapaughFrance2026-07-10Dorl, James J Esq RENEWAL1Ivan Magalhaes
1045Sinclair M CaldareraUnited Kingdom2026-07-11Commercial Press QUALIFIED75Amy Elsner
1046Misaki D VenereCanada2026-07-08Chemel, James L Cpa NEW88Amy Elsner
1047James M FerenczSpain2026-07-13Buckley Miller Wright NEGOTIATION50Onyama Limba
1048Isabel E CaldareraUnited Kingdom2026-07-03Buckley Miller Wright UNQUALIFIED97Stephen Shaw
1049Nicolas R MorascaItaly2026-07-23Printing Dimensions RENEWAL48Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy X TollnerRussiaIvan Magalhaes NEW
James Q CaldareraFranceStephen Shaw QUALIFIED
Julie M GillianUnited KingdomElwin Sharvill NEGOTIATION
Misaki Z OstroskyArgentinaIoni Bowcher UNQUALIFIED
Darci Z WieserIndiaAnna Fali PROPOSAL
Ivar G FlosiRussiaAsiya Javayant NEW
Ivar B OldroydRussiaXuxue Feng RENEWAL
Greenwood O VenereBrazilXuxue Feng PROPOSAL
Mujtaba T WieserRussiaIoni Bowcher UNQUALIFIED
Sinclair Z GarufiFranceIoni Bowcher UNQUALIFIED
Mayumi D OstroskyAustraliaAmy Elsner RENEWAL
Maisha N WaycottItalyStephen Shaw QUALIFIED
Emily E AmigonArgentinaOnyama Limba UNQUALIFIED
Aruna X WhobreyFranceAnna Fali QUALIFIED
Mujtaba Z DoeUnited KingdomIvan Magalhaes NEGOTIATION
Izzy U WieserCanadaAnna Fali QUALIFIED
Antonio T WieserFranceIvan Magalhaes NEW
James E SlusarskiJapanAmy Elsner QUALIFIED
Kaitlin K AlbaresIndiaXuxue Feng NEGOTIATION
Ashley E FlosiBrazilStephen Shaw PROPOSAL
Murillo F RimBrazilElwin Sharvill UNQUALIFIED
Greenwood K InouyeArgentinaAsiya Javayant RENEWAL
Julie P InouyeIndiaIoni Bowcher UNQUALIFIED
Leja C FerenczRussiaAmy Elsner UNQUALIFIED
Maisha T WieserBrazilAnna Fali RENEWAL
Maria K FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
David U CaudyJapanBernardo Dominic RENEWAL
Murillo K FollerFranceBernardo Dominic NEGOTIATION
Claire O OldroydRussiaOnyama Limba NEW
Misaki O IturbideArgentinaIoni Bowcher QUALIFIED
Claire B GillianBrazilElwin Sharvill NEW
Leon K StensethSpainIoni Bowcher QUALIFIED
Salvatore B BriddickArgentinaAsiya Javayant UNQUALIFIED
Leja W FollerJapanAnna Fali UNQUALIFIED
Juan C DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Ivar P ButtSpainOnyama Limba NEW
Darci J RimJapanBernardo Dominic RENEWAL
Clifford U AlbaresArgentinaIoni Bowcher NEW
Mujtaba U TollnerCanadaElwin Sharvill NEGOTIATION
Claire Z RimIndiaBernardo Dominic NEW
Kaitlin I PaprockiFranceAmy Elsner QUALIFIED
Tony T DoeArgentinaBernardo Dominic NEGOTIATION
Leon H SlusarskiFranceAsiya Javayant UNQUALIFIED
Octavia O DilliardGermanyIoni Bowcher NEGOTIATION
Wickens Q ChuiAustraliaAsiya Javayant PROPOSAL
Kaitlin T GillianIndiaOnyama Limba QUALIFIED
Stacey K TollnerIndiaAnna Fali UNQUALIFIED
Leja Q DilliardItalyOnyama Limba RENEWAL
Ivar Y OldroydItalyAnna Fali NEW
Salvatore Q RimCanadaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Francesco P Caldarera
Jennifer I Venere
Aika P Bolognia
Jefferson F Vocelka
Greenwood C Glick
Juan V Stockham
Silvio K Whobrey
Misaki A Poquette
Smith P Nicka
Izzy L Amigon
Darci N Glick
Munro Z Malet
Clifford L Foller
Ivar L Figeroa
Ricardo C Marrier
Arvin K Bowley
Emily H Paprocki
Ivar U Flosi
Mujtaba G Ruta
Nicolas V Stenseth
Faith U Maclead
Antonio E Butt
Ashley T Caudy
Leja G Rulapaugh
Ashley M Tollner
Misaki J Flosi
Francesco H Flosi
Sinclair S Schemmer
Isabel M Schemmer
Emily W Marrier
Deepesh H Waycott
Maria K Royster
Leon A Kolmetz
Salvatore D Garufi
Octavia F Figeroa
Alejandro W Perin
Morrow A Paprocki
Antonio O Foller
Maria C Caudy
Clifford R Schemmer
Munro H Campain
Adams T Inouye
Alejandro I Ferencz
Mujtaba R Rim
Deepesh O Royster
Octavia U Stenseth
Nicolas H Garufi
Deepesh X Ostrosky
Darci F Garufi
Munro R Glick
IdCountryDate
1000United Kingdom2026-07-05
1001Argentina2026-07-10
1002Spain2026-07-27
1003India2026-07-09
1004Japan2026-07-16
1005Russia2026-07-04
1006Spain2026-07-11
1007Canada2026-07-14
1008Japan2026-07-30
1009Germany2026-07-07
1010Germany2026-07-03
1011Japan2026-07-17
1012Argentina2026-07-08
1013India2026-07-13
1014India2026-07-11
1015Japan2026-07-17
1016France2026-07-18
1017Brazil2026-07-15
1018Brazil2026-07-24
1019Argentina2026-07-09
1020Japan2026-07-25
1021Russia2026-07-03
1022United Kingdom2026-07-17
1023France2026-07-21
1024France2026-07-08
1025Russia2026-07-13
1026Argentina2026-07-18
1027United Kingdom2026-07-06
1028Japan2026-07-27
1029Italy2026-08-01
1030Spain2026-07-20
1031France2026-07-15
1032Germany2026-07-21
1033Russia2026-07-14
1034France2026-07-28
1035Spain2026-07-15
1036Argentina2026-07-13
1037India2026-07-11
1038Australia2026-07-27
1039France2026-07-06
1040United Kingdom2026-07-14
1041Japan2026-07-31
1042Australia2026-07-10
1043Russia2026-07-12
1044United Kingdom2026-07-16
1045Canada2026-07-13
1046Russia2026-07-21
1047United Kingdom2026-07-12
1048United Kingdom2026-07-04
1049Argentina2026-07-22

On-Demand Data

NameIdCountryDate
Aika Y Butt1000Germany2026-07-24
Sinclair P Paprocki1001Brazil2026-07-22
Jeanfrancois R Figeroa1002United Kingdom2026-07-12
Aika G Perin1003Germany2026-07-03
Claire Q Wieser1004France2026-07-03
Isabel L Rim1005India2026-07-17
Leon Y Caudy1006France2026-07-19
Jennifer S Glick1007Brazil2026-07-08
Jennifer T Gaucho1008Japan2026-07-26
Ricardo B Morasca1009Spain2026-07-23
Kadeem J Garufi1010France2026-07-24
Francesco B Marrier1011Canada2026-07-06
Mayumi A Amigon1012France2026-07-29
Stacey W Ruta1013Argentina2026-07-22
Clifford D Ostrosky1014Japan2026-07-29
Tony W Kusko1015Italy2026-07-26
Greenwood G Foller1016Brazil2026-07-14
Sinclair T Saylors1017India2026-07-07
Jefferson A Rulapaugh1018Canada2026-08-01
Aika W Flosi1019Spain2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin P DilliardGermanyBernardo Dominic UNQUALIFIED
Faith B VocelkaFranceOnyama Limba PROPOSAL
Emily V StensethCanadaAnna Fali NEGOTIATION
Clifford N GlickFranceElwin Sharvill RENEWAL
Tony X WaycottJapanOnyama Limba RENEWAL
Nicolas E KuskoCanadaIoni Bowcher NEW
Chavez R BriddickIndiaIvan Magalhaes UNQUALIFIED
Aditya F MarrierGermanyElwin Sharvill PROPOSAL
Claire V DarakjyArgentinaBernardo Dominic NEW
Julie F TollnerUnited KingdomAmy Elsner RENEWAL
Smith P FigeroaCanadaXuxue Feng QUALIFIED
Misaki T MorascaSpainAmy Elsner NEGOTIATION
Kadeem S KolmetzJapanElwin Sharvill UNQUALIFIED
Ricardo E NestleGermanyStephen Shaw QUALIFIED
Adams U ButtCanadaIvan Magalhaes PROPOSAL
Mayumi K OldroydItalyAsiya Javayant PROPOSAL
Ricardo Q RoysterCanadaOnyama Limba NEW
Chavez W MaletRussiaIvan Magalhaes PROPOSAL
Aruna K MacleadAustraliaBernardo Dominic RENEWAL
Cody K DoeAustraliaStephen Shaw PROPOSAL
Alejandro Y RimFranceXuxue Feng NEW
Chavez V FlosiAustraliaIoni Bowcher NEW
Francesco E MaletBrazilXuxue Feng NEGOTIATION
Leja A MaletCanadaAmy Elsner PROPOSAL
Claire G CaudyJapanXuxue Feng PROPOSAL
Tony K WaycottCanadaBernardo Dominic UNQUALIFIED
Cody F OldroydIndiaIvan Magalhaes PROPOSAL
Octavia D BriddickArgentinaAmy Elsner NEGOTIATION
Morrow R NickaUnited KingdomBernardo Dominic NEW
Ivar P KolmetzRussiaOnyama Limba UNQUALIFIED
Deepesh X DilliardIndiaXuxue Feng RENEWAL
Silvio T AmigonSpainXuxue Feng RENEWAL
Jones E NickaGermanyIoni Bowcher RENEWAL
Arvin S DilliardIndiaXuxue Feng PROPOSAL
Jeanfrancois A VenereSpainIoni Bowcher UNQUALIFIED
Antonio X KuskoRussiaOnyama Limba NEW
Aika V SaylorsAustraliaBernardo Dominic QUALIFIED
Costa O GauchoSpainElwin Sharvill QUALIFIED
Izzy V RulapaughAustraliaAsiya Javayant UNQUALIFIED
Antonio D FerenczBrazilAnna Fali NEW

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