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
Aika C KolmetzFranceAsiya Javayant NEGOTIATION
Octavia Y NestleCanadaIoni Bowcher NEW
Emily X AmigonSpainAsiya Javayant NEGOTIATION
Leon J AmigonUnited KingdomAsiya Javayant RENEWAL
Emily V SergiSpainStephen Shaw UNQUALIFIED
Tony K GarufiArgentinaStephen Shaw NEW
Stacey L SchemmerArgentinaAsiya Javayant PROPOSAL
Jones M AmigonGermanyIoni Bowcher UNQUALIFIED
Faith T WieserArgentinaAmy Elsner NEW
Aika Y FlosiFranceAmy Elsner RENEWAL
Juan L VocelkaSpainStephen Shaw RENEWAL
Aika O BriddickGermanyAnna Fali UNQUALIFIED
Chavez T MarrierCanadaIoni Bowcher NEGOTIATION
Smith Q NickaIndiaStephen Shaw NEGOTIATION
Aika F ShinkoFranceIvan Magalhaes NEW
Jennifer P VocelkaUnited KingdomAnna Fali PROPOSAL
Maria S ChuiAustraliaAmy Elsner NEGOTIATION
Stacey D ShinkoFranceIvan Magalhaes PROPOSAL
Jones I SergiArgentinaBernardo Dominic QUALIFIED
Aruna S InouyeItalyAsiya Javayant RENEWAL
Mayumi B OldroydItalyBernardo Dominic QUALIFIED
Jefferson A OstroskyRussiaAnna Fali RENEWAL
Darci F WhobreyArgentinaAsiya Javayant NEW
Munro R WhobreyRussiaBernardo Dominic RENEWAL
Smith O PaprockiFranceIvan Magalhaes UNQUALIFIED
Chavez F NickaSpainAmy Elsner RENEWAL
Leja D WaycottJapanElwin Sharvill NEGOTIATION
Johnson B OldroydBrazilOnyama Limba RENEWAL
Maria T GauchoSpainAnna Fali NEW
Mayumi J VocelkaItalyIvan Magalhaes UNQUALIFIED
Costa G KuskoItalyOnyama Limba NEW
Aditya R AmigonIndiaXuxue Feng UNQUALIFIED
Kaitlin V ButtUnited KingdomBernardo Dominic NEW
Jones D RoysterFranceStephen Shaw NEGOTIATION
Costa P VocelkaBrazilAmy Elsner UNQUALIFIED
Maisha M CaudyRussiaIvan Magalhaes PROPOSAL
Murillo J TollnerUnited KingdomIvan Magalhaes RENEWAL
Maisha Z AmigonArgentinaIoni Bowcher UNQUALIFIED
Chavez T GlickCanadaElwin Sharvill QUALIFIED
Salvatore Q WaycottGermanyIvan Magalhaes PROPOSAL
Salvatore C StockhamRussiaAsiya Javayant RENEWAL
Aditya W OstroskyArgentinaStephen Shaw PROPOSAL
Maria B AlbaresArgentinaStephen Shaw UNQUALIFIED
Smith N MorascaItalyAsiya Javayant NEGOTIATION
Cody K CampainAustraliaIoni Bowcher RENEWAL
Kaitlin J PoquetteItalyIoni Bowcher RENEWAL
David E AlbaresRussiaAsiya Javayant PROPOSAL
Smith Y WhobreyItalyElwin Sharvill NEGOTIATION
Maisha D RoysterJapanStephen Shaw QUALIFIED
Leja B SchemmerBrazilAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha M FollerIndiaIoni Bowcher QUALIFIED
Cody T OldroydItalyIvan Magalhaes QUALIFIED
Salvatore F DilliardArgentinaElwin Sharvill RENEWAL
Leon W SchemmerArgentinaIoni Bowcher NEGOTIATION
Octavia F NickaIndiaAsiya Javayant QUALIFIED
Mujtaba P PoquetteIndiaIvan Magalhaes QUALIFIED
Arvin U NickaJapanElwin Sharvill NEGOTIATION
Claire O SlusarskiUnited KingdomStephen Shaw QUALIFIED
Clifford D DilliardRussiaStephen Shaw QUALIFIED
Misaki N GlickBrazilAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois T VenereRussia2026-06-03Buckley Miller Wright NEGOTIATION71Anna Fali
1001Misaki E FerenczRussia2026-06-20Dorl, James J Esq RENEWAL19Amy Elsner
1002Jones B WhobreyJapan2026-06-28Buckley Miller Wright NEW52Amy Elsner
1003Sinclair P VocelkaCanada2026-06-03Chemel, James L Cpa UNQUALIFIED44Onyama Limba
1004Juan B WaycottAustralia2026-06-26Feltz Printing Service RENEWAL56Anna Fali
1005Cody X RimCanada2026-06-27Chapman, Ross E Esq QUALIFIED78Stephen Shaw
1006Johnson W PaprockiJapan2026-06-17King, Christopher A Esq UNQUALIFIED46Onyama Limba
1007Claire A WieserBrazil2026-06-04Rangoni Of Florence PROPOSAL11Elwin Sharvill
1008Aika H AmigonJapan2026-06-04King, Christopher A Esq PROPOSAL96Asiya Javayant
1009Claire R BologniaFrance2026-06-09Rangoni Of Florence UNQUALIFIED84Elwin Sharvill
1010Leon E MaletItaly2026-06-08Dorl, James J Esq UNQUALIFIED37Onyama Limba
1011Mayumi P SchemmerSpain2026-06-19Feiner Bros NEGOTIATION93Ioni Bowcher
1012Ivar I VocelkaRussia2026-06-03King, Christopher A Esq NEW13Asiya Javayant
1013Deepesh G CaudyUnited Kingdom2026-06-27Feltz Printing Service PROPOSAL75Anna Fali
1014Ashley F StockhamBrazil2026-06-02Chemel, James L Cpa UNQUALIFIED44Asiya Javayant
1015Aruna C OldroydGermany2026-06-05Rangoni Of Florence RENEWAL46Bernardo Dominic
1016Claire A FigeroaBrazil2026-06-07Chapman, Ross E Esq NEGOTIATION83Stephen Shaw
1017Jones A TollnerRussia2026-06-10Rousseaux, Michael Esq PROPOSAL65Bernardo Dominic
1018Kaitlin L NestleIndia2026-06-26Chapman, Ross E Esq RENEWAL3Anna Fali
1019Ricardo P MaletIndia2026-06-13Chapman, Ross E Esq RENEWAL62Stephen Shaw
1020Ricardo D GauchoJapan2026-06-14Printing Dimensions PROPOSAL96Asiya Javayant
1021Juan B CaldareraFrance2026-06-02Buckley Miller Wright NEGOTIATION79Amy Elsner
1022Munro O CaudyIndia2026-06-27Feltz Printing Service NEW77Stephen Shaw
1023Wickens O FollerUnited Kingdom2026-06-08Commercial Press QUALIFIED51Elwin Sharvill
1024Jefferson F WieserItaly2026-06-13Chapman, Ross E Esq PROPOSAL31Elwin Sharvill
1025Mayumi X BowleyItaly2026-06-26Chemel, James L Cpa PROPOSAL95Asiya Javayant
1026Juan R CaudyArgentina2026-06-20Benton, John B Jr UNQUALIFIED15Amy Elsner
1027Munro M TollnerCanada2026-06-22King, Christopher A Esq NEGOTIATION84Xuxue Feng
1028Murillo A BowleyItaly2026-06-14Chemel, James L Cpa PROPOSAL88Bernardo Dominic
1029Emily J SchemmerGermany2026-06-13Rangoni Of Florence NEW76Onyama Limba
1030Arvin N FollerItaly2026-06-11Commercial Press RENEWAL28Anna Fali
1031Claire Y PoquetteRussia2026-06-12Chapman, Ross E Esq QUALIFIED10Bernardo Dominic
1032Jefferson B RoysterSpain2026-06-26Benton, John B Jr NEGOTIATION16Ivan Magalhaes
1033Ashley K StensethAustralia2026-06-12Buckley Miller Wright QUALIFIED36Elwin Sharvill
1034Antonio I FollerFrance2026-06-05Buckley Miller Wright NEW86Amy Elsner
1035Murillo X TollnerGermany2026-06-03Chanay, Jeffrey A Esq RENEWAL68Xuxue Feng
1036Chavez R SchemmerIndia2026-06-24Rangoni Of Florence RENEWAL26Ioni Bowcher
1037Maria X FerenczJapan2026-07-01Rangoni Of Florence UNQUALIFIED72Ioni Bowcher
1038Leja X SergiFrance2026-06-26Buckley Miller Wright RENEWAL61Onyama Limba
1039Francesco J BowleyBrazil2026-06-05Chemel, James L Cpa RENEWAL60Bernardo Dominic
1040Johnson X PaprockiSpain2026-06-27King, Christopher A Esq UNQUALIFIED42Bernardo Dominic
1041Smith J FigeroaFrance2026-06-03Truhlar And Truhlar Attys PROPOSAL81Elwin Sharvill
1042Chavez Y VocelkaItaly2026-06-28Dorl, James J Esq NEW36Elwin Sharvill
1043Deepesh Z WieserCanada2026-06-28Chemel, James L Cpa PROPOSAL93Xuxue Feng
1044Ashley Y AlbaresBrazil2026-06-19Chemel, James L Cpa PROPOSAL14Onyama Limba
1045Chavez U DoeItaly2026-06-13Rousseaux, Michael Esq NEW78Stephen Shaw
1046Arvin X MaletBrazil2026-06-07Benton, John B Jr QUALIFIED96Onyama Limba
1047Kaitlin L BriddickSpain2026-06-21Truhlar And Truhlar Attys UNQUALIFIED13Bernardo Dominic
1048Silvio T DoeAustralia2026-06-22Rangoni Of Florence RENEWAL14Ivan Magalhaes
1049Aika M GlickUnited Kingdom2026-06-11Chanay, Jeffrey A Esq RENEWAL51Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa V KuskoFranceBernardo Dominic PROPOSAL
Isabel U OstroskyJapanIoni Bowcher UNQUALIFIED
Juan F PoquetteBrazilOnyama Limba UNQUALIFIED
Ashley P WieserFranceAnna Fali RENEWAL
Cody I MarrierBrazilAsiya Javayant NEW
Murillo Y ButtBrazilAnna Fali PROPOSAL
Costa Q PaprockiBrazilAsiya Javayant PROPOSAL
James A MarrierRussiaAmy Elsner RENEWAL
Adams M OldroydSpainOnyama Limba QUALIFIED
Clifford C GarufiArgentinaElwin Sharvill QUALIFIED
Silvio Z SaylorsArgentinaAsiya Javayant NEW
Maisha R FlosiItalyOnyama Limba NEGOTIATION
Adams X FerenczJapanBernardo Dominic UNQUALIFIED
Morrow H RimFranceBernardo Dominic RENEWAL
Murillo J IturbideCanadaBernardo Dominic RENEWAL
Rodrigues Z FlosiArgentinaIoni Bowcher QUALIFIED
Leja N RoysterIndiaIvan Magalhaes RENEWAL
Claire C MorascaIndiaAnna Fali NEGOTIATION
Silvio B GarufiIndiaOnyama Limba NEW
Jones S RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Jennifer Y FerenczRussiaOnyama Limba NEGOTIATION
Silvio B CampainRussiaBernardo Dominic QUALIFIED
Leon N NestleIndiaOnyama Limba RENEWAL
Ricardo N BowleySpainAsiya Javayant PROPOSAL
Costa P AlbaresArgentinaIoni Bowcher RENEWAL
Maisha D StensethBrazilStephen Shaw PROPOSAL
Salvatore H MacleadIndiaAsiya Javayant QUALIFIED
Jeanfrancois Y ButtItalyIvan Magalhaes UNQUALIFIED
Leon D PerinJapanElwin Sharvill QUALIFIED
Sinclair O WaycottSpainElwin Sharvill NEGOTIATION
Izzy R IturbideSpainIoni Bowcher NEW
Kadeem P MarrierJapanOnyama Limba UNQUALIFIED
Munro H PaprockiJapanIvan Magalhaes NEW
Maria R VenereFranceBernardo Dominic RENEWAL
Emily I ButtAustraliaElwin Sharvill QUALIFIED
Julie D AmigonCanadaIoni Bowcher NEW
Darci B WaycottUnited KingdomBernardo Dominic PROPOSAL
Faith F ShinkoBrazilElwin Sharvill PROPOSAL
Jones W TollnerArgentinaIoni Bowcher UNQUALIFIED
Salvatore I PaprockiCanadaAsiya Javayant RENEWAL
Leon J RimRussiaElwin Sharvill QUALIFIED
James P NickaUnited KingdomBernardo Dominic NEW
Aika M BriddickGermanyBernardo Dominic NEGOTIATION
Izzy Z WhobreySpainIvan Magalhaes NEGOTIATION
Antonio P GlickUnited KingdomBernardo Dominic PROPOSAL
Deepesh K MaletJapanAmy Elsner NEW
Johnson A DoeJapanAmy Elsner UNQUALIFIED
Izzy E MorascaRussiaIvan Magalhaes RENEWAL
Smith U PaprockiBrazilBernardo Dominic QUALIFIED
Adams V WieserJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Darci Y Malet
Antonio L Ferencz
Ricardo B Schemmer
Clifford O Bowley
Juan P Amigon
Sinclair A Chui
Arvin R Bowley
Ricardo V Campain
Aika O Dilliard
Greenwood U Poquette
Leja I Darakjy
Nicolas G Shinko
Kadeem B Waycott
Greenwood L Nicka
Murillo W Whobrey
Darci H Bowley
Munro T Albares
Aruna W Poquette
Faith A Marrier
Murillo M Glick
Sinclair F Doe
Kaitlin Z Nestle
Murillo Q Schemmer
Costa F Darakjy
Salvatore V Sergi
Maria U Caldarera
Aditya Z Glick
Ashley P Royster
Octavia A Dilliard
Morrow T Flosi
Cody Q Chui
Francesco R Malet
Jeanfrancois Y Gillian
Jones A Rulapaugh
Deepesh Z Butt
Smith K Wieser
Misaki E Briddick
Smith G Campain
Julie T Ostrosky
Antonio M Saylors
Salvatore E Butt
Ashley J Doe
Munro H Wieser
Ashley J Ruta
Faith Y Nicka
Johnson I Amigon
Salvatore R Caudy
Antonio N Rulapaugh
David O Kolmetz
Darci P Slusarski
IdCountryDate
1000India2026-06-15
1001Japan2026-06-30
1002Argentina2026-06-03
1003Brazil2026-06-28
1004Brazil2026-06-13
1005Argentina2026-06-23
1006Spain2026-06-15
1007Japan2026-06-03
1008Italy2026-06-17
1009Argentina2026-06-07
1010Japan2026-06-22
1011Russia2026-06-23
1012Russia2026-07-01
1013Russia2026-06-23
1014Russia2026-06-02
1015Germany2026-07-01
1016Canada2026-06-05
1017India2026-06-22
1018Germany2026-06-21
1019France2026-06-28
1020Brazil2026-06-23
1021Spain2026-06-06
1022Canada2026-06-21
1023Russia2026-06-10
1024Germany2026-06-27
1025United Kingdom2026-06-12
1026Spain2026-06-02
1027Argentina2026-07-01
1028Brazil2026-06-16
1029Spain2026-06-02
1030Australia2026-06-09
1031India2026-06-26
1032Germany2026-06-29
1033Japan2026-06-09
1034Canada2026-06-28
1035Italy2026-06-21
1036Japan2026-06-17
1037Germany2026-06-16
1038Spain2026-06-21
1039Argentina2026-06-18
1040France2026-06-14
1041Germany2026-06-04
1042United Kingdom2026-06-19
1043United Kingdom2026-07-01
1044Italy2026-06-05
1045Canada2026-06-14
1046Japan2026-06-13
1047India2026-06-26
1048India2026-06-24
1049Spain2026-06-18

On-Demand Data

NameIdCountryDate
Sinclair U Garufi1000Canada2026-06-04
Greenwood J Wieser1001United Kingdom2026-07-01
Jennifer N Butt1002India2026-06-24
Murillo E Marrier1003Canada2026-06-22
Sinclair O Whobrey1004Brazil2026-06-14
Rodrigues F Ruta1005Japan2026-06-29
Darci W Butt1006United Kingdom2026-06-21
James G Dilliard1007Japan2026-06-18
Julie Z Waycott1008Russia2026-06-05
Sinclair J Marrier1009India2026-06-10
Cody M Malet1010Argentina2026-06-13
Silvio B Slusarski1011Germany2026-06-08
Alejandro F Nestle1012Germany2026-06-03
Faith V Bowley1013Japan2026-06-08
Nicolas W Nestle1014France2026-06-20
Munro W Garufi1015Germany2026-06-26
Nicolas Z Caldarera1016Germany2026-06-03
Jeanfrancois L Malet1017Brazil2026-06-08
Jefferson D Rulapaugh1018Spain2026-06-03
Johnson V Albares1019Brazil2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio F AmigonGermanyElwin Sharvill NEW
Maisha E WieserUnited KingdomAmy Elsner UNQUALIFIED
Deepesh R PerinAustraliaAsiya Javayant PROPOSAL
David E WieserBrazilOnyama Limba QUALIFIED
Greenwood M RulapaughRussiaOnyama Limba QUALIFIED
Murillo X FlosiIndiaElwin Sharvill RENEWAL
Julie U CaudyJapanBernardo Dominic NEW
Morrow X GillianUnited KingdomAmy Elsner NEGOTIATION
Aditya G VocelkaUnited KingdomAnna Fali QUALIFIED
Murillo H SlusarskiRussiaXuxue Feng NEW
Wickens Y TollnerBrazilStephen Shaw UNQUALIFIED
Sinclair R PoquetteJapanStephen Shaw NEGOTIATION
Leja L CaldareraFranceAnna Fali PROPOSAL
Juan B ShinkoIndiaXuxue Feng PROPOSAL
Maria A InouyeUnited KingdomAnna Fali UNQUALIFIED
Octavia B ButtFranceIvan Magalhaes NEW
Arvin L DilliardFranceXuxue Feng QUALIFIED
Clifford M NickaItalyIoni Bowcher QUALIFIED
Adams M KuskoUnited KingdomOnyama Limba QUALIFIED
Isabel Z IturbideFranceAnna Fali NEGOTIATION
Jeanfrancois J TollnerItalyXuxue Feng PROPOSAL
Murillo T InouyeBrazilOnyama Limba QUALIFIED
Aditya U MacleadBrazilAmy Elsner PROPOSAL
Maisha C GauchoJapanStephen Shaw NEW
James P GillianArgentinaAmy Elsner RENEWAL
Maria Z NickaJapanStephen Shaw QUALIFIED
Leon A GauchoArgentinaBernardo Dominic NEW
Wickens U VenereCanadaAnna Fali PROPOSAL
Arvin T GillianUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues A StockhamSpainIoni Bowcher PROPOSAL
Costa N MaletFranceAsiya Javayant RENEWAL
Greenwood K SchemmerBrazilAsiya Javayant NEW
Ricardo Q BologniaItalyBernardo Dominic PROPOSAL
Tony U FollerItalyAsiya Javayant UNQUALIFIED
Jennifer Y BriddickUnited KingdomAnna Fali UNQUALIFIED
Ivar T BowleyBrazilAsiya Javayant RENEWAL
Kaitlin S PerinRussiaXuxue Feng NEW
Darci U FerenczItalyStephen Shaw PROPOSAL
Claire S AmigonRussiaIoni Bowcher UNQUALIFIED
Mujtaba I VocelkaCanadaBernardo Dominic 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">
            <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>