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
Stacey Z NickaJapanElwin Sharvill UNQUALIFIED
Salvatore B VocelkaIndiaIvan Magalhaes PROPOSAL
Kaitlin T BologniaUnited KingdomStephen Shaw RENEWAL
David Q BowleyGermanyOnyama Limba UNQUALIFIED
Stacey U OstroskyCanadaAsiya Javayant RENEWAL
Stacey R InouyeBrazilIvan Magalhaes UNQUALIFIED
Aruna M WhobreySpainAsiya Javayant PROPOSAL
Morrow K FigeroaJapanIoni Bowcher RENEWAL
Ashley R NickaFranceOnyama Limba NEGOTIATION
Juan F GarufiGermanyAsiya Javayant UNQUALIFIED
Ricardo B SergiFranceElwin Sharvill UNQUALIFIED
James U NestleGermanyStephen Shaw UNQUALIFIED
Alejandro Z FlosiSpainAsiya Javayant NEGOTIATION
Smith U StensethItalyElwin Sharvill RENEWAL
Emily K StockhamBrazilBernardo Dominic RENEWAL
Nicolas Q WieserIndiaBernardo Dominic NEW
Ivar H SergiArgentinaStephen Shaw RENEWAL
Ricardo B MaletAustraliaAsiya Javayant NEW
Cody J OldroydUnited KingdomOnyama Limba UNQUALIFIED
Alejandro D RutaIndiaIoni Bowcher QUALIFIED
Deepesh P PerinFranceXuxue Feng RENEWAL
Salvatore G PerinJapanStephen Shaw QUALIFIED
Salvatore N AlbaresJapanBernardo Dominic PROPOSAL
Alejandro V ButtIndiaAsiya Javayant PROPOSAL
Salvatore G NestleIndiaElwin Sharvill RENEWAL
David P NickaFranceBernardo Dominic NEW
Darci T VocelkaFranceAmy Elsner NEGOTIATION
Munro C KuskoIndiaIvan Magalhaes PROPOSAL
Jones I PaprockiRussiaStephen Shaw UNQUALIFIED
Maisha N WieserRussiaAnna Fali NEGOTIATION
Rodrigues C WieserSpainAmy Elsner NEW
Arvin E StockhamIndiaAnna Fali NEW
Francesco C MorascaAustraliaXuxue Feng UNQUALIFIED
Misaki X ShinkoItalyAmy Elsner RENEWAL
Claire K SlusarskiSpainAmy Elsner NEW
Wickens X GlickSpainStephen Shaw NEW
Isabel M FlosiSpainIoni Bowcher NEW
Ivar F AmigonSpainBernardo Dominic NEW
Adams P PoquetteArgentinaAmy Elsner RENEWAL
Leja Q StensethCanadaOnyama Limba UNQUALIFIED
Jones C VenereIndiaIoni Bowcher QUALIFIED
Claire X NickaSpainIvan Magalhaes RENEWAL
Sinclair H KuskoItalyXuxue Feng RENEWAL
Misaki N SergiBrazilOnyama Limba UNQUALIFIED
Murillo W RutaRussiaElwin Sharvill QUALIFIED
Chavez W InouyeIndiaAnna Fali RENEWAL
Silvio D AlbaresCanadaAmy Elsner UNQUALIFIED
Sinclair O MaletItalyIvan Magalhaes NEGOTIATION
Silvio E RutaSpainXuxue Feng NEW
Antonio K GillianCanadaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey P InouyeArgentinaIoni Bowcher NEW
Clifford N KuskoCanadaAmy Elsner PROPOSAL
Rodrigues W MaletJapanBernardo Dominic QUALIFIED
Darci P DoeIndiaXuxue Feng QUALIFIED
Aika E NickaArgentinaStephen Shaw NEGOTIATION
Murillo S FigeroaJapanAsiya Javayant UNQUALIFIED
Mujtaba A OldroydArgentinaElwin Sharvill PROPOSAL
Antonio N MarrierSpainOnyama Limba QUALIFIED
Julie O SergiAustraliaAsiya Javayant QUALIFIED
Ashley Q WhobreyItalyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Z RulapaughRussia2026-08-07Chemel, James L Cpa RENEWAL87Amy Elsner
1001Claire D RulapaughAustralia2026-07-16Commercial Press NEGOTIATION50Ivan Magalhaes
1002James X DarakjyItaly2026-07-18King, Christopher A Esq UNQUALIFIED98Onyama Limba
1003Jefferson H WhobreyAustralia2026-08-04Feltz Printing Service UNQUALIFIED41Elwin Sharvill
1004Antonio A SergiJapan2026-07-30Chanay, Jeffrey A Esq NEGOTIATION91Onyama Limba
1005Sinclair F PerinCanada2026-07-22Rousseaux, Michael Esq QUALIFIED39Ioni Bowcher
1006Ivar Z FlosiFrance2026-07-18Rousseaux, Michael Esq UNQUALIFIED74Elwin Sharvill
1007Adams D AlbaresFrance2026-07-25Chapman, Ross E Esq NEW28Ivan Magalhaes
1008Jennifer U RimUnited Kingdom2026-08-04Feiner Bros NEGOTIATION82Anna Fali
1009Deepesh N WaycottRussia2026-07-12Feltz Printing Service QUALIFIED30Stephen Shaw
1010Leja X IturbideCanada2026-07-21Chemel, James L Cpa NEW63Elwin Sharvill
1011Julie I CaudyIndia2026-07-29King, Christopher A Esq PROPOSAL36Elwin Sharvill
1012Jennifer P GillianUnited Kingdom2026-07-16Printing Dimensions UNQUALIFIED82Ioni Bowcher
1013Emily K WaycottUnited Kingdom2026-07-30Dorl, James J Esq NEGOTIATION70Amy Elsner
1014Smith P ShinkoJapan2026-07-13Chapman, Ross E Esq NEGOTIATION91Ivan Magalhaes
1015Salvatore X FerenczAustralia2026-07-15Rousseaux, Michael Esq NEGOTIATION39Elwin Sharvill
1016Julie W WhobreyArgentina2026-07-15Rangoni Of Florence UNQUALIFIED78Stephen Shaw
1017Isabel S FollerIndia2026-07-25Rangoni Of Florence UNQUALIFIED52Elwin Sharvill
1018Costa A RulapaughJapan2026-07-28Commercial Press NEW76Xuxue Feng
1019Silvio A TollnerSpain2026-07-30Chanay, Jeffrey A Esq PROPOSAL73Asiya Javayant
1020Emily J MaletItaly2026-08-05Chapman, Ross E Esq NEW79Ioni Bowcher
1021Kaitlin U GauchoIndia2026-08-07Commercial Press UNQUALIFIED89Onyama Limba
1022Arvin Q GillianRussia2026-07-31Printing Dimensions QUALIFIED14Amy Elsner
1023Nicolas O KolmetzAustralia2026-07-20Rousseaux, Michael Esq QUALIFIED35Asiya Javayant
1024James V RoysterCanada2026-07-31Rangoni Of Florence QUALIFIED1Ivan Magalhaes
1025Sinclair R AlbaresIndia2026-07-26Chemel, James L Cpa QUALIFIED52Elwin Sharvill
1026Ashley P MaletFrance2026-07-31Morlong Associates UNQUALIFIED17Bernardo Dominic
1027Arvin I BowleyCanada2026-07-20Truhlar And Truhlar Attys NEW57Elwin Sharvill
1028Darci O VenereJapan2026-07-27Benton, John B Jr RENEWAL0Ioni Bowcher
1029Aruna L TollnerUnited Kingdom2026-07-26Chemel, James L Cpa NEGOTIATION80Anna Fali
1030Munro Q MaletItaly2026-07-23Rangoni Of Florence QUALIFIED62Stephen Shaw
1031Clifford A FigeroaSpain2026-07-16Benton, John B Jr NEW35Ioni Bowcher
1032Cody T CaudyIndia2026-08-05Chemel, James L Cpa QUALIFIED50Ioni Bowcher
1033Octavia G GarufiIndia2026-08-05Feltz Printing Service NEGOTIATION82Xuxue Feng
1034Darci K GlickAustralia2026-07-22Chanay, Jeffrey A Esq NEW98Xuxue Feng
1035Ivar S StensethIndia2026-08-05Rousseaux, Michael Esq QUALIFIED61Onyama Limba
1036Greenwood J NickaArgentina2026-07-31Rousseaux, Michael Esq RENEWAL36Stephen Shaw
1037Leja J DilliardBrazil2026-07-22Printing Dimensions RENEWAL62Ivan Magalhaes
1038Misaki O DilliardAustralia2026-07-22Truhlar And Truhlar Attys NEGOTIATION83Elwin Sharvill
1039Francesco V PaprockiIndia2026-07-19Feiner Bros NEGOTIATION51Ivan Magalhaes
1040Wickens S CaldareraItaly2026-07-31Benton, John B Jr NEGOTIATION93Asiya Javayant
1041Johnson P FigeroaRussia2026-07-26King, Christopher A Esq PROPOSAL50Ioni Bowcher
1042Mujtaba G StockhamSpain2026-07-11Feltz Printing Service NEGOTIATION67Anna Fali
1043Jeanfrancois R RutaFrance2026-07-29Feiner Bros PROPOSAL65Anna Fali
1044Aditya Q StockhamItaly2026-08-07Truhlar And Truhlar Attys QUALIFIED71Anna Fali
1045Wickens X OstroskyArgentina2026-07-30Buckley Miller Wright QUALIFIED49Onyama Limba
1046Adams E FlosiFrance2026-07-21Rangoni Of Florence NEGOTIATION32Stephen Shaw
1047Ashley M KolmetzItaly2026-08-05Rousseaux, Michael Esq UNQUALIFIED71Elwin Sharvill
1048Antonio R WaycottAustralia2026-07-26Chapman, Ross E Esq QUALIFIED57Bernardo Dominic
1049Leja Z BowleyGermany2026-07-28Rousseaux, Michael Esq PROPOSAL9Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Greenwood A CaldareraJapanElwin Sharvill RENEWAL
Wickens U DoeGermanyStephen Shaw NEGOTIATION
Jennifer M VocelkaCanadaIoni Bowcher NEGOTIATION
Misaki G TollnerJapanIoni Bowcher UNQUALIFIED
Morrow X BologniaRussiaAmy Elsner QUALIFIED
Salvatore U PerinArgentinaIvan Magalhaes UNQUALIFIED
Jones W AlbaresCanadaAnna Fali PROPOSAL
Deepesh B WhobreyItalyIoni Bowcher RENEWAL
Jennifer Y StockhamGermanyXuxue Feng NEW
Jones Z CaudyArgentinaIoni Bowcher NEW
Aruna J ChuiIndiaOnyama Limba UNQUALIFIED
Jones C TollnerAustraliaIoni Bowcher NEGOTIATION
Misaki K GarufiCanadaBernardo Dominic NEW
Isabel Z WhobreyCanadaAsiya Javayant NEW
Izzy W MorascaRussiaAnna Fali PROPOSAL
Clifford A OldroydFranceAnna Fali NEW
Jefferson K CaldareraUnited KingdomBernardo Dominic PROPOSAL
Arvin I GauchoIndiaIoni Bowcher NEGOTIATION
Ivar D WhobreySpainStephen Shaw PROPOSAL
Ricardo U MaletUnited KingdomXuxue Feng NEW
Aika B ChuiRussiaOnyama Limba RENEWAL
Jones E SaylorsSpainXuxue Feng NEGOTIATION
Isabel K FlosiAustraliaIvan Magalhaes NEGOTIATION
Smith K WhobreyBrazilIvan Magalhaes NEGOTIATION
Juan D MacleadJapanXuxue Feng PROPOSAL
Adams K DarakjyFranceIvan Magalhaes PROPOSAL
Morrow O GillianJapanOnyama Limba NEW
Jeanfrancois N RulapaughSpainAmy Elsner PROPOSAL
Faith V GillianFranceElwin Sharvill UNQUALIFIED
Greenwood A GauchoIndiaStephen Shaw NEW
Sinclair K WhobreyFranceOnyama Limba QUALIFIED
Francesco A CaldareraItalyBernardo Dominic NEW
Kadeem E StensethUnited KingdomAsiya Javayant NEGOTIATION
Aruna A DarakjySpainAsiya Javayant UNQUALIFIED
Jones E GlickCanadaStephen Shaw QUALIFIED
James M GauchoIndiaIoni Bowcher NEW
Rodrigues U OstroskyIndiaIvan Magalhaes NEW
Julie J KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Leon R WaycottSpainStephen Shaw UNQUALIFIED
Juan M InouyeArgentinaIvan Magalhaes NEW
Tony Q VocelkaAustraliaIvan Magalhaes NEW
Silvio E RoysterRussiaAsiya Javayant NEW
Arvin J StockhamGermanyIvan Magalhaes QUALIFIED
Maria M DarakjyArgentinaIoni Bowcher NEW
Misaki S PerinBrazilStephen Shaw NEW
Isabel B MaletGermanyAsiya Javayant PROPOSAL
David B MaletBrazilIoni Bowcher QUALIFIED
Adams X SergiItalyOnyama Limba NEW
Mujtaba T WaycottGermanyIoni Bowcher RENEWAL
Leja A SergiItalyXuxue Feng NEW
Frozen Columns
Name
Clifford H Ruta
Alejandro L Caudy
Adams R Chui
Salvatore I Caldarera
Julie I Poquette
Juan J Doe
Wickens Q Iturbide
Emily C Perin
Silvio K Morasca
Claire K Poquette
Misaki U Chui
Kaitlin Y Nicka
Jefferson Z Royster
Wickens Z Sergi
Maria L Inouye
Salvatore U Rim
Kaitlin X Saylors
Jones G Oldroyd
Emily J Maclead
Juan W Nicka
Jefferson U Royster
Alejandro T Rim
Misaki U Wieser
Claire Z Stockham
Chavez K Flosi
Leon E Vocelka
Silvio T Stockham
Johnson V Bolognia
Leon S Briddick
Misaki F Albares
Maisha S Albares
Darci U Malet
Munro D Paprocki
Tony P Dilliard
Sinclair P Butt
Murillo L Figeroa
Aruna R Campain
Costa J Venere
David A Doe
Julie T Dilliard
Deepesh U Tollner
Morrow Z Paprocki
Deepesh J Garufi
Isabel Y Venere
Morrow Q Saylors
Leon C Chui
Faith Q Slusarski
Leon I Rim
Antonio R Maclead
Stacey Z Iturbide
IdCountryDate
1000India2026-08-07
1001Australia2026-07-14
1002United Kingdom2026-07-16
1003Spain2026-07-13
1004Japan2026-08-03
1005Germany2026-07-11
1006Italy2026-08-03
1007Italy2026-08-08
1008Russia2026-08-02
1009India2026-07-31
1010United Kingdom2026-07-22
1011United Kingdom2026-07-17
1012India2026-08-06
1013Russia2026-07-19
1014Italy2026-07-30
1015Japan2026-08-03
1016India2026-08-09
1017United Kingdom2026-07-28
1018Argentina2026-07-17
1019Italy2026-07-12
1020United Kingdom2026-07-31
1021Canada2026-08-05
1022Canada2026-07-16
1023Brazil2026-07-17
1024Italy2026-07-13
1025Argentina2026-07-21
1026France2026-07-20
1027Brazil2026-08-01
1028United Kingdom2026-07-15
1029Argentina2026-07-26
1030India2026-07-31
1031Canada2026-07-28
1032Canada2026-08-04
1033Brazil2026-07-20
1034Spain2026-07-15
1035France2026-07-18
1036Brazil2026-07-13
1037Germany2026-07-28
1038United Kingdom2026-07-12
1039France2026-07-16
1040Argentina2026-08-02
1041Argentina2026-07-15
1042United Kingdom2026-08-08
1043India2026-07-22
1044Brazil2026-07-23
1045Argentina2026-08-06
1046Brazil2026-07-26
1047Australia2026-07-13
1048France2026-07-18
1049United Kingdom2026-07-19

On-Demand Data

NameIdCountryDate
Cody X Saylors1000Japan2026-08-05
Cody L Maclead1001Canada2026-07-29
Jeanfrancois T Marrier1002United Kingdom2026-07-22
Emily L Gillian1003Japan2026-07-26
Mujtaba E Nicka1004Australia2026-08-08
Nicolas D Rim1005Italy2026-07-29
Ricardo Y Foller1006France2026-08-08
Faith A Glick1007Germany2026-08-09
Izzy B Darakjy1008Russia2026-08-03
Aika A Whobrey1009Brazil2026-07-17
James S Perin1010Spain2026-07-31
Deepesh N Malet1011Spain2026-07-14
Aditya X Maclead1012Italy2026-07-18
Silvio G Sergi1013Japan2026-08-07
Isabel M Whobrey1014Spain2026-07-28
Juan A Flosi1015United Kingdom2026-07-16
Aditya A Sergi1016Argentina2026-07-15
Aruna B Saylors1017Brazil2026-07-20
Deepesh T Nestle1018Italy2026-07-30
Silvio T Tollner1019Australia2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson I OstroskyCanadaIoni Bowcher NEGOTIATION
Rodrigues F CaudyBrazilIvan Magalhaes RENEWAL
Kadeem Z PoquetteGermanyOnyama Limba UNQUALIFIED
Chavez N PoquetteCanadaOnyama Limba RENEWAL
Maisha F RulapaughBrazilAnna Fali NEGOTIATION
James J GarufiIndiaAnna Fali NEW
Ivar Z CaudySpainElwin Sharvill QUALIFIED
Alejandro K NickaUnited KingdomStephen Shaw RENEWAL
Tony D KuskoAustraliaElwin Sharvill QUALIFIED
Emily R BriddickIndiaAnna Fali UNQUALIFIED
Arvin U StockhamRussiaAnna Fali NEW
David B FlosiBrazilXuxue Feng QUALIFIED
Faith W DarakjySpainAsiya Javayant RENEWAL
Mayumi W PoquetteCanadaElwin Sharvill UNQUALIFIED
Arvin D ShinkoItalyBernardo Dominic NEGOTIATION
Adams Y CaudyArgentinaIvan Magalhaes PROPOSAL
Izzy C GauchoItalyBernardo Dominic PROPOSAL
Silvio I AmigonAustraliaAsiya Javayant QUALIFIED
Alejandro D VocelkaArgentinaBernardo Dominic QUALIFIED
Darci Y OldroydGermanyAsiya Javayant QUALIFIED
Ricardo W BowleyBrazilXuxue Feng QUALIFIED
Jennifer D FlosiBrazilIoni Bowcher RENEWAL
Alejandro M SlusarskiBrazilAsiya Javayant PROPOSAL
Stacey A DilliardFranceAmy Elsner QUALIFIED
Mayumi S SlusarskiJapanIvan Magalhaes PROPOSAL
Arvin P RoysterItalyOnyama Limba PROPOSAL
Sinclair K FerenczCanadaIvan Magalhaes NEGOTIATION
Wickens T SlusarskiArgentinaElwin Sharvill NEW
Mayumi G CampainJapanElwin Sharvill NEGOTIATION
Julie M MacleadArgentinaOnyama Limba PROPOSAL
Aditya Z NestleItalyOnyama Limba NEW
Kaitlin U KuskoRussiaIvan Magalhaes PROPOSAL
Murillo G VocelkaCanadaBernardo Dominic UNQUALIFIED
Costa S CaudyIndiaIoni Bowcher NEGOTIATION
Adams U NickaIndiaAsiya Javayant RENEWAL
Emily T InouyeBrazilBernardo Dominic NEW
David P DarakjyIndiaElwin Sharvill UNQUALIFIED
Maria H RimItalyIvan Magalhaes RENEWAL
Silvio C VocelkaBrazilStephen Shaw PROPOSAL
Faith R NickaSpainBernardo Dominic 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>