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
Cody T SlusarskiArgentinaOnyama Limba PROPOSAL
Costa B BowleyArgentinaOnyama Limba RENEWAL
Antonio Y StensethBrazilXuxue Feng NEGOTIATION
Rodrigues R FlosiBrazilAmy Elsner RENEWAL
Julie D IturbideJapanElwin Sharvill NEGOTIATION
Juan Z VocelkaIndiaBernardo Dominic QUALIFIED
Clifford D MaletItalyAmy Elsner NEGOTIATION
Smith Z IturbideBrazilBernardo Dominic NEGOTIATION
Rodrigues G SlusarskiCanadaElwin Sharvill NEW
Silvio B RutaFranceAsiya Javayant NEW
Ashley O MorascaAustraliaIvan Magalhaes QUALIFIED
Antonio D PoquetteItalyAmy Elsner QUALIFIED
Murillo G StockhamAustraliaXuxue Feng PROPOSAL
Stacey R WieserIndiaStephen Shaw RENEWAL
Jefferson Y GlickFranceElwin Sharvill UNQUALIFIED
Jeanfrancois J CaudyUnited KingdomStephen Shaw NEGOTIATION
Cody T ButtRussiaIoni Bowcher NEGOTIATION
Arvin U CaldareraAustraliaElwin Sharvill NEW
Chavez H GlickItalyBernardo Dominic PROPOSAL
Misaki P DarakjyJapanStephen Shaw RENEWAL
Faith W WieserBrazilAmy Elsner UNQUALIFIED
Alejandro R FlosiSpainAsiya Javayant QUALIFIED
James N OstroskyFranceBernardo Dominic PROPOSAL
Jennifer Z DoeJapanStephen Shaw QUALIFIED
Smith V OldroydBrazilElwin Sharvill UNQUALIFIED
Aika Z SchemmerItalyIoni Bowcher QUALIFIED
Ashley M PaprockiArgentinaStephen Shaw UNQUALIFIED
Jones R CampainItalyAnna Fali NEGOTIATION
Juan T MacleadAustraliaStephen Shaw UNQUALIFIED
Izzy X VocelkaSpainIvan Magalhaes PROPOSAL
Jennifer Q StockhamArgentinaIoni Bowcher NEW
Kadeem P FollerSpainStephen Shaw RENEWAL
Adams R OstroskySpainAnna Fali NEW
Octavia Q BriddickArgentinaStephen Shaw NEW
Salvatore K GarufiArgentinaIvan Magalhaes PROPOSAL
Francesco R RoysterRussiaIoni Bowcher UNQUALIFIED
Munro B OstroskyGermanyAsiya Javayant PROPOSAL
Clifford E PoquetteItalyAnna Fali UNQUALIFIED
Jeanfrancois B MaletIndiaXuxue Feng UNQUALIFIED
Aruna Q StockhamFranceIvan Magalhaes PROPOSAL
Chavez J RoysterAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois Z PaprockiJapanElwin Sharvill UNQUALIFIED
Leon J DarakjyJapanAmy Elsner PROPOSAL
Leon R SaylorsRussiaIoni Bowcher PROPOSAL
Mujtaba F DilliardGermanyIvan Magalhaes RENEWAL
Johnson O CaudyItalyStephen Shaw PROPOSAL
Mayumi K ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Aditya E DarakjyRussiaIvan Magalhaes PROPOSAL
Jones R BowleyCanadaXuxue Feng PROPOSAL
James L SlusarskiArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez N SaylorsArgentinaXuxue Feng RENEWAL
Chavez I DarakjyItalyElwin Sharvill UNQUALIFIED
Maria S WhobreyCanadaXuxue Feng NEGOTIATION
Octavia N NestleRussiaXuxue Feng NEGOTIATION
James O MaletSpainOnyama Limba QUALIFIED
Jennifer S OldroydJapanElwin Sharvill RENEWAL
Smith K ChuiSpainIoni Bowcher NEW
Claire U NickaRussiaStephen Shaw RENEWAL
Mujtaba J MorascaFranceElwin Sharvill PROPOSAL
Claire F VocelkaItalyXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford D SchemmerCanada2026-07-23Rousseaux, Michael Esq QUALIFIED38Ioni Bowcher
1001Mayumi D BowleyArgentina2026-08-07Chanay, Jeffrey A Esq RENEWAL77Ivan Magalhaes
1002Murillo Q RulapaughBrazil2026-08-03Dorl, James J Esq QUALIFIED7Amy Elsner
1003Jennifer V KolmetzGermany2026-07-19Morlong Associates QUALIFIED45Xuxue Feng
1004Ashley S RoysterFrance2026-08-05Commercial Press RENEWAL44Ioni Bowcher
1005Salvatore F SchemmerFrance2026-07-31Chapman, Ross E Esq NEW76Bernardo Dominic
1006Jones I GauchoItaly2026-08-10Chemel, James L Cpa NEW18Stephen Shaw
1007Isabel R RulapaughIndia2026-07-17Chanay, Jeffrey A Esq PROPOSAL37Anna Fali
1008Julie G SchemmerCanada2026-07-22Chanay, Jeffrey A Esq RENEWAL24Stephen Shaw
1009Ashley Z StensethRussia2026-07-20Benton, John B Jr UNQUALIFIED82Ivan Magalhaes
1010Maisha O OstroskyFrance2026-08-02Rangoni Of Florence UNQUALIFIED63Xuxue Feng
1011Jefferson Q NestleAustralia2026-07-21Truhlar And Truhlar Attys PROPOSAL61Asiya Javayant
1012Murillo I DoeGermany2026-07-18Rangoni Of Florence NEW79Onyama Limba
1013Leon R MaletJapan2026-08-04Chapman, Ross E Esq QUALIFIED34Ivan Magalhaes
1014James Z CaudySpain2026-08-11Rangoni Of Florence PROPOSAL36Ivan Magalhaes
1015Murillo P PerinUnited Kingdom2026-07-18Feiner Bros NEGOTIATION49Asiya Javayant
1016Clifford P CampainCanada2026-07-19Printing Dimensions NEW15Ivan Magalhaes
1017Clifford U SlusarskiGermany2026-08-04Chapman, Ross E Esq UNQUALIFIED46Asiya Javayant
1018Clifford U CaldareraSpain2026-07-17Printing Dimensions QUALIFIED29Amy Elsner
1019Faith O TollnerFrance2026-07-19Chanay, Jeffrey A Esq RENEWAL1Asiya Javayant
1020Mayumi O PaprockiUnited Kingdom2026-08-03Chanay, Jeffrey A Esq NEGOTIATION4Elwin Sharvill
1021Munro V RimJapan2026-07-24Chemel, James L Cpa QUALIFIED84Anna Fali
1022Darci T FollerRussia2026-08-09Feiner Bros RENEWAL12Onyama Limba
1023Sinclair O StockhamSpain2026-08-06Feltz Printing Service NEW31Ioni Bowcher
1024Alejandro N GlickAustralia2026-07-30Buckley Miller Wright QUALIFIED15Bernardo Dominic
1025Silvio O MorascaGermany2026-08-01Rousseaux, Michael Esq UNQUALIFIED74Bernardo Dominic
1026Antonio O MaletGermany2026-07-22Chemel, James L Cpa QUALIFIED44Stephen Shaw
1027Misaki P BologniaRussia2026-08-03Feiner Bros RENEWAL68Anna Fali
1028Mayumi I MacleadFrance2026-07-27Morlong Associates UNQUALIFIED4Xuxue Feng
1029Ivar A RimArgentina2026-07-31Morlong Associates QUALIFIED93Bernardo Dominic
1030Mujtaba A RulapaughJapan2026-08-03Buckley Miller Wright NEW53Stephen Shaw
1031James E BriddickBrazil2026-07-17Benton, John B Jr UNQUALIFIED24Amy Elsner
1032Mayumi E CaldareraFrance2026-08-03Chapman, Ross E Esq RENEWAL67Stephen Shaw
1033Antonio K FlosiGermany2026-08-10Rangoni Of Florence NEGOTIATION31Elwin Sharvill
1034David Z VenereIndia2026-07-18Morlong Associates RENEWAL21Asiya Javayant
1035Jefferson U SaylorsIndia2026-08-03Chanay, Jeffrey A Esq NEGOTIATION77Asiya Javayant
1036Cody N RoysterUnited Kingdom2026-08-04Truhlar And Truhlar Attys UNQUALIFIED72Onyama Limba
1037Julie D PerinJapan2026-08-02Benton, John B Jr NEGOTIATION78Ioni Bowcher
1038Rodrigues V CampainJapan2026-08-08Chanay, Jeffrey A Esq NEW54Asiya Javayant
1039Smith E DarakjyJapan2026-07-20Chemel, James L Cpa NEW84Xuxue Feng
1040Leon A SchemmerCanada2026-07-31Benton, John B Jr PROPOSAL90Ioni Bowcher
1041Munro C OstroskyBrazil2026-07-16Buckley Miller Wright NEW69Ioni Bowcher
1042Emily F MorascaBrazil2026-07-14Commercial Press NEGOTIATION90Amy Elsner
1043Maisha F AlbaresArgentina2026-08-05Benton, John B Jr PROPOSAL81Ioni Bowcher
1044Emily W StensethRussia2026-08-03Chanay, Jeffrey A Esq PROPOSAL68Stephen Shaw
1045Jefferson N MarrierJapan2026-08-09King, Christopher A Esq QUALIFIED86Asiya Javayant
1046Sinclair Y CampainGermany2026-08-12Truhlar And Truhlar Attys RENEWAL12Elwin Sharvill
1047Arvin O MacleadGermany2026-07-17Chemel, James L Cpa UNQUALIFIED81Bernardo Dominic
1048Smith T RimFrance2026-08-08Chemel, James L Cpa RENEWAL64Amy Elsner
1049Maisha H WaycottItaly2026-07-19Chapman, Ross E Esq QUALIFIED60Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David S GarufiRussiaIvan Magalhaes RENEWAL
Izzy Z DilliardItalyStephen Shaw QUALIFIED
Murillo Q ShinkoCanadaOnyama Limba NEGOTIATION
Jennifer G ButtFranceIoni Bowcher QUALIFIED
Aditya N ButtUnited KingdomElwin Sharvill UNQUALIFIED
Julie G InouyeIndiaBernardo Dominic NEW
Aditya Y PoquetteFranceStephen Shaw RENEWAL
Julie P SaylorsItalyXuxue Feng PROPOSAL
Jeanfrancois S GauchoRussiaBernardo Dominic NEGOTIATION
Ricardo U DarakjyCanadaElwin Sharvill UNQUALIFIED
Murillo U RulapaughCanadaBernardo Dominic UNQUALIFIED
Jennifer I KuskoFranceIvan Magalhaes NEW
Leon F PerinBrazilBernardo Dominic UNQUALIFIED
Cody D RoysterAustraliaOnyama Limba QUALIFIED
Costa C SchemmerRussiaOnyama Limba QUALIFIED
Murillo K MaletGermanyXuxue Feng RENEWAL
Faith G OldroydItalyIoni Bowcher NEGOTIATION
Morrow C GillianGermanyAmy Elsner RENEWAL
Mayumi Z MarrierCanadaStephen Shaw QUALIFIED
Costa D MaletCanadaElwin Sharvill RENEWAL
Jefferson H CampainCanadaOnyama Limba NEW
David M MacleadArgentinaBernardo Dominic NEGOTIATION
Kadeem D InouyeUnited KingdomAsiya Javayant NEW
Jones K SchemmerUnited KingdomElwin Sharvill NEW
Salvatore P MaletUnited KingdomStephen Shaw NEGOTIATION
Francesco W PerinGermanyXuxue Feng QUALIFIED
Emily J OstroskyGermanyOnyama Limba PROPOSAL
Francesco P OstroskyGermanyXuxue Feng NEW
Kadeem T WaycottUnited KingdomElwin Sharvill NEGOTIATION
Aditya J MaletJapanStephen Shaw UNQUALIFIED
Greenwood Z RulapaughJapanAsiya Javayant NEW
Sinclair B MorascaItalyXuxue Feng PROPOSAL
Aika I SaylorsItalyXuxue Feng NEW
Ashley A GlickFranceBernardo Dominic UNQUALIFIED
David M MaletUnited KingdomOnyama Limba NEGOTIATION
Ivar J RulapaughJapanAmy Elsner RENEWAL
Francesco N IturbideBrazilIoni Bowcher NEGOTIATION
Isabel L VocelkaSpainIvan Magalhaes QUALIFIED
Aditya Y InouyeItalyIvan Magalhaes RENEWAL
Alejandro X CaudyBrazilAnna Fali NEW
Arvin K MacleadCanadaAnna Fali QUALIFIED
Claire B StensethGermanyAsiya Javayant RENEWAL
Nicolas N VocelkaArgentinaAmy Elsner QUALIFIED
Salvatore K AlbaresCanadaAmy Elsner NEGOTIATION
Arvin W AmigonCanadaIvan Magalhaes UNQUALIFIED
Chavez J DoeFranceElwin Sharvill PROPOSAL
Darci M StockhamCanadaStephen Shaw NEW
Leon N RimUnited KingdomElwin Sharvill QUALIFIED
Leon H TollnerUnited KingdomAsiya Javayant NEW
Silvio N FlosiAustraliaIvan Magalhaes RENEWAL
Frozen Columns
Name
Rodrigues P Sergi
Leon H Flosi
Jones V Garufi
Murillo P Rulapaugh
Julie B Sergi
Emily J Schemmer
Murillo Z Saylors
Chavez G Nicka
David B Malet
Aditya X Waycott
Smith N Marrier
Morrow Z Figeroa
Sinclair R Vocelka
Emily S Figeroa
Leja S Bolognia
Maisha K Iturbide
Murillo Q Rim
Cody S Darakjy
Misaki E Gillian
Jeanfrancois Y Bowley
Claire Y Caldarera
Misaki D Stockham
Mujtaba V Iturbide
Francesco H Glick
Johnson A Stockham
Izzy A Doe
Mujtaba U Kolmetz
Cody K Dilliard
Deepesh N Waycott
Sinclair M Dilliard
Tony R Ostrosky
Jones G Royster
Mayumi T Ferencz
Leja I Nicka
Jeanfrancois P Albares
Stacey K Maclead
Francesco L Schemmer
Clifford M Caldarera
Francesco C Malet
Murillo M Darakjy
Jefferson D Doe
Rodrigues U Flosi
Francesco J Sergi
Murillo D Perin
Faith M Bowley
Aruna B Dilliard
Murillo D Royster
James K Royster
Arvin Y Doe
Jefferson K Nestle
IdCountryDate
1000Brazil2026-07-28
1001India2026-07-28
1002Spain2026-07-21
1003Argentina2026-07-23
1004Spain2026-07-20
1005Argentina2026-07-30
1006Germany2026-08-04
1007Australia2026-08-11
1008India2026-07-14
1009United Kingdom2026-07-22
1010Japan2026-07-30
1011Italy2026-07-18
1012Australia2026-07-21
1013Spain2026-07-20
1014Italy2026-07-26
1015United Kingdom2026-07-28
1016Argentina2026-07-20
1017France2026-07-25
1018Italy2026-07-20
1019Brazil2026-08-07
1020Italy2026-08-06
1021Italy2026-07-18
1022Canada2026-08-11
1023Germany2026-07-19
1024France2026-08-03
1025Australia2026-07-19
1026Italy2026-08-03
1027Italy2026-07-19
1028Canada2026-07-19
1029Australia2026-07-18
1030Russia2026-07-20
1031France2026-07-31
1032Japan2026-07-17
1033Canada2026-07-14
1034Spain2026-07-28
1035Australia2026-08-07
1036Italy2026-08-09
1037Japan2026-07-15
1038Australia2026-07-30
1039Japan2026-07-31
1040Italy2026-07-19
1041Spain2026-07-18
1042Italy2026-08-10
1043Japan2026-07-26
1044Argentina2026-08-09
1045Canada2026-08-12
1046Italy2026-08-02
1047Italy2026-08-09
1048Australia2026-07-18
1049Germany2026-07-23

On-Demand Data

NameIdCountryDate
Adams X Dilliard1000Argentina2026-07-30
Cody Y Tollner1001Australia2026-07-18
Leja Z Stockham1002Italy2026-08-07
Aruna S Ruta1003Canada2026-07-22
Leon M Figeroa1004Germany2026-07-14
James X Stenseth1005Germany2026-07-31
Tony M Chui1006France2026-07-15
Johnson R Venere1007Canada2026-07-20
Jefferson R Foller1008Spain2026-08-05
Ivar P Doe1009Germany2026-07-19
Munro V Rulapaugh1010Australia2026-08-12
Jeanfrancois J Vocelka1011Russia2026-08-03
Kadeem J Darakjy1012Argentina2026-08-07
Jeanfrancois I Ferencz1013Australia2026-07-31
Jefferson J Gillian1014Russia2026-07-30
James Q Figeroa1015Brazil2026-07-17
James Z Kolmetz1016France2026-08-02
Adams M Nicka1017Russia2026-07-17
Kadeem Q Glick1018Spain2026-07-25
Greenwood S Garufi1019United Kingdom2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily W NickaSpainAmy Elsner NEW
Aika W CampainUnited KingdomBernardo Dominic UNQUALIFIED
Izzy S ButtGermanyStephen Shaw NEW
Adams I RimCanadaStephen Shaw RENEWAL
James W SchemmerArgentinaIoni Bowcher PROPOSAL
Octavia L RimCanadaOnyama Limba NEW
Mujtaba W PaprockiCanadaStephen Shaw NEGOTIATION
Aruna I KuskoBrazilXuxue Feng QUALIFIED
Adams M ChuiArgentinaIoni Bowcher UNQUALIFIED
Leja O GlickUnited KingdomIvan Magalhaes QUALIFIED
Leon H RoysterBrazilAnna Fali RENEWAL
Ashley V GarufiJapanElwin Sharvill NEW
Smith F MarrierRussiaIoni Bowcher QUALIFIED
Misaki B InouyeBrazilBernardo Dominic NEGOTIATION
Silvio Y RimArgentinaOnyama Limba QUALIFIED
James J DarakjyRussiaOnyama Limba NEW
Salvatore Y StockhamUnited KingdomOnyama Limba RENEWAL
Sinclair P KolmetzItalyOnyama Limba UNQUALIFIED
James R DoeFranceAnna Fali RENEWAL
Leja B ChuiIndiaIvan Magalhaes QUALIFIED
Ashley Y GillianUnited KingdomOnyama Limba NEW
Misaki G NestleItalyAmy Elsner PROPOSAL
Misaki H StockhamArgentinaStephen Shaw QUALIFIED
Jefferson B CampainGermanyAnna Fali UNQUALIFIED
Wickens T RutaBrazilAsiya Javayant RENEWAL
Adams Y MaletCanadaXuxue Feng RENEWAL
Francesco N PoquetteArgentinaStephen Shaw QUALIFIED
Ashley Y TollnerFranceAnna Fali UNQUALIFIED
Mayumi A SaylorsAustraliaStephen Shaw NEGOTIATION
Ashley E WaycottGermanyBernardo Dominic PROPOSAL
Silvio C BowleyBrazilBernardo Dominic RENEWAL
Johnson P SlusarskiSpainStephen Shaw UNQUALIFIED
Jones H RutaUnited KingdomOnyama Limba QUALIFIED
Johnson Z AmigonJapanAsiya Javayant PROPOSAL
Maisha W SergiItalyBernardo Dominic QUALIFIED
Mujtaba U DarakjyBrazilOnyama Limba NEW
Mujtaba P FigeroaJapanIvan Magalhaes RENEWAL
Munro K TollnerAustraliaXuxue Feng QUALIFIED
Francesco J CampainItalyOnyama Limba QUALIFIED
Stacey B VocelkaRussiaIoni Bowcher 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>