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
Johnson I NestleArgentinaIoni Bowcher QUALIFIED
Silvio O ChuiFranceStephen Shaw NEW
Antonio D WieserIndiaAnna Fali QUALIFIED
Smith S AmigonGermanyIvan Magalhaes PROPOSAL
Chavez G ChuiUnited KingdomIvan Magalhaes NEGOTIATION
David Q FollerBrazilIoni Bowcher UNQUALIFIED
Ivar Q SergiBrazilOnyama Limba RENEWAL
Julie B CaudyBrazilOnyama Limba RENEWAL
Emily S InouyeIndiaIoni Bowcher PROPOSAL
James F MaletRussiaAnna Fali NEW
Jefferson D BowleyIndiaElwin Sharvill PROPOSAL
Ivar L GarufiUnited KingdomXuxue Feng PROPOSAL
Mayumi S DarakjyUnited KingdomBernardo Dominic PROPOSAL
Silvio I BologniaGermanyAsiya Javayant UNQUALIFIED
Tony T TollnerItalyAmy Elsner PROPOSAL
Murillo V StockhamGermanyOnyama Limba PROPOSAL
Arvin O WhobreyAustraliaIoni Bowcher QUALIFIED
Maria S SlusarskiIndiaAmy Elsner QUALIFIED
Kaitlin P SchemmerJapanAnna Fali PROPOSAL
Aditya R CaudyArgentinaStephen Shaw NEW
James O CaldareraRussiaAsiya Javayant QUALIFIED
Morrow N MarrierBrazilIvan Magalhaes NEGOTIATION
Misaki P SchemmerIndiaAsiya Javayant NEW
Alejandro F PoquetteFranceOnyama Limba RENEWAL
Greenwood U VocelkaJapanStephen Shaw UNQUALIFIED
Rodrigues O PaprockiFranceAnna Fali RENEWAL
Antonio Y MaletItalyElwin Sharvill UNQUALIFIED
Morrow T PaprockiBrazilElwin Sharvill RENEWAL
Misaki A PerinCanadaIoni Bowcher UNQUALIFIED
Adams W KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Emily M SergiRussiaIoni Bowcher PROPOSAL
Sinclair F PoquetteItalyAnna Fali PROPOSAL
Faith C MacleadFranceStephen Shaw RENEWAL
Faith B GlickRussiaAsiya Javayant PROPOSAL
Jeanfrancois A RoysterRussiaElwin Sharvill UNQUALIFIED
Rodrigues X WieserSpainAsiya Javayant UNQUALIFIED
Costa W NestleJapanElwin Sharvill PROPOSAL
Kadeem N InouyeSpainIvan Magalhaes PROPOSAL
Costa J ShinkoArgentinaIoni Bowcher UNQUALIFIED
Juan T ChuiSpainOnyama Limba RENEWAL
Ricardo Y OldroydJapanAsiya Javayant QUALIFIED
Murillo Z OstroskySpainXuxue Feng NEGOTIATION
Julie R GlickFranceBernardo Dominic RENEWAL
Cody D GarufiCanadaAmy Elsner UNQUALIFIED
Aika P BologniaSpainOnyama Limba NEGOTIATION
Murillo W OstroskyJapanAnna Fali NEGOTIATION
Maisha Q VenereIndiaAnna Fali RENEWAL
David E BologniaRussiaAsiya Javayant UNQUALIFIED
David S SlusarskiGermanyStephen Shaw PROPOSAL
Mujtaba U GauchoJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues O AlbaresBrazilBernardo Dominic PROPOSAL
James R RimIndiaAmy Elsner PROPOSAL
Deepesh R WieserJapanElwin Sharvill QUALIFIED
Maisha W MaletCanadaOnyama Limba QUALIFIED
Antonio G WieserItalyAsiya Javayant PROPOSAL
Maria H ShinkoArgentinaAmy Elsner RENEWAL
Kaitlin Y PaprockiRussiaStephen Shaw RENEWAL
Claire G DilliardUnited KingdomXuxue Feng NEGOTIATION
Aika G RulapaughBrazilStephen Shaw RENEWAL
James U CaldareraSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie X DarakjyBrazil2026-07-07Truhlar And Truhlar Attys PROPOSAL8Amy Elsner
1001Ricardo I MaletBrazil2026-06-26Rangoni Of Florence QUALIFIED32Elwin Sharvill
1002Francesco X WaycottRussia2026-06-20Feltz Printing Service PROPOSAL69Ioni Bowcher
1003Kadeem X BriddickRussia2026-06-12Chapman, Ross E Esq QUALIFIED52Amy Elsner
1004Kadeem S DarakjyCanada2026-07-01Dorl, James J Esq NEGOTIATION96Elwin Sharvill
1005Leja V MorascaGermany2026-06-22Benton, John B Jr QUALIFIED73Bernardo Dominic
1006Adams N MacleadIndia2026-06-23Buckley Miller Wright UNQUALIFIED83Amy Elsner
1007Deepesh T CampainArgentina2026-07-06King, Christopher A Esq QUALIFIED0Onyama Limba
1008Maisha C WhobreyBrazil2026-07-02Feiner Bros NEGOTIATION60Ioni Bowcher
1009Clifford R IturbideAustralia2026-06-27Printing Dimensions NEGOTIATION44Asiya Javayant
1010Mujtaba P RoysterIndia2026-06-17Feltz Printing Service RENEWAL31Asiya Javayant
1011Izzy G PerinItaly2026-07-08Commercial Press NEW97Ioni Bowcher
1012Wickens H BriddickSpain2026-06-24Commercial Press PROPOSAL4Xuxue Feng
1013Johnson Y CaldareraGermany2026-06-26Truhlar And Truhlar Attys NEW88Asiya Javayant
1014Jeanfrancois Z ChuiRussia2026-06-11Benton, John B Jr NEW26Asiya Javayant
1015Mayumi W NestleArgentina2026-06-21Rangoni Of Florence NEGOTIATION75Anna Fali
1016David Y NestleFrance2026-06-21Printing Dimensions PROPOSAL90Onyama Limba
1017Izzy W FigeroaItaly2026-06-17Printing Dimensions RENEWAL39Stephen Shaw
1018Deepesh M MaletUnited Kingdom2026-06-22Rangoni Of Florence UNQUALIFIED52Asiya Javayant
1019Ivar B AlbaresArgentina2026-07-10Truhlar And Truhlar Attys NEW16Stephen Shaw
1020Juan S WhobreyFrance2026-07-08Benton, John B Jr NEGOTIATION45Stephen Shaw
1021Claire E WaycottArgentina2026-07-05Chanay, Jeffrey A Esq RENEWAL22Onyama Limba
1022Smith Q BriddickUnited Kingdom2026-07-07Morlong Associates RENEWAL26Stephen Shaw
1023Jeanfrancois D ButtIndia2026-06-23Benton, John B Jr NEGOTIATION77Ivan Magalhaes
1024Maisha O RulapaughBrazil2026-06-15Feltz Printing Service NEGOTIATION13Amy Elsner
1025Deepesh T AmigonSpain2026-06-12Printing Dimensions RENEWAL57Ivan Magalhaes
1026Juan N VenereJapan2026-06-17Truhlar And Truhlar Attys PROPOSAL47Asiya Javayant
1027Munro T WhobreySpain2026-07-06Chanay, Jeffrey A Esq PROPOSAL94Asiya Javayant
1028Leon P NestleJapan2026-07-05Chapman, Ross E Esq RENEWAL79Bernardo Dominic
1029Alejandro H GauchoFrance2026-06-25Commercial Press QUALIFIED65Elwin Sharvill
1030Tony Q StockhamSpain2026-07-03Buckley Miller Wright QUALIFIED28Anna Fali
1031Aruna A MaletItaly2026-06-16Rangoni Of Florence QUALIFIED87Amy Elsner
1032Kaitlin X SergiRussia2026-06-28Chapman, Ross E Esq PROPOSAL65Stephen Shaw
1033Mujtaba M MaletArgentina2026-06-26Rangoni Of Florence PROPOSAL16Bernardo Dominic
1034Sinclair Q TollnerArgentina2026-06-24Rousseaux, Michael Esq RENEWAL24Stephen Shaw
1035Ashley H FollerJapan2026-06-12Morlong Associates QUALIFIED12Asiya Javayant
1036Emily U ShinkoAustralia2026-06-29Truhlar And Truhlar Attys UNQUALIFIED17Stephen Shaw
1037Silvio H MaletCanada2026-07-02Chanay, Jeffrey A Esq NEW39Elwin Sharvill
1038Aika M NickaAustralia2026-06-12Printing Dimensions PROPOSAL1Stephen Shaw
1039Smith S VenereJapan2026-06-26Feltz Printing Service UNQUALIFIED37Onyama Limba
1040Kadeem F SchemmerUnited Kingdom2026-07-06Printing Dimensions NEGOTIATION7Elwin Sharvill
1041Aika Y BologniaFrance2026-07-03Rousseaux, Michael Esq UNQUALIFIED34Onyama Limba
1042Wickens E BologniaGermany2026-07-01Chanay, Jeffrey A Esq RENEWAL31Bernardo Dominic
1043Claire P GlickSpain2026-06-12Feltz Printing Service RENEWAL91Asiya Javayant
1044Greenwood A SlusarskiSpain2026-07-08Chanay, Jeffrey A Esq UNQUALIFIED20Bernardo Dominic
1045Deepesh G FigeroaUnited Kingdom2026-06-26King, Christopher A Esq PROPOSAL10Bernardo Dominic
1046Claire G AlbaresUnited Kingdom2026-06-28King, Christopher A Esq PROPOSAL31Xuxue Feng
1047Mayumi M WhobreyAustralia2026-07-08Chemel, James L Cpa RENEWAL71Elwin Sharvill
1048Antonio L MacleadAustralia2026-06-28Dorl, James J Esq QUALIFIED60Xuxue Feng
1049Francesco M CaldareraItaly2026-06-19King, Christopher A Esq QUALIFIED28Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Deepesh Y NickaIndiaStephen Shaw NEGOTIATION
Aika I AlbaresCanadaElwin Sharvill NEGOTIATION
Kadeem Z BowleyUnited KingdomAmy Elsner NEW
Claire V FlosiFranceIoni Bowcher PROPOSAL
Costa C MorascaJapanAnna Fali QUALIFIED
Rodrigues V GarufiFranceStephen Shaw NEW
Francesco O MacleadFranceIvan Magalhaes UNQUALIFIED
Johnson W WhobreyGermanyAnna Fali PROPOSAL
Sinclair W MaletFranceElwin Sharvill RENEWAL
Greenwood H GauchoJapanXuxue Feng NEGOTIATION
Jennifer M DoeCanadaOnyama Limba NEGOTIATION
Nicolas J MarrierUnited KingdomXuxue Feng QUALIFIED
Octavia K MaletBrazilXuxue Feng NEW
Izzy O ButtGermanyStephen Shaw NEW
Aruna P NickaAustraliaIoni Bowcher RENEWAL
Izzy V NestleGermanyXuxue Feng NEGOTIATION
Maria F BowleyItalyAsiya Javayant NEW
Jennifer D FlosiBrazilAmy Elsner RENEWAL
James W InouyeArgentinaElwin Sharvill UNQUALIFIED
Adams U ButtRussiaBernardo Dominic UNQUALIFIED
Jones G InouyeAustraliaAnna Fali QUALIFIED
Misaki S PerinJapanXuxue Feng RENEWAL
Stacey B NestleArgentinaIvan Magalhaes UNQUALIFIED
Cody Q DoeCanadaBernardo Dominic UNQUALIFIED
Rodrigues G CaudyUnited KingdomAsiya Javayant PROPOSAL
Morrow F PerinRussiaOnyama Limba UNQUALIFIED
Emily O WaycottSpainElwin Sharvill PROPOSAL
Mayumi F WhobreyCanadaStephen Shaw NEW
Misaki X ShinkoCanadaOnyama Limba NEGOTIATION
Julie L WhobreyJapanIvan Magalhaes NEW
Aditya P StockhamSpainIoni Bowcher QUALIFIED
Rodrigues B AmigonJapanStephen Shaw RENEWAL
Kaitlin Q IturbideRussiaStephen Shaw PROPOSAL
Jefferson N SergiUnited KingdomXuxue Feng NEW
Stacey P OstroskyBrazilStephen Shaw PROPOSAL
Silvio R BriddickBrazilIoni Bowcher NEGOTIATION
Munro J FlosiFranceBernardo Dominic NEW
Maisha U VenereIndiaAnna Fali RENEWAL
Maisha K StockhamBrazilStephen Shaw PROPOSAL
Johnson K CampainIndiaOnyama Limba RENEWAL
Izzy P CaudyRussiaBernardo Dominic RENEWAL
Leja Y GauchoIndiaIvan Magalhaes UNQUALIFIED
Munro Y MaletAustraliaXuxue Feng NEW
Jennifer J PoquetteIndiaOnyama Limba QUALIFIED
Nicolas A MarrierBrazilAmy Elsner UNQUALIFIED
Morrow P PaprockiItalyOnyama Limba UNQUALIFIED
Ivar Z MorascaJapanXuxue Feng NEGOTIATION
Maria Z OldroydRussiaOnyama Limba NEGOTIATION
Smith E SchemmerGermanyBernardo Dominic PROPOSAL
Aruna M DoeItalyAsiya Javayant NEW
Frozen Columns
Name
Claire P Kolmetz
Darci U Ostrosky
Jefferson F Shinko
Murillo K Nestle
Nicolas G Ferencz
Isabel Z Caldarera
Silvio M Bowley
Stacey Q Gaucho
Rodrigues F Slusarski
Morrow Y Dilliard
Jennifer Z Glick
Nicolas I Whobrey
Isabel Y Vocelka
Aika K Caldarera
Arvin A Marrier
Aruna I Inouye
Smith S Flosi
Jennifer M Tollner
Arvin G Venere
Deepesh H Gillian
Arvin M Malet
Darci X Ruta
Antonio I Ostrosky
Jeanfrancois E Stockham
Chavez N Flosi
Sinclair P Poquette
Morrow Z Amigon
Tony M Iturbide
Munro G Slusarski
Emily L Paprocki
Nicolas C Garufi
Ricardo G Nicka
Silvio O Kolmetz
Mujtaba G Slusarski
Mayumi E Amigon
Aruna T Iturbide
Rodrigues D Rulapaugh
Morrow Y Foller
Julie C Gaucho
Leon V Gillian
Adams P Saylors
Ivar M Wieser
James W Albares
Julie J Maclead
Claire W Gillian
Smith L Schemmer
Francesco H Nestle
Arvin Y Campain
Jeanfrancois G Gaucho
Ivar P Whobrey
IdCountryDate
1000Italy2026-07-01
1001Canada2026-07-08
1002Canada2026-07-06
1003India2026-06-11
1004Australia2026-06-20
1005Brazil2026-07-05
1006Japan2026-06-25
1007Australia2026-07-10
1008Canada2026-06-29
1009United Kingdom2026-06-11
1010Brazil2026-06-23
1011Argentina2026-06-29
1012India2026-06-19
1013France2026-06-25
1014France2026-06-11
1015Brazil2026-07-03
1016Canada2026-07-07
1017Brazil2026-07-05
1018Argentina2026-06-24
1019France2026-06-12
1020Australia2026-07-10
1021Spain2026-07-06
1022Spain2026-07-09
1023United Kingdom2026-07-04
1024Italy2026-07-01
1025United Kingdom2026-06-23
1026France2026-07-06
1027Russia2026-06-16
1028Italy2026-06-25
1029France2026-06-15
1030Canada2026-06-25
1031India2026-07-01
1032Argentina2026-06-13
1033Argentina2026-06-13
1034Argentina2026-06-24
1035Germany2026-06-18
1036Brazil2026-07-06
1037India2026-06-18
1038Italy2026-06-15
1039Brazil2026-07-09
1040Italy2026-07-10
1041India2026-07-08
1042Italy2026-06-15
1043Germany2026-07-07
1044Canada2026-06-28
1045Brazil2026-06-29
1046Germany2026-06-16
1047Germany2026-06-13
1048Spain2026-07-01
1049Brazil2026-06-26

On-Demand Data

NameIdCountryDate
Kadeem B Foller1000France2026-06-17
Smith L Butt1001Japan2026-06-11
Leja X Amigon1002Australia2026-07-07
Rodrigues R Whobrey1003Italy2026-07-07
Wickens X Amigon1004Brazil2026-07-04
Mayumi D Maclead1005Italy2026-06-16
Aika P Kolmetz1006United Kingdom2026-07-01
Mujtaba V Dilliard1007India2026-07-10
Cody T Campain1008Argentina2026-06-16
Deepesh Q Wieser1009Germany2026-06-11
Alejandro S Nestle1010Germany2026-06-29
Claire T Iturbide1011Germany2026-07-06
Kaitlin F Albares1012Germany2026-06-15
Antonio S Rim1013Argentina2026-06-30
Misaki M Venere1014Canada2026-07-09
Clifford M Glick1015Italy2026-06-21
Johnson T Inouye1016Japan2026-06-11
Costa K Campain1017Argentina2026-06-11
Silvio M Briddick1018Russia2026-06-26
Misaki W Malet1019Brazil2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Y OldroydAustraliaAsiya Javayant QUALIFIED
Tony S OldroydBrazilIoni Bowcher NEGOTIATION
Greenwood T GarufiIndiaIvan Magalhaes NEW
Ivar X StensethGermanyAsiya Javayant RENEWAL
Ashley C IturbideItalyBernardo Dominic UNQUALIFIED
Sinclair O CaldareraRussiaXuxue Feng NEW
Jeanfrancois Q PaprockiFranceBernardo Dominic QUALIFIED
Misaki V KolmetzSpainBernardo Dominic NEW
Aditya J BowleyGermanyIvan Magalhaes UNQUALIFIED
Octavia E MarrierGermanyXuxue Feng UNQUALIFIED
Sinclair B MacleadAustraliaOnyama Limba PROPOSAL
Antonio O PoquetteGermanyIoni Bowcher UNQUALIFIED
Francesco M VocelkaItalyOnyama Limba NEGOTIATION
Octavia T NestleIndiaIvan Magalhaes QUALIFIED
Salvatore Z WieserCanadaIvan Magalhaes UNQUALIFIED
Aditya Y KolmetzIndiaElwin Sharvill RENEWAL
Nicolas M PoquetteCanadaStephen Shaw RENEWAL
Deepesh P NestleJapanIvan Magalhaes PROPOSAL
Tony V StockhamIndiaStephen Shaw QUALIFIED
Juan X CaldareraUnited KingdomElwin Sharvill QUALIFIED
Francesco J NickaGermanyStephen Shaw NEGOTIATION
David G CaldareraAustraliaAmy Elsner QUALIFIED
Maria I CaldareraCanadaAsiya Javayant NEW
Jeanfrancois A ButtIndiaXuxue Feng NEGOTIATION
Greenwood G PoquetteBrazilXuxue Feng QUALIFIED
Ivar N MorascaFranceAnna Fali QUALIFIED
Kadeem A OldroydIndiaAmy Elsner RENEWAL
Ivar N GlickItalyAsiya Javayant QUALIFIED
Stacey G InouyeCanadaAnna Fali RENEWAL
Deepesh T DoeAustraliaOnyama Limba RENEWAL
Jefferson H TollnerBrazilXuxue Feng NEGOTIATION
Cody R OstroskyFranceAmy Elsner NEW
Clifford O PerinGermanyIvan Magalhaes NEGOTIATION
Cody R FollerUnited KingdomIvan Magalhaes NEGOTIATION
Aika B NestleAustraliaBernardo Dominic RENEWAL
Chavez U StensethSpainXuxue Feng RENEWAL
Ivar B IturbideSpainIvan Magalhaes NEGOTIATION
Maisha C MarrierGermanyElwin Sharvill PROPOSAL
Leja O PaprockiGermanyIoni Bowcher UNQUALIFIED
Cody X NestleSpainIvan Magalhaes 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>