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
Greenwood B SaylorsFranceBernardo Dominic PROPOSAL
Ricardo I PaprockiBrazilIoni Bowcher NEGOTIATION
Mayumi N CaudyUnited KingdomOnyama Limba QUALIFIED
Smith V AmigonItalyAnna Fali UNQUALIFIED
Chavez P ButtFranceIoni Bowcher RENEWAL
Julie Y DarakjySpainStephen Shaw NEGOTIATION
Greenwood O NestleFranceOnyama Limba UNQUALIFIED
Ricardo B BriddickCanadaAsiya Javayant UNQUALIFIED
Silvio Z FlosiIndiaStephen Shaw PROPOSAL
Jones S OldroydSpainElwin Sharvill PROPOSAL
Wickens F IturbideGermanyBernardo Dominic UNQUALIFIED
Octavia X MarrierCanadaAsiya Javayant NEGOTIATION
Mayumi Y SchemmerCanadaStephen Shaw PROPOSAL
Johnson Q StensethIndiaOnyama Limba UNQUALIFIED
Jones L InouyeGermanyAmy Elsner QUALIFIED
Tony W MacleadItalyBernardo Dominic NEW
Octavia U NestleGermanyBernardo Dominic UNQUALIFIED
Wickens O NestleSpainAmy Elsner PROPOSAL
Ashley L PerinJapanAmy Elsner PROPOSAL
Arvin O KolmetzSpainStephen Shaw PROPOSAL
Murillo H RulapaughRussiaElwin Sharvill NEW
Octavia Y CampainAustraliaIoni Bowcher QUALIFIED
Maisha E NestleCanadaIvan Magalhaes QUALIFIED
Ricardo G WhobreyRussiaIvan Magalhaes RENEWAL
Morrow E BologniaGermanyAnna Fali PROPOSAL
Arvin K CampainIndiaAsiya Javayant UNQUALIFIED
Misaki G BowleyFranceIoni Bowcher UNQUALIFIED
Kadeem T DoeArgentinaElwin Sharvill UNQUALIFIED
Octavia D OstroskyAustraliaAsiya Javayant QUALIFIED
Clifford N BowleyUnited KingdomIvan Magalhaes RENEWAL
Juan E InouyeItalyAsiya Javayant NEW
Mayumi G MarrierUnited KingdomXuxue Feng QUALIFIED
Morrow M WhobreyIndiaAsiya Javayant NEGOTIATION
Antonio R GlickIndiaXuxue Feng NEGOTIATION
Aditya S FerenczIndiaAnna Fali NEW
Aika T WaycottArgentinaAnna Fali RENEWAL
Aika L RutaRussiaBernardo Dominic NEW
Wickens S AmigonCanadaXuxue Feng NEGOTIATION
Aditya U StockhamSpainAmy Elsner RENEWAL
Izzy F KolmetzSpainOnyama Limba PROPOSAL
Jeanfrancois D ButtBrazilStephen Shaw PROPOSAL
Isabel E VenereCanadaBernardo Dominic QUALIFIED
Leon O VocelkaRussiaIoni Bowcher QUALIFIED
Johnson Y DilliardFranceStephen Shaw NEW
Octavia B CaldareraIndiaBernardo Dominic RENEWAL
Arvin J KolmetzItalyStephen Shaw NEW
Munro L AlbaresFranceXuxue Feng PROPOSAL
Stacey T DilliardCanadaAnna Fali RENEWAL
Salvatore C VocelkaJapanAmy Elsner NEGOTIATION
Tony Z MarrierSpainBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood X ShinkoSpainAmy Elsner NEW
Greenwood H FollerSpainXuxue Feng PROPOSAL
Deepesh F MaletGermanyIoni Bowcher PROPOSAL
Aditya D BriddickBrazilIvan Magalhaes PROPOSAL
Antonio R NestleRussiaOnyama Limba RENEWAL
Greenwood O PaprockiIndiaBernardo Dominic NEW
Emily P CampainRussiaIvan Magalhaes NEGOTIATION
Smith H SlusarskiJapanIvan Magalhaes NEGOTIATION
Jennifer G FerenczJapanAmy Elsner RENEWAL
Nicolas F StockhamAustraliaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire W ButtArgentina2025-05-22Truhlar And Truhlar Attys PROPOSAL50Onyama Limba
1001Cody L PerinJapan2025-05-18Chapman, Ross E Esq PROPOSAL86Onyama Limba
1002James C NickaAustralia2025-06-06Benton, John B Jr QUALIFIED91Stephen Shaw
1003Emily Q KolmetzJapan2025-05-31Chapman, Ross E Esq UNQUALIFIED90Amy Elsner
1004Adams S GillianRussia2025-06-05Chemel, James L Cpa NEGOTIATION74Xuxue Feng
1005Clifford C WhobreyAustralia2025-06-08Commercial Press QUALIFIED6Xuxue Feng
1006Aika T DoeCanada2025-06-14Buckley Miller Wright UNQUALIFIED92Anna Fali
1007Emily V TollnerFrance2025-06-09Commercial Press NEW73Onyama Limba
1008Ivar Z CaldareraCanada2025-05-21Morlong Associates QUALIFIED42Onyama Limba
1009Julie R InouyeCanada2025-06-09Morlong Associates NEGOTIATION14Ioni Bowcher
1010Aika C SaylorsUnited Kingdom2025-06-08Rangoni Of Florence NEGOTIATION41Stephen Shaw
1011Kaitlin K OldroydRussia2025-06-08Chanay, Jeffrey A Esq UNQUALIFIED92Asiya Javayant
1012Isabel C DarakjyCanada2025-05-21Feiner Bros PROPOSAL48Elwin Sharvill
1013Murillo V MacleadCanada2025-05-31Printing Dimensions QUALIFIED34Anna Fali
1014Francesco D GillianRussia2025-06-08King, Christopher A Esq RENEWAL12Asiya Javayant
1015Ashley P BologniaRussia2025-05-29Rousseaux, Michael Esq NEGOTIATION67Onyama Limba
1016Ashley G StensethUnited Kingdom2025-06-08Truhlar And Truhlar Attys QUALIFIED13Amy Elsner
1017Leon D PoquetteItaly2025-05-26Dorl, James J Esq PROPOSAL50Elwin Sharvill
1018Kaitlin L ShinkoArgentina2025-05-23Chemel, James L Cpa QUALIFIED77Xuxue Feng
1019Costa A CampainArgentina2025-05-17Rangoni Of Florence PROPOSAL97Xuxue Feng
1020David W GarufiUnited Kingdom2025-05-29Commercial Press RENEWAL7Asiya Javayant
1021Jones Z SlusarskiIndia2025-06-12King, Christopher A Esq PROPOSAL96Bernardo Dominic
1022Arvin P MaletIndia2025-06-01Chapman, Ross E Esq UNQUALIFIED79Ivan Magalhaes
1023Ricardo L CaldareraArgentina2025-05-24Buckley Miller Wright PROPOSAL2Onyama Limba
1024Costa X DoeFrance2025-05-18King, Christopher A Esq NEGOTIATION14Onyama Limba
1025Emily N CampainArgentina2025-05-25Rangoni Of Florence NEGOTIATION6Xuxue Feng
1026Salvatore I RutaCanada2025-06-10Chapman, Ross E Esq PROPOSAL80Asiya Javayant
1027Munro E NickaGermany2025-05-30Rangoni Of Florence RENEWAL55Anna Fali
1028Mayumi J DarakjyJapan2025-05-22Chanay, Jeffrey A Esq PROPOSAL24Amy Elsner
1029James E AlbaresRussia2025-05-19Benton, John B Jr QUALIFIED1Bernardo Dominic
1030Aditya P KolmetzUnited Kingdom2025-06-06Feltz Printing Service PROPOSAL52Anna Fali
1031Greenwood Y CaudyCanada2025-06-15Buckley Miller Wright RENEWAL9Anna Fali
1032Chavez O NickaAustralia2025-06-15Rangoni Of Florence QUALIFIED77Elwin Sharvill
1033Faith B CaldareraJapan2025-06-12Rousseaux, Michael Esq NEGOTIATION87Ivan Magalhaes
1034Leon M FlosiCanada2025-05-19Chapman, Ross E Esq PROPOSAL1Anna Fali
1035Rodrigues S GauchoItaly2025-06-15Chanay, Jeffrey A Esq NEGOTIATION53Bernardo Dominic
1036Mujtaba E RimAustralia2025-05-25Commercial Press NEW27Stephen Shaw
1037Rodrigues J NickaRussia2025-06-06King, Christopher A Esq QUALIFIED7Ioni Bowcher
1038Maisha X GauchoJapan2025-06-13Dorl, James J Esq QUALIFIED66Asiya Javayant
1039Alejandro C CaldareraCanada2025-06-13Buckley Miller Wright RENEWAL90Onyama Limba
1040Nicolas Y AmigonJapan2025-06-04Feiner Bros RENEWAL76Onyama Limba
1041Chavez Q CampainUnited Kingdom2025-05-31Printing Dimensions UNQUALIFIED20Anna Fali
1042Faith W SchemmerFrance2025-05-31Chapman, Ross E Esq QUALIFIED55Bernardo Dominic
1043Rodrigues H MaletGermany2025-06-03Feiner Bros UNQUALIFIED25Stephen Shaw
1044Antonio B GillianJapan2025-05-25Dorl, James J Esq QUALIFIED26Stephen Shaw
1045Ricardo A GarufiGermany2025-06-01Chapman, Ross E Esq NEW74Ivan Magalhaes
1046Stacey L BowleyAustralia2025-05-19Chanay, Jeffrey A Esq QUALIFIED61Amy Elsner
1047Leon Y SlusarskiAustralia2025-05-24Truhlar And Truhlar Attys NEGOTIATION49Ivan Magalhaes
1048Claire V DilliardAustralia2025-05-19Chapman, Ross E Esq NEW58Bernardo Dominic
1049Deepesh P WieserJapan2025-05-30Dorl, James J Esq NEW38Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba K FollerGermanyAsiya Javayant RENEWAL
Jennifer R OldroydSpainAnna Fali RENEWAL
Octavia U RulapaughCanadaOnyama Limba NEGOTIATION
Salvatore B SchemmerGermanyAmy Elsner UNQUALIFIED
Aika R VocelkaUnited KingdomXuxue Feng QUALIFIED
Kadeem Z VocelkaBrazilAnna Fali NEGOTIATION
Kaitlin C PerinIndiaOnyama Limba UNQUALIFIED
Kadeem X DilliardRussiaAmy Elsner NEW
Maria W OldroydAustraliaIvan Magalhaes NEGOTIATION
Jennifer E ChuiArgentinaAnna Fali QUALIFIED
Morrow N DoeItalyAnna Fali PROPOSAL
Jeanfrancois U MaletItalyElwin Sharvill UNQUALIFIED
Julie B BowleyCanadaElwin Sharvill NEGOTIATION
Aika J PoquetteBrazilAmy Elsner RENEWAL
Jones E BowleyArgentinaXuxue Feng PROPOSAL
James Y KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Aika R WaycottBrazilAnna Fali RENEWAL
Maisha F MacleadJapanBernardo Dominic NEGOTIATION
Cody T RoysterCanadaAmy Elsner PROPOSAL
Aika F GlickIndiaIvan Magalhaes NEW
Jefferson A StensethJapanElwin Sharvill PROPOSAL
Adams G CaldareraCanadaIoni Bowcher NEGOTIATION
Juan R GlickGermanyElwin Sharvill PROPOSAL
Costa J AlbaresArgentinaAmy Elsner QUALIFIED
Johnson Z GillianUnited KingdomOnyama Limba RENEWAL
Alejandro X ChuiFranceElwin Sharvill NEW
Arvin E GillianArgentinaOnyama Limba NEGOTIATION
Francesco I ShinkoUnited KingdomXuxue Feng NEW
Ashley A IturbideIndiaOnyama Limba UNQUALIFIED
Kadeem B VocelkaCanadaStephen Shaw PROPOSAL
Adams G WieserSpainOnyama Limba PROPOSAL
Smith U FollerJapanBernardo Dominic QUALIFIED
Chavez I FlosiJapanAsiya Javayant RENEWAL
Isabel S SaylorsBrazilIoni Bowcher NEGOTIATION
Aika W VenereSpainIvan Magalhaes QUALIFIED
Aditya Z DoeItalyAnna Fali NEW
Sinclair G AmigonArgentinaAsiya Javayant UNQUALIFIED
Alejandro Y CaldareraIndiaIvan Magalhaes NEW
Leja J BologniaBrazilStephen Shaw RENEWAL
Salvatore W SergiBrazilAnna Fali QUALIFIED
Silvio I DoeSpainStephen Shaw PROPOSAL
Maisha E CampainArgentinaAnna Fali NEW
Jones D CaldareraUnited KingdomOnyama Limba NEW
Murillo Y MaletItalyIvan Magalhaes RENEWAL
David X RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Johnson X WieserUnited KingdomAsiya Javayant NEGOTIATION
Misaki V OstroskyUnited KingdomStephen Shaw RENEWAL
Nicolas D GauchoFranceOnyama Limba NEGOTIATION
Costa R NickaIndiaXuxue Feng UNQUALIFIED
Ricardo F GillianAustraliaIoni Bowcher RENEWAL
Frozen Columns
Name
Nicolas W Slusarski
Julie A Schemmer
Francesco E Nicka
Alejandro M Sergi
Greenwood Q Sergi
Rodrigues U Perin
Aditya O Briddick
Arvin V Foller
Adams Q Poquette
Misaki M Kolmetz
Smith X Chui
Morrow B Ruta
Johnson R Maclead
Munro I Marrier
Ivar J Waycott
Antonio F Kolmetz
Morrow Z Iturbide
Faith I Amigon
Nicolas S Kolmetz
Chavez B Bolognia
Octavia Q Morasca
James Y Morasca
Costa T Shinko
Francesco U Royster
Alejandro H Dilliard
Wickens J Whobrey
Adams F Kolmetz
Smith N Malet
Kadeem P Nicka
Murillo J Ostrosky
Octavia R Perin
Silvio U Amigon
Leja G Bolognia
Murillo J Iturbide
Julie O Malet
Antonio M Briddick
Greenwood B Iturbide
David E Nestle
Silvio J Darakjy
Munro T Chui
Johnson M Sergi
Izzy G Rulapaugh
Maisha E Nestle
Smith A Morasca
James Q Nicka
Murillo H Bolognia
Darci J Malet
Adams D Stenseth
Leja G Inouye
Cody J Shinko
IdCountryDate
1000France2025-05-23
1001Russia2025-05-20
1002India2025-05-17
1003Brazil2025-06-07
1004United Kingdom2025-06-13
1005Japan2025-06-13
1006India2025-06-14
1007Germany2025-05-23
1008Australia2025-06-12
1009Brazil2025-06-04
1010United Kingdom2025-06-15
1011Spain2025-06-09
1012Germany2025-05-18
1013Japan2025-06-13
1014United Kingdom2025-06-08
1015Argentina2025-06-13
1016Canada2025-06-10
1017Italy2025-06-15
1018Germany2025-05-29
1019France2025-06-03
1020Russia2025-06-11
1021Australia2025-06-05
1022Russia2025-06-01
1023Italy2025-06-06
1024Japan2025-06-04
1025Brazil2025-05-17
1026Russia2025-05-31
1027Brazil2025-06-13
1028Japan2025-05-21
1029Russia2025-05-28
1030Germany2025-05-29
1031Argentina2025-05-22
1032Germany2025-05-17
1033Russia2025-06-10
1034Argentina2025-06-09
1035Russia2025-06-06
1036Italy2025-05-29
1037Brazil2025-06-03
1038Australia2025-06-11
1039Canada2025-06-14
1040Australia2025-05-22
1041Canada2025-05-29
1042Argentina2025-05-18
1043Germany2025-05-22
1044India2025-05-24
1045Argentina2025-05-17
1046Canada2025-05-29
1047India2025-05-25
1048India2025-06-14
1049Canada2025-05-23

On-Demand Data

NameIdCountryDate
Arvin X Rim1000Germany2025-06-03
Izzy O Iturbide1001United Kingdom2025-05-18
Nicolas B Venere1002Argentina2025-05-26
Cody N Tollner1003United Kingdom2025-05-31
Mayumi F Morasca1004Australia2025-05-26
Alejandro H Perin1005Argentina2025-06-15
Isabel L Figeroa1006Italy2025-06-10
Leon S Rim1007Germany2025-05-22
Chavez P Rulapaugh1008Russia2025-05-28
Jefferson L Tollner1009United Kingdom2025-05-27
Jefferson T Malet1010Australia2025-06-06
James B Paprocki1011Spain2025-05-18
Faith E Wieser1012Russia2025-06-07
Octavia E Amigon1013Russia2025-06-02
Izzy I Oldroyd1014India2025-06-13
Murillo V Ostrosky1015Argentina2025-05-26
Morrow B Maclead1016Australia2025-05-17
Kadeem E Poquette1017United Kingdom2025-06-08
Emily Y Caldarera1018Canada2025-05-31
Ashley K Figeroa1019Australia2025-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro K NickaCanadaAnna Fali QUALIFIED
Cody W ButtCanadaAnna Fali NEGOTIATION
Claire O SaylorsRussiaAsiya Javayant NEGOTIATION
Ricardo T FlosiJapanIoni Bowcher NEW
David V MacleadSpainElwin Sharvill UNQUALIFIED
Smith Q MaletJapanAnna Fali RENEWAL
Darci Q RutaSpainAsiya Javayant RENEWAL
Kadeem W MacleadBrazilIvan Magalhaes NEW
Ricardo J OstroskyFranceAsiya Javayant RENEWAL
Faith B CaudyJapanStephen Shaw QUALIFIED
Antonio Q DoeFranceStephen Shaw RENEWAL
Darci A StockhamCanadaIoni Bowcher NEGOTIATION
James G FollerUnited KingdomBernardo Dominic NEW
Faith R FerenczGermanyIoni Bowcher NEW
Claire E RutaAustraliaXuxue Feng NEGOTIATION
Murillo D VocelkaGermanyAsiya Javayant QUALIFIED
Ashley R BriddickJapanAsiya Javayant UNQUALIFIED
Julie O ButtFranceAnna Fali NEW
Deepesh I StensethArgentinaAmy Elsner QUALIFIED
Munro E RimAustraliaStephen Shaw PROPOSAL
Darci V FlosiAustraliaAnna Fali QUALIFIED
Morrow R WaycottIndiaStephen Shaw UNQUALIFIED
Julie F PerinFranceXuxue Feng NEGOTIATION
Emily D RimGermanyAmy Elsner UNQUALIFIED
Claire G SaylorsGermanyAnna Fali RENEWAL
Aditya R DilliardAustraliaAsiya Javayant NEW
Julie J VenereRussiaAmy Elsner NEW
Deepesh T BowleyGermanyAmy Elsner NEW
Deepesh N FollerItalyStephen Shaw UNQUALIFIED
Aditya K PerinAustraliaXuxue Feng PROPOSAL
Maria E CampainItalyAnna Fali QUALIFIED
Costa V ButtCanadaIvan Magalhaes PROPOSAL
Johnson F DilliardItalyIoni Bowcher NEW
Isabel B SergiItalyAsiya Javayant QUALIFIED
Costa Z StockhamSpainAsiya Javayant NEW
Morrow B ChuiArgentinaStephen Shaw QUALIFIED
Rodrigues M SergiRussiaXuxue Feng QUALIFIED
Mayumi C AmigonRussiaXuxue Feng NEW
Aika E FlosiItalyAmy Elsner NEGOTIATION
Tony S GauchoIndiaAmy Elsner NEW

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