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
Rodrigues O MacleadCanadaAnna Fali PROPOSAL
Misaki C AmigonGermanyAnna Fali RENEWAL
Stacey M BriddickUnited KingdomStephen Shaw NEGOTIATION
Deepesh N RoysterRussiaIvan Magalhaes NEGOTIATION
Juan O DarakjySpainOnyama Limba NEGOTIATION
Greenwood K VenereFranceIvan Magalhaes PROPOSAL
Julie U PaprockiFranceAsiya Javayant QUALIFIED
Deepesh J DarakjySpainAmy Elsner UNQUALIFIED
Kaitlin G RutaRussiaIvan Magalhaes RENEWAL
Clifford N WieserFranceAmy Elsner RENEWAL
Ashley B KuskoJapanAmy Elsner NEW
Silvio O RoysterArgentinaAnna Fali QUALIFIED
Faith I GlickSpainBernardo Dominic NEW
James Z PerinJapanStephen Shaw UNQUALIFIED
Mujtaba U DarakjyFranceBernardo Dominic QUALIFIED
Murillo N SergiAustraliaOnyama Limba NEGOTIATION
Jefferson O CaudyRussiaOnyama Limba NEGOTIATION
Leja I DilliardFranceStephen Shaw QUALIFIED
Francesco I ButtFranceAsiya Javayant PROPOSAL
Ivar B GarufiAustraliaXuxue Feng NEGOTIATION
Jones O AmigonUnited KingdomXuxue Feng RENEWAL
Wickens Q FigeroaArgentinaAnna Fali QUALIFIED
Silvio M BologniaUnited KingdomIvan Magalhaes QUALIFIED
Jones U MacleadIndiaAnna Fali QUALIFIED
Juan D OstroskyRussiaElwin Sharvill PROPOSAL
Kadeem F DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Darci M GauchoIndiaBernardo Dominic NEGOTIATION
Murillo Y AmigonGermanyBernardo Dominic UNQUALIFIED
Octavia H OldroydBrazilElwin Sharvill PROPOSAL
Mujtaba M AmigonArgentinaBernardo Dominic RENEWAL
Ivar I StockhamCanadaAnna Fali NEGOTIATION
Julie O SergiIndiaIoni Bowcher RENEWAL
Juan T WaycottJapanIvan Magalhaes QUALIFIED
Aditya I SchemmerGermanyIoni Bowcher QUALIFIED
Francesco S GauchoAustraliaXuxue Feng PROPOSAL
Ricardo U GillianBrazilElwin Sharvill UNQUALIFIED
Greenwood J DoeCanadaAsiya Javayant NEGOTIATION
Ricardo F BowleyGermanyIoni Bowcher RENEWAL
Aruna T DilliardArgentinaIvan Magalhaes QUALIFIED
Tony Z VocelkaIndiaIoni Bowcher PROPOSAL
Greenwood E FigeroaJapanIvan Magalhaes PROPOSAL
Aditya W SaylorsItalyStephen Shaw NEW
Tony V RulapaughRussiaIvan Magalhaes QUALIFIED
Ricardo V KolmetzIndiaAnna Fali RENEWAL
Mujtaba H AmigonBrazilAsiya Javayant NEGOTIATION
Octavia U MorascaIndiaBernardo Dominic QUALIFIED
Clifford L GlickAustraliaAnna Fali UNQUALIFIED
Mujtaba Y MorascaIndiaElwin Sharvill NEGOTIATION
James Q CaudyGermanyOnyama Limba RENEWAL
Greenwood X GauchoRussiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow Z KolmetzCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois N BriddickFranceAmy Elsner QUALIFIED
Leon Q MaletJapanIoni Bowcher NEGOTIATION
Arvin H MorascaJapanAsiya Javayant QUALIFIED
Clifford J BologniaArgentinaIoni Bowcher UNQUALIFIED
Francesco E RimJapanOnyama Limba RENEWAL
Leja C CampainJapanIoni Bowcher PROPOSAL
Jefferson M NickaJapanIoni Bowcher QUALIFIED
Costa A NickaBrazilOnyama Limba NEW
Costa C PerinArgentinaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair W StockhamBrazil2025-04-13Benton, John B Jr UNQUALIFIED31Asiya Javayant
1001Maria U PaprockiUnited Kingdom2025-04-09King, Christopher A Esq QUALIFIED84Bernardo Dominic
1002Ricardo S CaldareraGermany2025-04-11Rangoni Of Florence UNQUALIFIED0Anna Fali
1003Octavia U GlickUnited Kingdom2025-04-15Dorl, James J Esq QUALIFIED63Onyama Limba
1004Octavia H StockhamBrazil2025-04-11Truhlar And Truhlar Attys NEW17Xuxue Feng
1005Cody Z CampainBrazil2025-04-30Rousseaux, Michael Esq RENEWAL56Asiya Javayant
1006Nicolas A GillianAustralia2025-04-18Feltz Printing Service UNQUALIFIED46Onyama Limba
1007Costa E CaldareraIndia2025-04-22King, Christopher A Esq UNQUALIFIED88Onyama Limba
1008Jeanfrancois S DilliardBrazil2025-04-23Printing Dimensions NEGOTIATION57Anna Fali
1009Kaitlin P FigeroaUnited Kingdom2025-04-28Chemel, James L Cpa NEW96Onyama Limba
1010Octavia T SaylorsRussia2025-04-04Dorl, James J Esq NEGOTIATION74Anna Fali
1011David B PerinArgentina2025-04-10Commercial Press RENEWAL74Stephen Shaw
1012Cody L ShinkoGermany2025-04-05Chapman, Ross E Esq RENEWAL48Elwin Sharvill
1013Kaitlin G OstroskyIndia2025-04-07Chapman, Ross E Esq QUALIFIED15Ivan Magalhaes
1014Isabel V WaycottSpain2025-04-05King, Christopher A Esq QUALIFIED53Stephen Shaw
1015Claire B FerenczRussia2025-04-03Buckley Miller Wright UNQUALIFIED81Onyama Limba
1016Leja C OldroydBrazil2025-04-25Commercial Press UNQUALIFIED33Amy Elsner
1017Faith B InouyeArgentina2025-04-10Dorl, James J Esq PROPOSAL18Bernardo Dominic
1018Kaitlin T BologniaRussia2025-04-17Dorl, James J Esq NEGOTIATION48Stephen Shaw
1019Morrow N ChuiIndia2025-04-25Feiner Bros PROPOSAL72Elwin Sharvill
1020Izzy J GauchoIndia2025-04-28Buckley Miller Wright UNQUALIFIED37Ivan Magalhaes
1021Juan G BriddickGermany2025-04-25Benton, John B Jr PROPOSAL34Stephen Shaw
1022Aruna O WhobreyIndia2025-04-15Feltz Printing Service PROPOSAL85Onyama Limba
1023Adams Q DarakjySpain2025-04-09Dorl, James J Esq NEGOTIATION75Anna Fali
1024Tony A TollnerArgentina2025-04-24Rangoni Of Florence UNQUALIFIED82Onyama Limba
1025David O GillianIndia2025-04-17Chemel, James L Cpa UNQUALIFIED36Amy Elsner
1026Jefferson D FerenczArgentina2025-04-19Feltz Printing Service PROPOSAL14Ivan Magalhaes
1027Morrow F BowleyItaly2025-04-30King, Christopher A Esq NEW57Xuxue Feng
1028Darci A WhobreyAustralia2025-04-26Chapman, Ross E Esq QUALIFIED17Onyama Limba
1029Ivar R TollnerBrazil2025-04-22Rangoni Of Florence NEW56Xuxue Feng
1030Deepesh V SaylorsCanada2025-04-26Feltz Printing Service NEGOTIATION7Ivan Magalhaes
1031Aika X KuskoFrance2025-04-25Rangoni Of Florence RENEWAL64Elwin Sharvill
1032Antonio D PerinItaly2025-04-12Commercial Press QUALIFIED79Xuxue Feng
1033Ashley M FlosiFrance2025-04-06Feiner Bros NEW20Anna Fali
1034Emily G BowleyAustralia2025-04-12Chemel, James L Cpa NEGOTIATION84Anna Fali
1035Misaki S DarakjyBrazil2025-04-04Benton, John B Jr UNQUALIFIED85Ioni Bowcher
1036Izzy W RimFrance2025-04-14Chanay, Jeffrey A Esq UNQUALIFIED40Amy Elsner
1037Clifford L TollnerRussia2025-04-12Chanay, Jeffrey A Esq PROPOSAL66Ioni Bowcher
1038Juan N AlbaresFrance2025-04-27Rousseaux, Michael Esq PROPOSAL22Xuxue Feng
1039Jones P RoysterJapan2025-04-06Rangoni Of Florence UNQUALIFIED37Stephen Shaw
1040Nicolas R RoysterBrazil2025-04-30Truhlar And Truhlar Attys UNQUALIFIED57Asiya Javayant
1041Nicolas V ButtCanada2025-04-06Morlong Associates PROPOSAL92Stephen Shaw
1042Silvio S MacleadRussia2025-04-16Buckley Miller Wright RENEWAL16Amy Elsner
1043Octavia Q PerinUnited Kingdom2025-04-27Dorl, James J Esq RENEWAL14Elwin Sharvill
1044Ivar Z ShinkoJapan2025-04-19Commercial Press NEGOTIATION19Amy Elsner
1045Alejandro P SergiFrance2025-04-18Chapman, Ross E Esq QUALIFIED71Stephen Shaw
1046Misaki O SergiRussia2025-04-05King, Christopher A Esq NEGOTIATION14Ivan Magalhaes
1047Jefferson G NickaGermany2025-04-10King, Christopher A Esq RENEWAL86Amy Elsner
1048Costa F DoeFrance2025-04-11Buckley Miller Wright PROPOSAL9Amy Elsner
1049Arvin Y KuskoIndia2025-04-28Truhlar And Truhlar Attys NEGOTIATION87Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David M IturbideUnited KingdomAmy Elsner RENEWAL
Alejandro J FollerAustraliaBernardo Dominic UNQUALIFIED
Johnson X PaprockiArgentinaIoni Bowcher NEGOTIATION
Smith J KuskoArgentinaOnyama Limba QUALIFIED
Stacey C GarufiFranceOnyama Limba NEW
Morrow X OldroydRussiaAsiya Javayant UNQUALIFIED
Darci L RimUnited KingdomBernardo Dominic UNQUALIFIED
Maisha D NickaItalyAsiya Javayant QUALIFIED
Kadeem F ChuiItalyOnyama Limba RENEWAL
Octavia A GauchoSpainAnna Fali NEW
Alejandro K ShinkoJapanAmy Elsner QUALIFIED
Costa B DarakjyIndiaAmy Elsner RENEWAL
Silvio B SchemmerUnited KingdomIvan Magalhaes RENEWAL
Jeanfrancois I PaprockiIndiaIvan Magalhaes QUALIFIED
Mayumi P MaletGermanyAnna Fali PROPOSAL
Aditya R PoquetteItalyAnna Fali RENEWAL
Greenwood Q MacleadBrazilOnyama Limba QUALIFIED
Alejandro S DilliardSpainIvan Magalhaes PROPOSAL
Kaitlin Q RimFranceAmy Elsner RENEWAL
Antonio X SlusarskiSpainAmy Elsner NEGOTIATION
Alejandro R VenereItalyAsiya Javayant RENEWAL
Leja R BriddickCanadaIoni Bowcher NEW
Deepesh Z WieserIndiaIvan Magalhaes QUALIFIED
Julie Y OldroydArgentinaStephen Shaw NEW
Mayumi F FollerArgentinaIvan Magalhaes QUALIFIED
Stacey C FigeroaRussiaIoni Bowcher UNQUALIFIED
Leja W MarrierFranceStephen Shaw NEW
Izzy U ShinkoGermanyAnna Fali PROPOSAL
Antonio U ButtItalyOnyama Limba NEW
Greenwood N RulapaughAustraliaBernardo Dominic PROPOSAL
Murillo T GarufiBrazilAnna Fali RENEWAL
Smith T MaletAustraliaIoni Bowcher UNQUALIFIED
Ivar I ShinkoSpainAsiya Javayant UNQUALIFIED
Darci C PoquetteAustraliaElwin Sharvill NEGOTIATION
Maisha F GlickGermanyAsiya Javayant NEGOTIATION
Darci F IturbideFranceStephen Shaw UNQUALIFIED
Johnson Z PoquetteJapanOnyama Limba NEGOTIATION
Julie Q DilliardItalyOnyama Limba PROPOSAL
Jennifer M BowleyRussiaIoni Bowcher QUALIFIED
Isabel H CaldareraFranceStephen Shaw NEW
Greenwood F FlosiArgentinaIvan Magalhaes NEGOTIATION
Costa U OldroydSpainIvan Magalhaes NEW
Morrow F TollnerJapanAmy Elsner QUALIFIED
Arvin Q BologniaCanadaIoni Bowcher NEW
Arvin S BriddickSpainAmy Elsner NEGOTIATION
Faith N VocelkaAustraliaBernardo Dominic NEGOTIATION
Juan H StensethJapanIvan Magalhaes QUALIFIED
Jennifer O WieserSpainStephen Shaw QUALIFIED
Claire N ButtIndiaStephen Shaw QUALIFIED
Darci M BriddickGermanyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Nicolas K Stockham
Jones A Caudy
Maisha N Nicka
Ashley B Kusko
Ivar K Bolognia
Francesco V Iturbide
Cody O Bolognia
Jones Y Kusko
Ashley L Marrier
Silvio E Amigon
Silvio A Slusarski
Kaitlin N Schemmer
Juan L Stockham
Arvin X Nestle
Claire B Doe
Morrow I Nestle
Clifford A Caldarera
Greenwood D Doe
Mujtaba J Nicka
Costa Y Garufi
Faith Y Darakjy
Antonio D Malet
James K Ostrosky
Ricardo D Inouye
Morrow F Gaucho
Salvatore S Ferencz
Aditya P Paprocki
Alejandro N Glick
David K Campain
Leja Y Ferencz
Smith M Waycott
Antonio J Whobrey
Mujtaba E Perin
Smith A Wieser
Ricardo I Poquette
Leon R Caldarera
Jones S Campain
David G Schemmer
Julie K Campain
Ivar K Kolmetz
Leja G Venere
Francesco O Poquette
James D Malet
Johnson T Caudy
Aika U Malet
Wickens O Caudy
Morrow Q Rulapaugh
Smith Q Rim
David M Oldroyd
Deepesh K Flosi
IdCountryDate
1000Australia2025-04-03
1001Canada2025-04-14
1002India2025-04-24
1003Brazil2025-04-06
1004Russia2025-04-27
1005Australia2025-04-14
1006Italy2025-04-02
1007Argentina2025-04-07
1008Germany2025-04-08
1009Italy2025-04-12
1010United Kingdom2025-04-28
1011Australia2025-04-16
1012India2025-04-11
1013Spain2025-04-19
1014Brazil2025-04-17
1015Japan2025-04-20
1016Germany2025-04-20
1017Argentina2025-04-22
1018Germany2025-04-12
1019Japan2025-04-26
1020Spain2025-04-09
1021India2025-04-10
1022Italy2025-04-30
1023Germany2025-04-01
1024Argentina2025-04-14
1025United Kingdom2025-04-28
1026United Kingdom2025-04-09
1027Australia2025-04-26
1028Japan2025-04-10
1029Canada2025-04-20
1030France2025-04-14
1031Japan2025-04-24
1032Spain2025-04-29
1033Canada2025-04-29
1034Germany2025-04-07
1035Germany2025-04-20
1036India2025-04-28
1037Canada2025-04-09
1038Brazil2025-04-04
1039Italy2025-04-12
1040United Kingdom2025-04-22
1041Canada2025-04-07
1042Germany2025-04-01
1043Italy2025-04-08
1044Italy2025-04-07
1045Spain2025-04-01
1046United Kingdom2025-04-16
1047Canada2025-04-18
1048Canada2025-04-29
1049Brazil2025-04-27

On-Demand Data

NameIdCountryDate
Stacey H Bolognia1000Germany2025-04-15
Juan E Nestle1001India2025-04-08
Deepesh R Marrier1002Italy2025-04-30
Francesco Y Darakjy1003India2025-04-10
Clifford Q Flosi1004Argentina2025-04-12
Mayumi G Darakjy1005United Kingdom2025-04-15
Ashley F Poquette1006Australia2025-04-14
Francesco T Chui1007Argentina2025-04-23
Juan J Garufi1008Italy2025-04-19
Deepesh T Bowley1009France2025-04-04
David K Bolognia1010France2025-04-09
Kadeem C Flosi1011United Kingdom2025-04-29
Adams M Albares1012Australia2025-04-16
Tony D Oldroyd1013Russia2025-04-23
Sinclair V Tollner1014Argentina2025-04-12
Cody D Figeroa1015Argentina2025-04-15
Stacey S Ostrosky1016Germany2025-04-22
Alejandro Y Tollner1017Canada2025-04-12
Aditya P Foller1018Canada2025-04-11
Faith I Dilliard1019France2025-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja J SlusarskiSpainBernardo Dominic RENEWAL
Isabel D DoeCanadaIvan Magalhaes UNQUALIFIED
Darci K RutaBrazilAmy Elsner NEW
Izzy A FlosiArgentinaBernardo Dominic NEGOTIATION
Ashley W WaycottFranceAsiya Javayant NEW
Leon W BriddickUnited KingdomXuxue Feng NEW
Mujtaba C ChuiAustraliaAmy Elsner RENEWAL
Murillo A CaldareraFranceBernardo Dominic NEGOTIATION
James X MorascaRussiaXuxue Feng UNQUALIFIED
Rodrigues X NickaRussiaStephen Shaw UNQUALIFIED
Sinclair K OldroydCanadaIoni Bowcher NEGOTIATION
David P GillianSpainStephen Shaw NEW
Antonio M MacleadItalyElwin Sharvill QUALIFIED
Jeanfrancois X StensethItalyAmy Elsner QUALIFIED
Jennifer J FigeroaIndiaIvan Magalhaes QUALIFIED
James W StockhamFranceBernardo Dominic NEW
Aruna G PoquetteRussiaIoni Bowcher PROPOSAL
Cody H FollerJapanAnna Fali RENEWAL
Kadeem Q RulapaughJapanAnna Fali PROPOSAL
Aditya L SlusarskiIndiaAnna Fali NEGOTIATION
Jeanfrancois Y CampainJapanOnyama Limba NEGOTIATION
Johnson Y KolmetzArgentinaStephen Shaw NEGOTIATION
Jones K PaprockiJapanStephen Shaw RENEWAL
Jeanfrancois Q IturbideBrazilAsiya Javayant PROPOSAL
Costa H CampainItalyAnna Fali PROPOSAL
Julie C WaycottBrazilElwin Sharvill NEGOTIATION
Arvin I CaldareraJapanIoni Bowcher NEGOTIATION
Kadeem L DoeUnited KingdomOnyama Limba RENEWAL
Francesco O FollerJapanXuxue Feng QUALIFIED
Jeanfrancois U RulapaughRussiaStephen Shaw NEW
Maisha O IturbideJapanXuxue Feng PROPOSAL
Ashley G PaprockiJapanIoni Bowcher UNQUALIFIED
Tony J PaprockiBrazilIvan Magalhaes QUALIFIED
James T TollnerSpainOnyama Limba PROPOSAL
Jones G PerinIndiaStephen Shaw UNQUALIFIED
Mujtaba S SchemmerSpainIoni Bowcher NEW
Maisha K ChuiFranceAsiya Javayant RENEWAL
Ashley G BowleyArgentinaOnyama Limba RENEWAL
Antonio W MaletAustraliaAsiya Javayant QUALIFIED
Tony M CaudyBrazilOnyama Limba NEGOTIATION

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