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
Adams T CaudyCanadaAnna Fali RENEWAL
Faith E RoysterItalyAnna Fali NEGOTIATION
Isabel Q CampainBrazilElwin Sharvill QUALIFIED
Adams B KolmetzUnited KingdomAmy Elsner PROPOSAL
Alejandro A StensethFranceBernardo Dominic NEW
Morrow V BriddickRussiaAnna Fali UNQUALIFIED
Jeanfrancois L FerenczSpainElwin Sharvill RENEWAL
Nicolas Z SlusarskiJapanOnyama Limba QUALIFIED
Salvatore M OldroydCanadaAmy Elsner PROPOSAL
Smith W GlickCanadaXuxue Feng RENEWAL
Salvatore S CaldareraAustraliaAnna Fali PROPOSAL
Aruna K RutaSpainElwin Sharvill UNQUALIFIED
Ricardo V MaletFranceStephen Shaw NEGOTIATION
Jefferson Y MacleadUnited KingdomXuxue Feng UNQUALIFIED
Nicolas S DoeArgentinaAsiya Javayant NEGOTIATION
Aruna F FlosiRussiaXuxue Feng QUALIFIED
Juan D BriddickFranceAnna Fali RENEWAL
Emily X SchemmerGermanyAnna Fali RENEWAL
Emily D NestleArgentinaXuxue Feng QUALIFIED
Morrow R RulapaughArgentinaElwin Sharvill RENEWAL
Antonio A FigeroaIndiaIoni Bowcher NEW
Greenwood N SergiFranceOnyama Limba RENEWAL
Smith Z BowleyCanadaAmy Elsner PROPOSAL
Ashley U MacleadFranceIoni Bowcher NEGOTIATION
Greenwood S ChuiBrazilIoni Bowcher UNQUALIFIED
Ashley K WaycottSpainElwin Sharvill UNQUALIFIED
Munro R BologniaArgentinaBernardo Dominic PROPOSAL
Antonio U AlbaresArgentinaIoni Bowcher NEW
Darci B WaycottGermanyAnna Fali UNQUALIFIED
Darci P RulapaughBrazilXuxue Feng NEW
Juan L RoysterArgentinaAnna Fali NEGOTIATION
Morrow Z MarrierCanadaOnyama Limba RENEWAL
Mayumi X InouyeItalyBernardo Dominic NEW
Clifford I KolmetzGermanyAnna Fali UNQUALIFIED
Misaki X FerenczRussiaAmy Elsner QUALIFIED
Arvin F DilliardArgentinaElwin Sharvill QUALIFIED
Wickens L VenereBrazilBernardo Dominic QUALIFIED
Leon Q DoeAustraliaElwin Sharvill NEW
Jones O DarakjyItalyAmy Elsner PROPOSAL
Jennifer N MarrierGermanyBernardo Dominic UNQUALIFIED
Cody G CaudyGermanyIvan Magalhaes PROPOSAL
Rodrigues J FollerUnited KingdomAmy Elsner PROPOSAL
Darci R NestleAustraliaElwin Sharvill UNQUALIFIED
Wickens Q InouyeFranceAsiya Javayant QUALIFIED
Chavez T GlickGermanyAnna Fali NEGOTIATION
Jefferson H WieserJapanAmy Elsner UNQUALIFIED
Arvin W RulapaughSpainBernardo Dominic NEGOTIATION
Ivar K OldroydGermanyStephen Shaw PROPOSAL
James T FigeroaItalyAsiya Javayant QUALIFIED
Cody S MarrierCanadaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens V TollnerBrazilXuxue Feng RENEWAL
Darci B DilliardIndiaXuxue Feng PROPOSAL
Chavez M FollerJapanIvan Magalhaes NEGOTIATION
Leja H InouyeGermanyBernardo Dominic QUALIFIED
David W MaletGermanyOnyama Limba PROPOSAL
Morrow Z VenereRussiaAsiya Javayant QUALIFIED
Cody H FigeroaRussiaStephen Shaw NEGOTIATION
Misaki I PerinIndiaAnna Fali QUALIFIED
Ricardo T GauchoArgentinaStephen Shaw NEW
Julie D TollnerGermanyBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens M RutaRussia2026-08-28Chanay, Jeffrey A Esq NEW86Elwin Sharvill
1001Arvin F PaprockiCanada2026-08-02Chanay, Jeffrey A Esq PROPOSAL33Xuxue Feng
1002Leon D SlusarskiSpain2026-08-23Buckley Miller Wright NEW1Xuxue Feng
1003Johnson U DilliardSpain2026-08-19Commercial Press UNQUALIFIED36Asiya Javayant
1004Silvio I PerinUnited Kingdom2026-08-14Buckley Miller Wright NEW28Anna Fali
1005Maisha L SchemmerAustralia2026-07-31Printing Dimensions NEW72Elwin Sharvill
1006Alejandro D ButtBrazil2026-08-22Buckley Miller Wright PROPOSAL63Anna Fali
1007Juan M InouyeCanada2026-08-06Benton, John B Jr RENEWAL5Amy Elsner
1008Chavez O MacleadItaly2026-08-27Truhlar And Truhlar Attys UNQUALIFIED2Bernardo Dominic
1009Jones I SlusarskiSpain2026-08-05Morlong Associates RENEWAL16Stephen Shaw
1010Greenwood P ShinkoArgentina2026-08-27Benton, John B Jr QUALIFIED98Amy Elsner
1011Antonio A ShinkoIndia2026-08-10Chemel, James L Cpa NEGOTIATION99Asiya Javayant
1012Cody E AlbaresJapan2026-08-12Chapman, Ross E Esq QUALIFIED25Stephen Shaw
1013David I SchemmerArgentina2026-08-14Chemel, James L Cpa NEGOTIATION53Onyama Limba
1014Antonio W BologniaGermany2026-08-25Commercial Press RENEWAL13Xuxue Feng
1015Chavez Y RimFrance2026-08-09Chanay, Jeffrey A Esq PROPOSAL61Ivan Magalhaes
1016Morrow W KolmetzUnited Kingdom2026-08-12Rangoni Of Florence NEW75Ivan Magalhaes
1017Deepesh E OldroydJapan2026-08-19Chemel, James L Cpa PROPOSAL34Xuxue Feng
1018Faith Q ButtAustralia2026-08-25Rousseaux, Michael Esq RENEWAL77Amy Elsner
1019Salvatore K NickaUnited Kingdom2026-08-05Benton, John B Jr NEGOTIATION24Amy Elsner
1020Aditya T MorascaSpain2026-08-16Buckley Miller Wright QUALIFIED62Stephen Shaw
1021Jeanfrancois A BologniaItaly2026-08-08Buckley Miller Wright NEW40Onyama Limba
1022Faith F DilliardUnited Kingdom2026-08-05Rousseaux, Michael Esq NEGOTIATION88Ioni Bowcher
1023David M StockhamAustralia2026-08-09Buckley Miller Wright PROPOSAL43Asiya Javayant
1024Munro N DilliardItaly2026-08-28King, Christopher A Esq QUALIFIED27Bernardo Dominic
1025Isabel H StockhamCanada2026-08-02Truhlar And Truhlar Attys NEW80Elwin Sharvill
1026Jennifer D AmigonJapan2026-08-11Feltz Printing Service PROPOSAL95Onyama Limba
1027Alejandro M FigeroaCanada2026-08-04Buckley Miller Wright UNQUALIFIED50Onyama Limba
1028Arvin F CampainFrance2026-08-16Chanay, Jeffrey A Esq NEGOTIATION11Elwin Sharvill
1029Sinclair Y RimArgentina2026-08-01Rangoni Of Florence PROPOSAL45Ivan Magalhaes
1030Ivar R WhobreyFrance2026-08-07Chanay, Jeffrey A Esq NEW89Ivan Magalhaes
1031David W RimSpain2026-08-09Buckley Miller Wright NEW25Ioni Bowcher
1032Ricardo J ChuiSpain2026-08-20Morlong Associates QUALIFIED69Amy Elsner
1033Jefferson W MarrierArgentina2026-08-21Chemel, James L Cpa NEGOTIATION70Elwin Sharvill
1034Jefferson D PoquetteJapan2026-08-18Feltz Printing Service NEW85Asiya Javayant
1035Misaki V IturbideBrazil2026-08-05Rousseaux, Michael Esq RENEWAL71Elwin Sharvill
1036Arvin D GauchoGermany2026-08-28Rousseaux, Michael Esq NEW74Asiya Javayant
1037Emily U TollnerItaly2026-08-23Chemel, James L Cpa NEW3Onyama Limba
1038Ricardo Y StockhamIndia2026-08-11Feltz Printing Service QUALIFIED76Stephen Shaw
1039Deepesh V SaylorsItaly2026-08-16Dorl, James J Esq PROPOSAL16Asiya Javayant
1040Chavez P VocelkaCanada2026-08-09Chanay, Jeffrey A Esq NEGOTIATION79Stephen Shaw
1041Silvio P StockhamSpain2026-07-30Feltz Printing Service NEW4Bernardo Dominic
1042Kaitlin T PoquetteSpain2026-08-18Buckley Miller Wright NEGOTIATION80Onyama Limba
1043Cody B GlickBrazil2026-08-01Feltz Printing Service NEGOTIATION32Bernardo Dominic
1044Alejandro M CaldareraBrazil2026-07-30Dorl, James J Esq UNQUALIFIED76Onyama Limba
1045Maisha C SchemmerGermany2026-08-18Dorl, James J Esq PROPOSAL34Asiya Javayant
1046Salvatore B FigeroaRussia2026-08-23Rousseaux, Michael Esq RENEWAL93Amy Elsner
1047Claire M CaudyUnited Kingdom2026-08-19Feiner Bros RENEWAL16Ioni Bowcher
1048Mujtaba O ButtItaly2026-08-02King, Christopher A Esq RENEWAL17Xuxue Feng
1049Sinclair U PoquetteUnited Kingdom2026-08-08Chanay, Jeffrey A Esq RENEWAL93Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio R IturbideItalyAsiya Javayant NEW
Jennifer H FlosiCanadaAmy Elsner QUALIFIED
Izzy M MacleadBrazilElwin Sharvill UNQUALIFIED
Misaki E FerenczGermanyElwin Sharvill PROPOSAL
Misaki Q AmigonItalyAmy Elsner UNQUALIFIED
Ashley F GauchoFranceIoni Bowcher NEW
Ivar T MaletSpainAsiya Javayant UNQUALIFIED
Nicolas Y OstroskyAustraliaBernardo Dominic QUALIFIED
Octavia R FerenczAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues A StensethUnited KingdomStephen Shaw RENEWAL
Ricardo C SlusarskiArgentinaXuxue Feng QUALIFIED
Faith Y MacleadUnited KingdomOnyama Limba UNQUALIFIED
Smith O MorascaSpainIoni Bowcher QUALIFIED
Tony O IturbideIndiaAnna Fali UNQUALIFIED
Wickens D AmigonJapanAsiya Javayant NEW
Octavia V RoysterUnited KingdomXuxue Feng NEGOTIATION
Maria P ChuiRussiaIoni Bowcher QUALIFIED
Rodrigues E GillianBrazilAsiya Javayant NEW
Ricardo J SergiIndiaAsiya Javayant NEGOTIATION
Jones S RoysterItalyAmy Elsner UNQUALIFIED
Maisha L FollerJapanAnna Fali RENEWAL
Maria B CaudyFranceXuxue Feng NEW
Nicolas L InouyeArgentinaAmy Elsner RENEWAL
Mujtaba Y OstroskyCanadaBernardo Dominic UNQUALIFIED
Maria Z BriddickIndiaAmy Elsner PROPOSAL
Emily E InouyeGermanyStephen Shaw PROPOSAL
Mayumi L StockhamCanadaBernardo Dominic UNQUALIFIED
Aika R WhobreySpainBernardo Dominic QUALIFIED
Clifford Q FigeroaBrazilOnyama Limba QUALIFIED
Claire U GauchoItalyElwin Sharvill NEGOTIATION
Aditya G NestleUnited KingdomElwin Sharvill NEGOTIATION
Mayumi E MarrierFranceIvan Magalhaes QUALIFIED
James O GlickFranceBernardo Dominic UNQUALIFIED
Jennifer K CampainItalyBernardo Dominic PROPOSAL
Silvio O GauchoIndiaAsiya Javayant RENEWAL
Silvio T GlickGermanyAmy Elsner NEGOTIATION
Chavez K FollerUnited KingdomOnyama Limba PROPOSAL
Ashley J DoeJapanAmy Elsner PROPOSAL
Nicolas H GlickRussiaAsiya Javayant RENEWAL
Jennifer Q CaudyUnited KingdomBernardo Dominic QUALIFIED
Kaitlin U IturbideUnited KingdomXuxue Feng NEW
Maisha K RutaRussiaAsiya Javayant QUALIFIED
Ashley M StockhamAustraliaIvan Magalhaes PROPOSAL
Cody E ButtItalyStephen Shaw UNQUALIFIED
Jennifer Q RimGermanyAmy Elsner RENEWAL
Arvin L ButtItalyAnna Fali UNQUALIFIED
Wickens B BologniaUnited KingdomStephen Shaw QUALIFIED
Jefferson K RoysterBrazilXuxue Feng NEGOTIATION
Leja C NickaUnited KingdomElwin Sharvill QUALIFIED
Julie O GauchoIndiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Tony B Gillian
Ashley Z Perin
Mujtaba U Tollner
Kaitlin T Stockham
Smith H Amigon
Francesco B Kolmetz
Octavia J Bolognia
Juan Y Tollner
Aditya W Rulapaugh
Nicolas C Caudy
Jones F Campain
Jones U Poquette
Smith D Chui
Silvio O Wieser
Francesco N Ostrosky
Stacey J Amigon
Cody M Garufi
Deepesh U Chui
Sinclair N Bowley
Smith G Vocelka
Clifford W Maclead
Johnson P Caudy
Sinclair O Stenseth
Leja P Royster
Chavez M Schemmer
Aditya K Ferencz
Nicolas K Poquette
Adams S Ferencz
Faith J Schemmer
Costa V Wieser
Emily S Figeroa
Kaitlin J Dilliard
Aditya J Gaucho
Stacey S Campain
Morrow U Bolognia
Greenwood A Kusko
Ricardo T Bowley
Salvatore H Tollner
Leja Q Kolmetz
Jeanfrancois U Nestle
Jefferson Y Perin
Juan J Iturbide
Jeanfrancois O Chui
Mayumi S Foller
Chavez V Garufi
Aditya V Wieser
Julie U Ferencz
Isabel K Bowley
Munro L Waycott
Ivar T Waycott
IdCountryDate
1000Italy2026-08-26
1001Australia2026-08-07
1002Canada2026-08-20
1003Italy2026-08-05
1004Canada2026-08-11
1005France2026-08-09
1006Russia2026-08-12
1007Germany2026-08-14
1008United Kingdom2026-08-12
1009Brazil2026-08-24
1010Spain2026-08-05
1011United Kingdom2026-08-04
1012Russia2026-07-31
1013Russia2026-08-23
1014Japan2026-08-01
1015Italy2026-08-17
1016Canada2026-08-07
1017Germany2026-08-07
1018United Kingdom2026-08-20
1019France2026-08-16
1020France2026-08-03
1021Australia2026-08-21
1022Japan2026-08-17
1023France2026-08-28
1024Japan2026-08-19
1025Russia2026-08-18
1026India2026-08-01
1027United Kingdom2026-07-31
1028France2026-08-08
1029India2026-08-19
1030India2026-08-17
1031Brazil2026-08-02
1032Brazil2026-08-17
1033Germany2026-08-27
1034France2026-08-13
1035Japan2026-08-11
1036France2026-08-05
1037India2026-08-03
1038Canada2026-08-24
1039United Kingdom2026-08-18
1040Germany2026-08-15
1041Germany2026-08-23
1042Spain2026-08-19
1043Germany2026-08-04
1044Canada2026-08-26
1045Italy2026-08-08
1046Spain2026-08-08
1047Australia2026-08-08
1048Germany2026-08-28
1049India2026-07-31

On-Demand Data

NameIdCountryDate
Salvatore A Saylors1000Japan2026-08-11
Chavez J Rulapaugh1001Russia2026-08-19
Kadeem H Flosi1002Japan2026-08-03
Mayumi E Garufi1003Germany2026-08-20
Izzy V Paprocki1004United Kingdom2026-08-18
Jefferson N Kolmetz1005Australia2026-08-23
Johnson V Venere1006Russia2026-08-09
Claire A Saylors1007India2026-08-04
Salvatore R Wieser1008France2026-08-03
Jeanfrancois R Sergi1009Canada2026-08-10
Smith T Doe1010Brazil2026-08-12
Chavez X Caudy1011Germany2026-08-10
Costa U Wieser1012France2026-08-10
Francesco Z Briddick1013Spain2026-08-08
Kadeem R Rim1014Italy2026-08-14
Antonio W Briddick1015Japan2026-08-01
Maria S Darakjy1016Spain2026-08-20
Isabel S Tollner1017Argentina2026-08-07
Stacey D Caudy1018Russia2026-08-09
Aruna O Inouye1019Japan2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba C NestleCanadaAsiya Javayant NEGOTIATION
Ricardo T VocelkaCanadaElwin Sharvill PROPOSAL
Leon V SergiArgentinaElwin Sharvill NEGOTIATION
Emily R DarakjyCanadaAsiya Javayant NEGOTIATION
Maria K DarakjyBrazilIoni Bowcher UNQUALIFIED
Silvio J ButtCanadaElwin Sharvill UNQUALIFIED
Kaitlin M CaldareraGermanyBernardo Dominic NEW
Faith U DilliardAustraliaStephen Shaw NEGOTIATION
Sinclair Q AmigonJapanAmy Elsner UNQUALIFIED
Darci W TollnerBrazilIoni Bowcher RENEWAL
Arvin S InouyeRussiaIvan Magalhaes NEGOTIATION
Munro E VenereSpainBernardo Dominic NEGOTIATION
Sinclair A MorascaSpainBernardo Dominic RENEWAL
Izzy E IturbideFranceStephen Shaw UNQUALIFIED
Darci Q FerenczArgentinaXuxue Feng NEW
Aika Z OldroydAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois Y MaletArgentinaAsiya Javayant NEGOTIATION
Isabel Q CaudyItalyStephen Shaw QUALIFIED
Silvio U SaylorsBrazilIoni Bowcher PROPOSAL
Nicolas Y NickaCanadaStephen Shaw UNQUALIFIED
Deepesh Y DarakjyCanadaIvan Magalhaes NEGOTIATION
Ricardo F FlosiAustraliaStephen Shaw QUALIFIED
Izzy C MaletArgentinaIoni Bowcher NEGOTIATION
Costa T RulapaughItalyOnyama Limba PROPOSAL
Ricardo Y RutaAustraliaXuxue Feng QUALIFIED
Ashley Z NestleSpainOnyama Limba QUALIFIED
Costa S AlbaresAustraliaXuxue Feng RENEWAL
Ashley E OstroskyIndiaStephen Shaw NEW
Mujtaba K SergiIndiaAsiya Javayant PROPOSAL
James S DilliardCanadaBernardo Dominic QUALIFIED
Claire B ButtIndiaStephen Shaw NEW
Silvio B GarufiSpainIoni Bowcher UNQUALIFIED
Rodrigues I SergiIndiaIoni Bowcher NEW
Adams E SlusarskiItalyIvan Magalhaes QUALIFIED
Izzy Z MarrierJapanIoni Bowcher QUALIFIED
Jefferson L DarakjyCanadaStephen Shaw QUALIFIED
Mujtaba R DoeIndiaOnyama Limba UNQUALIFIED
Costa D NickaGermanyAsiya Javayant NEW
Costa D MorascaJapanIvan Magalhaes QUALIFIED
Jeanfrancois R KuskoItalyOnyama Limba PROPOSAL

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