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
Murillo R ShinkoIndiaStephen Shaw QUALIFIED
David H ShinkoArgentinaIoni Bowcher UNQUALIFIED
Tony P OstroskyItalyAnna Fali NEGOTIATION
Mayumi J AmigonUnited KingdomOnyama Limba NEGOTIATION
Kaitlin C PaprockiAustraliaIoni Bowcher RENEWAL
Aruna A GauchoAustraliaAmy Elsner RENEWAL
Aruna U RimIndiaAmy Elsner NEW
Ivar E KuskoJapanAmy Elsner RENEWAL
Misaki B FollerIndiaXuxue Feng QUALIFIED
Darci K DilliardSpainXuxue Feng UNQUALIFIED
Munro G TollnerGermanyElwin Sharvill NEGOTIATION
Maisha E InouyeItalyAsiya Javayant UNQUALIFIED
James T VenereBrazilIvan Magalhaes PROPOSAL
Leja B GillianIndiaOnyama Limba NEW
Salvatore D TollnerItalyXuxue Feng RENEWAL
Ivar G CampainBrazilOnyama Limba PROPOSAL
Greenwood E CampainAustraliaOnyama Limba RENEWAL
Clifford H ChuiBrazilStephen Shaw QUALIFIED
Aruna S FerenczAustraliaAnna Fali PROPOSAL
Antonio S MarrierFranceOnyama Limba RENEWAL
Mayumi Q ChuiArgentinaXuxue Feng QUALIFIED
Nicolas X VenereItalyStephen Shaw PROPOSAL
Deepesh P CaudyUnited KingdomAnna Fali QUALIFIED
Mayumi M SaylorsAustraliaBernardo Dominic UNQUALIFIED
Julie S InouyeBrazilElwin Sharvill NEGOTIATION
Tony P RoysterItalyStephen Shaw NEGOTIATION
Wickens O AlbaresArgentinaAnna Fali UNQUALIFIED
Octavia P DoeRussiaIvan Magalhaes NEGOTIATION
Clifford I FlosiUnited KingdomStephen Shaw PROPOSAL
Smith X ButtAustraliaStephen Shaw QUALIFIED
Isabel P CaudyUnited KingdomIoni Bowcher NEW
Leon S GarufiIndiaIvan Magalhaes QUALIFIED
Wickens R MacleadJapanBernardo Dominic NEW
Misaki Y GarufiCanadaXuxue Feng PROPOSAL
Munro B SergiUnited KingdomStephen Shaw QUALIFIED
Salvatore J BowleyArgentinaStephen Shaw QUALIFIED
Greenwood X WaycottAustraliaElwin Sharvill QUALIFIED
Wickens R StockhamArgentinaBernardo Dominic RENEWAL
Chavez V MaletIndiaOnyama Limba RENEWAL
Stacey Q VenereFranceAsiya Javayant NEW
Juan M FigeroaJapanBernardo Dominic QUALIFIED
Cody O CampainBrazilIvan Magalhaes UNQUALIFIED
Mujtaba S SchemmerCanadaAnna Fali PROPOSAL
Octavia W WaycottRussiaXuxue Feng QUALIFIED
Rodrigues M OstroskyJapanAmy Elsner RENEWAL
Smith L SlusarskiIndiaAsiya Javayant NEW
Costa A FerenczGermanyAsiya Javayant QUALIFIED
Izzy F ButtFranceStephen Shaw NEW
Nicolas N GarufiFranceBernardo Dominic NEGOTIATION
Maisha G GillianBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Julie F TollnerJapanAnna Fali NEW
Faith T RoysterGermanyAnna Fali NEW
Jones Q VocelkaSpainElwin Sharvill PROPOSAL
Leon Q DilliardItalyBernardo Dominic NEGOTIATION
Jennifer S BriddickCanadaAsiya Javayant RENEWAL
Wickens S AmigonGermanyAsiya Javayant UNQUALIFIED
Nicolas D IturbideIndiaIvan Magalhaes PROPOSAL
Claire N RulapaughGermanyIoni Bowcher NEGOTIATION
Jones V FollerFranceAmy Elsner QUALIFIED
Morrow D OldroydGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues A FigeroaGermany2026-07-21Chapman, Ross E Esq NEW49Onyama Limba
1001Jefferson Z ButtFrance2026-07-03Printing Dimensions PROPOSAL30Xuxue Feng
1002Wickens D MacleadFrance2026-07-12Dorl, James J Esq PROPOSAL9Stephen Shaw
1003Wickens J NestleCanada2026-07-06Commercial Press QUALIFIED29Onyama Limba
1004Costa A MarrierUnited Kingdom2026-07-06Truhlar And Truhlar Attys RENEWAL86Stephen Shaw
1005Sinclair Q DarakjyRussia2026-07-28Chemel, James L Cpa PROPOSAL96Elwin Sharvill
1006Jefferson E RimArgentina2026-07-27Chapman, Ross E Esq NEW91Stephen Shaw
1007Jeanfrancois O AmigonItaly2026-07-14Benton, John B Jr NEW69Asiya Javayant
1008Claire T CaldareraArgentina2026-07-28Feltz Printing Service RENEWAL28Xuxue Feng
1009Octavia X FlosiItaly2026-07-06Chemel, James L Cpa PROPOSAL24Elwin Sharvill
1010Julie E MorascaIndia2026-07-22Rangoni Of Florence RENEWAL22Amy Elsner
1011Arvin T BowleyGermany2026-07-03Chanay, Jeffrey A Esq NEGOTIATION76Ivan Magalhaes
1012Sinclair E NestleUnited Kingdom2026-07-16Feltz Printing Service NEW79Onyama Limba
1013Kaitlin L CampainBrazil2026-07-09Benton, John B Jr NEW2Anna Fali
1014Aika E FigeroaItaly2026-07-25Chemel, James L Cpa NEGOTIATION69Bernardo Dominic
1015Emily E AmigonCanada2026-07-04Dorl, James J Esq PROPOSAL21Stephen Shaw
1016Kadeem Q WieserAustralia2026-07-26Buckley Miller Wright RENEWAL34Xuxue Feng
1017Emily N FollerAustralia2026-07-07Feiner Bros NEGOTIATION61Elwin Sharvill
1018Deepesh K AmigonUnited Kingdom2026-07-30Rangoni Of Florence UNQUALIFIED39Amy Elsner
1019Tony O FigeroaItaly2026-07-07Printing Dimensions NEW60Bernardo Dominic
1020Mayumi C DoeFrance2026-07-20Truhlar And Truhlar Attys NEW56Onyama Limba
1021Stacey S StensethArgentina2026-07-26Printing Dimensions UNQUALIFIED38Bernardo Dominic
1022Murillo U PoquetteCanada2026-07-29Truhlar And Truhlar Attys QUALIFIED24Amy Elsner
1023Morrow V WhobreyCanada2026-07-08Feltz Printing Service NEW40Asiya Javayant
1024Ivar X KuskoGermany2026-07-18Dorl, James J Esq UNQUALIFIED40Bernardo Dominic
1025Munro A PaprockiBrazil2026-07-02Morlong Associates QUALIFIED54Anna Fali
1026Leon T BriddickSpain2026-07-02Buckley Miller Wright QUALIFIED11Anna Fali
1027Jefferson I NickaItaly2026-07-11Rousseaux, Michael Esq RENEWAL24Anna Fali
1028Ashley Q GauchoSpain2026-07-03Printing Dimensions QUALIFIED28Anna Fali
1029Mayumi U GauchoGermany2026-07-04Commercial Press NEGOTIATION66Asiya Javayant
1030Aika E MaletItaly2026-07-19Buckley Miller Wright NEW67Elwin Sharvill
1031Leon K RutaJapan2026-07-30Printing Dimensions UNQUALIFIED27Elwin Sharvill
1032Leon R ButtFrance2026-07-15Chemel, James L Cpa RENEWAL57Elwin Sharvill
1033Aruna V AmigonAustralia2026-07-30Truhlar And Truhlar Attys NEGOTIATION95Amy Elsner
1034Cody L FlosiUnited Kingdom2026-07-18Benton, John B Jr UNQUALIFIED56Ivan Magalhaes
1035Costa V FigeroaIndia2026-07-10Feltz Printing Service NEGOTIATION27Ioni Bowcher
1036Isabel R PerinRussia2026-07-11King, Christopher A Esq NEGOTIATION91Bernardo Dominic
1037Jefferson V RutaGermany2026-07-12Buckley Miller Wright RENEWAL41Anna Fali
1038Jennifer V ShinkoGermany2026-07-17Truhlar And Truhlar Attys NEW59Onyama Limba
1039Aika L PerinBrazil2026-07-12Chemel, James L Cpa NEGOTIATION87Amy Elsner
1040Costa L OldroydUnited Kingdom2026-07-28Chanay, Jeffrey A Esq PROPOSAL94Ivan Magalhaes
1041Jefferson K MarrierBrazil2026-07-10Feltz Printing Service PROPOSAL85Xuxue Feng
1042Darci P OldroydSpain2026-07-01Feiner Bros PROPOSAL62Onyama Limba
1043Nicolas O MaletAustralia2026-07-14Printing Dimensions NEGOTIATION83Onyama Limba
1044Jones C GillianItaly2026-07-11Benton, John B Jr RENEWAL88Bernardo Dominic
1045David P StensethAustralia2026-07-21Feiner Bros NEGOTIATION29Amy Elsner
1046Ricardo J GlickCanada2026-07-27Chapman, Ross E Esq RENEWAL86Ioni Bowcher
1047Jones L SchemmerJapan2026-07-29King, Christopher A Esq NEW58Stephen Shaw
1048Smith J SlusarskiIndia2026-07-25Rousseaux, Michael Esq UNQUALIFIED36Anna Fali
1049Morrow Z OstroskyAustralia2026-07-23Benton, John B Jr UNQUALIFIED44Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire M StockhamArgentinaStephen Shaw NEW
Juan Z DarakjyAustraliaIoni Bowcher UNQUALIFIED
Octavia D PerinUnited KingdomElwin Sharvill PROPOSAL
David Q FerenczIndiaIoni Bowcher NEGOTIATION
Darci M StockhamSpainBernardo Dominic PROPOSAL
Antonio G PaprockiCanadaAsiya Javayant QUALIFIED
Kadeem V WhobreyAustraliaBernardo Dominic UNQUALIFIED
Isabel Q WhobreyRussiaOnyama Limba NEGOTIATION
Adams O BowleyFranceOnyama Limba PROPOSAL
Clifford U TollnerUnited KingdomAnna Fali PROPOSAL
Mujtaba O DarakjyJapanIoni Bowcher RENEWAL
Adams T NestleItalyAnna Fali QUALIFIED
Morrow V StensethCanadaXuxue Feng NEGOTIATION
James Y DoeAustraliaElwin Sharvill NEGOTIATION
Leja O SaylorsGermanyIoni Bowcher UNQUALIFIED
Arvin B WhobreyItalyStephen Shaw QUALIFIED
Mujtaba F TollnerAustraliaBernardo Dominic RENEWAL
Ashley R WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Chavez B SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Sinclair B AlbaresAustraliaIvan Magalhaes QUALIFIED
Alejandro A NickaItalyAnna Fali RENEWAL
Rodrigues V GauchoCanadaStephen Shaw PROPOSAL
Sinclair Q ChuiCanadaOnyama Limba QUALIFIED
Octavia N SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Cody G RutaIndiaIoni Bowcher NEGOTIATION
Kaitlin C CaudyAustraliaXuxue Feng UNQUALIFIED
Antonio Y FlosiIndiaOnyama Limba QUALIFIED
Johnson T RimCanadaBernardo Dominic PROPOSAL
Deepesh S DarakjyItalyIvan Magalhaes NEGOTIATION
Isabel J NestleItalyIoni Bowcher UNQUALIFIED
Mujtaba O GillianArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois G DoeJapanAmy Elsner NEW
Kadeem U CaudyIndiaXuxue Feng NEW
Mujtaba T PoquetteGermanyBernardo Dominic UNQUALIFIED
Adams Z BologniaRussiaStephen Shaw NEGOTIATION
Claire S SergiItalyIoni Bowcher RENEWAL
Mujtaba T WhobreyFranceElwin Sharvill NEGOTIATION
Faith G SaylorsJapanBernardo Dominic UNQUALIFIED
Ashley F OstroskyGermanyAmy Elsner NEGOTIATION
Antonio E IturbideIndiaOnyama Limba UNQUALIFIED
Izzy V InouyeArgentinaBernardo Dominic NEW
Stacey G AmigonJapanAmy Elsner PROPOSAL
Salvatore E StensethAustraliaAnna Fali NEW
Rodrigues N MarrierRussiaAmy Elsner PROPOSAL
James C PaprockiGermanyXuxue Feng QUALIFIED
Antonio X IturbideGermanyIoni Bowcher RENEWAL
Maisha O FollerRussiaAsiya Javayant NEGOTIATION
Claire X MorascaIndiaOnyama Limba UNQUALIFIED
Munro T OldroydBrazilOnyama Limba RENEWAL
Aika J PoquetteBrazilElwin Sharvill NEW
Frozen Columns
Name
Ashley N Foller
Tony O Maclead
Arvin V Shinko
Johnson C Oldroyd
Clifford Z Figeroa
Kaitlin A Whobrey
Antonio B Vocelka
Mujtaba B Malet
Francesco K Briddick
Stacey F Briddick
Ricardo X Darakjy
Octavia S Iturbide
Jeanfrancois Q Ostrosky
Salvatore I Maclead
Rodrigues U Tollner
Silvio T Kusko
Cody D Darakjy
Arvin O Gaucho
Ivar K Gaucho
David Q Doe
Aruna T Gillian
Sinclair O Saylors
Claire C Slusarski
Silvio I Iturbide
Emily B Flosi
Antonio C Rulapaugh
Octavia K Albares
Nicolas J Bolognia
Deepesh J Butt
Jefferson M Shinko
Arvin L Nestle
Jennifer S Rulapaugh
Ricardo G Stockham
Clifford B Waycott
Maisha Y Paprocki
Francesco H Schemmer
Juan X Nestle
Tony P Paprocki
Wickens R Campain
Jennifer G Doe
Alejandro Y Campain
Faith B Butt
Jeanfrancois X Sergi
James B Gaucho
David Q Flosi
Arvin O Waycott
Juan O Oldroyd
Jeanfrancois Z Bolognia
Chavez P Tollner
Chavez B Kolmetz
IdCountryDate
1000Italy2026-07-14
1001France2026-07-24
1002Russia2026-07-01
1003Italy2026-07-29
1004Canada2026-07-09
1005France2026-07-11
1006Canada2026-07-23
1007Germany2026-07-09
1008Argentina2026-07-01
1009Italy2026-07-01
1010Germany2026-07-28
1011France2026-07-01
1012Russia2026-07-21
1013United Kingdom2026-07-17
1014Argentina2026-07-24
1015Brazil2026-07-25
1016Brazil2026-07-18
1017Russia2026-07-28
1018Japan2026-07-11
1019India2026-07-05
1020India2026-07-21
1021Australia2026-07-11
1022India2026-07-10
1023Italy2026-07-12
1024United Kingdom2026-07-30
1025Russia2026-07-07
1026United Kingdom2026-07-02
1027Australia2026-07-24
1028Russia2026-07-30
1029France2026-07-23
1030India2026-07-05
1031United Kingdom2026-07-17
1032Germany2026-07-13
1033Argentina2026-07-09
1034Argentina2026-07-18
1035Argentina2026-07-01
1036Italy2026-07-01
1037France2026-07-15
1038Japan2026-07-14
1039United Kingdom2026-07-10
1040Japan2026-07-05
1041Germany2026-07-16
1042India2026-07-18
1043Japan2026-07-08
1044Canada2026-07-27
1045Spain2026-07-06
1046Australia2026-07-21
1047Russia2026-07-12
1048Spain2026-07-09
1049Russia2026-07-10

On-Demand Data

NameIdCountryDate
Chavez E Stockham1000France2026-07-10
Alejandro O Rulapaugh1001Brazil2026-07-07
Kadeem L Waycott1002Italy2026-07-09
Faith Y Wieser1003Italy2026-07-30
Kadeem I Chui1004Argentina2026-07-10
Francesco P Maclead1005Australia2026-07-25
Alejandro E Kusko1006Japan2026-07-11
Ivar S Foller1007France2026-07-01
Arvin T Maclead1008Spain2026-07-15
Alejandro Z Iturbide1009Germany2026-07-03
Chavez B Briddick1010India2026-07-14
James U Garufi1011India2026-07-09
Emily Y Caldarera1012Italy2026-07-25
Ashley S Waycott1013India2026-07-23
Wickens Q Garufi1014Australia2026-07-27
Jeanfrancois D Kolmetz1015Canada2026-07-21
Mujtaba S Stockham1016United Kingdom2026-07-29
Ricardo O Saylors1017Germany2026-07-03
Jennifer G Amigon1018India2026-07-04
Alejandro I Tollner1019Brazil2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow R StockhamCanadaAsiya Javayant NEW
Smith U IturbideFranceElwin Sharvill QUALIFIED
David O GarufiFranceElwin Sharvill QUALIFIED
Salvatore D SchemmerAustraliaXuxue Feng UNQUALIFIED
Leja X VocelkaAustraliaOnyama Limba RENEWAL
Deepesh Q CampainItalyIoni Bowcher NEGOTIATION
Izzy U AmigonJapanAsiya Javayant PROPOSAL
Morrow Y CampainGermanyAnna Fali PROPOSAL
Greenwood E TollnerUnited KingdomAsiya Javayant PROPOSAL
Antonio Z BologniaUnited KingdomAmy Elsner UNQUALIFIED
Mayumi T RimBrazilAmy Elsner UNQUALIFIED
Leon P DarakjyGermanyAnna Fali RENEWAL
Alejandro W FerenczAustraliaOnyama Limba QUALIFIED
James R VocelkaGermanyIoni Bowcher RENEWAL
Francesco A CaldareraFranceOnyama Limba NEGOTIATION
Munro X WieserJapanXuxue Feng PROPOSAL
Greenwood M BologniaFranceIvan Magalhaes NEGOTIATION
Leja L StensethGermanyXuxue Feng RENEWAL
Chavez N VocelkaUnited KingdomIoni Bowcher PROPOSAL
Aika P PerinItalyOnyama Limba RENEWAL
Jennifer Q SlusarskiIndiaAnna Fali UNQUALIFIED
Leja I BowleyCanadaIvan Magalhaes RENEWAL
Costa E NickaJapanIoni Bowcher RENEWAL
Silvio I BriddickAustraliaElwin Sharvill PROPOSAL
Aika B ChuiFranceBernardo Dominic UNQUALIFIED
Nicolas N CaldareraCanadaElwin Sharvill NEGOTIATION
Emily C BriddickSpainStephen Shaw PROPOSAL
Salvatore U VenereSpainBernardo Dominic QUALIFIED
Rodrigues D AlbaresAustraliaStephen Shaw UNQUALIFIED
Silvio V SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Adams F PerinUnited KingdomXuxue Feng UNQUALIFIED
Costa Z WhobreyArgentinaIvan Magalhaes RENEWAL
Julie Z SchemmerArgentinaXuxue Feng PROPOSAL
Octavia P GauchoJapanStephen Shaw PROPOSAL
Jeanfrancois X NestleSpainIoni Bowcher NEW
Adams A SaylorsIndiaStephen Shaw UNQUALIFIED
Adams V DoeIndiaAnna Fali QUALIFIED
Misaki C RimSpainIvan Magalhaes NEGOTIATION
Johnson M SchemmerUnited KingdomIoni Bowcher NEGOTIATION
Kaitlin N KuskoUnited KingdomIvan Magalhaes 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>