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
Sinclair I FlosiRussiaAnna Fali QUALIFIED
David D MorascaAustraliaIoni Bowcher UNQUALIFIED
Cody L PaprockiIndiaElwin Sharvill NEW
Nicolas U KuskoGermanyStephen Shaw NEGOTIATION
Chavez B MacleadFranceIoni Bowcher RENEWAL
Sinclair M InouyeIndiaOnyama Limba UNQUALIFIED
Alejandro X MaletSpainAsiya Javayant UNQUALIFIED
Faith P ChuiCanadaXuxue Feng RENEWAL
Smith L RulapaughFranceXuxue Feng NEW
Aika C BologniaUnited KingdomXuxue Feng RENEWAL
Nicolas A SlusarskiGermanyBernardo Dominic QUALIFIED
Kadeem P GarufiCanadaAnna Fali NEGOTIATION
Morrow E OstroskyUnited KingdomElwin Sharvill NEW
Aruna V DoeGermanyAsiya Javayant NEGOTIATION
Izzy O RimSpainAmy Elsner RENEWAL
Greenwood A AmigonCanadaElwin Sharvill RENEWAL
Jennifer H PaprockiJapanAsiya Javayant RENEWAL
Nicolas L SergiJapanAmy Elsner NEGOTIATION
Wickens J GarufiArgentinaAsiya Javayant NEW
Mujtaba W KolmetzCanadaStephen Shaw UNQUALIFIED
Jefferson P BowleyIndiaStephen Shaw QUALIFIED
Ivar Q KolmetzItalyXuxue Feng PROPOSAL
Wickens Y RimCanadaStephen Shaw PROPOSAL
Ashley J KolmetzArgentinaIvan Magalhaes NEW
Munro H SaylorsSpainAmy Elsner NEW
Octavia T GauchoBrazilOnyama Limba NEGOTIATION
Jeanfrancois K BriddickCanadaIoni Bowcher QUALIFIED
Antonio A OstroskyCanadaAmy Elsner NEGOTIATION
Silvio T SaylorsGermanyAnna Fali QUALIFIED
Morrow T NickaUnited KingdomAmy Elsner NEGOTIATION
Darci L SergiSpainIvan Magalhaes RENEWAL
Stacey G ButtIndiaStephen Shaw UNQUALIFIED
Maria W MacleadItalyOnyama Limba PROPOSAL
Tony D RimJapanStephen Shaw QUALIFIED
Ashley Q GillianIndiaIvan Magalhaes RENEWAL
Sinclair T FerenczArgentinaOnyama Limba NEW
Arvin T DilliardRussiaStephen Shaw NEW
Costa H CampainBrazilStephen Shaw PROPOSAL
Chavez X FerenczUnited KingdomAmy Elsner UNQUALIFIED
Chavez I OstroskyBrazilOnyama Limba NEGOTIATION
Smith H NestleUnited KingdomBernardo Dominic NEGOTIATION
Izzy O DilliardGermanyAsiya Javayant QUALIFIED
Rodrigues M MorascaFranceAnna Fali UNQUALIFIED
Cody T VocelkaCanadaIvan Magalhaes QUALIFIED
Munro F CampainFranceElwin Sharvill UNQUALIFIED
Salvatore A PoquetteArgentinaAsiya Javayant NEW
Greenwood I NickaFranceElwin Sharvill PROPOSAL
Emily N CaldareraArgentinaStephen Shaw RENEWAL
Izzy T PoquetteItalyBernardo Dominic UNQUALIFIED
Kadeem B FerenczUnited KingdomAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro C CampainBrazilAmy Elsner NEGOTIATION
Adams U NickaJapanBernardo Dominic QUALIFIED
Francesco A VenereAustraliaIvan Magalhaes UNQUALIFIED
Murillo C MacleadCanadaAmy Elsner NEW
Darci V DoeSpainAsiya Javayant PROPOSAL
Jeanfrancois Z AmigonArgentinaAmy Elsner NEGOTIATION
Leja S DoeGermanyElwin Sharvill NEGOTIATION
Ashley K FerenczJapanIoni Bowcher PROPOSAL
Silvio H StensethBrazilXuxue Feng QUALIFIED
Aika L MaletItalyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily O PerinSpain2026-07-15Truhlar And Truhlar Attys PROPOSAL36Elwin Sharvill
1001Ricardo G BologniaIndia2026-07-27Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1002Emily I VocelkaBrazil2026-07-12Truhlar And Truhlar Attys NEGOTIATION59Asiya Javayant
1003Octavia N MarrierFrance2026-07-14Morlong Associates NEW37Xuxue Feng
1004Munro F ShinkoArgentina2026-07-02Rangoni Of Florence RENEWAL43Xuxue Feng
1005Silvio A RoysterIndia2026-07-12Truhlar And Truhlar Attys QUALIFIED96Bernardo Dominic
1006Aditya X AmigonGermany2026-07-16Feiner Bros UNQUALIFIED85Amy Elsner
1007Costa V DoeArgentina2026-07-06Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1008Nicolas B InouyeGermany2026-07-16Buckley Miller Wright NEGOTIATION94Anna Fali
1009Nicolas R PaprockiRussia2026-07-11Dorl, James J Esq UNQUALIFIED64Onyama Limba
1010Mujtaba Y GarufiJapan2026-07-02Rousseaux, Michael Esq PROPOSAL67Onyama Limba
1011Antonio X MarrierJapan2026-07-22Printing Dimensions NEW25Bernardo Dominic
1012Isabel T BowleyRussia2026-06-30Rangoni Of Florence UNQUALIFIED33Anna Fali
1013Aika N OldroydSpain2026-07-12Morlong Associates QUALIFIED35Onyama Limba
1014Jennifer W ShinkoSpain2026-07-16Chanay, Jeffrey A Esq RENEWAL98Asiya Javayant
1015Smith V SchemmerIndia2026-07-09Feltz Printing Service PROPOSAL36Stephen Shaw
1016Maisha F ChuiBrazil2026-07-23Buckley Miller Wright PROPOSAL15Bernardo Dominic
1017Costa H CampainFrance2026-07-03Buckley Miller Wright UNQUALIFIED84Onyama Limba
1018Aika T MaletBrazil2026-07-20Dorl, James J Esq RENEWAL64Ioni Bowcher
1019Ashley R GlickArgentina2026-07-11Rousseaux, Michael Esq UNQUALIFIED93Ivan Magalhaes
1020Darci N FollerCanada2026-06-29Benton, John B Jr QUALIFIED78Bernardo Dominic
1021Faith Q PaprockiBrazil2026-07-13Buckley Miller Wright PROPOSAL93Xuxue Feng
1022Aika V WhobreyRussia2026-07-09Commercial Press QUALIFIED32Bernardo Dominic
1023Silvio F KuskoUnited Kingdom2026-07-25Printing Dimensions QUALIFIED95Asiya Javayant
1024Morrow B FigeroaBrazil2026-07-06Chapman, Ross E Esq RENEWAL43Ivan Magalhaes
1025Clifford X BriddickRussia2026-07-15Chemel, James L Cpa NEGOTIATION35Ioni Bowcher
1026Jones G OstroskyUnited Kingdom2026-07-27Feiner Bros NEGOTIATION51Ioni Bowcher
1027Greenwood C FerenczCanada2026-07-13Morlong Associates RENEWAL90Asiya Javayant
1028Izzy A DoeAustralia2026-07-08Chanay, Jeffrey A Esq QUALIFIED27Bernardo Dominic
1029Juan N RutaCanada2026-07-06Rangoni Of Florence PROPOSAL58Elwin Sharvill
1030Greenwood Y SlusarskiItaly2026-07-18Commercial Press UNQUALIFIED35Amy Elsner
1031Murillo N MorascaIndia2026-06-30Buckley Miller Wright PROPOSAL97Xuxue Feng
1032Ashley Y AlbaresGermany2026-07-16King, Christopher A Esq QUALIFIED65Amy Elsner
1033Juan Q ButtRussia2026-07-27Chemel, James L Cpa NEGOTIATION95Onyama Limba
1034Cody C RutaAustralia2026-07-26Chanay, Jeffrey A Esq NEW21Xuxue Feng
1035Mayumi A BriddickIndia2026-07-07Feiner Bros RENEWAL42Ioni Bowcher
1036Cody M VenereGermany2026-07-13Morlong Associates NEW26Bernardo Dominic
1037Mujtaba K RutaSpain2026-07-23Chapman, Ross E Esq NEW53Xuxue Feng
1038Deepesh H IturbideArgentina2026-07-21Rangoni Of Florence RENEWAL45Onyama Limba
1039Ivar F NickaItaly2026-06-29Printing Dimensions PROPOSAL36Xuxue Feng
1040David N GauchoGermany2026-07-02Rangoni Of Florence UNQUALIFIED25Ivan Magalhaes
1041Jones A SlusarskiUnited Kingdom2026-07-17Commercial Press NEGOTIATION93Bernardo Dominic
1042Jennifer Z KolmetzBrazil2026-07-07Feltz Printing Service NEGOTIATION3Elwin Sharvill
1043Jefferson R MaletArgentina2026-07-17King, Christopher A Esq RENEWAL22Bernardo Dominic
1044Silvio B NestleCanada2026-07-28Benton, John B Jr UNQUALIFIED7Anna Fali
1045Chavez D VocelkaCanada2026-07-20Morlong Associates PROPOSAL18Anna Fali
1046David N NestleIndia2026-07-03Rangoni Of Florence QUALIFIED83Onyama Limba
1047Jeanfrancois E DarakjyCanada2026-07-16Feiner Bros UNQUALIFIED56Anna Fali
1048Aika P PaprockiCanada2026-06-29Printing Dimensions UNQUALIFIED59Asiya Javayant
1049Aruna Q BriddickGermany2026-07-10Truhlar And Truhlar Attys NEGOTIATION16Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Mayumi E VenereItalyIoni Bowcher NEGOTIATION
Silvio E VocelkaArgentinaBernardo Dominic NEW
Maria R CaudyJapanElwin Sharvill QUALIFIED
Arvin P SlusarskiAustraliaIoni Bowcher NEW
Faith M CampainGermanyIvan Magalhaes NEW
Octavia V RimItalyElwin Sharvill NEGOTIATION
Faith A GlickBrazilOnyama Limba QUALIFIED
Deepesh U KolmetzItalyAsiya Javayant NEGOTIATION
Ivar S WaycottUnited KingdomXuxue Feng NEW
Ashley U OldroydBrazilAsiya Javayant QUALIFIED
Costa P SergiRussiaOnyama Limba UNQUALIFIED
Izzy I VocelkaBrazilIvan Magalhaes PROPOSAL
Francesco Q KuskoItalyAsiya Javayant NEW
Ivar X GauchoIndiaOnyama Limba UNQUALIFIED
Stacey C StockhamRussiaStephen Shaw UNQUALIFIED
Ivar J PerinCanadaIvan Magalhaes RENEWAL
Jefferson N PaprockiGermanyIoni Bowcher NEGOTIATION
Maria V InouyeArgentinaIvan Magalhaes PROPOSAL
Smith D GlickRussiaIoni Bowcher NEGOTIATION
Morrow G GarufiArgentinaElwin Sharvill UNQUALIFIED
Smith J StockhamArgentinaXuxue Feng PROPOSAL
Maria C OstroskyItalyOnyama Limba PROPOSAL
Stacey L MacleadItalyAsiya Javayant RENEWAL
Mayumi W WaycottRussiaIvan Magalhaes RENEWAL
Francesco G NestleJapanIoni Bowcher RENEWAL
Misaki V BowleyArgentinaAnna Fali NEW
Murillo N AmigonAustraliaXuxue Feng NEGOTIATION
Johnson S PoquetteJapanBernardo Dominic NEGOTIATION
Antonio D RimItalyOnyama Limba NEGOTIATION
Salvatore O TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Aruna L SergiGermanyStephen Shaw PROPOSAL
Misaki T MaletBrazilAnna Fali RENEWAL
Ashley T GauchoJapanOnyama Limba PROPOSAL
Isabel A CaudyUnited KingdomAnna Fali RENEWAL
Kaitlin O VocelkaUnited KingdomOnyama Limba NEW
Stacey M VenereFranceAsiya Javayant NEW
James Q SergiCanadaIvan Magalhaes NEW
Isabel Z KuskoArgentinaXuxue Feng PROPOSAL
Jeanfrancois V DoeCanadaElwin Sharvill QUALIFIED
Silvio N GarufiFranceIvan Magalhaes NEGOTIATION
Stacey T OldroydBrazilAsiya Javayant RENEWAL
Adams Z DoeFranceOnyama Limba RENEWAL
Salvatore A FigeroaBrazilAmy Elsner NEGOTIATION
Jefferson E MorascaRussiaAsiya Javayant UNQUALIFIED
Johnson W BriddickItalyAmy Elsner QUALIFIED
Munro H TollnerIndiaOnyama Limba RENEWAL
Maria W SchemmerItalyStephen Shaw NEW
Munro R InouyeSpainOnyama Limba NEW
Salvatore W ChuiAustraliaAsiya Javayant PROPOSAL
Izzy U MarrierJapanXuxue Feng RENEWAL
Frozen Columns
Name
Emily V Vocelka
Ivar C Campain
Clifford D Saylors
Morrow H Malet
Maria K Schemmer
Wickens V Foller
Morrow E Marrier
Faith Y Perin
Arvin I Caldarera
Darci X Figeroa
Aruna U Venere
Misaki J Oldroyd
Aruna T Oldroyd
David N Perin
Alejandro P Darakjy
Sinclair I Butt
Deepesh Z Poquette
Mujtaba Z Morasca
Mayumi X Schemmer
Ivar O Stockham
Aruna N Foller
Wickens E Figeroa
Munro O Perin
Tony G Flosi
Morrow C Foller
Johnson H Venere
Misaki S Butt
Jefferson F Saylors
Sinclair Z Poquette
Silvio T Glick
Ivar H Caudy
Greenwood Z Caudy
Octavia I Figeroa
Adams V Royster
Julie V Campain
Leon A Royster
Greenwood L Wieser
Octavia W Iturbide
Greenwood U Iturbide
Rodrigues G Amigon
Stacey H Saylors
Adams I Flosi
Julie G Stockham
Antonio D Ostrosky
Juan C Nestle
Morrow H Morasca
Claire I Royster
Isabel C Oldroyd
Ricardo Y Royster
Rodrigues B Poquette
IdCountryDate
1000Argentina2026-07-17
1001France2026-07-12
1002Germany2026-07-12
1003Argentina2026-07-21
1004Italy2026-06-29
1005Spain2026-07-01
1006Germany2026-07-07
1007Australia2026-07-01
1008Germany2026-07-08
1009Canada2026-07-04
1010Japan2026-07-17
1011Russia2026-07-25
1012Russia2026-07-09
1013Spain2026-07-08
1014United Kingdom2026-07-22
1015Italy2026-07-15
1016Argentina2026-07-25
1017Argentina2026-07-09
1018Germany2026-07-08
1019Italy2026-07-18
1020Australia2026-07-23
1021Germany2026-07-16
1022Australia2026-07-28
1023India2026-07-24
1024France2026-07-18
1025Germany2026-07-15
1026France2026-07-17
1027Australia2026-07-09
1028Japan2026-07-14
1029Italy2026-07-26
1030Brazil2026-07-28
1031Russia2026-07-08
1032Germany2026-07-13
1033United Kingdom2026-07-12
1034India2026-07-21
1035Japan2026-07-05
1036Spain2026-07-21
1037France2026-07-22
1038United Kingdom2026-07-12
1039Spain2026-07-23
1040Argentina2026-07-20
1041Australia2026-07-09
1042Australia2026-07-12
1043India2026-07-13
1044Germany2026-07-19
1045Canada2026-07-27
1046United Kingdom2026-07-20
1047Russia2026-07-06
1048Brazil2026-07-13
1049Australia2026-07-28

On-Demand Data

NameIdCountryDate
Adams Y Gillian1000Argentina2026-07-25
Jeanfrancois Q Sergi1001Brazil2026-07-07
Ivar B Venere1002Japan2026-07-05
Mayumi S Rim1003Australia2026-07-11
Octavia V Ruta1004Spain2026-07-11
Morrow P Iturbide1005Canada2026-07-02
Aditya F Doe1006France2026-07-09
James Q Bowley1007France2026-07-02
Clifford V Shinko1008Brazil2026-07-27
Julie T Vocelka1009Canada2026-07-24
Smith P Kolmetz1010India2026-07-07
Octavia R Caudy1011United Kingdom2026-07-17
Kaitlin G Inouye1012Australia2026-07-26
Aruna S Rulapaugh1013Russia2026-07-18
Aditya H Whobrey1014Japan2026-07-27
Tony A Figeroa1015Australia2026-07-03
Deepesh F Slusarski1016Italy2026-07-09
Kaitlin X Malet1017Japan2026-07-11
Aditya H Nestle1018United Kingdom2026-07-22
James Q Rim1019United Kingdom2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja M MaletArgentinaAnna Fali RENEWAL
Aika N SergiSpainAmy Elsner UNQUALIFIED
Murillo L PerinSpainOnyama Limba QUALIFIED
Aika G IturbideUnited KingdomIoni Bowcher NEW
Smith G NestleFranceAsiya Javayant NEW
Leon A DarakjyUnited KingdomIoni Bowcher QUALIFIED
Ashley E PaprockiRussiaElwin Sharvill UNQUALIFIED
Leja H AmigonJapanBernardo Dominic NEW
Clifford W GauchoRussiaIoni Bowcher QUALIFIED
Chavez R DoeItalyIvan Magalhaes NEW
Wickens Q BologniaItalyIoni Bowcher QUALIFIED
Arvin F WhobreyUnited KingdomAnna Fali QUALIFIED
David F FollerFranceOnyama Limba NEGOTIATION
Ivar U WieserGermanyAmy Elsner PROPOSAL
Clifford O CaudySpainAmy Elsner UNQUALIFIED
Smith G GarufiBrazilAsiya Javayant QUALIFIED
Maria S PaprockiUnited KingdomXuxue Feng QUALIFIED
Alejandro F MarrierJapanBernardo Dominic RENEWAL
Darci W WieserIndiaIoni Bowcher PROPOSAL
Johnson G RoysterCanadaBernardo Dominic PROPOSAL
Darci T KuskoIndiaXuxue Feng UNQUALIFIED
Mujtaba F FigeroaCanadaAnna Fali UNQUALIFIED
Clifford L AmigonIndiaIvan Magalhaes QUALIFIED
Alejandro E PaprockiSpainElwin Sharvill UNQUALIFIED
Izzy D DilliardCanadaAnna Fali NEGOTIATION
Faith P KuskoRussiaIvan Magalhaes PROPOSAL
Jennifer T PaprockiItalyOnyama Limba PROPOSAL
Adams B SergiUnited KingdomIoni Bowcher NEW
Francesco O BologniaBrazilAnna Fali UNQUALIFIED
Ivar I PerinRussiaBernardo Dominic QUALIFIED
Rodrigues T FollerGermanyStephen Shaw QUALIFIED
Ricardo W BowleyItalyIoni Bowcher NEGOTIATION
Ivar N RulapaughGermanyXuxue Feng NEW
Claire T WaycottSpainAsiya Javayant QUALIFIED
Maria T NestleGermanyAmy Elsner UNQUALIFIED
Darci F MarrierGermanyIoni Bowcher NEGOTIATION
Isabel M NestleGermanyAmy Elsner QUALIFIED
Isabel E SaylorsBrazilXuxue Feng NEW
Deepesh X MaletGermanyAmy Elsner PROPOSAL
Munro D RutaArgentinaIvan Magalhaes QUALIFIED

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