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
Octavia I PoquetteIndiaBernardo Dominic UNQUALIFIED
Leon F GillianItalyAmy Elsner UNQUALIFIED
Aruna E BriddickArgentinaElwin Sharvill NEGOTIATION
Claire Z StensethUnited KingdomAmy Elsner UNQUALIFIED
Costa R CaldareraRussiaIvan Magalhaes NEW
Costa V NickaRussiaXuxue Feng RENEWAL
Jones Z VenereJapanIoni Bowcher PROPOSAL
Ashley W PaprockiCanadaBernardo Dominic UNQUALIFIED
Mujtaba M FlosiItalyStephen Shaw UNQUALIFIED
Murillo I RoysterIndiaElwin Sharvill QUALIFIED
Francesco N SergiIndiaElwin Sharvill PROPOSAL
Deepesh Z SchemmerBrazilIvan Magalhaes QUALIFIED
Wickens U BriddickAustraliaElwin Sharvill RENEWAL
Francesco S WaycottBrazilIoni Bowcher RENEWAL
Salvatore D PoquetteFranceAsiya Javayant QUALIFIED
Sinclair F ChuiRussiaAmy Elsner NEW
David I VenereItalyIvan Magalhaes PROPOSAL
Arvin J BowleyFranceElwin Sharvill QUALIFIED
Mujtaba O SaylorsIndiaBernardo Dominic PROPOSAL
Darci G RutaArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois W StensethItalyAsiya Javayant RENEWAL
Maria Z NestleCanadaOnyama Limba NEGOTIATION
Ashley N CaudyItalyIoni Bowcher PROPOSAL
James N DoeFranceAsiya Javayant PROPOSAL
Antonio X SchemmerIndiaOnyama Limba NEW
Aditya E BologniaSpainAnna Fali UNQUALIFIED
Claire Q GauchoGermanyBernardo Dominic PROPOSAL
Morrow K VocelkaBrazilStephen Shaw UNQUALIFIED
Sinclair W VenereArgentinaXuxue Feng UNQUALIFIED
Misaki J PerinAustraliaAsiya Javayant NEGOTIATION
Rodrigues S OstroskyBrazilIvan Magalhaes NEW
Maria Q InouyeJapanAnna Fali UNQUALIFIED
Salvatore E NestleCanadaAsiya Javayant PROPOSAL
Munro F StockhamItalyXuxue Feng NEGOTIATION
Cody S VocelkaSpainAnna Fali NEGOTIATION
Juan O NestleCanadaAsiya Javayant RENEWAL
Salvatore M FigeroaIndiaBernardo Dominic NEGOTIATION
Stacey A ChuiUnited KingdomStephen Shaw NEW
Nicolas G OldroydRussiaIoni Bowcher NEGOTIATION
Maisha V PerinUnited KingdomBernardo Dominic NEGOTIATION
Leon G NickaIndiaStephen Shaw QUALIFIED
Costa L RulapaughFranceOnyama Limba NEW
Kadeem J CaldareraBrazilStephen Shaw NEW
Emily O MaletCanadaElwin Sharvill PROPOSAL
Nicolas F VenereItalyOnyama Limba UNQUALIFIED
Jennifer G MaletArgentinaStephen Shaw NEGOTIATION
Maisha I NestleAustraliaBernardo Dominic RENEWAL
Smith X BowleyGermanyOnyama Limba QUALIFIED
Emily R PaprockiFranceAsiya Javayant QUALIFIED
Murillo T DarakjyFranceIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kadeem G DilliardGermanyIoni Bowcher QUALIFIED
Aika Q VenereItalyXuxue Feng RENEWAL
Nicolas Y DilliardFranceAnna Fali QUALIFIED
Tony W RimIndiaElwin Sharvill RENEWAL
Adams W PoquetteGermanyOnyama Limba PROPOSAL
Sinclair J SergiSpainIvan Magalhaes UNQUALIFIED
Jennifer X MaletUnited KingdomOnyama Limba NEGOTIATION
Mayumi T WaycottSpainOnyama Limba NEGOTIATION
Aditya S CaudySpainAmy Elsner NEW
Rodrigues T FerenczBrazilAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya X PoquetteGermany2026-07-13Printing Dimensions PROPOSAL54Ioni Bowcher
1001Juan H ButtItaly2026-07-29King, Christopher A Esq RENEWAL75Anna Fali
1002Clifford Y SlusarskiBrazil2026-07-24Chemel, James L Cpa NEW92Stephen Shaw
1003Jennifer P MarrierIndia2026-07-23Chanay, Jeffrey A Esq PROPOSAL31Anna Fali
1004Nicolas F RimUnited Kingdom2026-07-21Truhlar And Truhlar Attys RENEWAL28Ivan Magalhaes
1005Emily R DoeFrance2026-07-16Printing Dimensions PROPOSAL51Anna Fali
1006Wickens W BowleyGermany2026-07-29Chanay, Jeffrey A Esq PROPOSAL47Ioni Bowcher
1007Francesco A FlosiArgentina2026-07-24Printing Dimensions NEGOTIATION85Stephen Shaw
1008Antonio Z FerenczIndia2026-07-09Commercial Press NEGOTIATION91Stephen Shaw
1009Greenwood W WhobreyRussia2026-07-28Chanay, Jeffrey A Esq NEW77Xuxue Feng
1010Mujtaba J OstroskyIndia2026-07-17Chemel, James L Cpa RENEWAL4Xuxue Feng
1011Munro I SchemmerAustralia2026-07-14Buckley Miller Wright QUALIFIED46Asiya Javayant
1012Emily C StockhamSpain2026-07-16Printing Dimensions NEGOTIATION40Ioni Bowcher
1013Leja F SaylorsSpain2026-07-09King, Christopher A Esq NEW14Elwin Sharvill
1014Greenwood B TollnerBrazil2026-07-29Rousseaux, Michael Esq PROPOSAL32Onyama Limba
1015Arvin N DilliardFrance2026-07-16Benton, John B Jr QUALIFIED6Bernardo Dominic
1016Antonio A AmigonCanada2026-07-16Commercial Press QUALIFIED46Bernardo Dominic
1017Leon Q GarufiBrazil2026-07-27Chemel, James L Cpa NEGOTIATION99Stephen Shaw
1018Sinclair C OldroydCanada2026-07-25Rangoni Of Florence UNQUALIFIED71Ivan Magalhaes
1019David N VenereIndia2026-07-17Morlong Associates QUALIFIED98Xuxue Feng
1020Rodrigues J SlusarskiJapan2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED71Ioni Bowcher
1021Greenwood D GauchoUnited Kingdom2026-07-10Morlong Associates RENEWAL74Amy Elsner
1022Mayumi C CaudyItaly2026-07-19Truhlar And Truhlar Attys RENEWAL36Stephen Shaw
1023Kadeem H DilliardFrance2026-07-24Buckley Miller Wright PROPOSAL69Stephen Shaw
1024Clifford Q GauchoUnited Kingdom2026-07-05Chapman, Ross E Esq NEW67Anna Fali
1025Deepesh K KuskoSpain2026-07-16King, Christopher A Esq NEW62Stephen Shaw
1026Wickens Y SchemmerAustralia2026-07-06Printing Dimensions QUALIFIED94Onyama Limba
1027Arvin C CaudyUnited Kingdom2026-07-09Morlong Associates NEGOTIATION29Ioni Bowcher
1028Ivar Z FerenczRussia2026-07-25Truhlar And Truhlar Attys NEGOTIATION29Onyama Limba
1029Emily I ButtBrazil2026-07-13Chanay, Jeffrey A Esq NEW24Anna Fali
1030Maria K BowleySpain2026-07-19Printing Dimensions PROPOSAL41Ivan Magalhaes
1031Cody M CampainCanada2026-07-07Feiner Bros NEGOTIATION10Onyama Limba
1032Juan B GillianItaly2026-07-04Morlong Associates NEGOTIATION78Asiya Javayant
1033Rodrigues I CaudyUnited Kingdom2026-07-09Morlong Associates UNQUALIFIED17Onyama Limba
1034Stacey I NickaFrance2026-07-17Buckley Miller Wright PROPOSAL25Asiya Javayant
1035Munro L CaldareraFrance2026-07-23Feiner Bros NEGOTIATION80Stephen Shaw
1036Aika N SchemmerRussia2026-07-26King, Christopher A Esq NEGOTIATION44Onyama Limba
1037Silvio I StensethItaly2026-07-22Chanay, Jeffrey A Esq RENEWAL81Onyama Limba
1038Isabel C PerinSpain2026-07-04Chemel, James L Cpa NEW6Xuxue Feng
1039Adams F VocelkaRussia2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED47Asiya Javayant
1040Mujtaba J CaudyItaly2026-06-30Rangoni Of Florence UNQUALIFIED5Anna Fali
1041Costa U NestleFrance2026-07-08Commercial Press UNQUALIFIED77Ivan Magalhaes
1042Mujtaba X CampainFrance2026-07-05Printing Dimensions RENEWAL30Amy Elsner
1043Maria O IturbideArgentina2026-07-16Chapman, Ross E Esq NEGOTIATION24Ioni Bowcher
1044Rodrigues W VenereCanada2026-07-21Benton, John B Jr QUALIFIED68Asiya Javayant
1045Cody L GlickItaly2026-07-19Printing Dimensions QUALIFIED99Asiya Javayant
1046Claire M WhobreyAustralia2026-07-16Feltz Printing Service UNQUALIFIED35Stephen Shaw
1047James L WaycottUnited Kingdom2026-07-27Feltz Printing Service PROPOSAL9Onyama Limba
1048Maria Q MarrierRussia2026-07-13Commercial Press NEGOTIATION56Xuxue Feng
1049Stacey S KuskoItaly2026-07-25Printing Dimensions NEW51Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar D ChuiIndiaOnyama Limba UNQUALIFIED
Jones T MorascaIndiaAnna Fali PROPOSAL
Jefferson E FlosiJapanIvan Magalhaes UNQUALIFIED
Salvatore V KuskoAustraliaElwin Sharvill QUALIFIED
Izzy N BowleyUnited KingdomOnyama Limba UNQUALIFIED
Smith U ChuiRussiaElwin Sharvill NEW
Faith S IturbideGermanyAsiya Javayant NEGOTIATION
Tony E StockhamAustraliaIvan Magalhaes NEW
Jennifer T StockhamJapanAsiya Javayant QUALIFIED
Aditya Y DarakjyIndiaIvan Magalhaes UNQUALIFIED
Silvio X ShinkoJapanElwin Sharvill NEW
Tony J CaudyGermanyOnyama Limba NEW
Izzy K WhobreyBrazilAnna Fali PROPOSAL
Maria A FigeroaIndiaStephen Shaw NEGOTIATION
Cody Q CaudyRussiaIvan Magalhaes NEGOTIATION
Morrow R GillianFranceStephen Shaw UNQUALIFIED
Aditya B MarrierJapanAsiya Javayant PROPOSAL
Greenwood J MarrierRussiaStephen Shaw NEGOTIATION
Munro X ChuiSpainAnna Fali QUALIFIED
Emily F NestleUnited KingdomAsiya Javayant QUALIFIED
Emily W GlickRussiaIoni Bowcher UNQUALIFIED
Maria O GillianCanadaAmy Elsner PROPOSAL
Adams R ButtCanadaAmy Elsner NEGOTIATION
Stacey H MacleadJapanAmy Elsner UNQUALIFIED
Stacey E IturbideJapanOnyama Limba QUALIFIED
Johnson K ShinkoJapanBernardo Dominic NEGOTIATION
Cody D MarrierFranceIoni Bowcher PROPOSAL
Emily P FlosiArgentinaAmy Elsner PROPOSAL
Cody E AmigonFranceAmy Elsner NEGOTIATION
Ricardo O AmigonIndiaAmy Elsner RENEWAL
Leon B ButtArgentinaBernardo Dominic QUALIFIED
Wickens O FlosiCanadaBernardo Dominic UNQUALIFIED
Isabel S WhobreyAustraliaElwin Sharvill RENEWAL
Cody O TollnerArgentinaStephen Shaw NEGOTIATION
Alejandro W NestleRussiaIvan Magalhaes UNQUALIFIED
Mayumi I BologniaItalyBernardo Dominic QUALIFIED
Izzy B MaletBrazilIvan Magalhaes PROPOSAL
Cody H VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair J OstroskyIndiaStephen Shaw RENEWAL
Emily I GillianBrazilAmy Elsner PROPOSAL
Kaitlin X MacleadIndiaElwin Sharvill QUALIFIED
Deepesh U RulapaughAustraliaAnna Fali PROPOSAL
Silvio H GlickIndiaBernardo Dominic NEW
Kaitlin X CaudySpainOnyama Limba QUALIFIED
Costa X CaudyCanadaBernardo Dominic QUALIFIED
Ricardo F WaycottArgentinaElwin Sharvill QUALIFIED
Alejandro P DoeCanadaIvan Magalhaes UNQUALIFIED
Morrow R BowleyArgentinaBernardo Dominic PROPOSAL
Murillo B WhobreyAustraliaElwin Sharvill NEW
Darci X ChuiFranceAsiya Javayant NEGOTIATION
Frozen Columns
Name
Misaki V Slusarski
Aruna U Nestle
Kadeem D Kusko
Izzy S Albares
Cody W Oldroyd
Rodrigues M Poquette
Deepesh U Perin
Wickens G Chui
Julie D Flosi
Deepesh M Nicka
Julie X Poquette
Aruna Y Flosi
Morrow P Foller
Faith B Maclead
Jones Z Dilliard
Nicolas E Inouye
Isabel Y Rulapaugh
Nicolas L Marrier
Deepesh D Iturbide
Aika T Oldroyd
Juan L Briddick
Silvio V Marrier
Antonio D Bolognia
Octavia Q Venere
Cody W Figeroa
Tony R Malet
Mayumi U Whobrey
Emily Q Kusko
Tony K Caudy
Greenwood J Rulapaugh
Aika J Amigon
Leon Z Ostrosky
Silvio L Oldroyd
Isabel D Wieser
Sinclair C Royster
Ricardo E Rim
Stacey X Whobrey
Kaitlin N Royster
Jennifer R Malet
Faith L Nicka
Jeanfrancois V Stenseth
Stacey S Oldroyd
Kaitlin D Saylors
Adams F Kolmetz
Ricardo G Malet
Octavia X Albares
Izzy P Rim
Rodrigues F Rulapaugh
Morrow J Perin
Costa K Schemmer
IdCountryDate
1000Canada2026-07-05
1001France2026-07-25
1002Spain2026-07-21
1003Germany2026-07-24
1004Russia2026-07-11
1005India2026-07-16
1006Canada2026-07-02
1007Germany2026-07-28
1008Canada2026-07-05
1009Brazil2026-07-21
1010India2026-07-09
1011Australia2026-07-08
1012Russia2026-07-22
1013Argentina2026-07-14
1014France2026-07-08
1015Germany2026-07-18
1016Spain2026-07-22
1017Canada2026-07-13
1018Spain2026-07-19
1019Italy2026-07-21
1020Spain2026-07-17
1021Italy2026-07-13
1022Argentina2026-07-03
1023Canada2026-07-22
1024Canada2026-07-23
1025Japan2026-07-23
1026Argentina2026-07-21
1027Germany2026-07-08
1028Canada2026-07-14
1029Germany2026-07-15
1030Australia2026-07-17
1031France2026-06-30
1032Canada2026-07-05
1033Brazil2026-07-05
1034Italy2026-07-06
1035United Kingdom2026-07-14
1036Argentina2026-07-29
1037Japan2026-07-25
1038Spain2026-07-29
1039Russia2026-07-16
1040France2026-07-05
1041United Kingdom2026-06-30
1042Spain2026-07-07
1043United Kingdom2026-07-15
1044Canada2026-07-02
1045France2026-07-02
1046United Kingdom2026-07-19
1047Australia2026-07-03
1048France2026-07-12
1049Spain2026-07-27

On-Demand Data

NameIdCountryDate
Sinclair I Briddick1000Germany2026-07-10
Francesco M Bowley1001Brazil2026-07-17
Salvatore Y Waycott1002Brazil2026-07-02
Ivar V Briddick1003France2026-07-08
Aruna I Whobrey1004Russia2026-07-23
Johnson O Chui1005Germany2026-07-20
Alejandro C Shinko1006Russia2026-07-17
Clifford N Bolognia1007France2026-07-05
Aika R Butt1008United Kingdom2026-07-27
Izzy F Venere1009Brazil2026-07-13
Jones K Dilliard1010Italy2026-07-29
Leja V Caldarera1011Italy2026-07-26
Deepesh R Flosi1012United Kingdom2026-07-05
Alejandro B Whobrey1013Italy2026-07-03
Murillo R Bowley1014France2026-07-08
Maisha F Slusarski1015Argentina2026-07-12
Aika U Schemmer1016Germany2026-07-21
Tony F Malet1017Japan2026-07-11
Octavia W Caldarera1018Canada2026-07-28
Antonio F Rulapaugh1019Australia2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem C ButtCanadaOnyama Limba PROPOSAL
Izzy U SchemmerRussiaAnna Fali NEW
Cody T BowleyAustraliaStephen Shaw PROPOSAL
Silvio C CampainJapanStephen Shaw QUALIFIED
Antonio C BologniaFranceXuxue Feng UNQUALIFIED
Clifford Y KolmetzSpainXuxue Feng NEW
Faith J FollerAustraliaAnna Fali NEW
Salvatore S OldroydIndiaIoni Bowcher QUALIFIED
Nicolas D StensethIndiaElwin Sharvill UNQUALIFIED
Sinclair S BologniaJapanAsiya Javayant PROPOSAL
Aika S OldroydIndiaXuxue Feng NEGOTIATION
Munro P OstroskyUnited KingdomStephen Shaw NEW
Aruna D WaycottArgentinaAnna Fali NEW
Silvio H WhobreyArgentinaElwin Sharvill PROPOSAL
Claire A RoysterRussiaOnyama Limba PROPOSAL
Sinclair M OldroydCanadaStephen Shaw NEGOTIATION
Antonio C CampainGermanyIvan Magalhaes UNQUALIFIED
Jones L FlosiUnited KingdomXuxue Feng NEGOTIATION
Isabel H FollerArgentinaAsiya Javayant PROPOSAL
Francesco F VenereRussiaStephen Shaw NEW
Tony W StensethJapanElwin Sharvill PROPOSAL
Munro A PoquetteIndiaIoni Bowcher NEGOTIATION
Octavia E IturbideAustraliaAnna Fali PROPOSAL
Misaki F SaylorsJapanStephen Shaw NEGOTIATION
James M WaycottJapanStephen Shaw UNQUALIFIED
Octavia I DarakjyIndiaElwin Sharvill RENEWAL
Misaki U MorascaBrazilAsiya Javayant NEW
Jefferson E IturbideFranceElwin Sharvill UNQUALIFIED
Salvatore P TollnerBrazilBernardo Dominic NEGOTIATION
David Z ShinkoSpainAnna Fali NEGOTIATION
Mayumi G MaletCanadaOnyama Limba PROPOSAL
Francesco Q MaletGermanyElwin Sharvill RENEWAL
Kadeem T GauchoRussiaAsiya Javayant UNQUALIFIED
Octavia X BriddickCanadaIvan Magalhaes RENEWAL
Antonio Z RutaBrazilAnna Fali QUALIFIED
Tony J NickaGermanyIvan Magalhaes NEW
Jeanfrancois H BowleyGermanyOnyama Limba NEW
Kaitlin V StockhamArgentinaAsiya Javayant NEGOTIATION
Johnson A FigeroaBrazilStephen Shaw NEW
Izzy H BologniaGermanyBernardo Dominic 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>