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 E OstroskyArgentinaXuxue Feng PROPOSAL
James Z WhobreySpainAnna Fali NEGOTIATION
Izzy A OldroydFranceAsiya Javayant RENEWAL
Claire T FerenczFranceIoni Bowcher NEGOTIATION
Izzy V VocelkaFranceAnna Fali NEGOTIATION
Jefferson E MacleadJapanIvan Magalhaes UNQUALIFIED
Izzy D DoeCanadaElwin Sharvill UNQUALIFIED
Jennifer G KolmetzBrazilIvan Magalhaes UNQUALIFIED
Kaitlin E RimSpainIoni Bowcher QUALIFIED
Adams U AmigonRussiaXuxue Feng RENEWAL
Ricardo S AmigonAustraliaBernardo Dominic UNQUALIFIED
Murillo X StockhamBrazilBernardo Dominic UNQUALIFIED
Munro U BriddickFranceElwin Sharvill RENEWAL
Silvio Y MacleadArgentinaIvan Magalhaes NEW
Juan L SaylorsRussiaAnna Fali NEW
Julie M DarakjyAustraliaOnyama Limba PROPOSAL
Ivar Q MarrierBrazilOnyama Limba RENEWAL
Smith C RoysterRussiaStephen Shaw UNQUALIFIED
James B GarufiSpainAmy Elsner QUALIFIED
Murillo Y MarrierSpainIvan Magalhaes NEGOTIATION
Leon K CampainBrazilXuxue Feng NEGOTIATION
Stacey N SchemmerArgentinaOnyama Limba UNQUALIFIED
Adams K AlbaresAustraliaAmy Elsner QUALIFIED
Alejandro B CampainUnited KingdomAmy Elsner PROPOSAL
Juan T GlickSpainAmy Elsner NEGOTIATION
Emily R BriddickArgentinaStephen Shaw NEW
Murillo Z MaletAustraliaBernardo Dominic NEGOTIATION
Rodrigues I PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Kaitlin B StensethCanadaOnyama Limba NEW
David D BowleySpainAnna Fali RENEWAL
Nicolas Z NestleGermanyAsiya Javayant NEGOTIATION
Juan H CaldareraIndiaIoni Bowcher NEW
David C VenereItalyAsiya Javayant QUALIFIED
Cody V IturbideCanadaIvan Magalhaes NEGOTIATION
Emily S BowleyAustraliaBernardo Dominic NEW
James A StensethBrazilIvan Magalhaes UNQUALIFIED
Deepesh H WhobreyItalyStephen Shaw PROPOSAL
Munro A IturbideIndiaAsiya Javayant UNQUALIFIED
Leon V PaprockiJapanIvan Magalhaes RENEWAL
Francesco T GillianUnited KingdomAsiya Javayant NEW
Tony Q GauchoJapanOnyama Limba RENEWAL
Nicolas S StockhamBrazilElwin Sharvill UNQUALIFIED
Johnson L FollerGermanyAnna Fali QUALIFIED
Ivar J SchemmerSpainElwin Sharvill NEW
Silvio K IturbideRussiaIoni Bowcher UNQUALIFIED
Ricardo P TollnerFranceIoni Bowcher NEW
Leja E StensethBrazilAmy Elsner QUALIFIED
Aruna S WhobreyBrazilAsiya Javayant RENEWAL
Morrow B SergiItalyStephen Shaw NEGOTIATION
Aruna X VocelkaCanadaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan Z SlusarskiRussiaAnna Fali NEW
Munro P KuskoUnited KingdomOnyama Limba QUALIFIED
Jennifer M RoysterRussiaAmy Elsner NEW
Jones M RutaJapanIoni Bowcher RENEWAL
Kaitlin V KolmetzIndiaBernardo Dominic RENEWAL
David S BriddickItalyIvan Magalhaes QUALIFIED
Silvio B DilliardIndiaElwin Sharvill NEW
Clifford Y ChuiIndiaStephen Shaw NEW
Aditya P SergiBrazilIoni Bowcher PROPOSAL
Izzy E OstroskyArgentinaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David W CaldareraAustralia2026-06-23King, Christopher A Esq PROPOSAL4Xuxue Feng
1001Greenwood S SaylorsAustralia2026-06-17Feiner Bros NEW78Ioni Bowcher
1002Sinclair W SergiRussia2026-06-05Feiner Bros PROPOSAL21Asiya Javayant
1003Wickens B GauchoArgentina2026-06-16Feiner Bros QUALIFIED26Anna Fali
1004Faith N ShinkoAustralia2026-06-22Benton, John B Jr PROPOSAL87Stephen Shaw
1005Smith G AlbaresItaly2026-06-27Buckley Miller Wright QUALIFIED86Ivan Magalhaes
1006Jeanfrancois A InouyeFrance2026-06-10Chemel, James L Cpa UNQUALIFIED83Anna Fali
1007Ricardo Q RulapaughBrazil2026-06-11Rangoni Of Florence PROPOSAL25Onyama Limba
1008Cody O ShinkoJapan2026-06-08Benton, John B Jr PROPOSAL9Ioni Bowcher
1009Greenwood P CampainRussia2026-05-31Chapman, Ross E Esq NEGOTIATION99Elwin Sharvill
1010Antonio U MorascaItaly2026-06-05Printing Dimensions QUALIFIED95Onyama Limba
1011Munro G WhobreyAustralia2026-05-31Chemel, James L Cpa NEGOTIATION10Ivan Magalhaes
1012Mujtaba B DilliardFrance2026-06-22Benton, John B Jr UNQUALIFIED83Stephen Shaw
1013Stacey A SlusarskiGermany2026-06-26Feiner Bros NEGOTIATION68Onyama Limba
1014Arvin J SaylorsGermany2026-06-10Rangoni Of Florence NEW23Asiya Javayant
1015Jefferson H SergiCanada2026-06-01Benton, John B Jr UNQUALIFIED54Onyama Limba
1016Costa D GlickArgentina2026-06-11Feltz Printing Service UNQUALIFIED96Onyama Limba
1017Salvatore Z CaudyUnited Kingdom2026-06-12Truhlar And Truhlar Attys UNQUALIFIED40Elwin Sharvill
1018Greenwood M BologniaFrance2026-06-09Morlong Associates RENEWAL50Bernardo Dominic
1019Rodrigues W StensethAustralia2026-06-06Morlong Associates QUALIFIED96Ioni Bowcher
1020Arvin W MaletIndia2026-06-23Chapman, Ross E Esq NEW87Ioni Bowcher
1021Adams H SergiSpain2026-06-27Rangoni Of Florence RENEWAL12Stephen Shaw
1022Misaki T PoquetteCanada2026-06-08Feltz Printing Service RENEWAL48Asiya Javayant
1023Emily P RutaItaly2026-06-04Buckley Miller Wright NEW55Asiya Javayant
1024Julie E FlosiItaly2026-06-25Feiner Bros QUALIFIED32Amy Elsner
1025Alejandro F ChuiUnited Kingdom2026-05-31Chanay, Jeffrey A Esq UNQUALIFIED12Ivan Magalhaes
1026Aditya B StensethGermany2026-06-12King, Christopher A Esq UNQUALIFIED84Anna Fali
1027Kadeem G PoquetteIndia2026-06-19Printing Dimensions UNQUALIFIED60Onyama Limba
1028Ricardo U IturbideBrazil2026-06-26Chemel, James L Cpa RENEWAL67Asiya Javayant
1029Leja W PoquetteGermany2026-06-13Dorl, James J Esq NEGOTIATION6Anna Fali
1030Jeanfrancois Z GlickFrance2026-06-11Chemel, James L Cpa NEW66Anna Fali
1031David B GarufiAustralia2026-06-04Buckley Miller Wright RENEWAL88Elwin Sharvill
1032Misaki T GillianArgentina2026-06-03Buckley Miller Wright RENEWAL38Asiya Javayant
1033Darci H VocelkaBrazil2026-06-13Printing Dimensions PROPOSAL99Ioni Bowcher
1034Jeanfrancois I NestleUnited Kingdom2026-05-31Chanay, Jeffrey A Esq NEW74Xuxue Feng
1035Aruna D SchemmerBrazil2026-06-13Dorl, James J Esq PROPOSAL12Xuxue Feng
1036Mayumi U NestleUnited Kingdom2026-06-26Feiner Bros RENEWAL42Ivan Magalhaes
1037Maria Z DilliardJapan2026-06-15Chemel, James L Cpa PROPOSAL20Xuxue Feng
1038Maisha C CaldareraArgentina2026-06-09Chemel, James L Cpa PROPOSAL25Amy Elsner
1039Antonio T RoysterBrazil2026-06-04Printing Dimensions NEGOTIATION35Stephen Shaw
1040Maisha X KolmetzArgentina2026-06-19Chemel, James L Cpa UNQUALIFIED27Amy Elsner
1041Ivar Y GlickBrazil2026-06-09Truhlar And Truhlar Attys QUALIFIED84Asiya Javayant
1042Maisha E CaudyGermany2026-05-31Chemel, James L Cpa NEGOTIATION34Anna Fali
1043Antonio C TollnerGermany2026-06-21Truhlar And Truhlar Attys QUALIFIED35Ioni Bowcher
1044Aruna G VocelkaCanada2026-06-15Rangoni Of Florence UNQUALIFIED64Onyama Limba
1045Faith F SchemmerJapan2026-06-29Morlong Associates PROPOSAL59Ivan Magalhaes
1046Antonio Y CaldareraRussia2026-06-16Chemel, James L Cpa RENEWAL44Ivan Magalhaes
1047Jeanfrancois D GlickFrance2026-06-14Feltz Printing Service RENEWAL49Asiya Javayant
1048David L ShinkoRussia2026-06-27King, Christopher A Esq NEGOTIATION4Elwin Sharvill
1049Aditya S BologniaSpain2026-06-23Feltz Printing Service PROPOSAL77Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jennifer G SchemmerAustraliaOnyama Limba NEGOTIATION
Jefferson Y StockhamItalyAnna Fali PROPOSAL
Mayumi M ChuiJapanBernardo Dominic NEW
Kaitlin K SaylorsGermanyIvan Magalhaes RENEWAL
Aika I ShinkoGermanyIvan Magalhaes RENEWAL
Adams E SergiItalyBernardo Dominic QUALIFIED
Mujtaba M BriddickIndiaXuxue Feng QUALIFIED
Salvatore M StensethFranceAnna Fali RENEWAL
Alejandro Y RimJapanStephen Shaw NEGOTIATION
Deepesh E RutaUnited KingdomAmy Elsner NEGOTIATION
Murillo Y PoquetteAustraliaElwin Sharvill PROPOSAL
Munro O FigeroaRussiaElwin Sharvill UNQUALIFIED
Darci I FigeroaGermanyBernardo Dominic QUALIFIED
Deepesh J InouyeSpainElwin Sharvill UNQUALIFIED
Munro G SergiFranceElwin Sharvill QUALIFIED
Jeanfrancois O VocelkaGermanyAmy Elsner UNQUALIFIED
Morrow U MaletArgentinaIoni Bowcher QUALIFIED
Kaitlin F StensethCanadaXuxue Feng NEGOTIATION
Clifford Z FigeroaCanadaStephen Shaw UNQUALIFIED
Morrow E FollerIndiaAmy Elsner NEW
Octavia C FerenczArgentinaAnna Fali RENEWAL
Johnson G CaldareraJapanElwin Sharvill RENEWAL
Sinclair K StockhamJapanIoni Bowcher NEGOTIATION
Aruna Z PerinUnited KingdomStephen Shaw RENEWAL
Francesco M MaletGermanyAsiya Javayant UNQUALIFIED
Kadeem G FlosiGermanyXuxue Feng UNQUALIFIED
Wickens Z PerinGermanyAsiya Javayant QUALIFIED
Isabel A BriddickBrazilXuxue Feng QUALIFIED
Juan J RoysterRussiaAsiya Javayant PROPOSAL
Ricardo S ButtFranceAsiya Javayant NEW
Leja K VenereRussiaIvan Magalhaes PROPOSAL
Salvatore Z FlosiAustraliaElwin Sharvill RENEWAL
Izzy N WieserRussiaXuxue Feng QUALIFIED
Octavia Z BologniaAustraliaAnna Fali UNQUALIFIED
Izzy M CampainItalyIoni Bowcher NEGOTIATION
Jeanfrancois X PoquetteFranceXuxue Feng NEGOTIATION
Rodrigues L IturbideRussiaIvan Magalhaes NEGOTIATION
Maria V WieserAustraliaStephen Shaw NEW
Kadeem K RulapaughSpainAnna Fali PROPOSAL
Isabel P MaletAustraliaBernardo Dominic PROPOSAL
Leon M MarrierCanadaBernardo Dominic NEGOTIATION
Juan K VocelkaRussiaAmy Elsner RENEWAL
Maria J FollerGermanyAmy Elsner NEGOTIATION
Aika Y StockhamFranceElwin Sharvill RENEWAL
Wickens C WieserSpainAsiya Javayant RENEWAL
Jones J MaletGermanyStephen Shaw PROPOSAL
Maria W VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Sinclair M BowleyRussiaXuxue Feng NEGOTIATION
Aika N AmigonArgentinaIvan Magalhaes NEGOTIATION
Maisha T DilliardCanadaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Nicolas G Gaucho
Arvin G Oldroyd
Cody L Dilliard
Ashley A Foller
Octavia A Wieser
Murillo G Caldarera
Aditya C Royster
Rodrigues C Darakjy
Wickens M Darakjy
Leon B Rim
Maisha U Campain
Misaki M Chui
Salvatore D Rulapaugh
Antonio W Kolmetz
Nicolas U Chui
Tony N Amigon
Chavez G Royster
Misaki X Ruta
Jennifer H Nestle
Emily J Doe
Chavez R Flosi
Nicolas N Albares
Ashley R Flosi
Murillo N Nestle
Jeanfrancois Q Darakjy
Francesco M Royster
Murillo K Schemmer
Isabel Y Slusarski
Jennifer S Amigon
Sinclair G Glick
Morrow Q Ostrosky
Alejandro P Bolognia
Leon V Caudy
Arvin B Kusko
Ricardo N Poquette
Silvio U Malet
Rodrigues Y Kolmetz
Ivar J Garufi
Mujtaba H Morasca
Francesco U Bowley
Salvatore K Vocelka
Ricardo D Malet
Tony K Ostrosky
Sinclair D Briddick
Silvio U Foller
Morrow G Gillian
Jones P Doe
Alejandro S Maclead
Cody T Wieser
Ivar E Caudy
IdCountryDate
1000Russia2026-06-18
1001Spain2026-06-18
1002Japan2026-06-14
1003Canada2026-06-25
1004Australia2026-06-10
1005United Kingdom2026-06-06
1006Japan2026-06-11
1007Australia2026-06-11
1008Germany2026-06-13
1009Argentina2026-06-21
1010France2026-06-17
1011Germany2026-06-11
1012Spain2026-06-01
1013India2026-06-12
1014Japan2026-06-22
1015Australia2026-06-25
1016United Kingdom2026-06-28
1017Japan2026-06-27
1018Argentina2026-06-13
1019United Kingdom2026-06-27
1020Canada2026-06-23
1021Brazil2026-06-11
1022Russia2026-06-26
1023Canada2026-06-19
1024Canada2026-06-23
1025Japan2026-06-05
1026India2026-06-22
1027United Kingdom2026-06-09
1028Brazil2026-06-05
1029Japan2026-06-15
1030India2026-06-27
1031Canada2026-06-06
1032France2026-06-01
1033India2026-06-12
1034Italy2026-06-27
1035Brazil2026-06-19
1036Canada2026-06-29
1037Spain2026-06-28
1038Russia2026-06-16
1039Japan2026-06-26
1040Canada2026-06-10
1041India2026-06-26
1042Australia2026-06-16
1043Russia2026-06-14
1044India2026-06-28
1045Spain2026-06-23
1046Canada2026-06-29
1047Canada2026-06-05
1048Canada2026-06-25
1049Russia2026-06-07

On-Demand Data

NameIdCountryDate
Nicolas E Perin1000Spain2026-06-05
Clifford Z Stockham1001India2026-06-03
Juan I Albares1002Spain2026-06-17
Ivar J Dilliard1003Argentina2026-06-08
Johnson D Nestle1004Australia2026-06-14
Murillo B Flosi1005United Kingdom2026-06-25
Aika E Albares1006Germany2026-06-06
Leja F Schemmer1007Japan2026-06-27
Ashley Z Oldroyd1008India2026-06-01
Faith O Albares1009Australia2026-06-17
Silvio L Gaucho1010Russia2026-06-07
Misaki I Darakjy1011France2026-06-25
Alejandro X Glick1012Italy2026-06-11
Aika I Bowley1013Brazil2026-06-09
James A Wieser1014Australia2026-06-28
Jeanfrancois L Caldarera1015Brazil2026-06-10
Mujtaba F Briddick1016India2026-06-04
Rodrigues B Amigon1017United Kingdom2026-06-04
Ricardo E Saylors1018Brazil2026-06-17
Deepesh S Albares1019United Kingdom2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie O SchemmerGermanyAmy Elsner NEGOTIATION
Rodrigues X ShinkoItalyAnna Fali RENEWAL
Salvatore Z AlbaresCanadaIvan Magalhaes NEW
Johnson D OldroydGermanyAnna Fali QUALIFIED
Francesco S KuskoSpainAsiya Javayant PROPOSAL
Aika U StockhamArgentinaAmy Elsner UNQUALIFIED
Emily Q ShinkoCanadaIoni Bowcher QUALIFIED
Claire U VocelkaAustraliaAmy Elsner UNQUALIFIED
Isabel G CaldareraGermanyElwin Sharvill QUALIFIED
David I DoeSpainOnyama Limba NEW
Rodrigues K CampainAustraliaIoni Bowcher QUALIFIED
Darci E OstroskyJapanIoni Bowcher UNQUALIFIED
Mujtaba W SaylorsFranceOnyama Limba QUALIFIED
Jones O WhobreyGermanyAnna Fali RENEWAL
Antonio B RutaRussiaOnyama Limba NEGOTIATION
Chavez D RulapaughIndiaStephen Shaw QUALIFIED
Chavez M RutaBrazilIvan Magalhaes UNQUALIFIED
Arvin X PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba S PoquetteItalyIoni Bowcher NEW
Ivar D RoysterUnited KingdomIvan Magalhaes QUALIFIED
Octavia V MacleadUnited KingdomElwin Sharvill PROPOSAL
Aditya K PaprockiSpainIvan Magalhaes NEGOTIATION
Wickens L FlosiGermanyAmy Elsner RENEWAL
Jeanfrancois Y SaylorsBrazilStephen Shaw NEW
Faith B RutaBrazilXuxue Feng RENEWAL
Maisha U RoysterJapanAnna Fali QUALIFIED
Faith E DilliardSpainOnyama Limba QUALIFIED
David C InouyeRussiaIvan Magalhaes NEGOTIATION
Rodrigues H CaldareraArgentinaElwin Sharvill NEGOTIATION
Stacey O DarakjySpainStephen Shaw NEW
Arvin F ChuiItalyIoni Bowcher UNQUALIFIED
Antonio V GauchoFranceElwin Sharvill UNQUALIFIED
Mujtaba M ShinkoSpainElwin Sharvill RENEWAL
Costa N DarakjyGermanyOnyama Limba QUALIFIED
Maria W NickaBrazilBernardo Dominic PROPOSAL
Johnson N PoquetteJapanIvan Magalhaes PROPOSAL
Ricardo S OstroskySpainElwin Sharvill NEW
Rodrigues L ChuiBrazilStephen Shaw PROPOSAL
Claire W SergiFranceIoni Bowcher NEGOTIATION
Ricardo T VenereItalyElwin Sharvill QUALIFIED

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