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
Alejandro K BowleyArgentinaIvan Magalhaes RENEWAL
Alejandro D GarufiFranceAsiya Javayant RENEWAL
Jones L ShinkoGermanyStephen Shaw NEGOTIATION
Silvio T SaylorsIndiaIvan Magalhaes QUALIFIED
Aruna Y DarakjyJapanXuxue Feng RENEWAL
Arvin V AmigonArgentinaXuxue Feng NEW
Jones R AlbaresFranceBernardo Dominic NEW
Maria X PaprockiCanadaStephen Shaw NEW
Ivar G WhobreyAustraliaAsiya Javayant UNQUALIFIED
Deepesh C AlbaresAustraliaAsiya Javayant PROPOSAL
Ivar T BowleyBrazilElwin Sharvill PROPOSAL
Smith O CaldareraArgentinaOnyama Limba RENEWAL
Mujtaba R PaprockiRussiaAsiya Javayant QUALIFIED
Faith Q TollnerSpainBernardo Dominic QUALIFIED
Tony Q MarrierJapanOnyama Limba QUALIFIED
Ricardo O SlusarskiArgentinaOnyama Limba UNQUALIFIED
Octavia W SchemmerUnited KingdomAnna Fali NEW
James I PaprockiCanadaAmy Elsner NEW
Chavez D SaylorsSpainIvan Magalhaes QUALIFIED
Kaitlin D ButtJapanBernardo Dominic NEW
Rodrigues U FollerGermanyXuxue Feng PROPOSAL
Aika R NickaUnited KingdomOnyama Limba NEW
Arvin I DoeUnited KingdomXuxue Feng QUALIFIED
Sinclair J KolmetzGermanyBernardo Dominic RENEWAL
Cody V BologniaUnited KingdomElwin Sharvill PROPOSAL
Mujtaba U RimRussiaAsiya Javayant UNQUALIFIED
Alejandro O MorascaRussiaXuxue Feng RENEWAL
Jones G SaylorsArgentinaElwin Sharvill UNQUALIFIED
Maria V MacleadUnited KingdomXuxue Feng QUALIFIED
Maisha R BowleyGermanyIvan Magalhaes PROPOSAL
Ashley A DoeAustraliaOnyama Limba QUALIFIED
Jefferson W SaylorsItalyStephen Shaw RENEWAL
Darci U WaycottBrazilAnna Fali NEGOTIATION
Claire L SlusarskiSpainAnna Fali NEW
Ricardo H OstroskyBrazilAnna Fali UNQUALIFIED
Alejandro R FlosiCanadaOnyama Limba QUALIFIED
David E RutaSpainXuxue Feng QUALIFIED
Sinclair D VenereIndiaAsiya Javayant PROPOSAL
Emily C DarakjyItalyBernardo Dominic RENEWAL
Arvin Q OstroskyFranceAnna Fali RENEWAL
Costa R DarakjyArgentinaBernardo Dominic QUALIFIED
Adams O SlusarskiArgentinaBernardo Dominic RENEWAL
Antonio J CaudyGermanyAsiya Javayant UNQUALIFIED
Greenwood A InouyeItalyAmy Elsner NEW
Jefferson J SaylorsUnited KingdomOnyama Limba NEW
Costa R DoeItalyBernardo Dominic PROPOSAL
Jones X OldroydJapanElwin Sharvill NEGOTIATION
Munro M DarakjySpainStephen Shaw NEW
Kaitlin H NickaAustraliaStephen Shaw PROPOSAL
Arvin Y BowleyFranceIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie D SchemmerIndiaIvan Magalhaes RENEWAL
James Z CaudyUnited KingdomXuxue Feng QUALIFIED
Aditya I WaycottBrazilOnyama Limba UNQUALIFIED
Ashley U SchemmerItalyStephen Shaw QUALIFIED
Greenwood H StensethItalyStephen Shaw RENEWAL
Ashley W RutaIndiaStephen Shaw NEGOTIATION
Ivar S PaprockiCanadaAsiya Javayant NEW
Antonio H GillianSpainXuxue Feng UNQUALIFIED
Nicolas Z RoysterJapanIoni Bowcher NEGOTIATION
Arvin B RimFranceXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas K StockhamJapan2026-08-03Rousseaux, Michael Esq NEGOTIATION24Stephen Shaw
1001Claire R TollnerItaly2026-07-19Printing Dimensions QUALIFIED4Ioni Bowcher
1002Emily R NickaFrance2026-07-12Truhlar And Truhlar Attys NEW93Anna Fali
1003Jefferson N DarakjyCanada2026-08-04Feltz Printing Service NEW22Stephen Shaw
1004James G StensethBrazil2026-07-17Rangoni Of Florence PROPOSAL79Ioni Bowcher
1005David P ChuiAustralia2026-07-27Morlong Associates NEGOTIATION89Stephen Shaw
1006Clifford M CampainRussia2026-08-10Feltz Printing Service NEW64Xuxue Feng
1007Leon C DilliardJapan2026-07-22Chapman, Ross E Esq NEGOTIATION62Stephen Shaw
1008Nicolas V PerinUnited Kingdom2026-08-03King, Christopher A Esq NEW84Stephen Shaw
1009Faith I VocelkaItaly2026-07-19Benton, John B Jr QUALIFIED4Stephen Shaw
1010Darci D StockhamAustralia2026-07-13Morlong Associates PROPOSAL31Bernardo Dominic
1011Jones I DarakjyIndia2026-07-28King, Christopher A Esq RENEWAL19Elwin Sharvill
1012Jeanfrancois B StockhamFrance2026-08-06Truhlar And Truhlar Attys UNQUALIFIED33Stephen Shaw
1013Greenwood X WhobreyJapan2026-08-08Printing Dimensions QUALIFIED50Amy Elsner
1014Claire V RutaRussia2026-07-21Printing Dimensions QUALIFIED93Ivan Magalhaes
1015Maisha E NestleIndia2026-07-24Morlong Associates RENEWAL82Xuxue Feng
1016Morrow U GarufiSpain2026-07-20Morlong Associates PROPOSAL5Bernardo Dominic
1017Mujtaba E DilliardUnited Kingdom2026-07-17Buckley Miller Wright NEGOTIATION14Ivan Magalhaes
1018Aruna R WaycottItaly2026-08-06Morlong Associates UNQUALIFIED89Xuxue Feng
1019Costa B ButtRussia2026-07-12Chanay, Jeffrey A Esq NEW46Onyama Limba
1020Greenwood H OstroskyArgentina2026-07-25Chanay, Jeffrey A Esq PROPOSAL75Anna Fali
1021David Z SlusarskiAustralia2026-08-07Buckley Miller Wright UNQUALIFIED81Ivan Magalhaes
1022Clifford F SlusarskiJapan2026-07-20Feiner Bros UNQUALIFIED4Anna Fali
1023Sinclair J SergiIndia2026-07-24Benton, John B Jr QUALIFIED67Bernardo Dominic
1024Smith U PaprockiAustralia2026-07-14Benton, John B Jr RENEWAL57Asiya Javayant
1025Aika D BowleyIndia2026-08-10Chemel, James L Cpa NEW98Bernardo Dominic
1026Jeanfrancois A NickaSpain2026-07-30Feltz Printing Service NEGOTIATION81Bernardo Dominic
1027Aika A ShinkoIndia2026-07-24Chapman, Ross E Esq PROPOSAL61Ioni Bowcher
1028Murillo C DoeCanada2026-08-09Chapman, Ross E Esq NEGOTIATION43Stephen Shaw
1029Mujtaba C PoquetteSpain2026-08-09Chemel, James L Cpa NEGOTIATION6Anna Fali
1030Leja F FerenczJapan2026-07-20Chemel, James L Cpa QUALIFIED28Ioni Bowcher
1031Juan W VocelkaArgentina2026-07-28Truhlar And Truhlar Attys PROPOSAL55Stephen Shaw
1032Jeanfrancois X InouyeBrazil2026-07-18King, Christopher A Esq PROPOSAL7Asiya Javayant
1033Deepesh I KuskoRussia2026-07-17Truhlar And Truhlar Attys RENEWAL84Anna Fali
1034Emily E ChuiIndia2026-07-15Buckley Miller Wright PROPOSAL86Asiya Javayant
1035Jeanfrancois D WaycottItaly2026-08-06Feiner Bros UNQUALIFIED42Anna Fali
1036Ashley D DilliardItaly2026-07-24Chanay, Jeffrey A Esq NEGOTIATION23Anna Fali
1037Darci G DilliardIndia2026-08-04King, Christopher A Esq NEGOTIATION45Stephen Shaw
1038Deepesh Q KuskoFrance2026-07-12Commercial Press NEGOTIATION18Stephen Shaw
1039Ashley Y VocelkaSpain2026-07-13Feiner Bros RENEWAL27Ioni Bowcher
1040Stacey B DarakjyFrance2026-07-17Rangoni Of Florence QUALIFIED62Anna Fali
1041Jeanfrancois U ChuiBrazil2026-07-27Benton, John B Jr RENEWAL42Ioni Bowcher
1042Jennifer S FollerJapan2026-07-25Feiner Bros NEW82Ivan Magalhaes
1043Leja X InouyeGermany2026-07-25Commercial Press QUALIFIED66Onyama Limba
1044Jones Q MaletIndia2026-08-07Buckley Miller Wright UNQUALIFIED10Ivan Magalhaes
1045Isabel L BologniaUnited Kingdom2026-07-13Morlong Associates NEGOTIATION32Ioni Bowcher
1046Cody P MorascaBrazil2026-08-10Rangoni Of Florence NEW87Ivan Magalhaes
1047Julie B SlusarskiItaly2026-08-09Dorl, James J Esq NEW71Amy Elsner
1048Julie W SchemmerGermany2026-07-23Truhlar And Truhlar Attys UNQUALIFIED88Bernardo Dominic
1049Mayumi P StensethFrance2026-07-19Printing Dimensions PROPOSAL40Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Greenwood G OstroskyCanadaStephen Shaw UNQUALIFIED
Misaki I BowleyBrazilAnna Fali PROPOSAL
Aruna W RutaIndiaXuxue Feng UNQUALIFIED
Juan J PerinItalyAsiya Javayant UNQUALIFIED
Salvatore B InouyeSpainElwin Sharvill UNQUALIFIED
Mujtaba P PoquetteGermanyElwin Sharvill QUALIFIED
Mayumi I KolmetzFranceStephen Shaw RENEWAL
Alejandro O SchemmerArgentinaOnyama Limba NEW
Wickens Q ShinkoIndiaStephen Shaw NEGOTIATION
Deepesh O ChuiRussiaAnna Fali NEGOTIATION
Maria Y VocelkaCanadaAmy Elsner RENEWAL
Clifford V OstroskyUnited KingdomStephen Shaw NEGOTIATION
Sinclair Z DoeGermanyAmy Elsner QUALIFIED
Ivar J SlusarskiIndiaAsiya Javayant NEW
Alejandro B ChuiIndiaStephen Shaw UNQUALIFIED
Isabel C AlbaresGermanyIoni Bowcher QUALIFIED
Kaitlin I MaletSpainXuxue Feng PROPOSAL
Greenwood B KolmetzFranceAsiya Javayant NEGOTIATION
David P GlickItalyIoni Bowcher RENEWAL
Aruna L DoeIndiaAmy Elsner PROPOSAL
Mujtaba R GillianItalyIvan Magalhaes UNQUALIFIED
Wickens R BriddickBrazilXuxue Feng UNQUALIFIED
Aika J FollerUnited KingdomBernardo Dominic QUALIFIED
Chavez G StockhamCanadaOnyama Limba QUALIFIED
Darci O ChuiUnited KingdomBernardo Dominic NEW
Murillo N PaprockiFranceXuxue Feng NEW
Jefferson A WaycottBrazilAnna Fali NEGOTIATION
Octavia Z WhobreyGermanyIvan Magalhaes UNQUALIFIED
Tony J WieserRussiaAnna Fali QUALIFIED
Maisha E AmigonItalyXuxue Feng PROPOSAL
Chavez O KolmetzRussiaElwin Sharvill RENEWAL
Adams D SchemmerRussiaXuxue Feng UNQUALIFIED
Leon Y RoysterSpainBernardo Dominic RENEWAL
Adams P WieserIndiaOnyama Limba UNQUALIFIED
Francesco O BowleyIndiaIoni Bowcher NEW
Jeanfrancois Q MarrierBrazilAmy Elsner RENEWAL
Maisha P MaletSpainIvan Magalhaes QUALIFIED
Costa Z ShinkoJapanOnyama Limba NEW
Emily Z MaletJapanAnna Fali UNQUALIFIED
Morrow A BologniaRussiaAsiya Javayant UNQUALIFIED
Aruna D SergiFranceXuxue Feng RENEWAL
Ivar E DoeFranceOnyama Limba UNQUALIFIED
Izzy L PerinSpainAnna Fali NEGOTIATION
Rodrigues K BologniaItalyOnyama Limba NEGOTIATION
Julie S IturbideIndiaIvan Magalhaes RENEWAL
Maisha F SergiItalyAmy Elsner UNQUALIFIED
Ricardo A SchemmerIndiaXuxue Feng QUALIFIED
Jeanfrancois N TollnerItalyXuxue Feng NEW
Kaitlin T KolmetzCanadaStephen Shaw NEW
Kaitlin I VenereBrazilXuxue Feng UNQUALIFIED
Frozen Columns
Name
Jeanfrancois W Perin
Emily A Foller
Maria M Gillian
Jefferson Z Schemmer
Isabel P Briddick
Johnson O Inouye
Juan K Garufi
Maria P Caudy
Ivar B Flosi
Tony I Stenseth
Kadeem F Glick
Izzy P Maclead
Wickens X Malet
Tony J Bolognia
Emily E Foller
Darci H Campain
David V Royster
Jefferson M Sergi
James V Nestle
Aika P Darakjy
Leja P Bowley
Deepesh X Briddick
Aditya Y Campain
Mayumi F Amigon
Mayumi E Figeroa
Emily U Schemmer
Claire L Nestle
Misaki I Poquette
Julie S Butt
Aruna T Glick
Tony E Nestle
Aika E Doe
Mujtaba M Schemmer
Claire R Butt
Ricardo H Figeroa
Jennifer T Marrier
Murillo B Darakjy
Jones B Tollner
Ivar C Nestle
Silvio E Ostrosky
Ivar W Caldarera
Izzy W Morasca
Chavez R Vocelka
Aruna O Ostrosky
Maria J Tollner
Sinclair V Darakjy
Darci A Rim
James U Schemmer
Wickens S Morasca
Morrow Q Caldarera
IdCountryDate
1000Germany2026-07-20
1001Russia2026-08-07
1002France2026-07-27
1003Australia2026-07-13
1004Italy2026-08-03
1005Germany2026-08-08
1006India2026-07-12
1007Brazil2026-08-10
1008France2026-07-16
1009United Kingdom2026-08-08
1010Argentina2026-08-09
1011India2026-07-12
1012Japan2026-07-18
1013Brazil2026-07-31
1014Germany2026-08-10
1015France2026-08-07
1016Argentina2026-08-04
1017United Kingdom2026-08-02
1018India2026-08-05
1019Australia2026-07-15
1020Germany2026-07-31
1021Russia2026-08-06
1022India2026-07-25
1023Canada2026-07-27
1024Australia2026-08-06
1025France2026-07-17
1026United Kingdom2026-07-18
1027Italy2026-07-13
1028Brazil2026-07-21
1029United Kingdom2026-07-27
1030United Kingdom2026-08-06
1031Japan2026-07-12
1032Russia2026-08-05
1033Italy2026-07-16
1034Russia2026-07-17
1035Australia2026-08-07
1036India2026-07-25
1037Canada2026-07-29
1038Japan2026-08-01
1039India2026-07-24
1040Canada2026-08-05
1041Spain2026-07-17
1042Italy2026-08-02
1043Canada2026-07-18
1044Spain2026-08-10
1045Germany2026-08-08
1046United Kingdom2026-08-09
1047France2026-07-17
1048Japan2026-07-28
1049India2026-07-23

On-Demand Data

NameIdCountryDate
Munro Z Venere1000Brazil2026-08-09
Greenwood P Chui1001Argentina2026-07-15
Stacey H Bolognia1002Brazil2026-07-22
Nicolas M Venere1003France2026-07-17
Juan E Nicka1004Spain2026-08-03
Wickens S Flosi1005United Kingdom2026-07-23
Julie S Schemmer1006Brazil2026-07-28
Emily G Nestle1007Japan2026-08-05
Munro O Darakjy1008France2026-07-14
Salvatore R Butt1009Argentina2026-08-04
Arvin M Sergi1010Argentina2026-08-09
Ashley N Morasca1011Russia2026-07-23
Izzy T Whobrey1012Australia2026-08-03
Maisha N Nestle1013France2026-07-22
James G Kusko1014Russia2026-07-12
Juan I Perin1015United Kingdom2026-07-27
Faith R Gaucho1016France2026-07-14
Ashley O Tollner1017Australia2026-07-13
Chavez U Schemmer1018Japan2026-08-03
Deepesh O Shinko1019Canada2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan Q TollnerAustraliaXuxue Feng NEGOTIATION
Aruna N KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Arvin J NickaRussiaAmy Elsner PROPOSAL
Francesco Z CaldareraSpainStephen Shaw QUALIFIED
Clifford Y StockhamGermanyIoni Bowcher NEGOTIATION
Rodrigues T KuskoJapanAsiya Javayant RENEWAL
Juan H ShinkoJapanXuxue Feng PROPOSAL
Smith G CaudyArgentinaIoni Bowcher RENEWAL
Ashley T BologniaIndiaIvan Magalhaes UNQUALIFIED
Octavia E MaletUnited KingdomOnyama Limba NEW
Aruna G KolmetzAustraliaElwin Sharvill QUALIFIED
Cody D BowleyRussiaAsiya Javayant PROPOSAL
Darci E StensethIndiaXuxue Feng NEW
Deepesh J MaletArgentinaOnyama Limba NEGOTIATION
Wickens R MaletAustraliaIvan Magalhaes UNQUALIFIED
Cody D SergiJapanXuxue Feng UNQUALIFIED
Mujtaba H CampainSpainAsiya Javayant QUALIFIED
Faith R BowleyArgentinaXuxue Feng NEW
Julie M CampainGermanyStephen Shaw NEGOTIATION
Nicolas Y MarrierGermanyIoni Bowcher PROPOSAL
Francesco S ChuiAustraliaStephen Shaw NEGOTIATION
Johnson F NestleJapanXuxue Feng UNQUALIFIED
Jones C MaletIndiaXuxue Feng NEGOTIATION
Greenwood T GlickCanadaAmy Elsner RENEWAL
Leon G FlosiCanadaAmy Elsner PROPOSAL
Morrow P MacleadCanadaElwin Sharvill UNQUALIFIED
Johnson L WaycottItalyOnyama Limba PROPOSAL
Maria J CampainBrazilAsiya Javayant UNQUALIFIED
Greenwood F MaletFranceXuxue Feng QUALIFIED
Salvatore C RulapaughJapanAsiya Javayant PROPOSAL
Ricardo J BologniaCanadaBernardo Dominic NEW
Aditya R DoeBrazilAnna Fali UNQUALIFIED
Izzy I RoysterItalyXuxue Feng RENEWAL
Clifford V MaletFranceElwin Sharvill NEGOTIATION
Munro U DarakjyUnited KingdomStephen Shaw QUALIFIED
Smith S MacleadCanadaIvan Magalhaes QUALIFIED
Silvio B ButtUnited KingdomAnna Fali PROPOSAL
Jefferson J StensethFranceIvan Magalhaes QUALIFIED
David Q InouyeRussiaOnyama Limba PROPOSAL
Chavez B FollerJapanOnyama 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>