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
Ricardo W GillianBrazilOnyama Limba UNQUALIFIED
Emily E NickaFranceElwin Sharvill NEGOTIATION
Deepesh G RutaArgentinaAnna Fali NEGOTIATION
Smith U RutaCanadaOnyama Limba PROPOSAL
Misaki W WhobreyArgentinaBernardo Dominic UNQUALIFIED
Maria X FigeroaIndiaIvan Magalhaes RENEWAL
Jefferson L MarrierIndiaIvan Magalhaes QUALIFIED
Darci R FigeroaItalyAmy Elsner QUALIFIED
Johnson H KolmetzIndiaIoni Bowcher NEW
Jefferson W WieserIndiaStephen Shaw NEW
James N GarufiGermanyBernardo Dominic NEW
Leon M SlusarskiAustraliaXuxue Feng NEGOTIATION
Faith R KolmetzAustraliaStephen Shaw PROPOSAL
Greenwood D NestleIndiaAmy Elsner NEGOTIATION
Arvin S ButtIndiaIoni Bowcher NEGOTIATION
Greenwood K BriddickItalyXuxue Feng NEW
Misaki B CaudyIndiaElwin Sharvill QUALIFIED
Emily G BowleyAustraliaXuxue Feng NEW
Nicolas J RutaBrazilElwin Sharvill QUALIFIED
Kaitlin H PerinRussiaElwin Sharvill QUALIFIED
Rodrigues B PoquetteArgentinaIoni Bowcher UNQUALIFIED
Clifford O InouyeItalyXuxue Feng NEW
Clifford S StensethSpainOnyama Limba UNQUALIFIED
Murillo P FerenczUnited KingdomXuxue Feng QUALIFIED
Jones M NickaCanadaAmy Elsner PROPOSAL
David T GlickFranceStephen Shaw QUALIFIED
Leon O BriddickJapanBernardo Dominic UNQUALIFIED
Greenwood G SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Nicolas G RutaGermanyAnna Fali PROPOSAL
David H KuskoRussiaAmy Elsner NEGOTIATION
Maisha B RulapaughArgentinaAsiya Javayant UNQUALIFIED
Deepesh U DarakjyBrazilAmy Elsner NEW
Izzy J InouyeArgentinaIoni Bowcher QUALIFIED
Emily X TollnerCanadaOnyama Limba RENEWAL
Morrow G WieserBrazilXuxue Feng QUALIFIED
Smith A GlickItalyIvan Magalhaes RENEWAL
Mayumi U KolmetzArgentinaXuxue Feng PROPOSAL
Tony L GarufiUnited KingdomAnna Fali NEGOTIATION
Kaitlin O GarufiArgentinaIoni Bowcher QUALIFIED
Jennifer B VenereItalyStephen Shaw NEGOTIATION
Leon M BowleyBrazilIvan Magalhaes RENEWAL
Misaki X KolmetzIndiaAnna Fali NEW
Jefferson M StockhamSpainAmy Elsner PROPOSAL
Clifford H OldroydCanadaAsiya Javayant PROPOSAL
Maisha Y SergiUnited KingdomElwin Sharvill QUALIFIED
Costa C CampainAustraliaAnna Fali UNQUALIFIED
Mujtaba T AmigonRussiaElwin Sharvill QUALIFIED
Francesco T CampainSpainStephen Shaw UNQUALIFIED
Murillo S PoquetteCanadaXuxue Feng NEW
Jennifer R BriddickBrazilOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Munro O StensethCanadaIoni Bowcher PROPOSAL
Munro B AmigonSpainAnna Fali NEW
Salvatore F SergiAustraliaAmy Elsner QUALIFIED
Jeanfrancois W TollnerSpainAsiya Javayant PROPOSAL
Maisha M WaycottJapanIoni Bowcher NEW
Chavez S MorascaRussiaBernardo Dominic NEGOTIATION
Greenwood Y OldroydIndiaElwin Sharvill RENEWAL
Ricardo Q WaycottBrazilElwin Sharvill NEW
Aruna N SaylorsCanadaOnyama Limba UNQUALIFIED
Jeanfrancois V TollnerFranceIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow I MaletGermany2026-07-21Printing Dimensions RENEWAL84Bernardo Dominic
1001Arvin D DarakjyArgentina2026-07-29Printing Dimensions NEGOTIATION10Bernardo Dominic
1002Antonio V AlbaresItaly2026-07-24Feltz Printing Service NEGOTIATION64Anna Fali
1003Aditya Z SaylorsUnited Kingdom2026-07-31Commercial Press PROPOSAL28Amy Elsner
1004Chavez J BologniaCanada2026-08-09Chapman, Ross E Esq NEGOTIATION52Asiya Javayant
1005Misaki L FlosiFrance2026-07-22Printing Dimensions NEGOTIATION2Bernardo Dominic
1006Jeanfrancois G VenereCanada2026-07-19Printing Dimensions NEGOTIATION46Asiya Javayant
1007Nicolas K MacleadIndia2026-08-01Feiner Bros NEW93Elwin Sharvill
1008Ricardo G RoysterIndia2026-08-01Rangoni Of Florence NEW11Onyama Limba
1009Francesco S OldroydItaly2026-07-26Benton, John B Jr NEGOTIATION13Anna Fali
1010Mayumi M TollnerSpain2026-08-08King, Christopher A Esq QUALIFIED83Elwin Sharvill
1011Aika O MacleadItaly2026-08-05Chapman, Ross E Esq NEGOTIATION56Anna Fali
1012Isabel Q WieserCanada2026-07-26Rangoni Of Florence RENEWAL62Ioni Bowcher
1013Aditya V SlusarskiBrazil2026-07-25Feltz Printing Service UNQUALIFIED89Ivan Magalhaes
1014Mayumi B FollerJapan2026-07-15Dorl, James J Esq NEGOTIATION48Bernardo Dominic
1015Sinclair Y CaudyCanada2026-07-14Chapman, Ross E Esq UNQUALIFIED75Xuxue Feng
1016Misaki R BowleyUnited Kingdom2026-08-07Buckley Miller Wright QUALIFIED94Asiya Javayant
1017Mujtaba P RimJapan2026-08-07Chanay, Jeffrey A Esq NEW3Elwin Sharvill
1018Arvin C VocelkaSpain2026-07-22Commercial Press QUALIFIED21Onyama Limba
1019Alejandro D GlickBrazil2026-07-24Chapman, Ross E Esq QUALIFIED8Stephen Shaw
1020Aditya A RimAustralia2026-07-28Printing Dimensions RENEWAL46Ivan Magalhaes
1021Arvin V WaycottBrazil2026-08-07Chemel, James L Cpa PROPOSAL50Elwin Sharvill
1022Deepesh K FigeroaGermany2026-07-12Printing Dimensions NEGOTIATION41Ioni Bowcher
1023Darci S PoquetteAustralia2026-08-02Buckley Miller Wright RENEWAL87Xuxue Feng
1024Jefferson S MarrierAustralia2026-07-30Rangoni Of Florence UNQUALIFIED94Amy Elsner
1025Leon H WhobreyIndia2026-08-06Chemel, James L Cpa NEW47Onyama Limba
1026Munro O DarakjySpain2026-07-14Buckley Miller Wright QUALIFIED53Ivan Magalhaes
1027Costa X FerenczItaly2026-07-13Buckley Miller Wright NEW89Asiya Javayant
1028Jeanfrancois Y KuskoJapan2026-07-28Truhlar And Truhlar Attys QUALIFIED95Anna Fali
1029Emily P RoysterJapan2026-07-22Morlong Associates NEGOTIATION65Asiya Javayant
1030Francesco V NickaFrance2026-07-26Chanay, Jeffrey A Esq NEGOTIATION11Onyama Limba
1031Antonio I CaldareraCanada2026-07-29Chemel, James L Cpa UNQUALIFIED89Amy Elsner
1032Deepesh F RoysterSpain2026-07-14Rangoni Of Florence NEGOTIATION77Ivan Magalhaes
1033Johnson J InouyeArgentina2026-07-14Rangoni Of Florence NEW69Asiya Javayant
1034Aika D MaletJapan2026-08-08Chanay, Jeffrey A Esq PROPOSAL93Anna Fali
1035Kadeem S DarakjyIndia2026-07-13King, Christopher A Esq RENEWAL76Onyama Limba
1036Tony O SchemmerAustralia2026-07-14Chanay, Jeffrey A Esq PROPOSAL59Stephen Shaw
1037Aruna K KuskoRussia2026-07-17King, Christopher A Esq UNQUALIFIED67Elwin Sharvill
1038Salvatore S VocelkaFrance2026-07-25King, Christopher A Esq PROPOSAL86Onyama Limba
1039Clifford X CaldareraBrazil2026-07-16Commercial Press UNQUALIFIED21Ioni Bowcher
1040Johnson M KuskoIndia2026-07-30Printing Dimensions NEW99Ivan Magalhaes
1041Stacey F GauchoSpain2026-07-19Rangoni Of Florence NEW68Ioni Bowcher
1042Aruna C MorascaJapan2026-07-16Feiner Bros RENEWAL96Xuxue Feng
1043James U BologniaSpain2026-07-28Chanay, Jeffrey A Esq QUALIFIED88Ioni Bowcher
1044Isabel G IturbideSpain2026-08-06Feltz Printing Service RENEWAL60Xuxue Feng
1045David Z MarrierAustralia2026-07-24Morlong Associates UNQUALIFIED65Amy Elsner
1046Smith Z RutaIndia2026-07-22Chemel, James L Cpa UNQUALIFIED0Anna Fali
1047Mujtaba N PaprockiJapan2026-07-11Rousseaux, Michael Esq QUALIFIED99Ioni Bowcher
1048Julie K SchemmerSpain2026-07-19Feltz Printing Service NEGOTIATION57Xuxue Feng
1049Jefferson J SchemmerAustralia2026-08-09Morlong Associates RENEWAL22Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna I SchemmerFranceIoni Bowcher NEGOTIATION
Jefferson L InouyeAustraliaXuxue Feng RENEWAL
Claire J FerenczJapanAmy Elsner NEW
Aditya H RulapaughGermanyOnyama Limba NEGOTIATION
David A StensethAustraliaAsiya Javayant NEW
Munro N DilliardFranceIvan Magalhaes NEGOTIATION
Isabel P ChuiCanadaAnna Fali PROPOSAL
Costa J BriddickUnited KingdomStephen Shaw RENEWAL
Maisha Y OldroydBrazilAmy Elsner QUALIFIED
Clifford O ChuiItalyAsiya Javayant UNQUALIFIED
Alejandro Q RoysterIndiaStephen Shaw QUALIFIED
Octavia X MaletBrazilBernardo Dominic QUALIFIED
Misaki V BowleyRussiaBernardo Dominic PROPOSAL
Chavez U GlickFranceOnyama Limba UNQUALIFIED
Deepesh K FlosiArgentinaOnyama Limba NEW
Smith T OstroskyIndiaXuxue Feng PROPOSAL
Misaki T DoeCanadaAmy Elsner QUALIFIED
Arvin K VenereIndiaAmy Elsner NEW
Maria O GlickSpainOnyama Limba NEW
Aditya E SergiSpainIoni Bowcher NEGOTIATION
Sinclair R WhobreyBrazilElwin Sharvill RENEWAL
Costa J WaycottJapanElwin Sharvill RENEWAL
Sinclair S StockhamIndiaXuxue Feng NEGOTIATION
Ashley D RoysterBrazilAmy Elsner UNQUALIFIED
Smith Q PerinIndiaAsiya Javayant NEW
Francesco T RutaIndiaXuxue Feng QUALIFIED
Tony L StockhamFranceStephen Shaw NEGOTIATION
Adams R MacleadItalyElwin Sharvill NEGOTIATION
Isabel U DarakjyCanadaStephen Shaw UNQUALIFIED
Cody G TollnerFranceStephen Shaw PROPOSAL
Aditya H DarakjyJapanAnna Fali QUALIFIED
Misaki Z AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Costa B OldroydSpainBernardo Dominic QUALIFIED
Chavez C BowleyItalyBernardo Dominic RENEWAL
Jones E TollnerArgentinaIoni Bowcher PROPOSAL
James I CaudyRussiaAsiya Javayant QUALIFIED
Francesco G CaudyItalyStephen Shaw UNQUALIFIED
Jeanfrancois J GauchoFranceElwin Sharvill PROPOSAL
Leon Z BriddickCanadaElwin Sharvill QUALIFIED
Chavez T CaldareraBrazilAmy Elsner NEW
Emily Z MaletFranceAmy Elsner NEGOTIATION
Clifford K ButtAustraliaIvan Magalhaes NEGOTIATION
Kaitlin B MaletUnited KingdomIoni Bowcher NEGOTIATION
Costa R ButtArgentinaStephen Shaw NEW
James L FlosiCanadaIvan Magalhaes RENEWAL
Antonio Y GarufiFranceIoni Bowcher QUALIFIED
Kaitlin F SaylorsAustraliaAmy Elsner QUALIFIED
Jennifer H RimUnited KingdomAmy Elsner QUALIFIED
Wickens M AlbaresJapanBernardo Dominic PROPOSAL
Mayumi Q VenereFranceAsiya Javayant NEGOTIATION
Frozen Columns
Name
Jones Z Waycott
Jennifer C Chui
Antonio Z Ostrosky
Murillo P Darakjy
Emily U Darakjy
Izzy I Poquette
Claire W Iturbide
Clifford O Ferencz
Cody I Poquette
Munro H Stockham
Maria G Wieser
Jefferson D Malet
Kadeem D Figeroa
Julie P Slusarski
Adams M Tollner
Emily M Caudy
Juan X Butt
Wickens A Venere
Francesco M Doe
Salvatore P Ferencz
Leon K Ruta
Misaki H Perin
Izzy N Stockham
Antonio I Caldarera
Leon G Foller
Leon A Marrier
Jefferson J Glick
Stacey W Vocelka
Mayumi Q Bolognia
Tony I Caudy
Mayumi N Stenseth
Ricardo J Nicka
Francesco F Foller
Kaitlin W Kolmetz
Johnson R Saylors
Darci H Figeroa
Juan Q Foller
Izzy K Paprocki
Jennifer W Iturbide
Johnson X Dilliard
Rodrigues K Shinko
Emily B Flosi
Jefferson D Dilliard
Aruna A Briddick
Aruna D Caldarera
Jeanfrancois N Ferencz
Costa Y Kolmetz
Misaki Q Foller
Murillo V Maclead
Stacey F Briddick
IdCountryDate
1000France2026-07-14
1001Germany2026-08-07
1002Argentina2026-07-22
1003Russia2026-07-26
1004Spain2026-07-14
1005Brazil2026-07-15
1006Japan2026-08-04
1007France2026-07-13
1008India2026-08-03
1009Brazil2026-07-22
1010Australia2026-08-01
1011Italy2026-08-02
1012United Kingdom2026-07-16
1013Australia2026-07-17
1014Brazil2026-08-07
1015India2026-07-22
1016France2026-07-31
1017Italy2026-08-08
1018Canada2026-08-08
1019Italy2026-08-08
1020Italy2026-07-19
1021Germany2026-07-24
1022Germany2026-08-07
1023Spain2026-07-24
1024Argentina2026-07-20
1025Russia2026-08-03
1026Russia2026-07-14
1027Brazil2026-07-29
1028Japan2026-08-05
1029Russia2026-07-13
1030Brazil2026-08-09
1031Japan2026-07-30
1032United Kingdom2026-07-28
1033Brazil2026-07-28
1034Japan2026-07-26
1035France2026-07-13
1036France2026-08-03
1037Germany2026-07-16
1038Canada2026-07-23
1039Germany2026-07-29
1040Canada2026-07-23
1041Japan2026-07-28
1042Spain2026-07-28
1043Argentina2026-08-03
1044Spain2026-07-19
1045Argentina2026-07-29
1046Russia2026-07-14
1047Argentina2026-08-06
1048Spain2026-07-15
1049Russia2026-08-07

On-Demand Data

NameIdCountryDate
Silvio O Poquette1000Russia2026-07-11
Kaitlin G Perin1001Germany2026-08-01
Claire T Nestle1002Spain2026-07-22
Costa E Campain1003Canada2026-07-29
Deepesh S Nicka1004Spain2026-08-05
Faith N Morasca1005Canada2026-08-04
Stacey H Saylors1006France2026-07-11
Aruna D Ferencz1007France2026-07-28
Arvin B Gillian1008Russia2026-07-29
Costa M Darakjy1009Argentina2026-07-11
Salvatore H Flosi1010Australia2026-07-23
Nicolas A Ostrosky1011Argentina2026-07-11
Antonio N Wieser1012Germany2026-07-30
Antonio C Flosi1013Canada2026-07-29
Kadeem P Venere1014Italy2026-08-05
Julie B Amigon1015Russia2026-08-04
Kaitlin Y Ferencz1016India2026-07-16
Antonio W Marrier1017France2026-07-26
Leon B Ruta1018France2026-08-05
Murillo C Oldroyd1019Germany2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin X PaprockiFranceIoni Bowcher NEGOTIATION
Isabel J MaletGermanyElwin Sharvill NEGOTIATION
Arvin C DarakjyArgentinaAsiya Javayant NEGOTIATION
Leon A KolmetzRussiaOnyama Limba NEW
Rodrigues O AlbaresUnited KingdomStephen Shaw PROPOSAL
James F PaprockiUnited KingdomAsiya Javayant NEW
Juan F SlusarskiArgentinaBernardo Dominic PROPOSAL
Kaitlin V FollerUnited KingdomAnna Fali PROPOSAL
Isabel X MaletIndiaElwin Sharvill RENEWAL
Sinclair P BologniaGermanyXuxue Feng NEW
Adams V WieserAustraliaBernardo Dominic PROPOSAL
Ivar B RimBrazilStephen Shaw UNQUALIFIED
Wickens S GauchoSpainIoni Bowcher UNQUALIFIED
Kadeem O MarrierFranceAsiya Javayant PROPOSAL
Clifford H StensethAustraliaAsiya Javayant UNQUALIFIED
Kaitlin B VocelkaCanadaBernardo Dominic NEGOTIATION
Arvin D MaletIndiaAsiya Javayant NEW
Maria C RimArgentinaAnna Fali NEGOTIATION
Mujtaba F MarrierRussiaXuxue Feng NEGOTIATION
Rodrigues B KolmetzGermanyElwin Sharvill UNQUALIFIED
Smith U OstroskyIndiaAnna Fali QUALIFIED
Adams A WieserCanadaStephen Shaw PROPOSAL
Morrow D RimBrazilXuxue Feng RENEWAL
Alejandro E PaprockiRussiaXuxue Feng NEGOTIATION
Antonio B VenereBrazilAmy Elsner PROPOSAL
Francesco W PaprockiIndiaStephen Shaw RENEWAL
Francesco D FlosiSpainAmy Elsner PROPOSAL
Costa N AlbaresAustraliaOnyama Limba QUALIFIED
Claire U DoeSpainAmy Elsner RENEWAL
Silvio S VenereArgentinaStephen Shaw PROPOSAL
Tony U NestleUnited KingdomBernardo Dominic QUALIFIED
Clifford I NickaRussiaElwin Sharvill PROPOSAL
Costa S MorascaArgentinaBernardo Dominic RENEWAL
Ashley D DoeArgentinaElwin Sharvill QUALIFIED
Leon M SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Darci L WhobreyRussiaIoni Bowcher QUALIFIED
Kaitlin U BowleyRussiaAnna Fali UNQUALIFIED
Arvin J FollerBrazilAnna Fali RENEWAL
Tony Z RutaAustraliaXuxue Feng QUALIFIED
Johnson R MaletArgentinaBernardo Dominic 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>