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
James A GarufiCanadaStephen Shaw PROPOSAL
Smith F GillianIndiaBernardo Dominic PROPOSAL
Wickens V FerenczJapanAnna Fali RENEWAL
Stacey R ButtItalyXuxue Feng UNQUALIFIED
Antonio F BriddickSpainAnna Fali PROPOSAL
Ricardo O MaletBrazilStephen Shaw UNQUALIFIED
Ricardo Y GlickRussiaAsiya Javayant NEW
Tony N DarakjyBrazilIvan Magalhaes PROPOSAL
Tony W SchemmerGermanyOnyama Limba RENEWAL
Wickens D StockhamFranceIoni Bowcher NEGOTIATION
Maria F PoquetteAustraliaBernardo Dominic NEGOTIATION
Kadeem M ChuiGermanyIvan Magalhaes NEGOTIATION
Stacey H WhobreyFranceIoni Bowcher NEGOTIATION
Clifford T FigeroaRussiaOnyama Limba NEGOTIATION
Deepesh D NickaSpainAsiya Javayant NEGOTIATION
Juan U GauchoJapanAsiya Javayant NEW
Morrow J CampainFranceBernardo Dominic PROPOSAL
Kadeem K CaudyJapanBernardo Dominic PROPOSAL
Alejandro I SergiAustraliaAsiya Javayant QUALIFIED
Aditya X GarufiJapanElwin Sharvill UNQUALIFIED
Isabel R RulapaughUnited KingdomOnyama Limba PROPOSAL
Maria J ShinkoItalyBernardo Dominic NEW
Leja L FigeroaItalyOnyama Limba RENEWAL
Jefferson A GillianRussiaIoni Bowcher NEW
Ashley B ShinkoArgentinaStephen Shaw NEGOTIATION
Mujtaba A PerinArgentinaAmy Elsner NEGOTIATION
James D SchemmerArgentinaAnna Fali UNQUALIFIED
James Q ChuiGermanyElwin Sharvill UNQUALIFIED
Julie A CampainItalyStephen Shaw UNQUALIFIED
Deepesh W MarrierGermanyIoni Bowcher NEGOTIATION
Adams I PaprockiArgentinaAsiya Javayant RENEWAL
Misaki N FigeroaCanadaStephen Shaw QUALIFIED
Johnson J StensethCanadaIvan Magalhaes NEW
Ashley H NickaBrazilAmy Elsner QUALIFIED
Ricardo V WhobreySpainAmy Elsner UNQUALIFIED
Adams S WieserItalyAsiya Javayant NEW
Ricardo B OldroydUnited KingdomOnyama Limba NEGOTIATION
Johnson N WhobreySpainAnna Fali QUALIFIED
Izzy N CaldareraGermanyOnyama Limba PROPOSAL
Kadeem P FlosiSpainAsiya Javayant PROPOSAL
Nicolas T GarufiItalyStephen Shaw NEW
Claire B RimJapanAmy Elsner PROPOSAL
Greenwood J FigeroaUnited KingdomAsiya Javayant RENEWAL
Ricardo C KolmetzItalyIoni Bowcher RENEWAL
Claire G PaprockiArgentinaIoni Bowcher RENEWAL
Costa H MaletBrazilElwin Sharvill QUALIFIED
Murillo V CaldareraUnited KingdomAmy Elsner QUALIFIED
Octavia U DilliardRussiaBernardo Dominic QUALIFIED
Chavez K FerenczGermanyBernardo Dominic RENEWAL
Octavia M ShinkoItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel K ChuiItalyOnyama Limba NEW
Nicolas Z WhobreyUnited KingdomElwin Sharvill RENEWAL
Misaki X InouyeIndiaElwin Sharvill NEGOTIATION
Maria G FollerCanadaBernardo Dominic RENEWAL
Smith Z OstroskyBrazilAsiya Javayant QUALIFIED
Antonio L MaletArgentinaAnna Fali UNQUALIFIED
Nicolas W ShinkoSpainElwin Sharvill NEGOTIATION
Antonio V SaylorsRussiaAnna Fali UNQUALIFIED
Wickens N ChuiIndiaXuxue Feng RENEWAL
Leon B MaletUnited KingdomAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba N WaycottCanada2026-07-01Truhlar And Truhlar Attys NEGOTIATION62Elwin Sharvill
1001Kadeem F BologniaItaly2026-06-26Commercial Press QUALIFIED56Ivan Magalhaes
1002Jeanfrancois T WaycottRussia2026-06-22Feltz Printing Service RENEWAL50Stephen Shaw
1003Ricardo M MacleadIndia2026-07-03Feltz Printing Service NEGOTIATION85Amy Elsner
1004Mayumi T CampainSpain2026-06-22Benton, John B Jr QUALIFIED82Ioni Bowcher
1005Clifford U SaylorsRussia2026-06-10Rousseaux, Michael Esq QUALIFIED52Amy Elsner
1006Julie F MacleadSpain2026-06-19King, Christopher A Esq PROPOSAL96Asiya Javayant
1007Kadeem T PerinRussia2026-06-23Chanay, Jeffrey A Esq RENEWAL2Xuxue Feng
1008Johnson J BowleyBrazil2026-07-04Commercial Press RENEWAL41Onyama Limba
1009Misaki I WaycottRussia2026-06-29Chemel, James L Cpa RENEWAL70Stephen Shaw
1010Ashley I GlickItaly2026-06-14Chapman, Ross E Esq RENEWAL89Asiya Javayant
1011Silvio X CaldareraItaly2026-06-13Printing Dimensions PROPOSAL34Asiya Javayant
1012Francesco C NickaItaly2026-06-15Printing Dimensions PROPOSAL88Elwin Sharvill
1013Julie R GillianGermany2026-06-30Rangoni Of Florence NEW4Onyama Limba
1014Murillo R WaycottJapan2026-06-14Dorl, James J Esq NEW16Amy Elsner
1015Izzy G PaprockiItaly2026-06-30Truhlar And Truhlar Attys PROPOSAL98Ioni Bowcher
1016Misaki L RutaArgentina2026-07-06Buckley Miller Wright UNQUALIFIED78Elwin Sharvill
1017Morrow G CampainArgentina2026-06-18Printing Dimensions RENEWAL26Ioni Bowcher
1018Nicolas F DarakjyFrance2026-06-20Rousseaux, Michael Esq UNQUALIFIED25Onyama Limba
1019Johnson U StockhamJapan2026-06-12Buckley Miller Wright PROPOSAL76Amy Elsner
1020Isabel E StensethIndia2026-07-01Morlong Associates UNQUALIFIED8Elwin Sharvill
1021Greenwood G WaycottIndia2026-06-21Rousseaux, Michael Esq QUALIFIED12Ivan Magalhaes
1022Darci Z MarrierGermany2026-07-07Chapman, Ross E Esq NEGOTIATION79Onyama Limba
1023Darci C OstroskySpain2026-06-08Dorl, James J Esq UNQUALIFIED65Ioni Bowcher
1024Isabel D IturbideBrazil2026-07-02Truhlar And Truhlar Attys UNQUALIFIED17Onyama Limba
1025Arvin Z RulapaughIndia2026-06-26Printing Dimensions QUALIFIED17Amy Elsner
1026Munro P AmigonAustralia2026-06-23Buckley Miller Wright PROPOSAL12Onyama Limba
1027Julie Q KuskoSpain2026-06-21Feiner Bros QUALIFIED1Xuxue Feng
1028Chavez G ButtBrazil2026-06-29Morlong Associates UNQUALIFIED3Xuxue Feng
1029Maisha X DarakjyFrance2026-06-08Rousseaux, Michael Esq NEW18Ivan Magalhaes
1030Wickens O NickaIndia2026-07-01Printing Dimensions QUALIFIED55Xuxue Feng
1031Mayumi Z StockhamSpain2026-06-10King, Christopher A Esq UNQUALIFIED48Bernardo Dominic
1032Emily C FollerJapan2026-06-18Commercial Press UNQUALIFIED24Onyama Limba
1033Smith L KolmetzJapan2026-06-11Rangoni Of Florence UNQUALIFIED47Onyama Limba
1034Wickens P GillianAustralia2026-06-26Feltz Printing Service UNQUALIFIED34Bernardo Dominic
1035Chavez Z MaletCanada2026-06-10King, Christopher A Esq RENEWAL48Ioni Bowcher
1036Misaki O RutaGermany2026-06-16Chemel, James L Cpa RENEWAL5Ioni Bowcher
1037Leon D CaldareraGermany2026-06-13Rangoni Of Florence RENEWAL16Stephen Shaw
1038Isabel C StockhamGermany2026-06-23Truhlar And Truhlar Attys RENEWAL76Asiya Javayant
1039Murillo I ShinkoRussia2026-06-23Chapman, Ross E Esq QUALIFIED72Asiya Javayant
1040Chavez F FerenczCanada2026-06-15Buckley Miller Wright RENEWAL33Ivan Magalhaes
1041Johnson N WhobreyAustralia2026-06-27King, Christopher A Esq UNQUALIFIED82Onyama Limba
1042Aika Y StensethUnited Kingdom2026-06-13Chapman, Ross E Esq NEGOTIATION27Bernardo Dominic
1043Cody I StockhamJapan2026-06-12Morlong Associates QUALIFIED62Onyama Limba
1044Jennifer G GlickItaly2026-06-20Benton, John B Jr PROPOSAL25Anna Fali
1045Cody D DarakjyUnited Kingdom2026-06-26Dorl, James J Esq UNQUALIFIED35Xuxue Feng
1046Johnson F MaletArgentina2026-06-22Chemel, James L Cpa PROPOSAL38Elwin Sharvill
1047Murillo J BriddickIndia2026-06-28Rangoni Of Florence UNQUALIFIED42Amy Elsner
1048Mujtaba F NestleAustralia2026-06-09King, Christopher A Esq NEW52Amy Elsner
1049Salvatore N FollerAustralia2026-06-27Truhlar And Truhlar Attys QUALIFIED6Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Z RutaSpainBernardo Dominic UNQUALIFIED
Salvatore R SchemmerArgentinaAnna Fali QUALIFIED
Maria B CaudyJapanAsiya Javayant NEGOTIATION
Mayumi B PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy U ChuiArgentinaIoni Bowcher QUALIFIED
Jennifer D ShinkoCanadaIvan Magalhaes PROPOSAL
Mujtaba A WieserGermanyIoni Bowcher PROPOSAL
Aika U MaletIndiaOnyama Limba UNQUALIFIED
Ricardo M NickaIndiaIoni Bowcher PROPOSAL
Alejandro T ChuiRussiaAmy Elsner UNQUALIFIED
Tony I FlosiIndiaIvan Magalhaes NEGOTIATION
Munro Y RoysterGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois K KuskoIndiaAsiya Javayant NEW
Jennifer E DilliardItalyBernardo Dominic NEW
Murillo Z InouyeItalyAnna Fali NEGOTIATION
Murillo F SaylorsUnited KingdomIoni Bowcher RENEWAL
Smith G FlosiArgentinaOnyama Limba UNQUALIFIED
Francesco B BowleyCanadaStephen Shaw NEGOTIATION
Nicolas T OldroydSpainAnna Fali NEW
Cody X StockhamItalyAsiya Javayant PROPOSAL
Aika G PerinIndiaElwin Sharvill UNQUALIFIED
Faith E AlbaresArgentinaOnyama Limba NEW
Leja J IturbideArgentinaAnna Fali NEGOTIATION
Darci Y MaletUnited KingdomAmy Elsner QUALIFIED
David L ButtBrazilBernardo Dominic QUALIFIED
Octavia A StensethSpainStephen Shaw NEGOTIATION
Stacey K StensethIndiaAsiya Javayant UNQUALIFIED
Deepesh R PerinRussiaIvan Magalhaes UNQUALIFIED
Adams L PerinFranceOnyama Limba RENEWAL
Munro S BologniaBrazilAsiya Javayant UNQUALIFIED
Mayumi E SlusarskiRussiaXuxue Feng QUALIFIED
Ashley T DarakjyItalyBernardo Dominic QUALIFIED
Isabel R SchemmerItalyIoni Bowcher NEW
Maria F RimItalyAmy Elsner NEW
Darci L RutaItalyAnna Fali NEW
Isabel V MacleadGermanyAsiya Javayant NEGOTIATION
Alejandro R FerenczGermanyElwin Sharvill NEGOTIATION
Alejandro N CaldareraBrazilOnyama Limba NEW
James I RutaUnited KingdomOnyama Limba PROPOSAL
Sinclair I InouyeIndiaIvan Magalhaes UNQUALIFIED
Deepesh U DilliardBrazilStephen Shaw NEW
Emily R StockhamRussiaAnna Fali NEGOTIATION
Alejandro A BologniaSpainIoni Bowcher RENEWAL
Salvatore F RulapaughJapanXuxue Feng RENEWAL
Aruna W MacleadJapanElwin Sharvill UNQUALIFIED
Silvio B PaprockiIndiaAnna Fali PROPOSAL
Deepesh R ButtRussiaIvan Magalhaes NEGOTIATION
Chavez Z DarakjyFranceOnyama Limba RENEWAL
Aruna C FollerArgentinaElwin Sharvill UNQUALIFIED
Maria E MorascaJapanAmy Elsner PROPOSAL
Frozen Columns
Name
Alejandro H Butt
Deepesh Q Waycott
Claire Z Caldarera
Leon Z Garufi
Clifford Y Whobrey
Cody O Malet
Cody F Doe
Nicolas O Bolognia
Wickens Z Inouye
Mayumi X Bowley
Aditya G Malet
Johnson A Stenseth
Rodrigues L Poquette
Costa U Caldarera
Alejandro W Rulapaugh
Izzy H Kolmetz
Jennifer N Shinko
Aditya A Gillian
Kadeem E Schemmer
Stacey G Saylors
Ivar J Ferencz
Wickens R Chui
Aika Y Maclead
Cody B Inouye
Rodrigues O Butt
Greenwood R Butt
Aruna Z Chui
Misaki J Tollner
Arvin W Malet
Leja I Briddick
Smith M Sergi
Alejandro G Rulapaugh
Leja Z Figeroa
Stacey A Gillian
Jefferson T Albares
Wickens D Sergi
Cody V Gaucho
Claire U Oldroyd
Izzy U Figeroa
Jeanfrancois D Malet
Claire K Royster
Isabel G Kusko
Jefferson J Oldroyd
Ashley D Poquette
Clifford H Caldarera
Jeanfrancois X Rim
Sinclair L Wieser
Juan A Nicka
Ashley G Morasca
James Y Whobrey
IdCountryDate
1000Italy2026-06-12
1001Spain2026-07-03
1002Germany2026-06-16
1003Japan2026-06-12
1004Spain2026-07-03
1005Japan2026-06-10
1006France2026-07-07
1007Argentina2026-06-24
1008Germany2026-06-16
1009Russia2026-06-30
1010Germany2026-06-19
1011Germany2026-06-29
1012India2026-06-30
1013Japan2026-06-09
1014India2026-06-12
1015India2026-07-01
1016Russia2026-07-06
1017India2026-06-30
1018India2026-06-20
1019Spain2026-06-14
1020Japan2026-06-17
1021Canada2026-06-12
1022Argentina2026-06-18
1023Japan2026-06-12
1024Italy2026-06-21
1025United Kingdom2026-07-01
1026Italy2026-06-14
1027Russia2026-06-18
1028Brazil2026-07-06
1029Brazil2026-06-09
1030Spain2026-07-02
1031Canada2026-07-06
1032India2026-07-04
1033Australia2026-07-02
1034Brazil2026-06-29
1035United Kingdom2026-06-18
1036Australia2026-06-11
1037Japan2026-06-30
1038India2026-07-07
1039Germany2026-06-29
1040Brazil2026-06-12
1041Spain2026-06-19
1042Russia2026-07-03
1043Brazil2026-06-11
1044Argentina2026-07-05
1045Canada2026-06-18
1046Germany2026-06-28
1047Germany2026-06-08
1048Argentina2026-06-09
1049France2026-07-05

On-Demand Data

NameIdCountryDate
Murillo G Amigon1000Brazil2026-06-11
Ashley I Shinko1001Brazil2026-06-18
Mujtaba S Bolognia1002Italy2026-06-23
Rodrigues W Kolmetz1003Canada2026-06-23
Nicolas V Bowley1004Germany2026-06-20
Silvio K Figeroa1005Brazil2026-06-15
Rodrigues U Flosi1006Japan2026-07-03
Jeanfrancois F Maclead1007Japan2026-06-30
Murillo L Oldroyd1008Italy2026-07-04
Clifford Z Nicka1009India2026-06-27
Mayumi S Foller1010Italy2026-06-12
Jennifer K Slusarski1011Russia2026-06-18
David Q Figeroa1012United Kingdom2026-06-25
Maria U Paprocki1013Canada2026-06-18
Octavia Z Poquette1014France2026-07-02
Emily F Malet1015Spain2026-06-18
David F Ferencz1016Spain2026-06-18
James V Vocelka1017Spain2026-06-15
Kaitlin T Butt1018Russia2026-06-27
Jefferson J Ruta1019Brazil2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio D DarakjyUnited KingdomBernardo Dominic RENEWAL
Isabel E KolmetzIndiaBernardo Dominic NEGOTIATION
Silvio H CaldareraItalyIvan Magalhaes NEGOTIATION
Jeanfrancois D VocelkaIndiaAsiya Javayant UNQUALIFIED
Chavez S RulapaughIndiaAsiya Javayant NEGOTIATION
Julie X SaylorsBrazilIvan Magalhaes PROPOSAL
Johnson L MacleadArgentinaBernardo Dominic PROPOSAL
Claire T RimAustraliaAmy Elsner RENEWAL
Claire K CaudyBrazilXuxue Feng RENEWAL
Misaki C VocelkaArgentinaElwin Sharvill NEGOTIATION
Kaitlin J ShinkoBrazilXuxue Feng RENEWAL
Claire Z CaudyItalyBernardo Dominic UNQUALIFIED
Ivar C CaudyCanadaIoni Bowcher QUALIFIED
Darci T PerinJapanBernardo Dominic NEGOTIATION
Tony P RulapaughSpainBernardo Dominic UNQUALIFIED
Aruna Z OstroskyJapanAsiya Javayant NEGOTIATION
David R ChuiItalyIvan Magalhaes NEGOTIATION
Jones A GauchoBrazilAmy Elsner PROPOSAL
Chavez Z DarakjyCanadaBernardo Dominic RENEWAL
Cody N FlosiSpainOnyama Limba NEGOTIATION
Juan F PerinJapanIoni Bowcher QUALIFIED
Cody M DoeArgentinaOnyama Limba NEW
Costa Y SchemmerCanadaStephen Shaw PROPOSAL
Arvin P PaprockiCanadaOnyama Limba PROPOSAL
James R DarakjyFranceAnna Fali UNQUALIFIED
James Z NestleRussiaBernardo Dominic QUALIFIED
Jennifer X OstroskyGermanyIvan Magalhaes UNQUALIFIED
Antonio W RutaGermanyAnna Fali RENEWAL
Juan P GlickAustraliaAnna Fali UNQUALIFIED
Jones Z PoquetteJapanStephen Shaw RENEWAL
Ricardo Z OstroskySpainOnyama Limba RENEWAL
Morrow N SaylorsUnited KingdomAnna Fali PROPOSAL
Ricardo N WieserUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois Y BowleySpainStephen Shaw NEGOTIATION
Smith M KuskoArgentinaAnna Fali NEW
Wickens U PaprockiSpainIvan Magalhaes NEGOTIATION
Deepesh L SlusarskiCanadaIvan Magalhaes PROPOSAL
Adams Q SlusarskiFranceAnna Fali RENEWAL
Julie N RoysterArgentinaAsiya Javayant UNQUALIFIED
Darci X RulapaughItalyXuxue Feng 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>