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 Z VenereAustraliaXuxue Feng NEGOTIATION
Octavia H PoquetteFranceIvan Magalhaes UNQUALIFIED
Salvatore D MarrierIndiaAnna Fali RENEWAL
Johnson A ButtArgentinaAnna Fali RENEWAL
Clifford U GarufiSpainElwin Sharvill NEW
Faith P ButtArgentinaIvan Magalhaes RENEWAL
Emily F VocelkaItalyAnna Fali QUALIFIED
Octavia I SlusarskiUnited KingdomAsiya Javayant RENEWAL
Sinclair P CaldareraGermanyBernardo Dominic NEW
Kadeem H ButtSpainIoni Bowcher RENEWAL
Octavia G KolmetzSpainAsiya Javayant QUALIFIED
Claire I WhobreySpainOnyama Limba NEGOTIATION
Chavez Q DoeSpainAmy Elsner NEW
Emily D WhobreyAustraliaIoni Bowcher QUALIFIED
Francesco M FerenczBrazilStephen Shaw NEW
Salvatore Z DoeGermanyAsiya Javayant QUALIFIED
Munro A ShinkoItalyIoni Bowcher QUALIFIED
Stacey B PaprockiJapanOnyama Limba RENEWAL
Wickens U StockhamGermanyXuxue Feng QUALIFIED
Maria Y TollnerRussiaXuxue Feng PROPOSAL
Murillo T RimCanadaAnna Fali RENEWAL
Ivar Q StockhamCanadaIvan Magalhaes QUALIFIED
Chavez E MacleadFranceBernardo Dominic PROPOSAL
Mayumi K BologniaIndiaOnyama Limba PROPOSAL
Aditya Y RutaItalyAmy Elsner NEW
Chavez R RutaGermanyAsiya Javayant RENEWAL
Jefferson N SchemmerFranceOnyama Limba UNQUALIFIED
Clifford P SaylorsItalyAsiya Javayant RENEWAL
Chavez J GarufiIndiaStephen Shaw UNQUALIFIED
Mayumi Q MaletCanadaElwin Sharvill NEGOTIATION
Leja L KuskoArgentinaAsiya Javayant NEGOTIATION
Ricardo U DilliardArgentinaAmy Elsner PROPOSAL
Isabel D MorascaItalyIvan Magalhaes NEW
Chavez W MaletGermanyAsiya Javayant NEGOTIATION
Murillo T MaletItalyIoni Bowcher RENEWAL
Ricardo D SergiJapanOnyama Limba PROPOSAL
Jeanfrancois E VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Smith A PoquetteArgentinaAnna Fali RENEWAL
Maisha N RimAustraliaIoni Bowcher NEGOTIATION
Leon T BriddickGermanyBernardo Dominic PROPOSAL
Claire E PerinBrazilBernardo Dominic PROPOSAL
Ivar K ShinkoItalyElwin Sharvill NEW
Aditya V PerinFranceElwin Sharvill PROPOSAL
Cody N WhobreySpainIoni Bowcher NEGOTIATION
Chavez A WhobreyCanadaIvan Magalhaes NEGOTIATION
Ricardo F PoquetteGermanyBernardo Dominic UNQUALIFIED
Arvin W KolmetzItalyElwin Sharvill QUALIFIED
Aika O RoysterCanadaOnyama Limba RENEWAL
Emily P PerinGermanyAnna Fali NEGOTIATION
Greenwood F FerenczCanadaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas H MarrierRussiaAsiya Javayant RENEWAL
Greenwood Q WhobreyBrazilIoni Bowcher UNQUALIFIED
Faith F VenereFranceAnna Fali NEW
Arvin R DilliardRussiaStephen Shaw PROPOSAL
Nicolas Y BriddickCanadaOnyama Limba PROPOSAL
Silvio S AmigonJapanXuxue Feng PROPOSAL
Cody H VenereJapanOnyama Limba UNQUALIFIED
Antonio F DilliardFranceXuxue Feng QUALIFIED
Misaki M IturbideItalyIoni Bowcher NEW
Johnson H IturbideBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones X ChuiSpain2026-07-12Chapman, Ross E Esq QUALIFIED76Onyama Limba
1001David M ChuiItaly2026-08-06King, Christopher A Esq NEGOTIATION54Asiya Javayant
1002Sinclair A BowleyFrance2026-08-09Feiner Bros UNQUALIFIED4Bernardo Dominic
1003Ashley C ButtCanada2026-07-28Chapman, Ross E Esq RENEWAL94Stephen Shaw
1004Mujtaba H GarufiCanada2026-07-31Rangoni Of Florence RENEWAL27Elwin Sharvill
1005Aruna S FigeroaAustralia2026-07-14King, Christopher A Esq PROPOSAL23Xuxue Feng
1006Salvatore G SlusarskiFrance2026-08-01Chanay, Jeffrey A Esq NEGOTIATION81Xuxue Feng
1007Aruna B BologniaJapan2026-08-02Buckley Miller Wright QUALIFIED70Amy Elsner
1008Jeanfrancois U OldroydBrazil2026-07-22Commercial Press NEW2Bernardo Dominic
1009Arvin I MaletJapan2026-07-19Truhlar And Truhlar Attys PROPOSAL60Amy Elsner
1010Jefferson V FerenczJapan2026-07-25Rangoni Of Florence RENEWAL11Ioni Bowcher
1011Munro A InouyeSpain2026-07-14Chanay, Jeffrey A Esq PROPOSAL9Bernardo Dominic
1012Emily N ButtCanada2026-07-16Buckley Miller Wright RENEWAL30Onyama Limba
1013Juan C FigeroaFrance2026-08-08Commercial Press UNQUALIFIED76Ivan Magalhaes
1014James N IturbideUnited Kingdom2026-07-28Feiner Bros QUALIFIED56Bernardo Dominic
1015Murillo X FigeroaUnited Kingdom2026-07-19Dorl, James J Esq UNQUALIFIED65Onyama Limba
1016James U DoeAustralia2026-08-01Dorl, James J Esq QUALIFIED50Bernardo Dominic
1017James P FerenczArgentina2026-07-17Truhlar And Truhlar Attys QUALIFIED75Ivan Magalhaes
1018Octavia U CaldareraAustralia2026-08-02Feltz Printing Service QUALIFIED73Elwin Sharvill
1019Leja G PaprockiItaly2026-08-07Rousseaux, Michael Esq QUALIFIED69Elwin Sharvill
1020Murillo S GauchoUnited Kingdom2026-07-18Chemel, James L Cpa NEGOTIATION86Ivan Magalhaes
1021Francesco B FlosiSpain2026-08-04Morlong Associates QUALIFIED42Ivan Magalhaes
1022Ricardo P IturbideUnited Kingdom2026-07-29Morlong Associates QUALIFIED54Asiya Javayant
1023Aditya W NestleBrazil2026-07-13Rousseaux, Michael Esq RENEWAL4Onyama Limba
1024Emily G GarufiRussia2026-07-20Printing Dimensions NEW54Onyama Limba
1025Misaki T GarufiRussia2026-08-09Benton, John B Jr UNQUALIFIED79Ivan Magalhaes
1026Darci R AmigonArgentina2026-08-03Chanay, Jeffrey A Esq RENEWAL85Asiya Javayant
1027Ricardo X BowleyRussia2026-08-07Chemel, James L Cpa NEGOTIATION18Onyama Limba
1028Jones K BriddickFrance2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED3Stephen Shaw
1029Arvin Q IturbideFrance2026-07-13Chapman, Ross E Esq NEGOTIATION30Ivan Magalhaes
1030Francesco D RoysterAustralia2026-08-02Rangoni Of Florence PROPOSAL56Onyama Limba
1031Murillo G RoysterArgentina2026-08-07Printing Dimensions NEW76Stephen Shaw
1032Jefferson Q ShinkoBrazil2026-07-17Chapman, Ross E Esq PROPOSAL37Ivan Magalhaes
1033Aika A ButtSpain2026-08-01Dorl, James J Esq NEW12Asiya Javayant
1034Kaitlin W OldroydIndia2026-07-11Feltz Printing Service NEGOTIATION43Stephen Shaw
1035Rodrigues A PerinItaly2026-07-25Printing Dimensions RENEWAL84Xuxue Feng
1036Izzy F IturbideBrazil2026-07-19Feltz Printing Service PROPOSAL3Anna Fali
1037David V CampainSpain2026-07-23Morlong Associates PROPOSAL77Bernardo Dominic
1038Darci K RutaItaly2026-08-05Rangoni Of Florence QUALIFIED74Stephen Shaw
1039Claire X PoquetteGermany2026-08-01Benton, John B Jr UNQUALIFIED74Bernardo Dominic
1040Maria N PerinGermany2026-07-26Feiner Bros RENEWAL64Ioni Bowcher
1041Chavez E GlickJapan2026-07-30Buckley Miller Wright NEGOTIATION50Xuxue Feng
1042Sinclair D MorascaRussia2026-07-14King, Christopher A Esq UNQUALIFIED14Xuxue Feng
1043Smith Z BowleyArgentina2026-07-19Chanay, Jeffrey A Esq NEGOTIATION15Onyama Limba
1044Tony V RoysterBrazil2026-08-01Chapman, Ross E Esq NEW91Amy Elsner
1045Darci J CaldareraBrazil2026-07-19Chapman, Ross E Esq UNQUALIFIED93Xuxue Feng
1046Chavez V AlbaresUnited Kingdom2026-07-14Commercial Press UNQUALIFIED83Asiya Javayant
1047Kaitlin S MaletJapan2026-08-02Chapman, Ross E Esq NEW59Ivan Magalhaes
1048Clifford N WieserArgentina2026-07-22Commercial Press QUALIFIED29Amy Elsner
1049Juan O MacleadArgentina2026-07-15Morlong Associates NEW9Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi I PaprockiGermanyAmy Elsner NEGOTIATION
Wickens M CampainSpainStephen Shaw NEW
Emily J IturbideCanadaIvan Magalhaes UNQUALIFIED
Mujtaba W FigeroaIndiaAmy Elsner RENEWAL
Greenwood X RutaItalyAmy Elsner UNQUALIFIED
Tony Q RutaGermanyBernardo Dominic QUALIFIED
Munro N DarakjyFranceStephen Shaw PROPOSAL
Juan I GarufiUnited KingdomStephen Shaw PROPOSAL
Deepesh H GillianIndiaBernardo Dominic UNQUALIFIED
Francesco X NickaGermanyAsiya Javayant PROPOSAL
Alejandro O MarrierUnited KingdomAmy Elsner PROPOSAL
Izzy G OstroskyFranceBernardo Dominic UNQUALIFIED
David X TollnerSpainStephen Shaw NEGOTIATION
Stacey A IturbideGermanyBernardo Dominic NEGOTIATION
Maisha O CaudyJapanAmy Elsner NEW
Ricardo Z DarakjyJapanXuxue Feng NEGOTIATION
Aditya P SlusarskiCanadaAsiya Javayant UNQUALIFIED
Wickens G WaycottBrazilIoni Bowcher RENEWAL
Deepesh I NickaArgentinaIoni Bowcher RENEWAL
Claire J FigeroaUnited KingdomElwin Sharvill RENEWAL
Greenwood X GarufiSpainAmy Elsner PROPOSAL
Sinclair P InouyeGermanyBernardo Dominic UNQUALIFIED
Alejandro T TollnerSpainAmy Elsner UNQUALIFIED
James Y OldroydRussiaElwin Sharvill RENEWAL
Maisha Z ChuiAustraliaElwin Sharvill NEGOTIATION
Antonio Y GillianBrazilIoni Bowcher RENEWAL
Clifford H RimIndiaBernardo Dominic RENEWAL
Alejandro R FollerJapanAmy Elsner UNQUALIFIED
Jefferson Q FigeroaIndiaElwin Sharvill NEGOTIATION
Leja N PaprockiBrazilIvan Magalhaes QUALIFIED
Chavez C WieserIndiaBernardo Dominic PROPOSAL
Maisha H DilliardBrazilAmy Elsner UNQUALIFIED
Salvatore T CaudySpainAnna Fali NEW
Octavia Y OstroskyRussiaIvan Magalhaes NEW
Izzy X PoquetteArgentinaAnna Fali QUALIFIED
Murillo T NestleFranceStephen Shaw NEGOTIATION
Isabel F FlosiRussiaOnyama Limba RENEWAL
Ricardo I GauchoFranceAsiya Javayant UNQUALIFIED
Leja C PaprockiItalyXuxue Feng NEW
Munro X TollnerIndiaIvan Magalhaes QUALIFIED
Faith W PoquetteSpainXuxue Feng PROPOSAL
Jennifer U GillianCanadaElwin Sharvill PROPOSAL
Izzy W WhobreyCanadaIvan Magalhaes NEGOTIATION
Aditya L MarrierUnited KingdomAmy Elsner RENEWAL
Leja I RoysterBrazilXuxue Feng UNQUALIFIED
Leon K MarrierCanadaAsiya Javayant UNQUALIFIED
Aditya U GillianItalyIvan Magalhaes PROPOSAL
Salvatore E ShinkoUnited KingdomElwin Sharvill NEW
Stacey D ButtBrazilAmy Elsner NEW
Costa X FollerAustraliaOnyama Limba NEGOTIATION
Frozen Columns
Name
Maisha G Foller
Julie D Figeroa
Francesco D Briddick
Munro F Bolognia
Tony Q Flosi
Ivar O Flosi
Misaki Z Briddick
Chavez O Wieser
Wickens X Royster
Arvin N Ferencz
Leja P Ostrosky
Wickens N Stenseth
Julie A Slusarski
Clifford T Doe
Tony S Garufi
Juan A Amigon
Arvin K Gillian
Antonio S Vocelka
Maria N Flosi
Ashley S Sergi
Nicolas K Chui
Maisha K Tollner
Silvio P Darakjy
Morrow C Vocelka
Antonio X Garufi
David O Schemmer
Faith K Rim
Jeanfrancois M Doe
Aditya N Dilliard
Arvin L Stockham
Francesco V Schemmer
Costa W Waycott
Jones Q Bowley
Maisha R Rulapaugh
Alejandro X Ostrosky
Isabel P Stenseth
Julie I Slusarski
Chavez F Whobrey
Emily R Rim
Jones P Darakjy
Wickens R Whobrey
Clifford I Ostrosky
Silvio E Chui
Leon W Nestle
Mujtaba G Paprocki
Johnson Y Vocelka
Aditya Z Sergi
Deepesh W Ruta
Maisha M Nicka
Julie E Slusarski
IdCountryDate
1000Canada2026-07-21
1001United Kingdom2026-07-16
1002United Kingdom2026-08-05
1003United Kingdom2026-07-14
1004Italy2026-08-09
1005Argentina2026-08-03
1006Russia2026-07-20
1007Australia2026-08-03
1008France2026-07-24
1009France2026-08-06
1010Argentina2026-07-13
1011France2026-07-21
1012Brazil2026-08-03
1013Germany2026-07-25
1014Italy2026-07-11
1015Brazil2026-07-11
1016Italy2026-07-22
1017Argentina2026-07-29
1018Russia2026-07-31
1019France2026-07-29
1020Russia2026-07-15
1021Russia2026-07-26
1022Japan2026-07-24
1023Australia2026-07-12
1024Germany2026-07-11
1025Spain2026-07-25
1026United Kingdom2026-07-26
1027Spain2026-07-18
1028Russia2026-08-06
1029France2026-08-02
1030India2026-08-04
1031Italy2026-07-23
1032France2026-07-18
1033Canada2026-08-02
1034Australia2026-07-12
1035India2026-07-31
1036Japan2026-07-19
1037India2026-07-21
1038Argentina2026-07-15
1039India2026-08-09
1040Japan2026-07-15
1041Australia2026-07-25
1042Australia2026-07-28
1043Russia2026-07-13
1044Spain2026-07-23
1045Russia2026-07-14
1046United Kingdom2026-08-05
1047Argentina2026-08-09
1048Australia2026-08-08
1049Italy2026-07-31

On-Demand Data

NameIdCountryDate
Salvatore S Malet1000United Kingdom2026-08-01
Salvatore B Ruta1001Canada2026-07-12
Leon V Royster1002Argentina2026-07-30
Faith N Flosi1003Argentina2026-07-26
Adams A Oldroyd1004Brazil2026-07-12
Salvatore O Albares1005Spain2026-07-26
Leon K Slusarski1006Spain2026-08-09
Tony T Ferencz1007Italy2026-08-09
Julie O Doe1008Argentina2026-07-19
Ashley F Caudy1009India2026-07-24
Darci I Stockham1010India2026-07-25
Ivar N Bowley1011Canada2026-07-11
Silvio T Flosi1012Germany2026-07-11
Stacey V Briddick1013India2026-08-01
Maria G Bolognia1014Japan2026-08-05
Aditya Q Chui1015Russia2026-07-25
Chavez Y Briddick1016Spain2026-07-21
Maria P Perin1017Italy2026-07-25
Kadeem G Schemmer1018Russia2026-07-22
Jefferson R Gillian1019Brazil2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore X WaycottRussiaXuxue Feng NEW
Chavez W FollerCanadaBernardo Dominic NEGOTIATION
Ricardo G CaudyCanadaIvan Magalhaes UNQUALIFIED
Nicolas S OstroskyArgentinaIvan Magalhaes NEW
Octavia K VocelkaBrazilElwin Sharvill NEGOTIATION
Cody B SaylorsIndiaIoni Bowcher NEGOTIATION
Leon Y NickaUnited KingdomIoni Bowcher PROPOSAL
Jennifer J MaletJapanAmy Elsner RENEWAL
Emily O WieserJapanAmy Elsner UNQUALIFIED
Johnson D SchemmerIndiaElwin Sharvill QUALIFIED
Cody D KuskoArgentinaXuxue Feng UNQUALIFIED
Leon A RutaGermanyAsiya Javayant PROPOSAL
Antonio J InouyeBrazilIvan Magalhaes QUALIFIED
Mujtaba D CaldareraGermanyAsiya Javayant UNQUALIFIED
Stacey W ShinkoArgentinaOnyama Limba UNQUALIFIED
Adams T VenereCanadaAsiya Javayant NEGOTIATION
Aika K SergiUnited KingdomBernardo Dominic NEGOTIATION
Francesco B PoquetteUnited KingdomAsiya Javayant NEW
Izzy V ButtArgentinaBernardo Dominic QUALIFIED
Antonio V SaylorsFranceAnna Fali RENEWAL
Greenwood V SergiAustraliaElwin Sharvill RENEWAL
Costa B BowleyBrazilIvan Magalhaes NEGOTIATION
Cody A AmigonFranceOnyama Limba NEGOTIATION
Kaitlin T GlickBrazilBernardo Dominic PROPOSAL
Julie B ButtIndiaXuxue Feng PROPOSAL
David Z IturbideAustraliaAmy Elsner NEGOTIATION
Faith N GillianRussiaOnyama Limba QUALIFIED
Isabel K ButtRussiaStephen Shaw NEGOTIATION
Claire J OldroydJapanIoni Bowcher UNQUALIFIED
Darci P BologniaRussiaElwin Sharvill PROPOSAL
Faith X RoysterAustraliaOnyama Limba PROPOSAL
Aika T ButtItalyIvan Magalhaes QUALIFIED
Cody R DoeItalyBernardo Dominic RENEWAL
Jones Z MaletRussiaAmy Elsner NEGOTIATION
Tony S OldroydUnited KingdomElwin Sharvill RENEWAL
Kaitlin C RulapaughAustraliaBernardo Dominic NEGOTIATION
Silvio U KolmetzSpainXuxue Feng NEW
Rodrigues I SergiItalyOnyama Limba QUALIFIED
Silvio Y GarufiGermanyAsiya Javayant QUALIFIED
Juan R RulapaughAustraliaAsiya Javayant NEGOTIATION

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