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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Isabel F MaletJapanBernardo Dominic NEGOTIATION
Arvin Z CampainJapanIoni Bowcher NEGOTIATION
Ivar M RimItalyBernardo Dominic RENEWAL
Greenwood O ShinkoBrazilXuxue Feng UNQUALIFIED
Greenwood J RoysterSpainXuxue Feng RENEWAL
Antonio V PerinIndiaIoni Bowcher PROPOSAL
Aika C FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Salvatore R CampainIndiaStephen Shaw QUALIFIED
Mujtaba G OstroskyJapanIoni Bowcher NEGOTIATION
Francesco G GarufiItalyIoni Bowcher NEW
Mayumi X DilliardArgentinaBernardo Dominic PROPOSAL
Alejandro A MarrierJapanAmy Elsner NEGOTIATION
Octavia C KolmetzCanadaBernardo Dominic NEGOTIATION
Emily M FigeroaGermanyIvan Magalhaes QUALIFIED
Faith N FerenczCanadaOnyama Limba UNQUALIFIED
Salvatore A GlickJapanStephen Shaw PROPOSAL
Smith A SchemmerFranceAnna Fali NEGOTIATION
Morrow L GlickRussiaOnyama Limba NEGOTIATION
Jennifer J SchemmerArgentinaStephen Shaw PROPOSAL
Misaki S KolmetzRussiaIvan Magalhaes RENEWAL
Mayumi N InouyeGermanyIoni Bowcher QUALIFIED
Adams X StockhamGermanyIoni Bowcher NEW
Octavia O WieserGermanyIvan Magalhaes NEGOTIATION
Jennifer N SchemmerAustraliaOnyama Limba UNQUALIFIED
Emily B KolmetzRussiaAmy Elsner PROPOSAL
Maria D StensethAustraliaElwin Sharvill QUALIFIED
Kaitlin P CampainIndiaBernardo Dominic PROPOSAL
Claire B KuskoBrazilIvan Magalhaes QUALIFIED
Ricardo B ShinkoCanadaIoni Bowcher UNQUALIFIED
Claire G GlickFranceAsiya Javayant QUALIFIED
Darci L MorascaJapanBernardo Dominic QUALIFIED
Antonio R MaletBrazilBernardo Dominic NEW
Smith L GarufiAustraliaStephen Shaw NEW
Morrow D MorascaFranceAsiya Javayant NEGOTIATION
Adams D BowleyCanadaOnyama Limba PROPOSAL
Adams O InouyeSpainBernardo Dominic UNQUALIFIED
Juan M PaprockiJapanStephen Shaw QUALIFIED
Ivar J IturbideGermanyBernardo Dominic UNQUALIFIED
Izzy J BologniaJapanBernardo Dominic UNQUALIFIED
Jones C RoysterAustraliaStephen Shaw RENEWAL
Emily T WieserItalyAsiya Javayant PROPOSAL
Aika B BowleyIndiaStephen Shaw RENEWAL
Jefferson D PoquetteItalyBernardo Dominic PROPOSAL
Mayumi A ButtSpainBernardo Dominic NEGOTIATION
Mujtaba W RimBrazilIoni Bowcher NEW
Jones S ShinkoBrazilIvan Magalhaes RENEWAL
Isabel B VocelkaBrazilIoni Bowcher NEW
David A AmigonRussiaElwin Sharvill UNQUALIFIED
Juan B ChuiRussiaIvan Magalhaes NEW
Jefferson R SchemmerBrazilAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ivar F OldroydGermanyAsiya Javayant RENEWAL
Leon C CampainFranceBernardo Dominic RENEWAL
Munro H StensethBrazilStephen Shaw RENEWAL
Cody P InouyeRussiaAsiya Javayant RENEWAL
Faith B NickaAustraliaAsiya Javayant PROPOSAL
Francesco T DarakjyBrazilAnna Fali RENEWAL
Salvatore K MaletJapanElwin Sharvill UNQUALIFIED
Aditya H FigeroaJapanIoni Bowcher NEGOTIATION
Maisha C ShinkoIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois J CaldareraAustraliaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer L WieserUnited Kingdom2025-06-26Feltz Printing Service RENEWAL22Stephen Shaw
1001Mayumi W OldroydFrance2025-06-15Commercial Press NEW72Ioni Bowcher
1002Johnson T RoysterIndia2025-06-17Rousseaux, Michael Esq NEGOTIATION69Ioni Bowcher
1003Adams J ChuiBrazil2025-06-08Benton, John B Jr RENEWAL49Asiya Javayant
1004Aditya E CampainItaly2025-06-01King, Christopher A Esq QUALIFIED3Bernardo Dominic
1005Kadeem D CaldareraJapan2025-06-07Chapman, Ross E Esq NEGOTIATION27Elwin Sharvill
1006Kaitlin M IturbideItaly2025-06-01Chanay, Jeffrey A Esq UNQUALIFIED54Stephen Shaw
1007Salvatore F FerenczFrance2025-06-02King, Christopher A Esq UNQUALIFIED31Anna Fali
1008Murillo K MaletItaly2025-06-29Morlong Associates RENEWAL15Anna Fali
1009Stacey G GillianIndia2025-06-26Feltz Printing Service UNQUALIFIED48Asiya Javayant
1010Kaitlin P GauchoArgentina2025-06-22Morlong Associates RENEWAL56Amy Elsner
1011Clifford D FerenczRussia2025-06-06Rousseaux, Michael Esq NEGOTIATION17Ivan Magalhaes
1012Misaki X VocelkaUnited Kingdom2025-06-18Benton, John B Jr NEW91Amy Elsner
1013Claire A PerinGermany2025-06-12Feiner Bros UNQUALIFIED25Ioni Bowcher
1014Johnson N WaycottRussia2025-06-13Chemel, James L Cpa RENEWAL60Bernardo Dominic
1015Costa L WaycottItaly2025-06-02King, Christopher A Esq PROPOSAL82Amy Elsner
1016Stacey Q AlbaresIndia2025-06-08Printing Dimensions UNQUALIFIED79Stephen Shaw
1017Leon G PoquetteArgentina2025-06-14Benton, John B Jr UNQUALIFIED52Ioni Bowcher
1018Deepesh U CaudyArgentina2025-06-05Rangoni Of Florence RENEWAL96Bernardo Dominic
1019Smith B ButtAustralia2025-06-27Truhlar And Truhlar Attys NEGOTIATION83Stephen Shaw
1020Salvatore J MaletRussia2025-06-06Dorl, James J Esq PROPOSAL65Onyama Limba
1021Antonio Q AlbaresJapan2025-06-05Dorl, James J Esq RENEWAL21Ivan Magalhaes
1022Costa N WieserJapan2025-06-28Feltz Printing Service RENEWAL76Amy Elsner
1023Isabel S BologniaArgentina2025-06-05Buckley Miller Wright UNQUALIFIED6Anna Fali
1024Misaki D FollerUnited Kingdom2025-06-20Chapman, Ross E Esq QUALIFIED18Anna Fali
1025Wickens Q AlbaresArgentina2025-06-18Printing Dimensions NEGOTIATION13Elwin Sharvill
1026Salvatore H MaletIndia2025-06-28Buckley Miller Wright QUALIFIED36Bernardo Dominic
1027Jones Q NestleGermany2025-06-24Morlong Associates PROPOSAL69Bernardo Dominic
1028Claire C NestleRussia2025-06-09Morlong Associates NEGOTIATION25Bernardo Dominic
1029Jennifer K FollerCanada2025-06-08Buckley Miller Wright PROPOSAL75Elwin Sharvill
1030Tony O SergiFrance2025-06-25Printing Dimensions RENEWAL29Ioni Bowcher
1031Adams L MacleadCanada2025-06-25Chemel, James L Cpa NEGOTIATION71Amy Elsner
1032Wickens M FlosiBrazil2025-06-17Printing Dimensions RENEWAL96Onyama Limba
1033Mujtaba V StensethSpain2025-06-06King, Christopher A Esq PROPOSAL24Bernardo Dominic
1034Izzy D OldroydArgentina2025-06-24Buckley Miller Wright QUALIFIED73Amy Elsner
1035Darci W RoysterJapan2025-06-15Benton, John B Jr PROPOSAL43Amy Elsner
1036Aruna I GauchoJapan2025-06-04Chanay, Jeffrey A Esq QUALIFIED93Bernardo Dominic
1037Sinclair N MacleadSpain2025-06-24Dorl, James J Esq RENEWAL13Elwin Sharvill
1038Nicolas H WieserArgentina2025-06-19Feiner Bros NEW79Asiya Javayant
1039Aruna Y AlbaresBrazil2025-06-03Dorl, James J Esq QUALIFIED47Ioni Bowcher
1040Jefferson Z ButtGermany2025-06-09Printing Dimensions PROPOSAL6Elwin Sharvill
1041Sinclair D GlickAustralia2025-06-27Chemel, James L Cpa NEGOTIATION32Xuxue Feng
1042Juan K BriddickBrazil2025-06-05Dorl, James J Esq UNQUALIFIED97Amy Elsner
1043Murillo C KolmetzArgentina2025-06-22Buckley Miller Wright QUALIFIED36Ivan Magalhaes
1044Greenwood L FollerAustralia2025-06-10Buckley Miller Wright RENEWAL83Amy Elsner
1045Chavez C MaletArgentina2025-06-25Chemel, James L Cpa QUALIFIED71Asiya Javayant
1046Kaitlin P PerinBrazil2025-06-16King, Christopher A Esq NEW29Ivan Magalhaes
1047Clifford W SergiGermany2025-06-26Printing Dimensions PROPOSAL90Anna Fali
1048Darci P DilliardArgentina2025-06-01Dorl, James J Esq NEW25Bernardo Dominic
1049Mujtaba B WaycottCanada2025-06-19Chanay, Jeffrey A Esq PROPOSAL78Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Silvio F RoysterItalyAmy Elsner RENEWAL
Kadeem V CaldareraItalyIvan Magalhaes QUALIFIED
Aika K KuskoJapanIvan Magalhaes NEW
Wickens F WieserRussiaXuxue Feng NEGOTIATION
Chavez U ChuiArgentinaBernardo Dominic PROPOSAL
Misaki I VocelkaFranceXuxue Feng NEW
Antonio K MarrierItalyIvan Magalhaes RENEWAL
Juan U VocelkaSpainBernardo Dominic NEW
Munro A GarufiFranceAmy Elsner RENEWAL
Greenwood V BriddickUnited KingdomOnyama Limba QUALIFIED
Chavez Y MacleadSpainXuxue Feng PROPOSAL
Munro O FerenczGermanyElwin Sharvill NEGOTIATION
Tony Y IturbideIndiaAmy Elsner NEGOTIATION
Aika N MaletFranceAmy Elsner PROPOSAL
Francesco Q FollerFranceIvan Magalhaes NEW
Emily U GillianRussiaAsiya Javayant PROPOSAL
Johnson R WaycottGermanyAmy Elsner PROPOSAL
Emily L GillianIndiaAnna Fali RENEWAL
Aditya S GillianRussiaAmy Elsner QUALIFIED
Jefferson D SlusarskiIndiaOnyama Limba PROPOSAL
Murillo O RutaJapanElwin Sharvill RENEWAL
Ashley C TollnerSpainAnna Fali RENEWAL
Smith B NickaRussiaElwin Sharvill NEGOTIATION
Munro T DilliardSpainAsiya Javayant UNQUALIFIED
Juan Y RoysterArgentinaIvan Magalhaes PROPOSAL
Salvatore X DoeItalyIoni Bowcher UNQUALIFIED
Alejandro V GauchoGermanyXuxue Feng UNQUALIFIED
Jones B WhobreyBrazilAnna Fali UNQUALIFIED
Smith A BowleyFranceIvan Magalhaes UNQUALIFIED
Deepesh J DilliardIndiaStephen Shaw NEW
Isabel Z PaprockiFranceStephen Shaw QUALIFIED
Wickens T BologniaUnited KingdomAsiya Javayant QUALIFIED
Adams M DoeIndiaOnyama Limba UNQUALIFIED
Kaitlin P CaldareraRussiaElwin Sharvill UNQUALIFIED
Jennifer U InouyeCanadaAnna Fali RENEWAL
Claire C AmigonArgentinaIvan Magalhaes NEW
Silvio G AlbaresArgentinaIvan Magalhaes NEGOTIATION
Emily G StockhamGermanyAnna Fali QUALIFIED
Ashley C VenereFranceAsiya Javayant NEGOTIATION
Alejandro B WhobreySpainElwin Sharvill NEW
Wickens W CampainArgentinaIvan Magalhaes NEW
Ashley Q FerenczIndiaXuxue Feng QUALIFIED
Misaki E PerinUnited KingdomAnna Fali QUALIFIED
Faith L NickaGermanyIoni Bowcher PROPOSAL
Misaki U PerinSpainAsiya Javayant NEW
Smith U VocelkaItalyBernardo Dominic NEGOTIATION
Maisha E IturbideItalyAsiya Javayant UNQUALIFIED
David V NestleJapanBernardo Dominic QUALIFIED
Chavez R GillianFranceElwin Sharvill NEW
Ricardo X StockhamItalyXuxue Feng RENEWAL
Frozen Columns
Name
Clifford U Butt
Mujtaba Z Paprocki
Ricardo Y Figeroa
Francesco K Dilliard
Ricardo E Maclead
Juan S Ostrosky
Leon D Ostrosky
Ashley M Glick
Ashley H Stenseth
Leja Q Slusarski
Isabel G Maclead
Sinclair T Bolognia
Jeanfrancois X Nicka
Kadeem P Oldroyd
Isabel H Amigon
Greenwood M Venere
Morrow G Whobrey
Maria J Bolognia
James F Paprocki
Leja R Campain
Nicolas B Shinko
Jennifer I Ruta
Greenwood X Bowley
Kadeem S Kusko
Tony D Rulapaugh
Morrow Z Stenseth
Sinclair E Shinko
Rodrigues K Rim
Tony L Whobrey
Morrow D Saylors
Deepesh D Figeroa
Misaki K Saylors
Sinclair B Poquette
Ivar P Ruta
Stacey Z Amigon
Juan R Campain
Silvio D Kusko
Misaki U Perin
Morrow L Poquette
Stacey J Kolmetz
Jennifer H Whobrey
Costa G Stenseth
Antonio R Royster
Aditya Q Flosi
Mujtaba F Tollner
Ivar B Paprocki
Isabel E Caldarera
Octavia S Ferencz
Misaki G Paprocki
James I Marrier
IdCountryDate
1000Spain2025-06-04
1001Canada2025-06-14
1002Australia2025-06-18
1003Spain2025-06-06
1004Australia2025-06-06
1005Brazil2025-06-21
1006India2025-06-13
1007Germany2025-06-18
1008Argentina2025-06-23
1009Italy2025-06-01
1010Canada2025-06-14
1011Australia2025-06-21
1012Italy2025-06-30
1013Spain2025-06-27
1014Argentina2025-06-11
1015Australia2025-06-15
1016Australia2025-06-20
1017Australia2025-06-10
1018Spain2025-06-09
1019Italy2025-06-09
1020Argentina2025-06-18
1021Italy2025-06-15
1022India2025-06-25
1023United Kingdom2025-06-28
1024Brazil2025-06-05
1025Canada2025-06-19
1026Canada2025-06-23
1027Italy2025-06-22
1028Japan2025-06-24
1029Russia2025-06-21
1030Germany2025-06-11
1031Argentina2025-06-09
1032Australia2025-06-02
1033Australia2025-06-18
1034France2025-06-26
1035Germany2025-06-18
1036Spain2025-06-22
1037India2025-06-12
1038Canada2025-06-08
1039India2025-06-01
1040Japan2025-06-25
1041Argentina2025-06-05
1042Japan2025-06-21
1043Russia2025-06-22
1044United Kingdom2025-06-04
1045Argentina2025-06-27
1046Japan2025-06-02
1047Argentina2025-06-21
1048Australia2025-06-26
1049France2025-06-30

On-Demand Data

NameIdCountryDate
Alejandro K Tollner1000Italy2025-06-13
Johnson D Glick1001Spain2025-06-22
Claire N Rulapaugh1002Australia2025-06-29
Julie G Butt1003France2025-06-27
Smith X Ferencz1004Spain2025-06-25
Wickens E Nestle1005Spain2025-06-20
Morrow K Darakjy1006France2025-06-19
Arvin Z Morasca1007India2025-06-14
Darci P Amigon1008India2025-06-30
Faith L Amigon1009France2025-06-06
Greenwood H Tollner1010France2025-06-29
Adams I Chui1011Canada2025-06-27
Adams S Poquette1012India2025-06-12
Aditya Q Morasca1013Italy2025-06-14
Misaki O Royster1014Spain2025-06-11
Salvatore W Waycott1015Italy2025-06-30
Sinclair A Royster1016Italy2025-06-11
Juan D Caudy1017Russia2025-06-25
Greenwood W Wieser1018United Kingdom2025-06-16
Arvin E Garufi1019Canada2025-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily I SlusarskiIndiaAmy Elsner QUALIFIED
Alejandro L MarrierAustraliaElwin Sharvill NEGOTIATION
Octavia U BologniaIndiaBernardo Dominic PROPOSAL
Arvin H SchemmerBrazilBernardo Dominic PROPOSAL
James K PerinIndiaElwin Sharvill PROPOSAL
Aruna F BriddickItalyAsiya Javayant PROPOSAL
Julie L MacleadAustraliaStephen Shaw UNQUALIFIED
Francesco R SaylorsItalyAsiya Javayant UNQUALIFIED
Francesco X FollerGermanyBernardo Dominic NEGOTIATION
Aditya R InouyeAustraliaIvan Magalhaes QUALIFIED
Stacey P WieserFranceOnyama Limba NEW
Johnson Z PaprockiBrazilAmy Elsner QUALIFIED
Greenwood G GarufiSpainXuxue Feng QUALIFIED
Stacey V ChuiGermanyAsiya Javayant NEW
Emily E NestleItalyOnyama Limba RENEWAL
Ivar O MorascaUnited KingdomIoni Bowcher QUALIFIED
Izzy V MaletAustraliaIvan Magalhaes PROPOSAL
Darci T NestleSpainStephen Shaw NEW
David Z MaletRussiaBernardo Dominic QUALIFIED
Kadeem S KuskoAustraliaAmy Elsner NEW
Wickens L MarrierSpainBernardo Dominic UNQUALIFIED
Ivar X SergiSpainBernardo Dominic UNQUALIFIED
Aruna N FollerBrazilAmy Elsner NEGOTIATION
Deepesh O GlickUnited KingdomBernardo Dominic PROPOSAL
Leja G BologniaFranceIvan Magalhaes NEW
Morrow R WieserFranceIvan Magalhaes PROPOSAL
Jeanfrancois C MaletItalyOnyama Limba RENEWAL
Julie M SergiJapanElwin Sharvill NEW
Salvatore T WieserUnited KingdomAmy Elsner NEW
Adams K RutaAustraliaAmy Elsner NEW
Mayumi S SchemmerRussiaOnyama Limba NEW
Rodrigues A StensethSpainOnyama Limba QUALIFIED
Morrow O PaprockiArgentinaAsiya Javayant NEGOTIATION
Octavia Z WhobreyFranceElwin Sharvill UNQUALIFIED
Julie X FerenczRussiaXuxue Feng NEGOTIATION
Johnson X SergiJapanOnyama Limba QUALIFIED
Ivar N TollnerItalyElwin Sharvill QUALIFIED
Julie L RutaRussiaIvan Magalhaes QUALIFIED
Leon X PoquetteFranceAnna Fali NEGOTIATION
Sinclair P FollerUnited KingdomXuxue Feng 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" frozenColumnsAlignment="left">
            <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>