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
Aditya M NestleFranceAmy Elsner QUALIFIED
Stacey H RutaJapanAmy Elsner NEGOTIATION
Isabel O BowleyFranceIoni Bowcher NEGOTIATION
Leon W NestleUnited KingdomAnna Fali NEGOTIATION
Antonio Q WhobreyRussiaOnyama Limba NEGOTIATION
Aika B RulapaughItalyElwin Sharvill RENEWAL
Antonio L NickaArgentinaAsiya Javayant PROPOSAL
Francesco T DilliardGermanyIoni Bowcher QUALIFIED
Octavia Z PoquetteRussiaOnyama Limba UNQUALIFIED
Ashley E KolmetzBrazilOnyama Limba NEGOTIATION
Jeanfrancois E DilliardRussiaElwin Sharvill UNQUALIFIED
Jeanfrancois S ButtAustraliaXuxue Feng UNQUALIFIED
Juan N WieserUnited KingdomIoni Bowcher QUALIFIED
Misaki N MarrierBrazilAsiya Javayant RENEWAL
Maisha O AlbaresRussiaIvan Magalhaes RENEWAL
Kaitlin H AlbaresArgentinaElwin Sharvill PROPOSAL
Octavia W PerinFranceOnyama Limba UNQUALIFIED
Arvin P IturbideSpainIvan Magalhaes NEW
Izzy O AlbaresJapanAsiya Javayant RENEWAL
Aditya J StensethUnited KingdomXuxue Feng NEW
Antonio R FerenczRussiaBernardo Dominic NEGOTIATION
Jeanfrancois U MacleadIndiaAnna Fali UNQUALIFIED
Antonio E VocelkaRussiaIoni Bowcher QUALIFIED
Leon Z TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Ivar R MaletArgentinaIvan Magalhaes UNQUALIFIED
Munro B ShinkoAustraliaStephen Shaw QUALIFIED
Morrow U DilliardBrazilIvan Magalhaes NEW
Aditya M StensethSpainStephen Shaw NEW
Costa J InouyeGermanyAnna Fali PROPOSAL
Kaitlin U NickaAustraliaAmy Elsner UNQUALIFIED
David D DarakjyCanadaBernardo Dominic NEGOTIATION
Aika T FerenczArgentinaIoni Bowcher QUALIFIED
Chavez Y GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Silvio U NestleCanadaIvan Magalhaes NEGOTIATION
Ashley A MorascaSpainXuxue Feng UNQUALIFIED
Adams X IturbideArgentinaOnyama Limba NEW
Aika U StockhamGermanyAmy Elsner PROPOSAL
Silvio F ButtRussiaStephen Shaw PROPOSAL
Octavia Y RutaAustraliaAnna Fali RENEWAL
Alejandro U RimAustraliaIoni Bowcher NEGOTIATION
Clifford L VocelkaUnited KingdomXuxue Feng NEW
Kaitlin G CaudySpainIoni Bowcher RENEWAL
Kaitlin V SaylorsFranceStephen Shaw NEGOTIATION
Silvio Q SlusarskiArgentinaAnna Fali RENEWAL
Maria Z AmigonSpainAnna Fali UNQUALIFIED
Salvatore H OldroydAustraliaAnna Fali PROPOSAL
Stacey S SchemmerUnited KingdomXuxue Feng QUALIFIED
Jefferson F MacleadUnited KingdomElwin Sharvill NEW
Leon E GlickItalyAnna Fali NEW
Greenwood I ButtFranceOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy G AmigonJapanOnyama Limba NEW
Johnson V RutaIndiaAmy Elsner PROPOSAL
Salvatore C SaylorsItalyAsiya Javayant NEW
Maria Y OldroydGermanyOnyama Limba NEW
Ivar N FigeroaArgentinaAnna Fali RENEWAL
Jefferson E InouyeItalyAsiya Javayant PROPOSAL
Mayumi J RutaArgentinaXuxue Feng PROPOSAL
Aruna V KolmetzBrazilBernardo Dominic PROPOSAL
Leon S VenereAustraliaAmy Elsner PROPOSAL
James N GillianFranceElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith B StockhamBrazil2025-06-13Chapman, Ross E Esq RENEWAL97Ioni Bowcher
1001Julie Z CaudyItaly2025-06-11Benton, John B Jr QUALIFIED11Ivan Magalhaes
1002Jones P ShinkoIndia2025-06-11Buckley Miller Wright UNQUALIFIED13Ivan Magalhaes
1003Jefferson M OldroydFrance2025-06-13Commercial Press NEGOTIATION36Elwin Sharvill
1004Izzy N MacleadFrance2025-05-18Buckley Miller Wright NEGOTIATION32Anna Fali
1005Ricardo A ShinkoRussia2025-05-19Chapman, Ross E Esq PROPOSAL24Elwin Sharvill
1006Octavia J FollerBrazil2025-05-23Feltz Printing Service NEGOTIATION32Bernardo Dominic
1007Isabel L NestleSpain2025-05-27King, Christopher A Esq UNQUALIFIED94Elwin Sharvill
1008Leja X DoeAustralia2025-05-24Chemel, James L Cpa QUALIFIED94Anna Fali
1009Juan Y WhobreyAustralia2025-06-11Feiner Bros UNQUALIFIED37Amy Elsner
1010Aditya P MarrierRussia2025-05-30King, Christopher A Esq PROPOSAL22Elwin Sharvill
1011Aditya Y ShinkoItaly2025-05-27Chanay, Jeffrey A Esq NEGOTIATION70Asiya Javayant
1012Leon A RulapaughItaly2025-06-03Chemel, James L Cpa NEW56Bernardo Dominic
1013Mayumi B WhobreySpain2025-06-04Buckley Miller Wright QUALIFIED94Bernardo Dominic
1014Adams S DilliardAustralia2025-05-18Buckley Miller Wright RENEWAL1Ioni Bowcher
1015Costa N WieserFrance2025-05-28King, Christopher A Esq NEW13Ivan Magalhaes
1016Wickens Z StensethSpain2025-05-30Chapman, Ross E Esq UNQUALIFIED45Onyama Limba
1017Deepesh T RoysterIndia2025-05-27Chanay, Jeffrey A Esq QUALIFIED38Ivan Magalhaes
1018Murillo I GillianCanada2025-06-05Chemel, James L Cpa NEGOTIATION60Anna Fali
1019Adams Y NestleItaly2025-06-15Rousseaux, Michael Esq QUALIFIED12Amy Elsner
1020Maisha H OldroydAustralia2025-06-02Chanay, Jeffrey A Esq RENEWAL52Bernardo Dominic
1021Johnson J OldroydFrance2025-05-25Dorl, James J Esq PROPOSAL57Asiya Javayant
1022Silvio N FollerRussia2025-05-28Commercial Press QUALIFIED44Anna Fali
1023Misaki P MacleadAustralia2025-06-07Feiner Bros UNQUALIFIED81Xuxue Feng
1024David A GauchoIndia2025-05-30Rangoni Of Florence PROPOSAL32Stephen Shaw
1025Costa I FollerBrazil2025-06-12Truhlar And Truhlar Attys UNQUALIFIED52Xuxue Feng
1026Misaki C PaprockiCanada2025-06-12Buckley Miller Wright NEW62Stephen Shaw
1027Leja J SergiRussia2025-05-18Dorl, James J Esq NEW63Ioni Bowcher
1028Julie Y SchemmerSpain2025-06-04Printing Dimensions UNQUALIFIED79Xuxue Feng
1029Greenwood N PaprockiArgentina2025-06-15Feltz Printing Service RENEWAL87Stephen Shaw
1030Clifford J DilliardSpain2025-06-04Buckley Miller Wright PROPOSAL6Amy Elsner
1031Jennifer G CampainFrance2025-06-13Chanay, Jeffrey A Esq NEGOTIATION62Amy Elsner
1032Johnson Q GlickCanada2025-05-20King, Christopher A Esq NEW50Ioni Bowcher
1033Isabel V KolmetzSpain2025-06-09Printing Dimensions RENEWAL23Amy Elsner
1034Tony C StockhamBrazil2025-05-24Dorl, James J Esq NEW81Stephen Shaw
1035Juan W PerinJapan2025-06-08Buckley Miller Wright PROPOSAL10Ivan Magalhaes
1036Misaki C BowleyJapan2025-05-30Dorl, James J Esq QUALIFIED91Amy Elsner
1037Aruna E SergiSpain2025-06-08Buckley Miller Wright PROPOSAL31Ioni Bowcher
1038Rodrigues P MarrierBrazil2025-05-24Chanay, Jeffrey A Esq NEGOTIATION56Stephen Shaw
1039Silvio H TollnerJapan2025-05-21Commercial Press RENEWAL42Ivan Magalhaes
1040Isabel P MaletIndia2025-06-11Rousseaux, Michael Esq PROPOSAL52Anna Fali
1041Deepesh P BologniaFrance2025-05-26Feiner Bros NEW66Anna Fali
1042Adams I RimUnited Kingdom2025-06-16Rousseaux, Michael Esq QUALIFIED89Onyama Limba
1043Mujtaba V KuskoUnited Kingdom2025-06-05Feiner Bros NEW41Ioni Bowcher
1044Ashley R MarrierRussia2025-05-23Chanay, Jeffrey A Esq NEW28Amy Elsner
1045Aruna E PaprockiGermany2025-06-05Feiner Bros PROPOSAL21Ioni Bowcher
1046Chavez I RulapaughItaly2025-05-20Truhlar And Truhlar Attys NEGOTIATION92Xuxue Feng
1047Johnson N BriddickUnited Kingdom2025-05-31Truhlar And Truhlar Attys NEW61Elwin Sharvill
1048Misaki O TollnerGermany2025-06-08Dorl, James J Esq NEW31Anna Fali
1049Darci Q BowleySpain2025-06-15Feiner Bros PROPOSAL77Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Alejandro A SaylorsCanadaStephen Shaw PROPOSAL
Francesco K ButtUnited KingdomElwin Sharvill QUALIFIED
James G VenereSpainIvan Magalhaes RENEWAL
Rodrigues Q NestleBrazilAnna Fali NEGOTIATION
Tony Y OldroydArgentinaIvan Magalhaes NEW
Julie C CaudyAustraliaStephen Shaw QUALIFIED
Wickens U IturbideArgentinaElwin Sharvill PROPOSAL
Ricardo T KolmetzCanadaAnna Fali NEGOTIATION
Misaki U MaletIndiaIvan Magalhaes NEGOTIATION
Arvin I BriddickRussiaXuxue Feng PROPOSAL
Ivar B SchemmerUnited KingdomAmy Elsner PROPOSAL
Alejandro V WhobreyJapanElwin Sharvill RENEWAL
Darci H GarufiArgentinaElwin Sharvill QUALIFIED
Tony Q BriddickUnited KingdomStephen Shaw QUALIFIED
Juan I AlbaresRussiaIvan Magalhaes PROPOSAL
Chavez S ShinkoArgentinaElwin Sharvill PROPOSAL
Ricardo U TollnerBrazilOnyama Limba RENEWAL
Juan W MarrierSpainAsiya Javayant NEW
Wickens I WieserUnited KingdomIoni Bowcher QUALIFIED
David D AlbaresRussiaIoni Bowcher QUALIFIED
Sinclair A RulapaughUnited KingdomIoni Bowcher PROPOSAL
Chavez X RulapaughSpainElwin Sharvill RENEWAL
Munro U VenereSpainIvan Magalhaes NEGOTIATION
Izzy A RoysterUnited KingdomOnyama Limba UNQUALIFIED
Faith W BowleyCanadaBernardo Dominic UNQUALIFIED
Arvin Q FerenczCanadaIoni Bowcher NEGOTIATION
Silvio Y CaudyIndiaOnyama Limba UNQUALIFIED
Claire R SlusarskiArgentinaStephen Shaw QUALIFIED
Nicolas O NestleArgentinaElwin Sharvill UNQUALIFIED
Alejandro B WieserIndiaOnyama Limba QUALIFIED
Kaitlin A BriddickJapanXuxue Feng QUALIFIED
Claire H PaprockiIndiaAsiya Javayant PROPOSAL
Emily N AlbaresSpainOnyama Limba RENEWAL
Maria W FollerCanadaIvan Magalhaes NEGOTIATION
Stacey O CampainGermanyOnyama Limba QUALIFIED
Jennifer U FollerRussiaXuxue Feng UNQUALIFIED
Chavez F MarrierCanadaIvan Magalhaes PROPOSAL
Chavez K SergiItalyBernardo Dominic NEGOTIATION
Leja W CaudyJapanIvan Magalhaes QUALIFIED
Munro P GillianBrazilIoni Bowcher QUALIFIED
Mayumi C FlosiIndiaOnyama Limba NEW
Salvatore Q WhobreyItalyOnyama Limba RENEWAL
Aika T IturbideFranceIoni Bowcher PROPOSAL
James P SaylorsJapanElwin Sharvill UNQUALIFIED
Wickens B PoquetteIndiaStephen Shaw UNQUALIFIED
Cody Q SlusarskiGermanyElwin Sharvill NEGOTIATION
Stacey N KuskoIndiaAsiya Javayant UNQUALIFIED
Aruna D ChuiAustraliaAmy Elsner QUALIFIED
Kadeem D NestleItalyXuxue Feng RENEWAL
Jefferson P GillianRussiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Kaitlin C Royster
Clifford V Albares
Jeanfrancois S Rim
Jeanfrancois Z Amigon
James N Bowley
Clifford Z Malet
Smith W Wieser
Aditya B Ruta
Francesco X Caudy
Juan E Malet
Alejandro K Slusarski
Sinclair C Stenseth
Rodrigues P Rim
Jeanfrancois S Marrier
Isabel V Ruta
Adams J Royster
Maria C Kusko
Jefferson X Gillian
Aruna S Oldroyd
Arvin L Figeroa
Ashley R Wieser
Izzy I Rim
Alejandro Z Briddick
Faith C Kusko
Silvio N Nicka
Salvatore M Schemmer
Wickens V Darakjy
Morrow B Kolmetz
Maria H Malet
Clifford R Saylors
Emily C Butt
Leja D Ferencz
Alejandro M Waycott
Salvatore Z Nicka
Mujtaba W Wieser
Clifford Y Ostrosky
Claire P Stenseth
Murillo J Bolognia
Jefferson U Ruta
Chavez G Campain
Ricardo P Marrier
Murillo L Venere
Johnson W Flosi
Maisha H Maclead
Jones E Figeroa
Munro S Malet
Arvin F Bowley
Jeanfrancois J Ostrosky
Silvio H Oldroyd
Isabel A Iturbide
IdCountryDate
1000Germany2025-05-31
1001Spain2025-05-23
1002France2025-06-03
1003Germany2025-06-16
1004Canada2025-05-20
1005Italy2025-05-29
1006Argentina2025-05-27
1007Australia2025-05-22
1008Russia2025-05-25
1009Argentina2025-05-24
1010France2025-06-03
1011France2025-05-28
1012France2025-05-31
1013Canada2025-06-16
1014Germany2025-05-31
1015Canada2025-05-31
1016Russia2025-05-31
1017Canada2025-06-03
1018France2025-06-14
1019Japan2025-05-19
1020United Kingdom2025-06-11
1021Germany2025-06-04
1022Russia2025-06-09
1023Germany2025-05-18
1024Spain2025-06-01
1025Canada2025-06-08
1026Argentina2025-05-26
1027United Kingdom2025-05-27
1028Japan2025-06-10
1029Brazil2025-06-09
1030Russia2025-06-01
1031Spain2025-05-26
1032Germany2025-05-21
1033Argentina2025-06-12
1034Argentina2025-06-08
1035India2025-06-09
1036Brazil2025-05-26
1037United Kingdom2025-06-10
1038Canada2025-06-07
1039Germany2025-05-19
1040France2025-06-03
1041Italy2025-06-04
1042Canada2025-05-23
1043India2025-06-06
1044Argentina2025-06-03
1045India2025-06-14
1046Italy2025-05-19
1047Japan2025-05-23
1048Germany2025-06-13
1049Russia2025-06-05

On-Demand Data

NameIdCountryDate
Adams N Albares1000Brazil2025-05-21
Aditya Z Bolognia1001United Kingdom2025-05-26
Misaki O Rim1002Spain2025-06-08
Antonio E Bolognia1003Canada2025-06-07
Rodrigues Y Ferencz1004Canada2025-06-15
Octavia Q Chui1005Argentina2025-05-26
Murillo J Gaucho1006India2025-05-23
Kaitlin X Nestle1007Japan2025-05-24
Faith O Butt1008Russia2025-05-29
Arvin H Albares1009Brazil2025-06-02
Aruna B Malet1010India2025-05-25
Smith F Slusarski1011India2025-05-23
Isabel U Iturbide1012Australia2025-05-20
Smith G Rim1013Canada2025-05-24
Munro Y Glick1014Germany2025-06-07
Rodrigues Y Garufi1015India2025-05-31
David V Waycott1016India2025-06-05
Arvin E Malet1017France2025-05-27
Maria Z Rulapaugh1018United Kingdom2025-06-06
Izzy M Albares1019Spain2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa D ShinkoAustraliaOnyama Limba RENEWAL
Leon O GlickAustraliaElwin Sharvill QUALIFIED
Julie U VenereAustraliaOnyama Limba NEW
Sinclair R IturbideFranceBernardo Dominic NEW
Kadeem W MorascaRussiaIvan Magalhaes QUALIFIED
Silvio I WaycottItalyStephen Shaw NEW
Stacey O PaprockiRussiaIoni Bowcher NEGOTIATION
Murillo D SlusarskiRussiaBernardo Dominic NEGOTIATION
Jennifer A ShinkoFranceStephen Shaw UNQUALIFIED
Silvio G VenereSpainAmy Elsner UNQUALIFIED
Kaitlin L OstroskyFranceIvan Magalhaes PROPOSAL
Nicolas N MarrierGermanyIoni Bowcher QUALIFIED
Francesco A StockhamCanadaElwin Sharvill NEGOTIATION
Aditya U CampainCanadaAmy Elsner NEW
Izzy U RutaArgentinaAmy Elsner UNQUALIFIED
Tony L PerinSpainElwin Sharvill QUALIFIED
Octavia D GlickUnited KingdomAsiya Javayant QUALIFIED
Costa D DoeAustraliaAnna Fali RENEWAL
Aditya Z RutaFranceAmy Elsner UNQUALIFIED
Antonio O GauchoSpainAsiya Javayant NEW
Rodrigues N OstroskyGermanyAnna Fali RENEWAL
Maria J IturbideRussiaXuxue Feng NEGOTIATION
Antonio N RutaIndiaXuxue Feng NEGOTIATION
Aika A CaldareraItalyStephen Shaw NEW
Kadeem C FerenczFranceAsiya Javayant NEGOTIATION
Alejandro C FlosiCanadaOnyama Limba NEGOTIATION
Sinclair A GlickItalyStephen Shaw NEGOTIATION
Claire G SaylorsFranceAnna Fali NEW
Salvatore Z OldroydRussiaBernardo Dominic UNQUALIFIED
Octavia D ChuiItalyStephen Shaw PROPOSAL
Stacey D NestleJapanIoni Bowcher RENEWAL
Silvio V VocelkaArgentinaAnna Fali QUALIFIED
Wickens B AlbaresJapanAmy Elsner NEW
Ricardo T MaletItalyIoni Bowcher RENEWAL
Greenwood Z StockhamSpainIvan Magalhaes PROPOSAL
Rodrigues R FlosiSpainStephen Shaw NEW
Izzy D MaletRussiaOnyama Limba NEGOTIATION
Clifford T DarakjyGermanyXuxue Feng QUALIFIED
Aditya B BriddickGermanyElwin Sharvill RENEWAL
Julie K WieserCanadaIoni Bowcher RENEWAL

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