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
Francesco V OldroydCanadaAmy Elsner UNQUALIFIED
Costa A StockhamAustraliaElwin Sharvill RENEWAL
Claire C GillianRussiaElwin Sharvill UNQUALIFIED
Smith Z DilliardSpainStephen Shaw NEW
Maria R CampainUnited KingdomOnyama Limba PROPOSAL
Faith C RutaJapanStephen Shaw RENEWAL
Nicolas Y RutaItalyAsiya Javayant UNQUALIFIED
Francesco J FlosiUnited KingdomXuxue Feng NEGOTIATION
Murillo A AlbaresRussiaStephen Shaw PROPOSAL
Salvatore R ShinkoSpainIoni Bowcher UNQUALIFIED
Ivar U WieserSpainStephen Shaw QUALIFIED
Juan U CampainSpainIvan Magalhaes UNQUALIFIED
Kadeem O NestleJapanIvan Magalhaes UNQUALIFIED
Ivar T KuskoIndiaElwin Sharvill NEGOTIATION
Misaki M BowleyRussiaAnna Fali RENEWAL
Chavez R FerenczRussiaIvan Magalhaes NEW
Kaitlin N MorascaFranceIoni Bowcher PROPOSAL
Jeanfrancois E TollnerArgentinaIoni Bowcher PROPOSAL
Jefferson F SergiFranceAnna Fali NEGOTIATION
Aditya I MorascaUnited KingdomAmy Elsner UNQUALIFIED
Leon R PerinIndiaXuxue Feng PROPOSAL
Leon S MorascaFranceAnna Fali RENEWAL
Wickens H WaycottFranceAsiya Javayant UNQUALIFIED
Tony R ChuiJapanIoni Bowcher QUALIFIED
Ivar C PaprockiJapanAsiya Javayant QUALIFIED
Clifford D SaylorsCanadaElwin Sharvill NEGOTIATION
Adams K WaycottRussiaBernardo Dominic NEGOTIATION
Rodrigues W WhobreyCanadaAmy Elsner UNQUALIFIED
Claire I BowleySpainIoni Bowcher NEW
Kaitlin V PaprockiAustraliaIvan Magalhaes NEW
Tony L SchemmerSpainIoni Bowcher UNQUALIFIED
Izzy B ChuiItalyIvan Magalhaes NEGOTIATION
Ashley P VenereBrazilIvan Magalhaes UNQUALIFIED
Juan E MorascaSpainAnna Fali NEGOTIATION
Jefferson D KuskoBrazilOnyama Limba QUALIFIED
Ashley J VenereRussiaIvan Magalhaes UNQUALIFIED
Costa B KolmetzUnited KingdomOnyama Limba PROPOSAL
Antonio U KolmetzJapanBernardo Dominic RENEWAL
Maria W VenereGermanyAmy Elsner UNQUALIFIED
Francesco O GauchoJapanAmy Elsner NEGOTIATION
Morrow M OldroydUnited KingdomXuxue Feng UNQUALIFIED
David L WieserItalyAmy Elsner NEGOTIATION
Murillo M FigeroaAustraliaStephen Shaw PROPOSAL
Sinclair F IturbideUnited KingdomAmy Elsner UNQUALIFIED
Faith S MaletItalyAmy Elsner NEGOTIATION
Morrow L DoeJapanBernardo Dominic QUALIFIED
Kadeem K VenereRussiaIvan Magalhaes RENEWAL
Greenwood K SlusarskiBrazilAsiya Javayant NEGOTIATION
Ricardo W ButtArgentinaStephen Shaw QUALIFIED
Murillo N MorascaFranceIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Aruna M BologniaFranceElwin Sharvill UNQUALIFIED
Alejandro V WieserSpainStephen Shaw NEGOTIATION
Greenwood W WhobreyGermanyXuxue Feng UNQUALIFIED
Arvin A SaylorsGermanyAsiya Javayant PROPOSAL
Ricardo P WaycottAustraliaAsiya Javayant PROPOSAL
Salvatore C GarufiArgentinaElwin Sharvill RENEWAL
Jefferson X InouyeRussiaIoni Bowcher QUALIFIED
Francesco F WieserCanadaAsiya Javayant PROPOSAL
Cody X OldroydSpainAmy Elsner RENEWAL
Clifford K ShinkoItalyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin H VenereGermany2026-07-16Benton, John B Jr PROPOSAL20Xuxue Feng
1001Misaki P AmigonBrazil2026-07-09King, Christopher A Esq NEGOTIATION38Bernardo Dominic
1002Mujtaba D NestleFrance2026-07-13Chemel, James L Cpa RENEWAL12Ioni Bowcher
1003Ashley Y SchemmerBrazil2026-06-24Feltz Printing Service UNQUALIFIED93Ioni Bowcher
1004Tony I FigeroaAustralia2026-07-01Benton, John B Jr QUALIFIED31Xuxue Feng
1005Izzy S TollnerJapan2026-07-11Commercial Press UNQUALIFIED49Stephen Shaw
1006Maisha V BologniaJapan2026-07-04Rangoni Of Florence RENEWAL45Ioni Bowcher
1007Chavez M RimItaly2026-06-30King, Christopher A Esq QUALIFIED63Amy Elsner
1008Antonio X CaudyFrance2026-06-24Dorl, James J Esq NEW80Anna Fali
1009Jeanfrancois I KuskoUnited Kingdom2026-06-27Feiner Bros UNQUALIFIED10Amy Elsner
1010Aruna G FigeroaSpain2026-07-16Truhlar And Truhlar Attys RENEWAL26Elwin Sharvill
1011Kaitlin O WieserAustralia2026-07-12Morlong Associates NEGOTIATION77Xuxue Feng
1012Cody P ChuiIndia2026-06-26Commercial Press PROPOSAL39Bernardo Dominic
1013Chavez N FlosiSpain2026-07-09Printing Dimensions QUALIFIED14Amy Elsner
1014Kaitlin T MacleadAustralia2026-07-18Commercial Press NEGOTIATION19Onyama Limba
1015Tony H FerenczCanada2026-07-11Feltz Printing Service UNQUALIFIED89Amy Elsner
1016Ivar L MaletUnited Kingdom2026-07-20Rangoni Of Florence NEW47Asiya Javayant
1017Claire S PaprockiItaly2026-07-08Buckley Miller Wright UNQUALIFIED87Onyama Limba
1018Munro B SchemmerBrazil2026-07-12Rangoni Of Florence RENEWAL98Amy Elsner
1019Aditya L OldroydSpain2026-07-18Printing Dimensions NEGOTIATION55Stephen Shaw
1020Jeanfrancois I RimUnited Kingdom2026-07-17Truhlar And Truhlar Attys QUALIFIED1Ivan Magalhaes
1021Silvio N CaldareraItaly2026-07-22Commercial Press RENEWAL76Asiya Javayant
1022Misaki I SergiArgentina2026-07-01Buckley Miller Wright QUALIFIED97Bernardo Dominic
1023Smith F OstroskyIndia2026-07-07Dorl, James J Esq NEW41Ioni Bowcher
1024Johnson Q GauchoArgentina2026-06-30Feltz Printing Service UNQUALIFIED36Amy Elsner
1025Claire N KolmetzUnited Kingdom2026-06-28Truhlar And Truhlar Attys UNQUALIFIED6Ioni Bowcher
1026Jennifer B DilliardRussia2026-07-21Feiner Bros NEGOTIATION2Asiya Javayant
1027Nicolas Z PerinSpain2026-07-01Chemel, James L Cpa PROPOSAL39Stephen Shaw
1028Maisha N PaprockiItaly2026-07-03Feltz Printing Service NEGOTIATION88Onyama Limba
1029Faith N WieserIndia2026-07-23Feiner Bros PROPOSAL75Elwin Sharvill
1030Ivar B OstroskySpain2026-07-07Rangoni Of Florence RENEWAL48Onyama Limba
1031Octavia H KolmetzJapan2026-07-23Morlong Associates NEW90Bernardo Dominic
1032Wickens Z FigeroaBrazil2026-07-07Chemel, James L Cpa NEW6Elwin Sharvill
1033Stacey U MaletSpain2026-07-01Printing Dimensions NEW44Asiya Javayant
1034Maria A WieserIndia2026-07-08Feiner Bros QUALIFIED44Xuxue Feng
1035Jennifer W WieserUnited Kingdom2026-07-18Chanay, Jeffrey A Esq NEGOTIATION92Xuxue Feng
1036Tony R OldroydFrance2026-07-04Chemel, James L Cpa UNQUALIFIED52Xuxue Feng
1037Cody X NestleBrazil2026-07-20Morlong Associates RENEWAL62Stephen Shaw
1038Aruna J CaldareraAustralia2026-06-24Chapman, Ross E Esq NEW95Onyama Limba
1039Mayumi J TollnerFrance2026-07-05Feltz Printing Service NEGOTIATION10Asiya Javayant
1040Nicolas K RutaSpain2026-06-25Commercial Press RENEWAL3Asiya Javayant
1041David R MarrierGermany2026-07-02Commercial Press PROPOSAL54Anna Fali
1042Johnson X DilliardGermany2026-06-29Morlong Associates PROPOSAL83Ivan Magalhaes
1043Maria P FlosiRussia2026-07-05Commercial Press QUALIFIED62Onyama Limba
1044Emily O KolmetzUnited Kingdom2026-07-14Chapman, Ross E Esq PROPOSAL66Stephen Shaw
1045Leja U MaletRussia2026-07-06Feltz Printing Service UNQUALIFIED60Elwin Sharvill
1046Arvin I MorascaSpain2026-07-05Rangoni Of Florence PROPOSAL13Anna Fali
1047Alejandro J FigeroaAustralia2026-07-23Commercial Press QUALIFIED78Amy Elsner
1048Munro V DarakjyRussia2026-07-06Truhlar And Truhlar Attys QUALIFIED42Onyama Limba
1049Ashley E WhobreyBrazil2026-06-24Benton, John B Jr PROPOSAL19Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Smith X GlickRussiaAsiya Javayant UNQUALIFIED
Smith R CaldareraArgentinaStephen Shaw PROPOSAL
Juan K AmigonBrazilXuxue Feng QUALIFIED
Claire S VocelkaRussiaBernardo Dominic QUALIFIED
Salvatore G BowleyAustraliaElwin Sharvill NEW
Costa X RimGermanyAmy Elsner NEGOTIATION
Jennifer R OldroydCanadaAnna Fali NEW
Jeanfrancois T DilliardCanadaAnna Fali NEW
Stacey J VocelkaSpainAnna Fali UNQUALIFIED
Jones N NestleBrazilAmy Elsner PROPOSAL
Leja V KolmetzSpainAmy Elsner RENEWAL
Ivar R MacleadRussiaAnna Fali QUALIFIED
Aditya P BologniaCanadaStephen Shaw QUALIFIED
Rodrigues O BriddickCanadaIvan Magalhaes RENEWAL
Misaki W MarrierBrazilIvan Magalhaes NEGOTIATION
Francesco S GlickRussiaOnyama Limba NEW
Silvio O KolmetzJapanAmy Elsner NEGOTIATION
Cody E SlusarskiSpainIvan Magalhaes NEW
Tony C GarufiRussiaAsiya Javayant NEGOTIATION
Jennifer W GlickArgentinaIvan Magalhaes NEW
Isabel S CaldareraItalyIvan Magalhaes NEGOTIATION
Aika U VocelkaBrazilAnna Fali NEW
Murillo D WhobreyAustraliaAmy Elsner NEW
Aika Q FigeroaFranceAnna Fali PROPOSAL
Aika M NestleGermanyIvan Magalhaes NEGOTIATION
Wickens T NickaBrazilXuxue Feng PROPOSAL
Juan M SchemmerUnited KingdomOnyama Limba NEGOTIATION
David Z StensethGermanyBernardo Dominic UNQUALIFIED
Julie Y MacleadIndiaAmy Elsner PROPOSAL
Alejandro J DilliardBrazilAsiya Javayant RENEWAL
Mujtaba D VenereAustraliaIvan Magalhaes PROPOSAL
Mayumi M FigeroaArgentinaIoni Bowcher NEGOTIATION
Ricardo I RoysterJapanAmy Elsner NEGOTIATION
Francesco Z NickaFranceAnna Fali NEGOTIATION
David W DarakjyCanadaIvan Magalhaes UNQUALIFIED
Maisha N KolmetzCanadaAnna Fali UNQUALIFIED
Jeanfrancois U MacleadIndiaBernardo Dominic PROPOSAL
Emily Q RoysterGermanyElwin Sharvill QUALIFIED
Adams L NestleArgentinaAsiya Javayant NEGOTIATION
Wickens Z StockhamFranceXuxue Feng UNQUALIFIED
Arvin W GlickSpainIoni Bowcher NEGOTIATION
Chavez U ShinkoJapanElwin Sharvill NEGOTIATION
Kaitlin U SlusarskiGermanyAsiya Javayant QUALIFIED
Maisha M IturbideRussiaAsiya Javayant QUALIFIED
Deepesh K CaudyUnited KingdomStephen Shaw NEW
Jeanfrancois J SergiItalyIvan Magalhaes NEGOTIATION
Maisha J KuskoAustraliaIvan Magalhaes UNQUALIFIED
Aruna R DilliardUnited KingdomElwin Sharvill RENEWAL
Octavia E InouyeAustraliaAmy Elsner UNQUALIFIED
Cody J MarrierSpainOnyama Limba PROPOSAL
Frozen Columns
Name
Juan J Bolognia
Jones J Gaucho
Claire O Stenseth
Ivar I Slusarski
Deepesh X Ruta
Rodrigues I Stockham
Ivar R Amigon
Maria K Garufi
Greenwood H Albares
Adams A Ruta
Chavez E Rulapaugh
Juan K Vocelka
Clifford O Glick
Jennifer T Gillian
Tony Z Poquette
Misaki R Amigon
Clifford N Ruta
Claire A Ruta
Jeanfrancois S Morasca
Maria D Iturbide
Julie Q Gaucho
Munro H Doe
Jeanfrancois U Albares
Morrow V Rulapaugh
Chavez Q Caldarera
Cody H Dilliard
Jennifer M Doe
Faith V Morasca
Smith S Sergi
Mayumi N Doe
Leon C Gillian
Munro I Ostrosky
Tony T Albares
Leja L Gaucho
Arvin R Briddick
Isabel M Perin
Johnson Z Oldroyd
Costa E Gillian
Murillo N Slusarski
Munro A Morasca
Francesco R Schemmer
Jeanfrancois V Figeroa
Smith U Albares
Wickens J Amigon
Leja I Nicka
Ashley J Gillian
Ivar Y Figeroa
Emily S Marrier
Chavez D Nestle
James S Foller
IdCountryDate
1000France2026-06-26
1001Spain2026-07-23
1002Germany2026-07-10
1003India2026-07-10
1004France2026-07-05
1005India2026-07-22
1006Australia2026-07-04
1007France2026-07-21
1008United Kingdom2026-07-03
1009Germany2026-06-25
1010Brazil2026-07-22
1011United Kingdom2026-06-25
1012Spain2026-07-09
1013Argentina2026-07-16
1014Argentina2026-07-17
1015Italy2026-07-20
1016Spain2026-06-25
1017Spain2026-07-19
1018France2026-06-24
1019Australia2026-07-17
1020Brazil2026-07-19
1021Brazil2026-07-06
1022Canada2026-07-04
1023Spain2026-06-29
1024Germany2026-07-06
1025Argentina2026-06-29
1026Australia2026-07-05
1027Spain2026-07-07
1028France2026-07-08
1029India2026-07-08
1030Australia2026-06-24
1031Brazil2026-07-12
1032France2026-07-11
1033Canada2026-07-07
1034Argentina2026-07-05
1035Italy2026-07-19
1036Canada2026-07-04
1037Germany2026-07-22
1038Australia2026-06-30
1039Italy2026-07-02
1040Germany2026-07-16
1041India2026-07-20
1042Canada2026-06-28
1043Italy2026-06-26
1044Germany2026-07-16
1045Canada2026-07-23
1046Canada2026-07-21
1047Japan2026-06-29
1048Spain2026-07-15
1049Brazil2026-07-11

On-Demand Data

NameIdCountryDate
Tony E Foller1000Spain2026-07-20
Darci G Kusko1001Australia2026-07-12
Mayumi J Caldarera1002Australia2026-07-12
Aruna Z Whobrey1003Italy2026-06-26
Leja A Kusko1004Canada2026-06-29
Salvatore L Campain1005Germany2026-06-25
Mayumi R Marrier1006Argentina2026-07-08
Ashley E Morasca1007Australia2026-07-14
Murillo U Gillian1008Italy2026-07-17
Isabel J Iturbide1009Canada2026-07-08
Mujtaba Y Perin1010Argentina2026-06-26
Aika B Rim1011Russia2026-07-05
Leja J Saylors1012India2026-07-03
Kaitlin X Morasca1013Brazil2026-07-15
Silvio C Glick1014Australia2026-06-27
Jones B Shinko1015United Kingdom2026-07-23
Deepesh Q Bowley1016Russia2026-07-07
Julie H Doe1017Canada2026-07-10
Wickens Q Nestle1018France2026-07-22
Ivar K Malet1019India2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony X OldroydArgentinaBernardo Dominic NEW
Sinclair B WaycottCanadaAnna Fali QUALIFIED
Nicolas Z GarufiSpainAnna Fali NEGOTIATION
Claire E ShinkoItalyStephen Shaw QUALIFIED
Wickens W RulapaughJapanAmy Elsner PROPOSAL
Aruna I WieserBrazilStephen Shaw NEW
Leja Y GarufiArgentinaOnyama Limba NEGOTIATION
Jefferson B GillianUnited KingdomAsiya Javayant UNQUALIFIED
Jones C MaletIndiaIvan Magalhaes UNQUALIFIED
Kaitlin Y BowleyBrazilOnyama Limba RENEWAL
Cody N FollerItalyIvan Magalhaes QUALIFIED
Deepesh Q AmigonItalyElwin Sharvill UNQUALIFIED
Ricardo N RutaGermanyStephen Shaw NEGOTIATION
Ricardo G ChuiGermanyAnna Fali NEGOTIATION
David C RimRussiaAmy Elsner PROPOSAL
Kaitlin C GillianItalyStephen Shaw NEW
David L MaletSpainAsiya Javayant UNQUALIFIED
Maisha S IturbideRussiaAmy Elsner RENEWAL
Maisha G OstroskyUnited KingdomAmy Elsner NEGOTIATION
Claire O ChuiItalyElwin Sharvill UNQUALIFIED
Rodrigues Y WhobreyItalyIvan Magalhaes PROPOSAL
Misaki G ShinkoIndiaAmy Elsner RENEWAL
Juan Q OstroskyJapanAnna Fali QUALIFIED
Sinclair L DilliardGermanyAsiya Javayant PROPOSAL
Morrow A VenereIndiaElwin Sharvill PROPOSAL
Darci X VocelkaJapanIoni Bowcher NEW
Maria Z GillianItalyElwin Sharvill QUALIFIED
Kadeem Z FigeroaGermanyIoni Bowcher UNQUALIFIED
Mujtaba Y ButtIndiaAmy Elsner RENEWAL
Octavia L StensethUnited KingdomStephen Shaw NEGOTIATION
Julie F AlbaresRussiaStephen Shaw RENEWAL
Aika P ButtGermanyIoni Bowcher NEGOTIATION
Antonio S TollnerAustraliaXuxue Feng QUALIFIED
Antonio E KuskoArgentinaElwin Sharvill QUALIFIED
Ricardo Y SchemmerRussiaXuxue Feng QUALIFIED
Jennifer B ButtArgentinaXuxue Feng UNQUALIFIED
Misaki E RutaArgentinaAnna Fali UNQUALIFIED
Munro W BriddickIndiaBernardo Dominic NEGOTIATION
Silvio L SergiArgentinaIvan Magalhaes PROPOSAL
Maisha C VocelkaIndiaOnyama Limba 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>