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
Misaki A KuskoIndiaStephen Shaw UNQUALIFIED
Ivar U SergiSpainStephen Shaw NEW
Salvatore N OldroydGermanyAmy Elsner PROPOSAL
Kaitlin R DilliardArgentinaBernardo Dominic RENEWAL
Isabel D CaldareraCanadaAsiya Javayant RENEWAL
Mujtaba X GarufiAustraliaXuxue Feng RENEWAL
Salvatore B ButtGermanyXuxue Feng PROPOSAL
Aika G BowleyIndiaAnna Fali NEGOTIATION
Sinclair U MorascaRussiaXuxue Feng NEGOTIATION
Jefferson H MorascaUnited KingdomStephen Shaw RENEWAL
Octavia K PerinGermanyStephen Shaw QUALIFIED
Faith T CampainGermanyXuxue Feng QUALIFIED
Deepesh B BriddickJapanIoni Bowcher NEGOTIATION
David M MaletUnited KingdomAnna Fali RENEWAL
Aditya B SaylorsCanadaOnyama Limba UNQUALIFIED
Faith B InouyeAustraliaIvan Magalhaes QUALIFIED
Munro K SergiFranceBernardo Dominic UNQUALIFIED
Wickens S InouyeBrazilAnna Fali PROPOSAL
Clifford Q CampainRussiaAmy Elsner NEGOTIATION
Faith B MacleadArgentinaOnyama Limba RENEWAL
Misaki Y GauchoBrazilBernardo Dominic NEGOTIATION
Ivar S InouyeSpainAnna Fali NEW
Leja X OstroskyItalyIoni Bowcher RENEWAL
Deepesh U RulapaughSpainAmy Elsner QUALIFIED
Rodrigues C KolmetzIndiaAnna Fali NEGOTIATION
Morrow E VocelkaFranceElwin Sharvill UNQUALIFIED
Leja K MacleadRussiaAsiya Javayant NEGOTIATION
Jones Z ChuiArgentinaOnyama Limba NEW
Mujtaba V NickaFranceIvan Magalhaes QUALIFIED
Antonio F MarrierGermanyBernardo Dominic QUALIFIED
Jennifer Z RoysterRussiaBernardo Dominic NEGOTIATION
Costa I ButtCanadaElwin Sharvill NEW
Leon B ShinkoBrazilOnyama Limba NEW
Aika W VenereArgentinaIvan Magalhaes NEGOTIATION
Kadeem F OldroydFranceAnna Fali PROPOSAL
Claire M FlosiJapanIvan Magalhaes QUALIFIED
Ricardo Q BriddickRussiaBernardo Dominic QUALIFIED
Kadeem Z SergiSpainAsiya Javayant RENEWAL
Aruna L MorascaArgentinaXuxue Feng NEW
Mujtaba X GauchoAustraliaAmy Elsner NEW
Costa V StockhamItalyIvan Magalhaes QUALIFIED
James R ChuiRussiaIvan Magalhaes NEGOTIATION
Leja Y RutaJapanAnna Fali UNQUALIFIED
Aika N MarrierArgentinaIvan Magalhaes PROPOSAL
Faith H StockhamGermanyStephen Shaw NEW
Costa T MarrierJapanElwin Sharvill NEGOTIATION
Mujtaba O SchemmerSpainAsiya Javayant NEW
Alejandro N KuskoFranceBernardo Dominic UNQUALIFIED
Munro Y FerenczIndiaBernardo Dominic QUALIFIED
Misaki X NestleItalyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Ivar M InouyeItalyBernardo Dominic PROPOSAL
Juan I RutaJapanAnna Fali QUALIFIED
Costa S CaudyArgentinaOnyama Limba QUALIFIED
Clifford B MorascaCanadaElwin Sharvill UNQUALIFIED
Maria Y StensethCanadaStephen Shaw NEGOTIATION
Jones T KuskoCanadaOnyama Limba QUALIFIED
Ricardo X FlosiArgentinaElwin Sharvill RENEWAL
Aditya D VocelkaJapanIvan Magalhaes UNQUALIFIED
James T SchemmerRussiaXuxue Feng RENEWAL
Alejandro W AlbaresCanadaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas D MaletSpain2026-07-23Morlong Associates QUALIFIED26Xuxue Feng
1001Murillo K OstroskyItaly2026-07-23Feiner Bros RENEWAL40Ivan Magalhaes
1002Darci B SergiFrance2026-07-04Morlong Associates RENEWAL87Asiya Javayant
1003Jones V GarufiBrazil2026-07-17King, Christopher A Esq UNQUALIFIED75Amy Elsner
1004James O RutaIndia2026-07-09Dorl, James J Esq QUALIFIED70Amy Elsner
1005Ivar L PoquetteIndia2026-07-02Printing Dimensions RENEWAL73Xuxue Feng
1006Aditya D DarakjyItaly2026-06-30Morlong Associates RENEWAL66Ioni Bowcher
1007Johnson F OstroskyRussia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED51Xuxue Feng
1008Tony C GarufiFrance2026-07-10King, Christopher A Esq NEW56Xuxue Feng
1009Jones J SaylorsAustralia2026-07-22Chanay, Jeffrey A Esq RENEWAL95Amy Elsner
1010Jones M DarakjyFrance2026-07-08Feiner Bros NEW96Ivan Magalhaes
1011Adams Y PerinUnited Kingdom2026-07-03Benton, John B Jr UNQUALIFIED69Bernardo Dominic
1012Jefferson B BriddickUnited Kingdom2026-07-21Commercial Press RENEWAL22Amy Elsner
1013Aruna N MaletBrazil2026-07-08Morlong Associates QUALIFIED2Onyama Limba
1014Cody X RoysterSpain2026-06-27Buckley Miller Wright RENEWAL99Amy Elsner
1015Jennifer E CampainJapan2026-06-28Feiner Bros NEGOTIATION67Asiya Javayant
1016Rodrigues M MaletFrance2026-07-15Chemel, James L Cpa QUALIFIED49Stephen Shaw
1017Kaitlin W GarufiCanada2026-07-11Truhlar And Truhlar Attys UNQUALIFIED25Onyama Limba
1018Mujtaba S IturbideArgentina2026-07-08Feiner Bros NEW87Asiya Javayant
1019Antonio A PoquetteSpain2026-07-04Feltz Printing Service UNQUALIFIED68Stephen Shaw
1020Francesco K TollnerJapan2026-06-27King, Christopher A Esq NEGOTIATION71Ioni Bowcher
1021Kadeem L AlbaresBrazil2026-07-22Dorl, James J Esq PROPOSAL12Xuxue Feng
1022Nicolas T PoquetteAustralia2026-07-01Feltz Printing Service QUALIFIED2Anna Fali
1023Deepesh D FollerBrazil2026-07-08Chanay, Jeffrey A Esq PROPOSAL62Anna Fali
1024Silvio X BowleyAustralia2026-07-23Chemel, James L Cpa PROPOSAL26Onyama Limba
1025Silvio M RulapaughCanada2026-07-07Rangoni Of Florence UNQUALIFIED88Onyama Limba
1026Ivar D SergiUnited Kingdom2026-06-29Truhlar And Truhlar Attys RENEWAL84Bernardo Dominic
1027Deepesh Q WaycottSpain2026-07-14King, Christopher A Esq PROPOSAL32Ivan Magalhaes
1028Mayumi B NestleIndia2026-07-22King, Christopher A Esq NEGOTIATION76Xuxue Feng
1029Sinclair N GlickItaly2026-07-03Dorl, James J Esq UNQUALIFIED11Elwin Sharvill
1030Jeanfrancois P DarakjyGermany2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED82Bernardo Dominic
1031Maisha D OldroydItaly2026-07-15Truhlar And Truhlar Attys NEGOTIATION33Onyama Limba
1032Ivar G VenereRussia2026-07-19Chapman, Ross E Esq QUALIFIED44Stephen Shaw
1033Alejandro L FigeroaItaly2026-06-26Morlong Associates RENEWAL28Stephen Shaw
1034Kaitlin F CampainBrazil2026-07-06Printing Dimensions RENEWAL29Bernardo Dominic
1035Morrow N CampainSpain2026-07-07Benton, John B Jr PROPOSAL4Xuxue Feng
1036Deepesh C FigeroaUnited Kingdom2026-07-11Commercial Press QUALIFIED78Elwin Sharvill
1037Claire C CaldareraGermany2026-07-21Commercial Press UNQUALIFIED92Bernardo Dominic
1038Darci S SchemmerArgentina2026-07-04Commercial Press QUALIFIED47Ioni Bowcher
1039Morrow P ButtRussia2026-07-01Benton, John B Jr NEGOTIATION82Stephen Shaw
1040Rodrigues Y WieserAustralia2026-07-08Printing Dimensions UNQUALIFIED98Anna Fali
1041Morrow V DoeGermany2026-06-28Rangoni Of Florence UNQUALIFIED47Ioni Bowcher
1042Clifford M CaldareraRussia2026-06-29Chemel, James L Cpa QUALIFIED37Bernardo Dominic
1043Clifford N VenereIndia2026-06-29Dorl, James J Esq QUALIFIED89Ivan Magalhaes
1044Silvio O FollerIndia2026-06-25Chemel, James L Cpa NEW18Amy Elsner
1045Clifford S SlusarskiIndia2026-07-01Morlong Associates UNQUALIFIED8Xuxue Feng
1046Aika N PerinJapan2026-07-15Dorl, James J Esq QUALIFIED22Onyama Limba
1047Darci J BologniaAustralia2026-07-15Rousseaux, Michael Esq RENEWAL53Xuxue Feng
1048Maisha T SlusarskiArgentina2026-07-24King, Christopher A Esq NEW49Amy Elsner
1049Greenwood Q PoquetteBrazil2026-07-02Printing Dimensions RENEWAL6Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Costa V IturbideRussiaElwin Sharvill RENEWAL
Ashley R InouyeUnited KingdomAmy Elsner QUALIFIED
Jones I RulapaughFranceAmy Elsner RENEWAL
Leon O KolmetzIndiaAnna Fali QUALIFIED
Kadeem N SaylorsArgentinaIoni Bowcher RENEWAL
Juan R OstroskyItalyIvan Magalhaes NEGOTIATION
Salvatore U VocelkaRussiaIvan Magalhaes NEGOTIATION
Costa V AlbaresJapanIvan Magalhaes RENEWAL
Adams Z TollnerGermanyAsiya Javayant QUALIFIED
Kadeem S AmigonCanadaElwin Sharvill NEW
Morrow C GauchoSpainAmy Elsner PROPOSAL
Antonio T RoysterSpainOnyama Limba NEW
Wickens D AlbaresIndiaStephen Shaw QUALIFIED
Jones D MaletFranceElwin Sharvill RENEWAL
Jeanfrancois F SlusarskiIndiaElwin Sharvill NEW
Francesco Z MaletGermanyBernardo Dominic QUALIFIED
Claire A MorascaAustraliaOnyama Limba QUALIFIED
Murillo D AmigonItalyIvan Magalhaes PROPOSAL
Chavez G AlbaresBrazilAnna Fali RENEWAL
Maisha H MacleadBrazilXuxue Feng UNQUALIFIED
Costa N IturbideCanadaBernardo Dominic NEW
Claire L StensethGermanyIvan Magalhaes RENEWAL
Clifford J AmigonIndiaStephen Shaw NEW
Kaitlin K ChuiArgentinaBernardo Dominic NEW
Munro M FlosiFranceIoni Bowcher NEGOTIATION
Faith R DoeFranceXuxue Feng PROPOSAL
Aruna Y RimArgentinaStephen Shaw UNQUALIFIED
Adams D FerenczBrazilAnna Fali RENEWAL
Leja U NickaRussiaOnyama Limba PROPOSAL
Jennifer O RoysterCanadaAsiya Javayant QUALIFIED
Kadeem R MaletAustraliaBernardo Dominic PROPOSAL
Rodrigues V GauchoAustraliaOnyama Limba PROPOSAL
Kaitlin X SergiArgentinaAsiya Javayant NEW
Arvin O ShinkoAustraliaBernardo Dominic UNQUALIFIED
Faith N TollnerItalyElwin Sharvill NEW
Claire V RutaItalyIvan Magalhaes NEGOTIATION
Adams B VocelkaRussiaStephen Shaw NEW
Sinclair W CaudyFranceAsiya Javayant NEW
Aruna V DarakjyGermanyBernardo Dominic QUALIFIED
Maria D SlusarskiRussiaXuxue Feng UNQUALIFIED
Izzy Z WhobreyItalyIoni Bowcher NEGOTIATION
Octavia J PerinRussiaIoni Bowcher QUALIFIED
Octavia E FlosiArgentinaIoni Bowcher RENEWAL
Kaitlin Y MaletSpainElwin Sharvill PROPOSAL
Misaki M GillianGermanyIvan Magalhaes QUALIFIED
Alejandro A SergiCanadaIvan Magalhaes NEGOTIATION
Jefferson U ChuiCanadaIvan Magalhaes PROPOSAL
Leja C RimUnited KingdomAsiya Javayant PROPOSAL
Johnson B BowleyRussiaAnna Fali NEW
Jefferson D OstroskyJapanIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Adams O Chui
Chavez G Figeroa
Salvatore I Chui
Tony Y Vocelka
Jefferson A Slusarski
Aika U Iturbide
Claire Q Schemmer
Ashley V Flosi
Deepesh G Figeroa
James L Amigon
Sinclair G Amigon
Aditya X Dilliard
James X Perin
David M Chui
Julie D Ferencz
David E Chui
Clifford W Kusko
Emily D Gillian
Francesco L Schemmer
Faith T Poquette
Leja W Kusko
Aika A Doe
Silvio X Foller
Aditya E Rulapaugh
Murillo J Kolmetz
Aditya K Garufi
Ashley C Royster
Deepesh Y Wieser
Jeanfrancois U Poquette
Aruna U Kusko
Nicolas V Nicka
David K Kolmetz
Rodrigues U Nestle
Greenwood F Rulapaugh
Kadeem I Dilliard
Deepesh I Bowley
Tony A Dilliard
Juan I Malet
Stacey Q Tollner
Faith X Paprocki
Clifford C Oldroyd
Aika H Malet
Jeanfrancois J Chui
Jennifer U Vocelka
Clifford D Vocelka
Costa Q Saylors
Jennifer Z Perin
Deepesh S Morasca
Emily V Ruta
Sinclair X Nestle
IdCountryDate
1000France2026-07-11
1001India2026-07-10
1002Canada2026-06-27
1003Argentina2026-07-07
1004India2026-06-26
1005Brazil2026-06-25
1006Canada2026-07-24
1007United Kingdom2026-07-18
1008Russia2026-07-06
1009Japan2026-06-30
1010Japan2026-06-27
1011Russia2026-07-22
1012United Kingdom2026-07-09
1013United Kingdom2026-07-03
1014Italy2026-07-17
1015Italy2026-07-22
1016Spain2026-07-14
1017Russia2026-07-19
1018Italy2026-07-08
1019Germany2026-07-10
1020France2026-07-24
1021Italy2026-07-23
1022Russia2026-07-05
1023Spain2026-07-21
1024Spain2026-07-21
1025Argentina2026-06-25
1026Argentina2026-06-26
1027France2026-07-23
1028Germany2026-06-29
1029United Kingdom2026-07-06
1030Australia2026-06-27
1031Germany2026-07-18
1032Germany2026-07-19
1033Italy2026-07-04
1034France2026-07-21
1035Germany2026-07-17
1036Italy2026-06-28
1037India2026-07-04
1038India2026-07-06
1039France2026-06-27
1040Japan2026-07-05
1041Brazil2026-06-26
1042Brazil2026-07-21
1043Argentina2026-07-20
1044India2026-07-24
1045Japan2026-07-24
1046United Kingdom2026-06-30
1047Italy2026-07-24
1048Italy2026-07-21
1049Argentina2026-07-06

On-Demand Data

NameIdCountryDate
Deepesh X Bolognia1000Germany2026-07-23
Misaki T Briddick1001United Kingdom2026-07-13
Juan K Iturbide1002Brazil2026-06-29
Morrow T Chui1003India2026-07-16
Arvin R Perin1004Brazil2026-07-01
Izzy B Royster1005Brazil2026-07-10
Arvin C Paprocki1006Germany2026-07-03
Maria N Royster1007Argentina2026-07-01
Clifford C Bolognia1008United Kingdom2026-07-18
Izzy N Briddick1009Japan2026-07-05
Stacey I Figeroa1010Australia2026-07-15
Deepesh F Ferencz1011Brazil2026-06-27
Mujtaba V Figeroa1012Italy2026-07-20
Rodrigues J Inouye1013France2026-07-05
Nicolas O Foller1014Germany2026-07-07
Mayumi G Marrier1015Australia2026-06-26
Deepesh M Oldroyd1016Germany2026-06-30
Misaki P Rim1017France2026-07-03
Murillo W Glick1018Russia2026-07-22
Adams V Amigon1019Spain2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois J StockhamAustraliaIvan Magalhaes UNQUALIFIED
Jefferson G FerenczSpainXuxue Feng PROPOSAL
Jones N ChuiFranceBernardo Dominic PROPOSAL
Tony M NestleAustraliaBernardo Dominic RENEWAL
Claire U ShinkoUnited KingdomAsiya Javayant NEW
Faith D CaldareraRussiaAsiya Javayant QUALIFIED
Octavia V StockhamCanadaIvan Magalhaes PROPOSAL
Aika Y RimFranceElwin Sharvill RENEWAL
Stacey X AlbaresCanadaIoni Bowcher NEW
Misaki B StockhamCanadaAnna Fali QUALIFIED
Deepesh Q CampainArgentinaBernardo Dominic NEW
Juan C GillianJapanAmy Elsner RENEWAL
Mujtaba Y StensethUnited KingdomAnna Fali NEGOTIATION
Cody T CaudyCanadaIoni Bowcher NEW
Jennifer Z PoquetteItalyBernardo Dominic UNQUALIFIED
Maisha C PaprockiIndiaAmy Elsner PROPOSAL
Salvatore O AmigonFranceXuxue Feng QUALIFIED
Izzy I KuskoCanadaAmy Elsner RENEWAL
Juan P FigeroaAustraliaElwin Sharvill NEW
Jones E DilliardItalyXuxue Feng QUALIFIED
Francesco J FigeroaBrazilAsiya Javayant UNQUALIFIED
Claire I BowleyItalyBernardo Dominic RENEWAL
Deepesh I FollerAustraliaOnyama Limba QUALIFIED
Faith Y InouyeItalyAmy Elsner NEGOTIATION
Murillo L DoeIndiaStephen Shaw RENEWAL
Salvatore P DarakjyItalyOnyama Limba QUALIFIED
Silvio X NestleIndiaIoni Bowcher NEGOTIATION
Aika V RutaFranceAsiya Javayant RENEWAL
Nicolas O MaletItalyElwin Sharvill QUALIFIED
Ashley G PaprockiFranceAsiya Javayant NEW
Clifford A MaletRussiaXuxue Feng RENEWAL
Darci J StockhamCanadaIoni Bowcher NEGOTIATION
Jennifer M StensethArgentinaAmy Elsner NEW
Jennifer G MacleadCanadaBernardo Dominic UNQUALIFIED
Kadeem U SlusarskiCanadaAnna Fali NEW
Izzy L OstroskySpainElwin Sharvill UNQUALIFIED
Sinclair H WaycottArgentinaBernardo Dominic NEW
Darci F MaletSpainAnna Fali NEGOTIATION
Maisha E MorascaRussiaAsiya Javayant QUALIFIED
Mujtaba L SaylorsAustraliaAnna Fali 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>