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
Jennifer V OstroskyCanadaBernardo Dominic QUALIFIED
Adams L CaldareraGermanyIoni Bowcher RENEWAL
Isabel S RoysterAustraliaBernardo Dominic NEGOTIATION
Mayumi H DarakjyBrazilStephen Shaw PROPOSAL
Adams Z VenereBrazilBernardo Dominic RENEWAL
Greenwood A RimFranceBernardo Dominic QUALIFIED
James T CampainRussiaXuxue Feng QUALIFIED
Nicolas Z PaprockiJapanIvan Magalhaes RENEWAL
Chavez Y KuskoItalyBernardo Dominic NEW
Jennifer M MarrierCanadaAsiya Javayant QUALIFIED
Darci C ChuiItalyIvan Magalhaes UNQUALIFIED
Jennifer W VocelkaGermanyStephen Shaw NEW
Octavia E InouyeAustraliaXuxue Feng NEW
Leon F GillianBrazilStephen Shaw UNQUALIFIED
Aruna B OstroskyJapanAsiya Javayant RENEWAL
Faith O PoquetteAustraliaAsiya Javayant QUALIFIED
Julie W CaudyGermanyAnna Fali UNQUALIFIED
Morrow P MorascaArgentinaElwin Sharvill QUALIFIED
Maria P PerinJapanStephen Shaw PROPOSAL
Arvin I FerenczGermanyAsiya Javayant PROPOSAL
Stacey S MorascaBrazilAsiya Javayant PROPOSAL
Cody L GarufiItalyIvan Magalhaes UNQUALIFIED
Rodrigues M ChuiCanadaAnna Fali NEGOTIATION
Aruna Y VocelkaIndiaXuxue Feng QUALIFIED
Johnson Z DilliardItalyXuxue Feng UNQUALIFIED
Arvin V DoeBrazilElwin Sharvill PROPOSAL
Claire J MorascaArgentinaAmy Elsner NEW
Julie P MarrierAustraliaXuxue Feng RENEWAL
Morrow D DilliardItalyAnna Fali UNQUALIFIED
Octavia S StensethUnited KingdomOnyama Limba NEW
Aditya M CaudyJapanStephen Shaw UNQUALIFIED
Emily W PaprockiIndiaXuxue Feng QUALIFIED
Francesco W DoeJapanIvan Magalhaes QUALIFIED
Ricardo H CaldareraFranceAmy Elsner NEW
Izzy C WhobreyIndiaAmy Elsner RENEWAL
Kadeem B DarakjyIndiaAnna Fali QUALIFIED
Greenwood A FigeroaSpainElwin Sharvill QUALIFIED
Maria Y TollnerBrazilBernardo Dominic NEW
Deepesh B SchemmerSpainIoni Bowcher QUALIFIED
Darci R MaletItalyBernardo Dominic NEW
Cody Q RoysterItalyAmy Elsner UNQUALIFIED
Jeanfrancois F OldroydRussiaAnna Fali PROPOSAL
Emily L SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
Jefferson B MorascaRussiaXuxue Feng QUALIFIED
Darci U StockhamUnited KingdomXuxue Feng RENEWAL
Juan K BologniaRussiaIvan Magalhaes QUALIFIED
Jeanfrancois Q VenereItalyIvan Magalhaes PROPOSAL
Clifford D BowleyUnited KingdomBernardo Dominic QUALIFIED
Maria Y SchemmerItalyIvan Magalhaes NEW
Johnson U NestleItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James Y FlosiBrazilAnna Fali NEGOTIATION
Leja S NestleBrazilBernardo Dominic PROPOSAL
Jones R WhobreyFranceAmy Elsner PROPOSAL
Octavia S FlosiArgentinaXuxue Feng NEW
Morrow F PaprockiItalyElwin Sharvill NEGOTIATION
Rodrigues E DoeUnited KingdomXuxue Feng RENEWAL
Kadeem J DoeFranceIvan Magalhaes QUALIFIED
Jones Z GarufiIndiaBernardo Dominic RENEWAL
Antonio Z BologniaIndiaAmy Elsner UNQUALIFIED
Munro W SchemmerGermanyStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar H MacleadItaly2025-06-04Feltz Printing Service RENEWAL60Onyama Limba
1001Sinclair O SergiAustralia2025-05-25Printing Dimensions NEW40Bernardo Dominic
1002Smith X StockhamGermany2025-05-21Commercial Press PROPOSAL54Elwin Sharvill
1003Salvatore I TollnerBrazil2025-06-10Commercial Press NEGOTIATION6Ivan Magalhaes
1004Isabel S StockhamAustralia2025-06-03Chemel, James L Cpa NEW63Ivan Magalhaes
1005Kadeem O AlbaresArgentina2025-05-30King, Christopher A Esq QUALIFIED96Amy Elsner
1006Izzy H NestleGermany2025-06-08Chapman, Ross E Esq NEW15Ivan Magalhaes
1007Jennifer V BriddickGermany2025-05-31Benton, John B Jr RENEWAL92Elwin Sharvill
1008Chavez D ShinkoJapan2025-05-26Morlong Associates QUALIFIED1Bernardo Dominic
1009Mujtaba R MaletRussia2025-05-31Chemel, James L Cpa NEGOTIATION45Ioni Bowcher
1010Misaki F GillianIndia2025-06-10Feltz Printing Service UNQUALIFIED27Onyama Limba
1011Adams G ChuiUnited Kingdom2025-06-02Commercial Press NEW24Amy Elsner
1012Stacey X FerenczFrance2025-06-01Commercial Press RENEWAL11Ioni Bowcher
1013Salvatore H WhobreyGermany2025-05-30Dorl, James J Esq RENEWAL86Xuxue Feng
1014Deepesh A CaudyAustralia2025-05-28Commercial Press RENEWAL0Bernardo Dominic
1015Misaki O BriddickSpain2025-05-26Chapman, Ross E Esq NEGOTIATION9Elwin Sharvill
1016Morrow N DilliardGermany2025-05-27Rousseaux, Michael Esq NEW49Ivan Magalhaes
1017Maisha H VocelkaIndia2025-05-21Truhlar And Truhlar Attys NEW45Elwin Sharvill
1018Juan S FigeroaFrance2025-05-23Chanay, Jeffrey A Esq NEW50Onyama Limba
1019Kaitlin B PaprockiAustralia2025-05-23Feiner Bros NEW6Xuxue Feng
1020Cody P MaletGermany2025-05-31Chapman, Ross E Esq NEW94Amy Elsner
1021Munro S GarufiJapan2025-05-21Chemel, James L Cpa PROPOSAL56Elwin Sharvill
1022Silvio N VenereJapan2025-06-11Chanay, Jeffrey A Esq RENEWAL20Ivan Magalhaes
1023Aruna E OstroskyAustralia2025-05-25Feltz Printing Service UNQUALIFIED72Onyama Limba
1024Silvio E GillianAustralia2025-06-15King, Christopher A Esq NEGOTIATION71Onyama Limba
1025Tony I OstroskyBrazil2025-06-01Chanay, Jeffrey A Esq QUALIFIED63Anna Fali
1026Silvio V ShinkoGermany2025-06-08Rangoni Of Florence NEW40Onyama Limba
1027Octavia P SlusarskiAustralia2025-05-24Benton, John B Jr QUALIFIED68Stephen Shaw
1028Adams R ChuiIndia2025-06-06Commercial Press UNQUALIFIED23Amy Elsner
1029Aruna C SchemmerIndia2025-06-14Feiner Bros QUALIFIED48Amy Elsner
1030Aruna X PaprockiCanada2025-05-25King, Christopher A Esq NEGOTIATION97Asiya Javayant
1031Johnson N NickaGermany2025-06-07Chapman, Ross E Esq PROPOSAL78Amy Elsner
1032Silvio W VenereCanada2025-05-21Commercial Press PROPOSAL18Anna Fali
1033Kaitlin U StensethSpain2025-06-02Feiner Bros NEW90Amy Elsner
1034Aika L RimUnited Kingdom2025-06-10King, Christopher A Esq PROPOSAL73Stephen Shaw
1035Smith N AlbaresCanada2025-06-10Rousseaux, Michael Esq NEW69Amy Elsner
1036Julie N RimUnited Kingdom2025-05-20Rangoni Of Florence PROPOSAL63Anna Fali
1037Deepesh L RimArgentina2025-06-06Feltz Printing Service QUALIFIED35Ivan Magalhaes
1038Mujtaba L RutaItaly2025-05-25Benton, John B Jr PROPOSAL45Bernardo Dominic
1039Mayumi L FlosiSpain2025-05-24Rangoni Of Florence NEW12Ioni Bowcher
1040Wickens T InouyeSpain2025-05-29Feiner Bros PROPOSAL58Anna Fali
1041Silvio L WieserFrance2025-06-16King, Christopher A Esq RENEWAL92Elwin Sharvill
1042Silvio E GauchoBrazil2025-06-12Dorl, James J Esq UNQUALIFIED27Elwin Sharvill
1043Juan V AlbaresIndia2025-06-05Commercial Press UNQUALIFIED98Onyama Limba
1044Tony Q KuskoIndia2025-06-11Chapman, Ross E Esq PROPOSAL59Xuxue Feng
1045James L NickaItaly2025-06-08Rousseaux, Michael Esq RENEWAL76Bernardo Dominic
1046Octavia Q VenereUnited Kingdom2025-06-09Benton, John B Jr PROPOSAL33Bernardo Dominic
1047Silvio Z AlbaresIndia2025-05-31Buckley Miller Wright UNQUALIFIED32Anna Fali
1048Maisha L RimSpain2025-06-04Feiner Bros PROPOSAL36Stephen Shaw
1049James P FerenczCanada2025-06-16Chapman, Ross E Esq QUALIFIED48Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair N DilliardBrazilAsiya Javayant UNQUALIFIED
Chavez A RutaArgentinaIvan Magalhaes NEW
Costa M RutaItalyOnyama Limba UNQUALIFIED
Aditya L KolmetzGermanyElwin Sharvill NEW
Maria A ShinkoAustraliaIvan Magalhaes NEW
Aruna U OldroydFranceIvan Magalhaes RENEWAL
David M SlusarskiFranceIvan Magalhaes PROPOSAL
Izzy S VocelkaGermanyIvan Magalhaes PROPOSAL
Kaitlin O GarufiUnited KingdomOnyama Limba RENEWAL
Nicolas E CampainArgentinaIoni Bowcher QUALIFIED
Sinclair Q WieserUnited KingdomAmy Elsner PROPOSAL
Jones G RulapaughUnited KingdomAsiya Javayant RENEWAL
Darci Z CampainCanadaOnyama Limba RENEWAL
Juan F PoquetteIndiaBernardo Dominic NEGOTIATION
Murillo J DilliardFranceXuxue Feng NEGOTIATION
Costa E FlosiGermanyElwin Sharvill NEW
Ashley S MorascaSpainElwin Sharvill NEGOTIATION
Morrow A CampainItalyStephen Shaw UNQUALIFIED
Tony D RimArgentinaStephen Shaw UNQUALIFIED
Isabel Y StockhamItalyBernardo Dominic NEW
Tony Z CampainSpainXuxue Feng RENEWAL
Morrow L MaletAustraliaElwin Sharvill NEGOTIATION
Silvio F MacleadSpainBernardo Dominic PROPOSAL
Emily J NickaCanadaElwin Sharvill RENEWAL
Sinclair S FigeroaAustraliaAnna Fali PROPOSAL
Maria E BriddickGermanyAnna Fali PROPOSAL
Antonio K DilliardCanadaBernardo Dominic PROPOSAL
Ricardo U RulapaughGermanyAmy Elsner NEW
Aruna L DoeIndiaIvan Magalhaes QUALIFIED
Ricardo V MorascaRussiaStephen Shaw PROPOSAL
Maisha N KolmetzJapanBernardo Dominic UNQUALIFIED
Jefferson J PerinUnited KingdomAmy Elsner UNQUALIFIED
Maisha C CaldareraSpainIvan Magalhaes QUALIFIED
Claire G BologniaBrazilOnyama Limba RENEWAL
Jones N WhobreyFranceAnna Fali RENEWAL
Tony X ChuiBrazilAmy Elsner QUALIFIED
Faith N GarufiGermanyAnna Fali QUALIFIED
Jennifer D RulapaughUnited KingdomAmy Elsner QUALIFIED
Maria J GlickAustraliaAsiya Javayant NEW
Mayumi S SchemmerRussiaStephen Shaw PROPOSAL
Leon S RimJapanStephen Shaw RENEWAL
Greenwood J RutaIndiaAnna Fali NEW
Mayumi K FerenczUnited KingdomXuxue Feng PROPOSAL
Leon U MacleadArgentinaStephen Shaw NEW
Chavez P AlbaresRussiaAsiya Javayant NEGOTIATION
Salvatore Y MaletUnited KingdomAnna Fali NEW
Silvio D CampainUnited KingdomXuxue Feng NEW
Munro N SaylorsIndiaIvan Magalhaes NEW
Juan F ShinkoRussiaXuxue Feng UNQUALIFIED
Aditya Y GillianUnited KingdomAnna Fali QUALIFIED
Frozen Columns
Name
Deepesh T Whobrey
Chavez G Kolmetz
Johnson R Ruta
Aruna Y Royster
Mujtaba Y Waycott
Wickens K Flosi
Ashley V Morasca
Aditya Z Figeroa
Leja F Marrier
Juan X Caudy
Cody N Gaucho
Kadeem E Saylors
Jennifer V Iturbide
Ivar T Gillian
Aika Q Figeroa
Maisha F Figeroa
Rodrigues G Waycott
Maisha K Malet
Darci W Campain
Maisha S Figeroa
Stacey A Malet
Smith Q Nicka
Cody P Marrier
Chavez U Poquette
Antonio I Foller
Maria E Campain
Kaitlin H Flosi
Francesco W Gillian
Maisha J Slusarski
Jeanfrancois C Ostrosky
Emily G Chui
Isabel L Marrier
Wickens D Gillian
Aruna S Saylors
Ashley J Briddick
Adams Z Albares
Kadeem G Albares
Francesco M Royster
Mayumi M Ruta
Claire K Foller
Jefferson W Darakjy
Darci Z Slusarski
Octavia J Inouye
Juan V Oldroyd
Cody P Malet
Wickens Q Bolognia
Cody A Rim
David I Marrier
Maria R Oldroyd
Adams D Bowley
IdCountryDate
1000Brazil2025-05-21
1001Argentina2025-06-12
1002Argentina2025-06-15
1003Brazil2025-06-09
1004Brazil2025-05-21
1005Russia2025-05-31
1006India2025-06-04
1007United Kingdom2025-05-28
1008Brazil2025-06-12
1009Canada2025-06-03
1010France2025-06-07
1011Brazil2025-05-21
1012Italy2025-06-14
1013Spain2025-06-15
1014Italy2025-06-01
1015France2025-05-31
1016India2025-06-08
1017Germany2025-06-08
1018Italy2025-06-11
1019United Kingdom2025-06-16
1020Australia2025-06-13
1021Spain2025-06-01
1022India2025-05-25
1023United Kingdom2025-05-26
1024Brazil2025-05-22
1025Australia2025-05-21
1026Italy2025-05-31
1027Italy2025-05-26
1028Canada2025-05-22
1029France2025-05-29
1030Germany2025-05-26
1031Spain2025-06-05
1032Japan2025-05-27
1033India2025-06-04
1034Brazil2025-06-14
1035Russia2025-05-25
1036India2025-06-07
1037Italy2025-05-29
1038Canada2025-06-08
1039Argentina2025-05-27
1040Spain2025-06-07
1041France2025-06-04
1042Australia2025-06-03
1043Russia2025-05-25
1044Spain2025-06-13
1045Brazil2025-05-30
1046Argentina2025-06-09
1047Italy2025-06-16
1048Brazil2025-06-12
1049Australia2025-05-21

On-Demand Data

NameIdCountryDate
Costa M Iturbide1000Italy2025-06-08
Francesco T Kusko1001Brazil2025-05-22
Sinclair R Kusko1002Brazil2025-05-21
Adams Y Stenseth1003Spain2025-06-04
Sinclair N Garufi1004India2025-06-01
Misaki K Campain1005Italy2025-06-15
Ivar O Gillian1006France2025-06-13
Jefferson H Rulapaugh1007Spain2025-06-06
Mayumi Q Whobrey1008Spain2025-05-30
Emily H Nicka1009Spain2025-06-14
Aruna R Malet1010United Kingdom2025-05-24
Greenwood G Rim1011Canada2025-06-06
Kadeem K Poquette1012United Kingdom2025-06-05
Emily I Malet1013Canada2025-06-08
Munro N Flosi1014Russia2025-06-14
Clifford G Briddick1015Italy2025-05-19
Tony S Caudy1016India2025-05-24
Mayumi O Briddick1017Russia2025-05-25
Rodrigues I Poquette1018India2025-06-06
Ivar K Bowley1019Germany2025-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily K FerenczSpainElwin Sharvill NEW
Ashley K StensethGermanyXuxue Feng NEW
Mayumi O DarakjyCanadaAsiya Javayant RENEWAL
Kaitlin K DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Ricardo S RoysterSpainXuxue Feng QUALIFIED
Alejandro H GlickArgentinaAsiya Javayant NEGOTIATION
Tony X CaudyIndiaAsiya Javayant RENEWAL
Aditya U OldroydGermanyAnna Fali RENEWAL
Ashley L ChuiRussiaIoni Bowcher NEW
Leon N BologniaIndiaBernardo Dominic PROPOSAL
Munro Q RulapaughRussiaIvan Magalhaes PROPOSAL
Jeanfrancois I CaudyCanadaBernardo Dominic UNQUALIFIED
Salvatore O RutaJapanStephen Shaw PROPOSAL
Alejandro I NickaIndiaElwin Sharvill PROPOSAL
Stacey G FlosiJapanXuxue Feng NEW
Emily W MorascaUnited KingdomAnna Fali UNQUALIFIED
Salvatore Z FigeroaBrazilElwin Sharvill UNQUALIFIED
Stacey H PoquetteIndiaBernardo Dominic QUALIFIED
Cody O WhobreyAustraliaAsiya Javayant NEGOTIATION
Isabel A RutaGermanyAmy Elsner UNQUALIFIED
Arvin C StockhamJapanAmy Elsner NEW
Morrow U DoeJapanIvan Magalhaes QUALIFIED
Maria T MaletCanadaAmy Elsner NEW
Sinclair F OldroydUnited KingdomOnyama Limba NEW
Rodrigues G StensethRussiaAsiya Javayant RENEWAL
Juan N WaycottArgentinaAmy Elsner NEGOTIATION
Morrow B BowleyFranceElwin Sharvill NEW
Leon N BologniaGermanyIoni Bowcher QUALIFIED
Emily Q BologniaUnited KingdomAmy Elsner QUALIFIED
Faith X OldroydGermanyStephen Shaw RENEWAL
Chavez X MarrierItalyAsiya Javayant RENEWAL
Morrow V VocelkaArgentinaOnyama Limba PROPOSAL
Aruna V FigeroaUnited KingdomElwin Sharvill PROPOSAL
Nicolas W BowleyArgentinaBernardo Dominic UNQUALIFIED
Maisha B NestleBrazilAnna Fali RENEWAL
Arvin I OstroskyBrazilIvan Magalhaes NEGOTIATION
Kadeem G DarakjyAustraliaStephen Shaw NEW
Maria J DilliardSpainXuxue Feng QUALIFIED
Mujtaba K GarufiUnited KingdomOnyama Limba NEW
Maisha R BowleyIndiaOnyama Limba PROPOSAL

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