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
Isabel N KuskoSpainIvan Magalhaes PROPOSAL
Aika R IturbideArgentinaBernardo Dominic UNQUALIFIED
Leja Q PoquetteAustraliaElwin Sharvill NEW
Faith Q RutaIndiaAmy Elsner QUALIFIED
Misaki F BriddickGermanyAmy Elsner RENEWAL
Aruna N OldroydArgentinaIoni Bowcher NEW
Izzy Z WaycottBrazilAmy Elsner RENEWAL
Misaki T TollnerFranceAsiya Javayant QUALIFIED
Claire X KuskoFranceOnyama Limba NEGOTIATION
Jennifer E WaycottIndiaAsiya Javayant NEW
Leon R OstroskyBrazilAmy Elsner UNQUALIFIED
Wickens K DilliardItalyIvan Magalhaes NEW
Isabel J SergiCanadaXuxue Feng UNQUALIFIED
Kadeem W RulapaughGermanyAsiya Javayant RENEWAL
Aruna N SaylorsCanadaIoni Bowcher NEW
Jones J InouyeIndiaElwin Sharvill PROPOSAL
Aika X GillianJapanIvan Magalhaes UNQUALIFIED
Morrow Q SergiRussiaXuxue Feng UNQUALIFIED
Salvatore Z WaycottBrazilStephen Shaw QUALIFIED
Nicolas C CaldareraArgentinaIvan Magalhaes NEGOTIATION
Stacey W KuskoSpainIvan Magalhaes QUALIFIED
Johnson L RoysterItalyStephen Shaw NEW
Juan L KolmetzItalyElwin Sharvill NEGOTIATION
Izzy H MaletCanadaElwin Sharvill NEGOTIATION
Kadeem E ButtFranceIoni Bowcher NEW
Darci T StockhamIndiaOnyama Limba UNQUALIFIED
David K SergiSpainStephen Shaw NEGOTIATION
Faith C NickaUnited KingdomOnyama Limba PROPOSAL
Juan L MacleadSpainAmy Elsner NEGOTIATION
Mayumi L PaprockiGermanyBernardo Dominic NEW
Octavia H MaletUnited KingdomElwin Sharvill NEGOTIATION
Mayumi L DilliardIndiaBernardo Dominic PROPOSAL
David H AmigonSpainXuxue Feng PROPOSAL
Izzy M ButtRussiaBernardo Dominic QUALIFIED
Salvatore J GillianUnited KingdomAmy Elsner RENEWAL
Leon P SergiRussiaIoni Bowcher NEGOTIATION
Aika H AmigonFranceIvan Magalhaes PROPOSAL
Maisha D CaudyAustraliaAmy Elsner PROPOSAL
Jennifer R PoquetteSpainAnna Fali NEW
Clifford H MarrierGermanyAmy Elsner NEGOTIATION
Mujtaba R RutaFranceAsiya Javayant RENEWAL
Aruna F MaletBrazilAmy Elsner PROPOSAL
Julie S VocelkaFranceAmy Elsner PROPOSAL
Kadeem U BowleyFranceStephen Shaw PROPOSAL
Kadeem L TollnerUnited KingdomAsiya Javayant RENEWAL
Octavia J NestleCanadaElwin Sharvill RENEWAL
Francesco W WhobreyFranceElwin Sharvill RENEWAL
Jefferson F BowleyArgentinaBernardo Dominic NEW
Isabel B RimJapanXuxue Feng NEW
Tony Q WhobreyUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha I GauchoUnited KingdomXuxue Feng QUALIFIED
Mujtaba W ChuiBrazilAsiya Javayant QUALIFIED
Deepesh I AmigonCanadaAnna Fali NEW
Emily E SergiUnited KingdomIvan Magalhaes NEGOTIATION
Chavez O AmigonBrazilIvan Magalhaes NEGOTIATION
Emily F SergiGermanyAmy Elsner NEGOTIATION
Octavia P PerinItalyAnna Fali RENEWAL
Ashley B GarufiRussiaXuxue Feng NEGOTIATION
Clifford Z VenereJapanStephen Shaw UNQUALIFIED
Kaitlin C PerinFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika J FigeroaBrazil2026-08-04Rangoni Of Florence PROPOSAL15Onyama Limba
1001Ivar Y NestleFrance2026-07-22King, Christopher A Esq NEW98Ivan Magalhaes
1002Ashley L PoquetteSpain2026-07-29Truhlar And Truhlar Attys QUALIFIED23Onyama Limba
1003Jones F GarufiFrance2026-08-12Buckley Miller Wright PROPOSAL65Xuxue Feng
1004James U DilliardGermany2026-08-03Commercial Press NEGOTIATION24Anna Fali
1005Murillo G OldroydIndia2026-07-20Commercial Press NEGOTIATION50Xuxue Feng
1006Francesco E StockhamJapan2026-08-02Chanay, Jeffrey A Esq PROPOSAL86Ivan Magalhaes
1007Izzy B BowleyItaly2026-07-15Dorl, James J Esq NEW77Ioni Bowcher
1008Mujtaba O GarufiBrazil2026-07-15Chanay, Jeffrey A Esq PROPOSAL60Elwin Sharvill
1009Chavez L PoquetteGermany2026-07-14Feltz Printing Service NEW58Onyama Limba
1010Wickens I MaletIndia2026-07-23King, Christopher A Esq PROPOSAL12Stephen Shaw
1011Mujtaba D AlbaresUnited Kingdom2026-07-15Rousseaux, Michael Esq RENEWAL33Stephen Shaw
1012Ricardo V ShinkoAustralia2026-07-17Chemel, James L Cpa NEGOTIATION92Elwin Sharvill
1013David S ChuiJapan2026-08-09Commercial Press QUALIFIED90Anna Fali
1014Darci L SchemmerBrazil2026-08-02Dorl, James J Esq PROPOSAL87Amy Elsner
1015Antonio S SaylorsCanada2026-08-08Benton, John B Jr RENEWAL33Stephen Shaw
1016Adams S GillianGermany2026-07-29Dorl, James J Esq UNQUALIFIED67Asiya Javayant
1017Ivar L DarakjyGermany2026-07-29Dorl, James J Esq NEGOTIATION9Amy Elsner
1018Johnson V StockhamItaly2026-07-23Rousseaux, Michael Esq NEGOTIATION97Stephen Shaw
1019Ashley T DarakjyCanada2026-08-09Benton, John B Jr UNQUALIFIED43Ivan Magalhaes
1020Greenwood K AlbaresCanada2026-07-29Benton, John B Jr NEW68Anna Fali
1021Jones Z RoysterSpain2026-07-27Chapman, Ross E Esq NEGOTIATION99Anna Fali
1022Jones W DarakjyAustralia2026-08-03Dorl, James J Esq PROPOSAL99Bernardo Dominic
1023Ashley W FlosiGermany2026-07-28Rangoni Of Florence UNQUALIFIED51Stephen Shaw
1024Greenwood M KuskoRussia2026-07-23Chanay, Jeffrey A Esq QUALIFIED72Elwin Sharvill
1025Ashley S OldroydFrance2026-07-25Dorl, James J Esq PROPOSAL25Anna Fali
1026Octavia M VenereRussia2026-07-19Rousseaux, Michael Esq NEGOTIATION45Amy Elsner
1027Faith E PerinIndia2026-08-12Rousseaux, Michael Esq NEGOTIATION83Elwin Sharvill
1028Izzy B KuskoJapan2026-07-20Dorl, James J Esq NEW21Bernardo Dominic
1029Izzy V MaletAustralia2026-07-16Buckley Miller Wright QUALIFIED56Asiya Javayant
1030Jones L SlusarskiIndia2026-07-23Buckley Miller Wright QUALIFIED58Bernardo Dominic
1031Jones H BriddickJapan2026-07-28Feiner Bros PROPOSAL7Asiya Javayant
1032Jennifer I RoysterCanada2026-07-19Rousseaux, Michael Esq NEGOTIATION67Ivan Magalhaes
1033Ivar T MorascaJapan2026-07-31Benton, John B Jr PROPOSAL75Xuxue Feng
1034Kadeem U DoeSpain2026-08-03Rousseaux, Michael Esq NEW22Ivan Magalhaes
1035Silvio O SchemmerFrance2026-08-11Benton, John B Jr RENEWAL61Anna Fali
1036Morrow U GillianBrazil2026-07-24Rousseaux, Michael Esq NEW94Ioni Bowcher
1037James S PerinFrance2026-07-18Rangoni Of Florence UNQUALIFIED21Xuxue Feng
1038Greenwood R BowleyItaly2026-08-06Chanay, Jeffrey A Esq QUALIFIED25Bernardo Dominic
1039Jones W MorascaCanada2026-07-24Dorl, James J Esq NEGOTIATION79Bernardo Dominic
1040Mayumi B OldroydRussia2026-08-05Feltz Printing Service RENEWAL17Onyama Limba
1041Tony M MorascaItaly2026-07-30Feiner Bros UNQUALIFIED93Xuxue Feng
1042Izzy W SergiCanada2026-07-18King, Christopher A Esq QUALIFIED38Stephen Shaw
1043Leon O OldroydArgentina2026-07-29Rangoni Of Florence PROPOSAL21Anna Fali
1044Stacey B PerinAustralia2026-08-04Feiner Bros RENEWAL55Anna Fali
1045Stacey C OldroydArgentina2026-07-17Feiner Bros UNQUALIFIED14Onyama Limba
1046Izzy M CaudyGermany2026-07-17Feltz Printing Service QUALIFIED16Onyama Limba
1047Clifford D ShinkoAustralia2026-08-06Printing Dimensions RENEWAL51Elwin Sharvill
1048Octavia P RimSpain2026-08-12Buckley Miller Wright NEW37Elwin Sharvill
1049Jeanfrancois Z WhobreySpain2026-07-15Benton, John B Jr NEW8Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar N GarufiFranceBernardo Dominic RENEWAL
Ivar R StockhamIndiaElwin Sharvill NEW
Juan K TollnerJapanAsiya Javayant UNQUALIFIED
Leja S FollerGermanyAsiya Javayant QUALIFIED
Morrow J ButtRussiaIvan Magalhaes PROPOSAL
Aika J VocelkaArgentinaIoni Bowcher QUALIFIED
Cody B RimArgentinaBernardo Dominic NEW
Ricardo M SchemmerItalyOnyama Limba QUALIFIED
Smith L SchemmerFranceAnna Fali QUALIFIED
Wickens B TollnerItalyXuxue Feng RENEWAL
Silvio H SergiFranceXuxue Feng RENEWAL
Clifford R MaletAustraliaStephen Shaw UNQUALIFIED
Salvatore F NestleAustraliaAmy Elsner NEGOTIATION
Ivar O StockhamUnited KingdomIoni Bowcher QUALIFIED
Emily S RimAustraliaBernardo Dominic NEGOTIATION
Ashley Z DilliardJapanBernardo Dominic NEGOTIATION
Mujtaba V SergiSpainIoni Bowcher UNQUALIFIED
Maria D KuskoArgentinaOnyama Limba UNQUALIFIED
Jones G AlbaresFranceOnyama Limba UNQUALIFIED
Maisha Q KuskoArgentinaIvan Magalhaes QUALIFIED
Julie Y PerinUnited KingdomAmy Elsner NEGOTIATION
Ricardo O DoeArgentinaElwin Sharvill QUALIFIED
Aika D FerenczBrazilOnyama Limba QUALIFIED
Silvio K RutaFranceElwin Sharvill UNQUALIFIED
Jennifer F StockhamJapanAmy Elsner QUALIFIED
Maisha T MacleadFranceXuxue Feng NEW
Chavez J GillianUnited KingdomOnyama Limba UNQUALIFIED
James C AmigonUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin M BriddickFranceStephen Shaw QUALIFIED
Francesco G VenereRussiaIoni Bowcher RENEWAL
Leon P GarufiGermanyBernardo Dominic NEW
Aditya G DoeArgentinaBernardo Dominic UNQUALIFIED
Adams L BriddickRussiaXuxue Feng NEW
Misaki C VenereSpainElwin Sharvill RENEWAL
Julie M RoysterAustraliaOnyama Limba NEGOTIATION
Arvin K ChuiAustraliaStephen Shaw QUALIFIED
Maisha J CaldareraCanadaAsiya Javayant NEW
Faith W RoysterBrazilAmy Elsner NEW
Maria T MorascaUnited KingdomStephen Shaw UNQUALIFIED
James E IturbideJapanOnyama Limba NEGOTIATION
Ricardo A DilliardSpainAsiya Javayant QUALIFIED
Mayumi R InouyeItalyElwin Sharvill UNQUALIFIED
Clifford B WhobreyIndiaOnyama Limba UNQUALIFIED
Jeanfrancois O AlbaresRussiaAsiya Javayant QUALIFIED
Misaki D RutaCanadaAmy Elsner UNQUALIFIED
Silvio I BologniaSpainElwin Sharvill QUALIFIED
James X ChuiArgentinaElwin Sharvill PROPOSAL
Izzy M RutaRussiaAnna Fali QUALIFIED
Kaitlin W StockhamIndiaOnyama Limba NEW
Munro R TollnerItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Isabel G Gaucho
Munro V Flosi
Octavia P Vocelka
Ashley K Stockham
Octavia E Stockham
Wickens K Kolmetz
Faith S Briddick
Antonio F Albares
Jennifer A Morasca
Adams B Maclead
Silvio O Schemmer
Smith L Albares
Jones A Perin
Wickens B Kolmetz
Jones P Albares
Sinclair Q Campain
Izzy P Iturbide
Costa C Kusko
Isabel L Albares
James H Ferencz
Leon G Venere
Murillo V Wieser
Jefferson M Butt
Misaki U Wieser
Greenwood M Maclead
Costa Z Morasca
Octavia O Vocelka
Clifford Q Malet
Arvin U Stockham
Murillo B Kolmetz
Salvatore Y Slusarski
Chavez O Figeroa
Francesco L Ruta
Rodrigues S Marrier
Mayumi M Poquette
Smith B Rim
Salvatore N Caudy
Octavia T Poquette
Antonio P Stockham
Wickens D Royster
Jones R Nestle
Maria T Amigon
Silvio P Iturbide
Arvin C Figeroa
Morrow W Gillian
Rodrigues P Venere
Stacey U Saylors
Murillo K Bowley
Aditya Q Campain
Francesco U Butt
IdCountryDate
1000Italy2026-07-23
1001Germany2026-08-06
1002Spain2026-08-01
1003United Kingdom2026-08-10
1004Spain2026-07-18
1005Australia2026-08-08
1006France2026-08-03
1007Italy2026-07-18
1008France2026-07-22
1009Australia2026-08-06
1010Italy2026-08-04
1011Brazil2026-07-22
1012Germany2026-07-25
1013Italy2026-08-06
1014Argentina2026-07-26
1015Italy2026-07-31
1016Germany2026-08-05
1017France2026-07-23
1018Germany2026-07-24
1019France2026-08-08
1020Australia2026-08-04
1021France2026-07-23
1022United Kingdom2026-07-23
1023France2026-08-12
1024Canada2026-07-20
1025Canada2026-08-08
1026Canada2026-08-09
1027France2026-07-18
1028Russia2026-07-23
1029Japan2026-07-26
1030Germany2026-07-26
1031Australia2026-07-26
1032Germany2026-07-25
1033United Kingdom2026-07-19
1034Brazil2026-08-09
1035Australia2026-07-17
1036India2026-08-04
1037Brazil2026-07-28
1038United Kingdom2026-07-17
1039Russia2026-07-31
1040India2026-07-14
1041Brazil2026-07-15
1042Australia2026-08-07
1043Argentina2026-07-14
1044Spain2026-08-11
1045Australia2026-07-18
1046Australia2026-07-30
1047India2026-08-07
1048Italy2026-08-09
1049Argentina2026-07-25

On-Demand Data

NameIdCountryDate
Sinclair F Sergi1000Russia2026-07-16
Stacey O Rulapaugh1001Spain2026-07-19
Leja D Gaucho1002United Kingdom2026-07-27
Julie Z Morasca1003Spain2026-07-27
Munro J Wieser1004Australia2026-08-01
Tony H Iturbide1005Japan2026-08-11
Francesco Y Butt1006Canada2026-08-03
Kaitlin M Vocelka1007Spain2026-08-07
Morrow Q Doe1008India2026-08-03
Clifford V Venere1009Brazil2026-07-23
Jennifer U Dilliard1010Japan2026-08-08
Silvio L Rim1011Canada2026-08-05
James W Perin1012Italy2026-08-09
Kaitlin B Butt1013India2026-07-15
Stacey F Poquette1014Russia2026-07-26
Wickens C Nicka1015United Kingdom2026-08-01
Tony R Nestle1016Brazil2026-07-16
Jeanfrancois N Garufi1017Argentina2026-07-20
Deepesh K Sergi1018India2026-08-07
David U Bolognia1019Italy2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Q GlickArgentinaXuxue Feng NEGOTIATION
Maisha B MorascaArgentinaOnyama Limba NEGOTIATION
Claire R DoeRussiaAsiya Javayant NEW
Francesco T WhobreyFranceIvan Magalhaes UNQUALIFIED
Wickens P StockhamGermanyAmy Elsner UNQUALIFIED
Alejandro Y FerenczSpainIoni Bowcher NEW
Cody J PoquetteCanadaAmy Elsner NEGOTIATION
Jeanfrancois U FlosiBrazilAnna Fali PROPOSAL
Costa P RutaBrazilXuxue Feng UNQUALIFIED
Darci C CaudyItalyIvan Magalhaes NEW
Francesco Z DoeSpainAmy Elsner NEGOTIATION
Sinclair T KolmetzArgentinaAnna Fali UNQUALIFIED
Cody Y StensethAustraliaIvan Magalhaes UNQUALIFIED
Stacey O NickaFranceIvan Magalhaes NEGOTIATION
Aditya X PoquetteCanadaStephen Shaw PROPOSAL
Leon R BologniaItalyAsiya Javayant RENEWAL
Kadeem B StockhamBrazilElwin Sharvill PROPOSAL
Mayumi W StockhamIndiaIoni Bowcher NEW
Misaki J StockhamAustraliaIvan Magalhaes NEGOTIATION
Sinclair O WaycottBrazilIvan Magalhaes QUALIFIED
Maisha Q ChuiSpainIvan Magalhaes QUALIFIED
Aruna Y TollnerItalyElwin Sharvill UNQUALIFIED
Nicolas H VenereSpainIoni Bowcher QUALIFIED
Munro B NickaArgentinaStephen Shaw NEW
Nicolas E AlbaresSpainElwin Sharvill NEW
Silvio J WaycottItalyElwin Sharvill NEW
Sinclair C BowleySpainStephen Shaw UNQUALIFIED
Antonio K GillianCanadaElwin Sharvill NEGOTIATION
Darci R DilliardGermanyBernardo Dominic QUALIFIED
Salvatore L BologniaSpainBernardo Dominic UNQUALIFIED
Faith J PoquetteGermanyIvan Magalhaes QUALIFIED
Isabel I CampainFranceElwin Sharvill QUALIFIED
Octavia B SchemmerAustraliaOnyama Limba NEW
Aika F RutaCanadaXuxue Feng PROPOSAL
David P WaycottRussiaStephen Shaw NEW
Jeanfrancois F GarufiIndiaOnyama Limba QUALIFIED
Rodrigues I PaprockiFranceIoni Bowcher NEGOTIATION
Izzy X WaycottGermanyIvan Magalhaes NEW
Aditya X WhobreyGermanyXuxue Feng UNQUALIFIED
Aruna C SaylorsIndiaStephen Shaw RENEWAL

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