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
Antonio K IturbideCanadaIvan Magalhaes UNQUALIFIED
Silvio I KolmetzItalyBernardo Dominic RENEWAL
Costa C CaudyItalyStephen Shaw NEW
Jeanfrancois B IturbideArgentinaIoni Bowcher PROPOSAL
Emily K VenereSpainStephen Shaw RENEWAL
Morrow E IturbideJapanIoni Bowcher NEW
Sinclair G ShinkoAustraliaBernardo Dominic NEGOTIATION
Leon W SaylorsItalyIoni Bowcher RENEWAL
Nicolas F CaudyGermanyAnna Fali PROPOSAL
Costa T RoysterCanadaOnyama Limba PROPOSAL
Wickens C GlickItalyAmy Elsner UNQUALIFIED
Adams Z CaldareraUnited KingdomStephen Shaw PROPOSAL
Nicolas I InouyeCanadaAnna Fali UNQUALIFIED
Emily N SaylorsIndiaStephen Shaw QUALIFIED
Cody P TollnerAustraliaBernardo Dominic UNQUALIFIED
Alejandro P SchemmerItalyXuxue Feng NEW
Octavia S CaudyBrazilIvan Magalhaes PROPOSAL
Aruna I KolmetzIndiaIoni Bowcher NEGOTIATION
Alejandro L SaylorsJapanAsiya Javayant UNQUALIFIED
James E ChuiItalyStephen Shaw NEGOTIATION
Rodrigues O FerenczFranceElwin Sharvill RENEWAL
Leon T FollerCanadaBernardo Dominic NEW
Sinclair C IturbideUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues W FigeroaIndiaStephen Shaw NEW
Salvatore Y OldroydFranceStephen Shaw UNQUALIFIED
James G GillianBrazilAnna Fali NEW
Maisha B FollerAustraliaAsiya Javayant NEGOTIATION
Salvatore S NestleAustraliaOnyama Limba PROPOSAL
Octavia C NickaItalyAmy Elsner NEW
Jeanfrancois D GauchoSpainElwin Sharvill NEGOTIATION
Costa D ShinkoBrazilAnna Fali PROPOSAL
Ashley N RimJapanXuxue Feng PROPOSAL
Wickens R KuskoFranceBernardo Dominic NEGOTIATION
Maisha M WhobreyJapanOnyama Limba RENEWAL
Mayumi E MarrierFranceBernardo Dominic RENEWAL
Faith U WhobreySpainStephen Shaw UNQUALIFIED
Emily L ChuiCanadaBernardo Dominic UNQUALIFIED
Francesco R DoeIndiaIvan Magalhaes RENEWAL
Alejandro F SaylorsFranceAsiya Javayant RENEWAL
Jones E ChuiFranceAsiya Javayant QUALIFIED
Darci U ChuiSpainXuxue Feng NEW
Aika A RoysterFranceIvan Magalhaes QUALIFIED
Greenwood J NickaArgentinaElwin Sharvill NEW
Stacey K VenereItalyAmy Elsner RENEWAL
Maisha O BriddickIndiaBernardo Dominic RENEWAL
Silvio S BologniaGermanyXuxue Feng NEW
Cody O RoysterFranceXuxue Feng PROPOSAL
Mujtaba V ChuiArgentinaAmy Elsner QUALIFIED
Darci J MarrierUnited KingdomIvan Magalhaes PROPOSAL
Faith F KolmetzGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika U FollerGermanyElwin Sharvill QUALIFIED
Mayumi N KuskoAustraliaElwin Sharvill NEW
Aika J FigeroaSpainElwin Sharvill NEW
Deepesh D DarakjyItalyAmy Elsner NEGOTIATION
Aruna L SchemmerAustraliaOnyama Limba NEGOTIATION
Clifford A FigeroaCanadaAmy Elsner QUALIFIED
Tony P GauchoBrazilBernardo Dominic PROPOSAL
Darci P SergiJapanIvan Magalhaes UNQUALIFIED
James L AlbaresSpainElwin Sharvill RENEWAL
Emily N StensethUnited KingdomAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Y VenereAustralia2026-08-07Rangoni Of Florence RENEWAL44Ioni Bowcher
1001Adams V SchemmerArgentina2026-07-25Morlong Associates PROPOSAL63Amy Elsner
1002Maisha P CaldareraFrance2026-08-03Chanay, Jeffrey A Esq NEGOTIATION33Onyama Limba
1003Mujtaba N WhobreyIndia2026-07-27Rangoni Of Florence PROPOSAL74Anna Fali
1004Wickens T DarakjyFrance2026-07-19Benton, John B Jr NEW69Ioni Bowcher
1005Maisha V DarakjyJapan2026-07-17Chanay, Jeffrey A Esq RENEWAL58Bernardo Dominic
1006Jeanfrancois K ButtJapan2026-08-02King, Christopher A Esq NEW51Xuxue Feng
1007Nicolas B CaldareraUnited Kingdom2026-07-20Feiner Bros QUALIFIED38Onyama Limba
1008Darci D PerinIndia2026-08-09Buckley Miller Wright NEW30Ivan Magalhaes
1009Nicolas V GarufiJapan2026-08-15Dorl, James J Esq NEGOTIATION78Anna Fali
1010Cody N OstroskyIndia2026-08-02Chanay, Jeffrey A Esq NEGOTIATION43Xuxue Feng
1011Tony B VocelkaAustralia2026-08-08Rousseaux, Michael Esq RENEWAL8Elwin Sharvill
1012Mujtaba J PoquetteUnited Kingdom2026-07-22Commercial Press RENEWAL73Bernardo Dominic
1013Antonio F FlosiAustralia2026-07-20Chemel, James L Cpa RENEWAL95Anna Fali
1014Deepesh H StensethItaly2026-08-03Commercial Press NEW68Anna Fali
1015James D SlusarskiIndia2026-08-11Feiner Bros UNQUALIFIED8Xuxue Feng
1016Clifford B DoeBrazil2026-07-24Printing Dimensions QUALIFIED25Stephen Shaw
1017Nicolas G VocelkaIndia2026-07-31Truhlar And Truhlar Attys RENEWAL50Onyama Limba
1018Deepesh L SchemmerRussia2026-07-27Rangoni Of Florence QUALIFIED57Anna Fali
1019Murillo K MorascaJapan2026-07-29Truhlar And Truhlar Attys PROPOSAL91Stephen Shaw
1020Smith A RimItaly2026-07-25Buckley Miller Wright NEW16Amy Elsner
1021Deepesh I KolmetzBrazil2026-08-01Truhlar And Truhlar Attys UNQUALIFIED55Ivan Magalhaes
1022Juan M DarakjyArgentina2026-07-26Feltz Printing Service NEGOTIATION82Amy Elsner
1023Munro A CampainSpain2026-07-17Dorl, James J Esq NEGOTIATION39Elwin Sharvill
1024David W BowleyCanada2026-08-02Chemel, James L Cpa NEGOTIATION5Asiya Javayant
1025Jeanfrancois G PerinRussia2026-07-27Feltz Printing Service NEW46Elwin Sharvill
1026Sinclair C InouyeFrance2026-07-19Chemel, James L Cpa QUALIFIED45Stephen Shaw
1027Costa S RoysterArgentina2026-08-09Morlong Associates NEW28Anna Fali
1028Isabel Q AmigonGermany2026-07-24Morlong Associates UNQUALIFIED86Bernardo Dominic
1029Munro R SergiAustralia2026-08-10Rousseaux, Michael Esq UNQUALIFIED34Ioni Bowcher
1030Izzy V WhobreyCanada2026-08-03King, Christopher A Esq QUALIFIED16Onyama Limba
1031Arvin A FollerCanada2026-07-25Chanay, Jeffrey A Esq PROPOSAL42Ioni Bowcher
1032Juan T WieserAustralia2026-08-03Chanay, Jeffrey A Esq PROPOSAL60Stephen Shaw
1033Emily Y StockhamJapan2026-07-23Benton, John B Jr UNQUALIFIED63Ivan Magalhaes
1034Francesco H VenereGermany2026-08-12Printing Dimensions QUALIFIED35Stephen Shaw
1035Aruna P WaycottUnited Kingdom2026-08-02Rangoni Of Florence RENEWAL11Asiya Javayant
1036Antonio T GauchoUnited Kingdom2026-07-24Printing Dimensions PROPOSAL22Onyama Limba
1037David P PoquetteBrazil2026-07-30Dorl, James J Esq RENEWAL31Elwin Sharvill
1038Murillo L AlbaresRussia2026-07-26Rangoni Of Florence NEGOTIATION87Ioni Bowcher
1039Clifford E NestleFrance2026-08-03Commercial Press RENEWAL42Ioni Bowcher
1040Arvin Z DarakjyFrance2026-07-29Morlong Associates PROPOSAL53Ivan Magalhaes
1041Alejandro A VenereCanada2026-07-21Buckley Miller Wright RENEWAL57Bernardo Dominic
1042David P IturbideRussia2026-08-07Chapman, Ross E Esq RENEWAL71Stephen Shaw
1043Mayumi E SchemmerAustralia2026-07-18Feltz Printing Service UNQUALIFIED9Stephen Shaw
1044Leon J DarakjyBrazil2026-08-10Buckley Miller Wright NEW64Bernardo Dominic
1045Misaki Z RulapaughSpain2026-08-01Printing Dimensions UNQUALIFIED54Anna Fali
1046Jennifer T FigeroaUnited Kingdom2026-08-11Chemel, James L Cpa PROPOSAL5Amy Elsner
1047Stacey K GillianArgentina2026-07-21Benton, John B Jr RENEWAL81Elwin Sharvill
1048Morrow Z BowleyUnited Kingdom2026-07-29Printing Dimensions RENEWAL98Bernardo Dominic
1049Rodrigues G OldroydArgentina2026-07-28Dorl, James J Esq PROPOSAL52Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maria O MaletUnited KingdomIoni Bowcher NEW
Johnson E BologniaAustraliaIvan Magalhaes PROPOSAL
Mujtaba R VocelkaGermanyOnyama Limba RENEWAL
Kaitlin A TollnerJapanIvan Magalhaes NEW
Mujtaba U PaprockiBrazilStephen Shaw PROPOSAL
Aruna H IturbideArgentinaIvan Magalhaes QUALIFIED
Jones T InouyeJapanXuxue Feng NEGOTIATION
Emily J BowleyRussiaIoni Bowcher UNQUALIFIED
Emily Z VocelkaSpainAnna Fali QUALIFIED
Johnson J GauchoRussiaBernardo Dominic PROPOSAL
Isabel T KuskoJapanBernardo Dominic PROPOSAL
Maria G CampainJapanStephen Shaw UNQUALIFIED
Darci G DoeFranceBernardo Dominic UNQUALIFIED
Morrow Y CaudyCanadaXuxue Feng PROPOSAL
Ivar Q AmigonRussiaElwin Sharvill UNQUALIFIED
Ashley Q RimSpainXuxue Feng UNQUALIFIED
Maisha F MaletFranceAsiya Javayant QUALIFIED
Ivar V BologniaArgentinaIoni Bowcher PROPOSAL
Juan T VenereJapanOnyama Limba PROPOSAL
Leon S AmigonFranceStephen Shaw RENEWAL
Murillo D NickaItalyAsiya Javayant PROPOSAL
Salvatore R TollnerGermanyBernardo Dominic NEW
Alejandro X InouyeUnited KingdomOnyama Limba PROPOSAL
Julie Y MaletBrazilElwin Sharvill RENEWAL
Emily R StensethSpainAsiya Javayant RENEWAL
Isabel L RulapaughBrazilStephen Shaw RENEWAL
Johnson F FerenczBrazilBernardo Dominic RENEWAL
Silvio A BriddickItalyStephen Shaw UNQUALIFIED
Juan U RoysterJapanAmy Elsner NEGOTIATION
Morrow M NestleFranceIvan Magalhaes QUALIFIED
Maria Y RimCanadaElwin Sharvill NEW
Darci K DilliardUnited KingdomStephen Shaw PROPOSAL
Octavia W MaletAustraliaIoni Bowcher RENEWAL
Faith M KuskoSpainElwin Sharvill PROPOSAL
Adams F WaycottFranceBernardo Dominic UNQUALIFIED
Wickens T OstroskyItalyElwin Sharvill UNQUALIFIED
Misaki R MaletIndiaAsiya Javayant RENEWAL
Maria L AlbaresGermanyIvan Magalhaes RENEWAL
Arvin L StockhamArgentinaAsiya Javayant NEGOTIATION
Arvin L SergiBrazilAsiya Javayant UNQUALIFIED
Jefferson M DoeCanadaAmy Elsner PROPOSAL
Aditya U VocelkaItalyIoni Bowcher PROPOSAL
Kaitlin J VenereFranceAmy Elsner UNQUALIFIED
Francesco P FigeroaIndiaIvan Magalhaes QUALIFIED
Nicolas T MaletCanadaAsiya Javayant RENEWAL
Leja N KolmetzRussiaElwin Sharvill NEGOTIATION
Aruna C NestleSpainIvan Magalhaes UNQUALIFIED
Darci G TollnerAustraliaOnyama Limba PROPOSAL
Stacey D GarufiCanadaIoni Bowcher PROPOSAL
Chavez T ChuiSpainStephen Shaw PROPOSAL
Frozen Columns
Name
Alejandro B Briddick
Antonio C Marrier
Maria U Figeroa
Murillo W Gillian
Maria A Foller
Faith M Ostrosky
Ashley C Nestle
Salvatore G Flosi
Kaitlin C Shinko
Salvatore N Foller
Misaki J Ruta
Darci O Oldroyd
Leon Y Schemmer
Jones O Rim
Sinclair N Waycott
Costa F Garufi
Kaitlin M Figeroa
James P Venere
Izzy D Doe
Wickens T Stockham
Darci A Nestle
Salvatore W Figeroa
Greenwood K Shinko
Munro B Gillian
David B Poquette
Mujtaba V Bolognia
Smith R Kolmetz
James G Kolmetz
Misaki S Bolognia
Mayumi W Royster
Greenwood G Glick
Adams H Garufi
Arvin G Flosi
Isabel O Oldroyd
Aditya X Malet
Munro C Rulapaugh
Salvatore G Waycott
Alejandro T Butt
Juan G Campain
Juan Z Amigon
Smith X Butt
Chavez T Stenseth
Arvin B Gaucho
Kadeem N Glick
Maria T Saylors
Deepesh O Tollner
Jefferson J Rim
Ashley H Foller
Jefferson J Gillian
Silvio W Caudy
IdCountryDate
1000United Kingdom2026-07-24
1001Russia2026-08-08
1002Germany2026-07-19
1003Japan2026-08-08
1004Germany2026-08-13
1005Spain2026-07-23
1006Canada2026-08-03
1007France2026-07-24
1008Canada2026-07-28
1009India2026-07-21
1010Canada2026-07-28
1011India2026-08-12
1012Russia2026-08-03
1013United Kingdom2026-07-23
1014Argentina2026-08-07
1015Spain2026-07-18
1016Germany2026-08-06
1017Spain2026-07-22
1018Canada2026-07-29
1019Spain2026-08-14
1020Argentina2026-07-18
1021Australia2026-07-21
1022Japan2026-08-12
1023Brazil2026-07-20
1024Argentina2026-08-05
1025Spain2026-08-09
1026India2026-08-12
1027Italy2026-08-06
1028France2026-07-17
1029United Kingdom2026-07-26
1030Canada2026-08-09
1031Argentina2026-08-01
1032Spain2026-07-17
1033Italy2026-08-02
1034Japan2026-08-10
1035Brazil2026-07-22
1036Spain2026-08-15
1037Brazil2026-07-28
1038Brazil2026-07-18
1039Argentina2026-08-10
1040France2026-07-25
1041India2026-08-15
1042Russia2026-07-18
1043Argentina2026-07-20
1044Germany2026-07-27
1045Argentina2026-08-14
1046France2026-07-21
1047Japan2026-08-11
1048Japan2026-07-19
1049India2026-07-20

On-Demand Data

NameIdCountryDate
Nicolas I Malet1000Canada2026-07-30
Silvio M Maclead1001India2026-07-25
Mayumi G Inouye1002Germany2026-08-08
Jefferson H Bowley1003France2026-08-11
Murillo C Wieser1004Canada2026-07-18
Rodrigues Q Schemmer1005Japan2026-07-29
Leja T Venere1006India2026-08-11
Mayumi U Dilliard1007Italy2026-07-27
Tony B Amigon1008United Kingdom2026-07-28
Antonio N Campain1009France2026-08-06
Cody O Saylors1010Brazil2026-07-22
Maria B Schemmer1011France2026-08-07
Mayumi T Morasca1012Italy2026-08-08
Antonio K Flosi1013Canada2026-07-27
Johnson H Shinko1014Spain2026-07-22
Greenwood C Perin1015Spain2026-08-12
Juan D Gillian1016Brazil2026-07-22
Misaki D Royster1017Japan2026-07-25
Jefferson R Chui1018Japan2026-08-04
Isabel O Flosi1019Argentina2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin K SlusarskiFranceElwin Sharvill NEW
Stacey U OstroskySpainStephen Shaw QUALIFIED
Aditya F ButtAustraliaXuxue Feng QUALIFIED
Murillo X InouyeIndiaStephen Shaw QUALIFIED
Ashley N NickaJapanIoni Bowcher NEGOTIATION
Maisha Q SlusarskiIndiaOnyama Limba PROPOSAL
James L CampainRussiaElwin Sharvill UNQUALIFIED
Sinclair R SchemmerJapanOnyama Limba UNQUALIFIED
Deepesh I MacleadAustraliaIoni Bowcher PROPOSAL
Leon G PoquetteBrazilAnna Fali NEGOTIATION
Aruna A GillianArgentinaStephen Shaw NEW
Deepesh R FigeroaRussiaElwin Sharvill QUALIFIED
Deepesh P KuskoIndiaStephen Shaw PROPOSAL
Clifford X DoeAustraliaOnyama Limba QUALIFIED
Jefferson I ButtSpainOnyama Limba QUALIFIED
Morrow K WhobreyRussiaIvan Magalhaes RENEWAL
Juan V OstroskyGermanyOnyama Limba QUALIFIED
Kadeem F MaletIndiaOnyama Limba RENEWAL
Adams K SlusarskiIndiaOnyama Limba RENEWAL
Kadeem Q RoysterJapanIvan Magalhaes NEGOTIATION
Maria D OstroskyArgentinaBernardo Dominic NEW
Kadeem F PerinUnited KingdomBernardo Dominic PROPOSAL
James V ShinkoArgentinaAsiya Javayant UNQUALIFIED
Cody F BriddickBrazilXuxue Feng PROPOSAL
Juan N FerenczFranceStephen Shaw RENEWAL
Julie Y MaletBrazilElwin Sharvill QUALIFIED
Aditya K RoysterUnited KingdomStephen Shaw QUALIFIED
Aika M SchemmerFranceElwin Sharvill NEGOTIATION
Isabel H WieserArgentinaOnyama Limba NEW
Sinclair Q AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair C PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Faith U StockhamJapanXuxue Feng RENEWAL
Murillo P RulapaughRussiaAsiya Javayant UNQUALIFIED
Maisha U IturbideAustraliaIvan Magalhaes UNQUALIFIED
Alejandro P RimAustraliaAmy Elsner UNQUALIFIED
Clifford X MorascaGermanyAnna Fali RENEWAL
Kadeem L WhobreyArgentinaAsiya Javayant NEGOTIATION
Jones G PaprockiSpainAmy Elsner NEW
Juan Q GlickArgentinaOnyama Limba NEGOTIATION
Julie R BowleyItalyAsiya Javayant 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>