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
Darci B VenereGermanyStephen Shaw NEGOTIATION
Antonio D MarrierIndiaIoni Bowcher NEGOTIATION
Cody I MaletCanadaIoni Bowcher UNQUALIFIED
Rodrigues I MarrierRussiaXuxue Feng NEW
Ashley O RulapaughGermanyAmy Elsner UNQUALIFIED
Greenwood O KuskoItalyAnna Fali NEW
Juan S MacleadRussiaElwin Sharvill QUALIFIED
Mayumi T WhobreyAustraliaIoni Bowcher QUALIFIED
Antonio Q AlbaresBrazilAmy Elsner NEW
Deepesh Z GlickArgentinaIvan Magalhaes UNQUALIFIED
Misaki C MaletIndiaBernardo Dominic QUALIFIED
Misaki H CaldareraRussiaAnna Fali UNQUALIFIED
Nicolas V ShinkoIndiaOnyama Limba UNQUALIFIED
Johnson I VocelkaBrazilXuxue Feng PROPOSAL
Izzy V ButtUnited KingdomStephen Shaw NEGOTIATION
Johnson Z OstroskyRussiaOnyama Limba UNQUALIFIED
Greenwood E GlickSpainOnyama Limba UNQUALIFIED
Deepesh I SaylorsAustraliaOnyama Limba RENEWAL
Ivar U CampainGermanyAnna Fali UNQUALIFIED
Darci B RutaIndiaIvan Magalhaes PROPOSAL
Aika N RoysterAustraliaXuxue Feng RENEWAL
Cody C FigeroaGermanyStephen Shaw UNQUALIFIED
Jefferson B FerenczUnited KingdomElwin Sharvill QUALIFIED
Silvio O PaprockiBrazilAsiya Javayant UNQUALIFIED
Darci C BowleyCanadaBernardo Dominic RENEWAL
Leon S DilliardBrazilOnyama Limba QUALIFIED
Johnson R MorascaSpainAmy Elsner NEW
Faith G RimRussiaAsiya Javayant RENEWAL
Claire T BologniaItalyXuxue Feng PROPOSAL
Jones T SlusarskiRussiaAsiya Javayant NEGOTIATION
Ivar A KuskoArgentinaBernardo Dominic PROPOSAL
Alejandro V MarrierGermanyIvan Magalhaes PROPOSAL
Morrow D CaudyItalyOnyama Limba UNQUALIFIED
Cody I VocelkaIndiaBernardo Dominic RENEWAL
David B WaycottGermanyBernardo Dominic NEW
Kaitlin H CaldareraJapanStephen Shaw UNQUALIFIED
Maisha N VenereIndiaAmy Elsner QUALIFIED
Misaki Z BowleyBrazilAmy Elsner UNQUALIFIED
Kadeem Q BologniaIndiaBernardo Dominic RENEWAL
Mayumi V PerinJapanOnyama Limba NEGOTIATION
Murillo E KolmetzItalyElwin Sharvill QUALIFIED
David I ChuiUnited KingdomIoni Bowcher PROPOSAL
Wickens F PerinRussiaIoni Bowcher PROPOSAL
Ashley X AmigonAustraliaOnyama Limba NEW
Rodrigues W SaylorsIndiaAnna Fali RENEWAL
Jones R PerinIndiaElwin Sharvill RENEWAL
Stacey H PerinSpainAsiya Javayant NEW
Faith A ShinkoRussiaElwin Sharvill PROPOSAL
Deepesh B WhobreySpainStephen Shaw NEGOTIATION
Octavia C DilliardGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois B NestleIndiaAmy Elsner QUALIFIED
Munro X WieserArgentinaAsiya Javayant PROPOSAL
Julie M OldroydAustraliaAsiya Javayant RENEWAL
Aruna H ChuiRussiaAnna Fali NEW
Maria X SlusarskiJapanXuxue Feng QUALIFIED
Emily F MarrierRussiaOnyama Limba PROPOSAL
Wickens D MaletSpainAmy Elsner QUALIFIED
Kaitlin H InouyeUnited KingdomStephen Shaw PROPOSAL
Greenwood W VenereSpainOnyama Limba QUALIFIED
Misaki G GauchoGermanyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja M SaylorsJapan2024-05-29Commercial Press QUALIFIED55Ivan Magalhaes
1001Arvin S FerenczItaly2024-06-17Rousseaux, Michael Esq QUALIFIED12Onyama Limba
1002Mayumi W FlosiUnited Kingdom2024-06-01Chapman, Ross E Esq UNQUALIFIED86Ivan Magalhaes
1003Faith Y FollerCanada2024-06-12Benton, John B Jr UNQUALIFIED32Onyama Limba
1004David J VocelkaItaly2024-06-14Printing Dimensions QUALIFIED45Onyama Limba
1005Deepesh G BowleyGermany2024-06-15Chemel, James L Cpa UNQUALIFIED76Onyama Limba
1006James V NestleAustralia2024-06-01Morlong Associates NEW15Bernardo Dominic
1007Rodrigues K GillianRussia2024-06-19Feiner Bros UNQUALIFIED69Amy Elsner
1008Ashley S FollerRussia2024-06-20Rangoni Of Florence QUALIFIED90Xuxue Feng
1009Nicolas F SlusarskiAustralia2024-05-24Benton, John B Jr UNQUALIFIED77Xuxue Feng
1010Cody E WhobreyCanada2024-06-04Morlong Associates PROPOSAL95Anna Fali
1011Tony T RutaGermany2024-06-10Chapman, Ross E Esq NEW68Ivan Magalhaes
1012Ricardo U CaldareraItaly2024-06-06Commercial Press NEW88Amy Elsner
1013Kadeem H BriddickRussia2024-06-16Benton, John B Jr PROPOSAL45Bernardo Dominic
1014Mayumi Y NestleIndia2024-05-26Buckley Miller Wright UNQUALIFIED6Onyama Limba
1015Costa I InouyeArgentina2024-06-13Chemel, James L Cpa NEW56Ioni Bowcher
1016Mujtaba X OldroydGermany2024-06-18Chanay, Jeffrey A Esq NEW59Xuxue Feng
1017Ashley R PerinIndia2024-06-13Benton, John B Jr QUALIFIED8Xuxue Feng
1018Munro I VenereJapan2024-06-06Printing Dimensions NEGOTIATION36Onyama Limba
1019Greenwood T DilliardUnited Kingdom2024-05-29Buckley Miller Wright RENEWAL8Amy Elsner
1020Antonio X OldroydArgentina2024-06-13Chemel, James L Cpa QUALIFIED30Elwin Sharvill
1021Costa L StockhamAustralia2024-06-06Truhlar And Truhlar Attys RENEWAL50Xuxue Feng
1022Octavia V FigeroaJapan2024-05-27Dorl, James J Esq NEGOTIATION98Bernardo Dominic
1023Maria W MacleadJapan2024-06-06Rousseaux, Michael Esq UNQUALIFIED86Elwin Sharvill
1024Aditya P IturbideAustralia2024-06-16Rangoni Of Florence NEGOTIATION28Stephen Shaw
1025Sinclair F PaprockiBrazil2024-05-28Chemel, James L Cpa NEGOTIATION71Amy Elsner
1026Arvin P SergiAustralia2024-06-19Chanay, Jeffrey A Esq QUALIFIED79Elwin Sharvill
1027Greenwood H GauchoGermany2024-06-04Dorl, James J Esq RENEWAL15Ivan Magalhaes
1028Wickens L CampainSpain2024-05-27Feiner Bros RENEWAL17Onyama Limba
1029Jefferson K StockhamArgentina2024-06-20Commercial Press NEW79Elwin Sharvill
1030Salvatore D PoquetteSpain2024-05-30Benton, John B Jr NEW75Xuxue Feng
1031James U CaudyRussia2024-06-14Chanay, Jeffrey A Esq RENEWAL36Stephen Shaw
1032Nicolas G GarufiIndia2024-05-26Feiner Bros QUALIFIED1Amy Elsner
1033Costa V SlusarskiRussia2024-06-15Feiner Bros PROPOSAL78Asiya Javayant
1034Ivar W BriddickCanada2024-06-11Buckley Miller Wright NEGOTIATION26Stephen Shaw
1035Sinclair V WaycottGermany2024-06-22Buckley Miller Wright RENEWAL5Asiya Javayant
1036Sinclair Z AmigonArgentina2024-05-31Chanay, Jeffrey A Esq RENEWAL36Elwin Sharvill
1037Faith W WhobreyFrance2024-06-03Feltz Printing Service NEGOTIATION17Elwin Sharvill
1038Izzy M GlickUnited Kingdom2024-06-05Commercial Press UNQUALIFIED59Elwin Sharvill
1039Sinclair H VenereItaly2024-06-05Chemel, James L Cpa QUALIFIED31Xuxue Feng
1040Darci L IturbideSpain2024-05-25Rangoni Of Florence UNQUALIFIED77Onyama Limba
1041Aruna I KuskoFrance2024-06-02Dorl, James J Esq QUALIFIED66Onyama Limba
1042Emily G ChuiBrazil2024-05-24Feiner Bros QUALIFIED5Ioni Bowcher
1043Aditya X ShinkoAustralia2024-05-31Benton, John B Jr RENEWAL56Stephen Shaw
1044Arvin Q WieserBrazil2024-05-27Rousseaux, Michael Esq NEGOTIATION16Amy Elsner
1045Francesco Z KolmetzUnited Kingdom2024-06-10Truhlar And Truhlar Attys NEGOTIATION83Anna Fali
1046Sinclair J ChuiArgentina2024-06-05Truhlar And Truhlar Attys QUALIFIED19Asiya Javayant
1047Silvio F SergiArgentina2024-06-02Chapman, Ross E Esq NEGOTIATION63Elwin Sharvill
1048Juan E InouyeIndia2024-05-25Buckley Miller Wright PROPOSAL86Elwin Sharvill
1049Morrow J FollerItaly2024-06-09Chemel, James L Cpa QUALIFIED65Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith L VenereArgentinaBernardo Dominic RENEWAL
David G MaletAustraliaIvan Magalhaes QUALIFIED
Maisha E WaycottBrazilAmy Elsner QUALIFIED
Kaitlin L ShinkoCanadaAsiya Javayant NEW
Nicolas R MaletCanadaAnna Fali PROPOSAL
Murillo X BologniaGermanyIvan Magalhaes UNQUALIFIED
Juan C ButtItalyAnna Fali RENEWAL
Octavia Q WieserAustraliaXuxue Feng NEW
Juan E ButtIndiaAnna Fali NEW
Isabel V SchemmerAustraliaBernardo Dominic UNQUALIFIED
Sinclair P StockhamFranceIvan Magalhaes NEW
Juan I OldroydUnited KingdomIoni Bowcher NEW
Salvatore K KuskoCanadaOnyama Limba UNQUALIFIED
Emily P OstroskyItalyAsiya Javayant NEGOTIATION
James G SergiGermanyIoni Bowcher UNQUALIFIED
Kadeem C FlosiIndiaIoni Bowcher UNQUALIFIED
Emily H DilliardSpainIvan Magalhaes RENEWAL
Clifford W KolmetzRussiaBernardo Dominic UNQUALIFIED
Maisha J WhobreyGermanyOnyama Limba UNQUALIFIED
James Z PerinArgentinaOnyama Limba UNQUALIFIED
Julie K GillianSpainOnyama Limba RENEWAL
Isabel B CaudyRussiaStephen Shaw NEGOTIATION
Emily U OldroydSpainBernardo Dominic RENEWAL
Maisha N FigeroaSpainOnyama Limba QUALIFIED
Maria C KuskoSpainAsiya Javayant PROPOSAL
Izzy D OstroskyAustraliaIoni Bowcher NEW
Silvio C SlusarskiArgentinaAnna Fali UNQUALIFIED
Wickens X VocelkaRussiaIoni Bowcher QUALIFIED
Jefferson Y MaletRussiaStephen Shaw QUALIFIED
Kadeem I CaudyUnited KingdomBernardo Dominic RENEWAL
Maisha P SlusarskiSpainAsiya Javayant NEW
Kadeem D CaldareraJapanAnna Fali PROPOSAL
Ricardo A TollnerFranceAsiya Javayant RENEWAL
Izzy Y PoquetteUnited KingdomAmy Elsner RENEWAL
Tony E SergiRussiaAsiya Javayant NEGOTIATION
Smith A StockhamItalyBernardo Dominic PROPOSAL
Misaki T FollerItalyAmy Elsner NEW
Johnson F SergiIndiaElwin Sharvill NEW
Misaki F PaprockiSpainAsiya Javayant UNQUALIFIED
Kaitlin V IturbideIndiaAmy Elsner UNQUALIFIED
Darci O PaprockiFranceIvan Magalhaes QUALIFIED
Kaitlin F DoeBrazilIvan Magalhaes PROPOSAL
Deepesh I DarakjyArgentinaOnyama Limba QUALIFIED
Darci S FigeroaAustraliaAsiya Javayant NEGOTIATION
Francesco P TollnerGermanyAnna Fali RENEWAL
Alejandro F MaletCanadaElwin Sharvill UNQUALIFIED
Misaki M VocelkaCanadaStephen Shaw NEGOTIATION
Arvin C WieserGermanyBernardo Dominic NEW
Claire E GlickIndiaBernardo Dominic NEW
Octavia V SchemmerJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Antonio X Foller
David P Iturbide
Costa L Marrier
Jeanfrancois L Saylors
Silvio L Gaucho
Arvin A Flosi
Munro H Foller
Mayumi N Poquette
Jones G Doe
Jefferson N Albares
Aika Y Venere
Alejandro Y Bowley
Deepesh L Malet
Jennifer U Briddick
Emily C Iturbide
James W Tollner
Munro X Nicka
Kaitlin F Marrier
Kaitlin K Ostrosky
Darci S Doe
Aika V Gillian
Maisha A Waycott
Smith E Butt
Emily Z Chui
Costa T Caldarera
Aditya R Shinko
Mayumi B Paprocki
Emily W Amigon
Greenwood V Foller
Costa R Flosi
David Q Royster
Leja Q Iturbide
Jeanfrancois L Oldroyd
Tony O Schemmer
Smith Z Rim
Smith E Malet
Munro Y Royster
Johnson D Ferencz
Jefferson V Morasca
Claire P Caldarera
Nicolas G Inouye
Stacey W Briddick
Julie V Saylors
Alejandro Z Iturbide
Antonio I Venere
Ricardo P Perin
Smith B Rulapaugh
Aruna Z Tollner
Mayumi Z Marrier
Clifford S Butt
IdCountryDate
1000France2024-06-08
1001India2024-06-20
1002India2024-06-19
1003Brazil2024-05-24
1004Argentina2024-06-09
1005Germany2024-06-07
1006Canada2024-06-22
1007Argentina2024-05-24
1008France2024-06-22
1009France2024-05-25
1010Russia2024-06-08
1011Russia2024-06-04
1012Canada2024-06-22
1013Spain2024-05-24
1014United Kingdom2024-06-05
1015France2024-05-30
1016Spain2024-05-28
1017Italy2024-06-01
1018Argentina2024-06-20
1019Canada2024-06-08
1020Canada2024-06-02
1021France2024-06-12
1022Italy2024-05-24
1023India2024-06-10
1024Argentina2024-06-04
1025Australia2024-06-20
1026Russia2024-05-25
1027Japan2024-06-13
1028Germany2024-06-18
1029Spain2024-06-03
1030Russia2024-06-10
1031Argentina2024-06-10
1032France2024-06-12
1033Italy2024-05-28
1034Japan2024-06-12
1035France2024-06-06
1036Brazil2024-06-10
1037Canada2024-06-12
1038Spain2024-06-12
1039Canada2024-06-15
1040Russia2024-06-19
1041France2024-06-06
1042Australia2024-06-16
1043India2024-06-14
1044Spain2024-05-28
1045Spain2024-06-03
1046Germany2024-06-18
1047Germany2024-06-14
1048India2024-05-26
1049Japan2024-06-22

On-Demand Data

NameIdCountryDate
Nicolas A Saylors1000Brazil2024-06-01
Leon V Schemmer1001India2024-06-12
Jones P Gaucho1002Australia2024-06-13
Leon Z Figeroa1003Germany2024-06-16
Maria O Briddick1004Italy2024-05-24
Adams F Tollner1005Russia2024-05-28
Silvio E Tollner1006Germany2024-06-11
Misaki J Albares1007Australia2024-05-25
Izzy G Dilliard1008Canada2024-06-12
David U Amigon1009United Kingdom2024-06-12
Misaki W Poquette1010France2024-05-29
Jeanfrancois K Nestle1011Spain2024-05-27
Leon T Oldroyd1012France2024-06-01
Greenwood N Wieser1013France2024-06-17
Greenwood C Figeroa1014Germany2024-06-12
Jefferson R Kolmetz1015Russia2024-05-25
Aruna R Malet1016United Kingdom2024-06-10
Francesco O Poquette1017Germany2024-06-06
Ricardo U Doe1018Brazil2024-06-11
Ivar D Slusarski1019France2024-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez G RoysterGermanyAmy Elsner UNQUALIFIED
Leja Y BologniaIndiaElwin Sharvill PROPOSAL
Munro L DarakjyGermanyIoni Bowcher NEGOTIATION
Mujtaba A WhobreyFranceIvan Magalhaes NEW
Octavia O AmigonIndiaIvan Magalhaes NEW
Ashley X TollnerAustraliaBernardo Dominic PROPOSAL
Deepesh J MorascaIndiaXuxue Feng PROPOSAL
Faith A MorascaArgentinaBernardo Dominic UNQUALIFIED
Ricardo K AlbaresBrazilAsiya Javayant QUALIFIED
Wickens L RutaFranceStephen Shaw QUALIFIED
Isabel L RimJapanAsiya Javayant QUALIFIED
Johnson E InouyeItalyIoni Bowcher RENEWAL
Emily X MorascaJapanIoni Bowcher PROPOSAL
Stacey S GauchoUnited KingdomOnyama Limba QUALIFIED
Leja N MarrierArgentinaXuxue Feng NEGOTIATION
Salvatore L TollnerArgentinaAnna Fali RENEWAL
Mujtaba G ChuiIndiaOnyama Limba UNQUALIFIED
Jones I SlusarskiBrazilStephen Shaw RENEWAL
Kaitlin V KuskoGermanyAnna Fali PROPOSAL
Cody A SlusarskiSpainOnyama Limba NEW
Juan G RulapaughSpainStephen Shaw RENEWAL
Munro X RutaRussiaAmy Elsner NEGOTIATION
Maisha P CampainIndiaOnyama Limba RENEWAL
Deepesh P DoeSpainBernardo Dominic PROPOSAL
Isabel E DarakjyFranceIoni Bowcher RENEWAL
Cody H PoquetteRussiaElwin Sharvill UNQUALIFIED
Chavez E ButtArgentinaAnna Fali PROPOSAL
Jones I OldroydFranceIoni Bowcher UNQUALIFIED
Costa H RoysterCanadaElwin Sharvill QUALIFIED
Mujtaba O BowleyCanadaIoni Bowcher UNQUALIFIED
Chavez U SaylorsUnited KingdomBernardo Dominic QUALIFIED
Emily E BowleyJapanAnna Fali UNQUALIFIED
Cody I NestleSpainAnna Fali QUALIFIED
Tony U StensethFranceAnna Fali RENEWAL
Smith T PaprockiAustraliaOnyama Limba NEGOTIATION
Rodrigues W RutaFranceElwin Sharvill UNQUALIFIED
Jefferson H StockhamGermanyOnyama Limba QUALIFIED
Misaki J VenereIndiaAmy Elsner PROPOSAL
Ricardo N DoeIndiaAnna Fali PROPOSAL
Jefferson J BriddickIndiaAmy Elsner 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>