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
Silvio Q MorascaGermanyAnna Fali QUALIFIED
Murillo X DarakjySpainIoni Bowcher NEGOTIATION
Jefferson X CampainGermanyOnyama Limba PROPOSAL
David S CaudyAustraliaXuxue Feng UNQUALIFIED
Salvatore T PaprockiItalyIvan Magalhaes NEGOTIATION
Greenwood Z BriddickAustraliaIoni Bowcher NEGOTIATION
Johnson K OldroydIndiaIvan Magalhaes RENEWAL
Murillo N MarrierRussiaXuxue Feng UNQUALIFIED
Tony P DoeJapanIvan Magalhaes QUALIFIED
Rodrigues R SaylorsItalyIvan Magalhaes PROPOSAL
Stacey E CaldareraAustraliaAnna Fali UNQUALIFIED
Izzy X AlbaresGermanyOnyama Limba NEGOTIATION
Cody B BowleyArgentinaStephen Shaw PROPOSAL
Clifford E RulapaughIndiaBernardo Dominic NEGOTIATION
Jennifer Z OstroskyItalyIoni Bowcher QUALIFIED
Jeanfrancois N RimUnited KingdomStephen Shaw QUALIFIED
Francesco I BowleyBrazilAmy Elsner UNQUALIFIED
Johnson X CaldareraArgentinaAnna Fali RENEWAL
Silvio Q PerinSpainOnyama Limba UNQUALIFIED
David T SaylorsJapanStephen Shaw PROPOSAL
Jennifer B WhobreyFranceAmy Elsner PROPOSAL
Ricardo R GillianFranceIoni Bowcher UNQUALIFIED
Ashley K MorascaJapanAmy Elsner RENEWAL
Smith L ShinkoRussiaIvan Magalhaes NEW
Tony C FerenczIndiaBernardo Dominic NEGOTIATION
Aika A RoysterIndiaElwin Sharvill PROPOSAL
Arvin A WaycottCanadaOnyama Limba NEGOTIATION
Francesco Q StockhamCanadaAnna Fali NEW
Isabel W WhobreyUnited KingdomStephen Shaw NEGOTIATION
Rodrigues T ChuiCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois I OstroskyRussiaOnyama Limba QUALIFIED
Morrow K CampainRussiaStephen Shaw UNQUALIFIED
Cody Z SchemmerItalyOnyama Limba PROPOSAL
Morrow K MaletAustraliaBernardo Dominic NEW
Emily R VocelkaItalyAnna Fali QUALIFIED
Juan M PaprockiGermanyXuxue Feng RENEWAL
Rodrigues V GauchoFranceStephen Shaw UNQUALIFIED
Aditya W AlbaresUnited KingdomBernardo Dominic QUALIFIED
Sinclair Y SlusarskiFranceIvan Magalhaes UNQUALIFIED
Johnson B AlbaresAustraliaOnyama Limba QUALIFIED
Misaki I BowleySpainIvan Magalhaes RENEWAL
Ivar A FlosiUnited KingdomBernardo Dominic RENEWAL
Johnson Z BriddickIndiaBernardo Dominic RENEWAL
Cody Q RimJapanOnyama Limba UNQUALIFIED
Leja D ShinkoIndiaAsiya Javayant UNQUALIFIED
Ashley Z GillianJapanBernardo Dominic NEGOTIATION
Johnson D FlosiSpainAsiya Javayant NEW
Salvatore S AmigonItalyOnyama Limba RENEWAL
Leon M VocelkaAustraliaAmy Elsner RENEWAL
Aika P BriddickIndiaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel F StensethRussiaIoni Bowcher NEW
Maria R VocelkaSpainBernardo Dominic RENEWAL
Chavez B GillianFranceOnyama Limba NEGOTIATION
Smith G GlickJapanAsiya Javayant RENEWAL
Silvio A FollerItalyIoni Bowcher PROPOSAL
Isabel N DarakjySpainStephen Shaw UNQUALIFIED
Antonio S KolmetzRussiaOnyama Limba NEW
Aditya T KolmetzBrazilIoni Bowcher NEW
Salvatore O KolmetzFranceAmy Elsner UNQUALIFIED
David Y VocelkaRussiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith G VenereUnited Kingdom2026-07-21Morlong Associates PROPOSAL29Bernardo Dominic
1001Claire B FerenczUnited Kingdom2026-07-12Dorl, James J Esq QUALIFIED59Amy Elsner
1002David R IturbideCanada2026-07-27Morlong Associates NEGOTIATION75Asiya Javayant
1003Ivar R StockhamIndia2026-07-31Rousseaux, Michael Esq PROPOSAL14Stephen Shaw
1004Ashley Z StockhamFrance2026-07-11Truhlar And Truhlar Attys RENEWAL79Onyama Limba
1005Tony V WieserArgentina2026-07-04Rangoni Of Florence NEGOTIATION89Elwin Sharvill
1006Rodrigues N GauchoSpain2026-07-19Morlong Associates UNQUALIFIED20Elwin Sharvill
1007Munro R DarakjyItaly2026-07-05Feltz Printing Service UNQUALIFIED95Amy Elsner
1008Aika O KuskoFrance2026-07-10Feltz Printing Service QUALIFIED78Xuxue Feng
1009Chavez D CampainIndia2026-07-03Truhlar And Truhlar Attys NEW5Bernardo Dominic
1010Ashley D SlusarskiUnited Kingdom2026-07-15Morlong Associates NEGOTIATION58Asiya Javayant
1011Misaki T WieserSpain2026-07-27Rangoni Of Florence NEW66Elwin Sharvill
1012Antonio L FlosiUnited Kingdom2026-07-25Rousseaux, Michael Esq QUALIFIED31Xuxue Feng
1013Jefferson C FlosiRussia2026-07-23Chapman, Ross E Esq NEGOTIATION61Ivan Magalhaes
1014Aika D AlbaresFrance2026-07-03Rangoni Of Florence RENEWAL68Asiya Javayant
1015Deepesh H FigeroaCanada2026-07-21Printing Dimensions RENEWAL26Ioni Bowcher
1016Leja F DilliardIndia2026-07-17King, Christopher A Esq PROPOSAL57Ivan Magalhaes
1017Murillo B MorascaFrance2026-07-08Feltz Printing Service UNQUALIFIED19Anna Fali
1018Claire I PerinIndia2026-07-20Chemel, James L Cpa PROPOSAL21Amy Elsner
1019Arvin O FlosiGermany2026-07-06Printing Dimensions PROPOSAL34Asiya Javayant
1020Ashley Y SaylorsJapan2026-07-22Feiner Bros NEGOTIATION3Amy Elsner
1021Munro Q RimItaly2026-07-06Rousseaux, Michael Esq NEGOTIATION82Onyama Limba
1022Silvio W MorascaBrazil2026-07-14Feltz Printing Service QUALIFIED18Elwin Sharvill
1023Ricardo J DoeRussia2026-07-26Chapman, Ross E Esq UNQUALIFIED88Stephen Shaw
1024Antonio M GillianCanada2026-07-27Dorl, James J Esq RENEWAL19Amy Elsner
1025James B ChuiAustralia2026-07-25Morlong Associates NEGOTIATION83Anna Fali
1026Maisha T GlickCanada2026-07-29Rangoni Of Florence QUALIFIED5Ivan Magalhaes
1027Jennifer F GillianUnited Kingdom2026-07-11Printing Dimensions PROPOSAL29Onyama Limba
1028Maria Q RimArgentina2026-07-22Benton, John B Jr NEGOTIATION81Xuxue Feng
1029David W BowleyAustralia2026-07-22Rangoni Of Florence PROPOSAL98Amy Elsner
1030Antonio A GarufiRussia2026-07-23Benton, John B Jr QUALIFIED34Asiya Javayant
1031Leja E CampainFrance2026-07-18Rousseaux, Michael Esq PROPOSAL21Ivan Magalhaes
1032Salvatore C CaudyCanada2026-07-26Morlong Associates RENEWAL66Elwin Sharvill
1033Ivar B SlusarskiGermany2026-07-13Benton, John B Jr PROPOSAL76Bernardo Dominic
1034Nicolas P PoquetteUnited Kingdom2026-07-25Benton, John B Jr PROPOSAL1Asiya Javayant
1035Leon P SergiAustralia2026-07-09Chemel, James L Cpa PROPOSAL91Elwin Sharvill
1036Munro T PerinItaly2026-07-17Buckley Miller Wright UNQUALIFIED95Elwin Sharvill
1037Maria A SchemmerRussia2026-07-10Dorl, James J Esq UNQUALIFIED98Anna Fali
1038Greenwood U RoysterJapan2026-07-18Benton, John B Jr RENEWAL15Bernardo Dominic
1039Jones Q WhobreyRussia2026-07-10Printing Dimensions NEW41Onyama Limba
1040Chavez R DarakjyFrance2026-07-14Commercial Press QUALIFIED9Bernardo Dominic
1041Clifford K FerenczArgentina2026-07-09Buckley Miller Wright QUALIFIED75Asiya Javayant
1042Julie R SaylorsUnited Kingdom2026-07-06Chemel, James L Cpa NEW23Amy Elsner
1043Clifford W WaycottJapan2026-07-26Dorl, James J Esq PROPOSAL96Bernardo Dominic
1044Adams H ButtItaly2026-07-26Printing Dimensions NEW11Stephen Shaw
1045Jennifer I GillianUnited Kingdom2026-07-15Printing Dimensions RENEWAL54Stephen Shaw
1046Jefferson T OldroydArgentina2026-07-26Chapman, Ross E Esq QUALIFIED58Stephen Shaw
1047Morrow W SergiGermany2026-07-19Feltz Printing Service QUALIFIED95Amy Elsner
1048Smith Z AlbaresUnited Kingdom2026-07-22Chanay, Jeffrey A Esq PROPOSAL78Asiya Javayant
1049Morrow B WieserCanada2026-07-20Rousseaux, Michael Esq UNQUALIFIED58Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Francesco Y ChuiJapanElwin Sharvill PROPOSAL
Kaitlin P MarrierCanadaIoni Bowcher RENEWAL
Adams B VenereIndiaOnyama Limba NEW
Maria O AmigonSpainBernardo Dominic NEGOTIATION
Murillo Q BologniaBrazilBernardo Dominic UNQUALIFIED
Emily Q MorascaJapanElwin Sharvill NEW
Antonio I OstroskyUnited KingdomAnna Fali RENEWAL
Darci O PaprockiIndiaAnna Fali UNQUALIFIED
Clifford F DoeUnited KingdomStephen Shaw UNQUALIFIED
Johnson R ChuiCanadaBernardo Dominic NEGOTIATION
Julie V BriddickIndiaXuxue Feng NEW
Greenwood R RimRussiaXuxue Feng UNQUALIFIED
Ricardo H StensethJapanBernardo Dominic QUALIFIED
Kaitlin C RoysterIndiaElwin Sharvill UNQUALIFIED
Leja J KolmetzUnited KingdomElwin Sharvill PROPOSAL
Arvin V DarakjyUnited KingdomAmy Elsner NEGOTIATION
Morrow V CampainItalyBernardo Dominic PROPOSAL
Costa C WieserUnited KingdomBernardo Dominic NEGOTIATION
Wickens U ShinkoFranceAmy Elsner UNQUALIFIED
Maisha W FlosiArgentinaIoni Bowcher UNQUALIFIED
Maria P AmigonFranceIoni Bowcher UNQUALIFIED
Nicolas I PaprockiItalyAmy Elsner NEW
Kadeem M TollnerGermanyXuxue Feng QUALIFIED
Jones O VenereItalyAmy Elsner UNQUALIFIED
Arvin F PaprockiIndiaIvan Magalhaes NEW
Rodrigues V NestleBrazilAsiya Javayant QUALIFIED
Aditya I PerinBrazilOnyama Limba RENEWAL
Morrow V RutaBrazilAnna Fali RENEWAL
Ivar M FigeroaArgentinaIoni Bowcher NEW
Murillo N FerenczArgentinaAsiya Javayant NEW
Johnson U VocelkaRussiaBernardo Dominic UNQUALIFIED
Deepesh N DoeArgentinaAnna Fali QUALIFIED
Misaki T RulapaughFranceBernardo Dominic QUALIFIED
Octavia Z MarrierIndiaAmy Elsner UNQUALIFIED
Jones N MorascaCanadaStephen Shaw NEGOTIATION
Antonio D MaletBrazilElwin Sharvill UNQUALIFIED
Stacey K MaletCanadaElwin Sharvill QUALIFIED
Arvin Y WaycottIndiaAmy Elsner QUALIFIED
Francesco E WieserAustraliaOnyama Limba NEGOTIATION
Aika E MacleadJapanXuxue Feng NEW
Leon N FollerArgentinaBernardo Dominic NEGOTIATION
Maria W BologniaJapanIvan Magalhaes RENEWAL
Arvin E RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Ivar W AlbaresUnited KingdomElwin Sharvill NEW
Leon X KolmetzIndiaElwin Sharvill RENEWAL
Johnson U OstroskyItalyElwin Sharvill NEGOTIATION
James W StensethFranceOnyama Limba NEW
Clifford T KuskoGermanyXuxue Feng NEGOTIATION
Julie X OstroskyArgentinaAsiya Javayant UNQUALIFIED
Costa T TollnerItalyOnyama Limba RENEWAL
Frozen Columns
Name
Leon P Royster
Maria Q Nestle
Salvatore M Morasca
Mayumi C Briddick
Morrow A Glick
Murillo W Paprocki
James B Malet
Claire T Rim
Octavia R Rim
Tony D Bowley
Salvatore J Waycott
Munro M Doe
Clifford R Whobrey
Kaitlin E Darakjy
Mujtaba D Inouye
Alejandro B Ferencz
Jennifer Z Gillian
Greenwood F Marrier
Rodrigues Y Inouye
Antonio S Gillian
Mayumi T Stenseth
Leja Z Schemmer
Tony L Ostrosky
Kadeem G Ruta
Jefferson X Maclead
Jefferson H Tollner
Octavia M Doe
Aika M Bolognia
Morrow J Shinko
Sinclair Y Malet
Ashley K Schemmer
Murillo O Inouye
Kaitlin G Whobrey
Emily G Stockham
Ricardo V Rim
Jennifer I Malet
Jeanfrancois A Paprocki
Maisha J Chui
Aika S Saylors
Jones R Rim
Arvin T Iturbide
Leja B Poquette
Morrow Q Caudy
Jones H Albares
Mayumi B Stockham
Jefferson W Oldroyd
Leja S Ruta
Sinclair D Ostrosky
Maisha L Whobrey
Ashley X Waycott
IdCountryDate
1000Brazil2026-07-14
1001Spain2026-08-01
1002France2026-07-13
1003India2026-07-07
1004Japan2026-07-15
1005India2026-07-25
1006Russia2026-07-03
1007Canada2026-07-14
1008Germany2026-07-03
1009Spain2026-07-04
1010Germany2026-07-19
1011United Kingdom2026-07-31
1012Spain2026-07-10
1013Spain2026-07-03
1014India2026-07-15
1015Germany2026-07-28
1016Germany2026-07-24
1017Canada2026-07-25
1018Italy2026-08-01
1019India2026-07-07
1020France2026-07-24
1021Italy2026-07-03
1022Spain2026-07-19
1023Russia2026-07-12
1024Brazil2026-07-06
1025Italy2026-07-18
1026Russia2026-07-08
1027Germany2026-07-07
1028Germany2026-07-12
1029Germany2026-07-25
1030Japan2026-07-12
1031Argentina2026-07-24
1032Canada2026-07-07
1033Italy2026-07-05
1034Russia2026-07-25
1035United Kingdom2026-07-11
1036Japan2026-07-28
1037Brazil2026-07-20
1038France2026-07-14
1039Australia2026-07-22
1040Spain2026-07-23
1041Australia2026-07-24
1042Italy2026-07-19
1043Argentina2026-07-14
1044United Kingdom2026-07-28
1045Japan2026-07-27
1046Argentina2026-07-03
1047Brazil2026-07-29
1048Argentina2026-07-25
1049Argentina2026-07-23

On-Demand Data

NameIdCountryDate
Isabel E Nestle1000Brazil2026-07-06
Cody A Albares1001Italy2026-07-26
Mayumi R Schemmer1002Spain2026-07-12
Chavez L Tollner1003Italy2026-07-18
Wickens O Vocelka1004Brazil2026-07-18
Maisha Y Tollner1005United Kingdom2026-07-22
Leon O Amigon1006Spain2026-07-07
Maria O Wieser1007Spain2026-07-04
Mujtaba P Oldroyd1008Australia2026-07-04
Leon K Chui1009Spain2026-08-01
Kaitlin W Royster1010Brazil2026-07-05
Francesco R Poquette1011United Kingdom2026-07-09
Wickens G Chui1012United Kingdom2026-07-22
Johnson C Slusarski1013Canada2026-07-10
Cody F Briddick1014Argentina2026-07-19
Jones C Sergi1015United Kingdom2026-07-31
Costa D Garufi1016Russia2026-07-23
Izzy Z Slusarski1017Germany2026-07-22
Cody P Ostrosky1018United Kingdom2026-07-06
Maria Q Flosi1019Argentina2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith I WhobreyArgentinaOnyama Limba NEGOTIATION
James P RimJapanBernardo Dominic PROPOSAL
Kadeem I StockhamGermanyAmy Elsner NEGOTIATION
Izzy Q FigeroaRussiaAnna Fali RENEWAL
Adams M AlbaresIndiaIvan Magalhaes PROPOSAL
Greenwood L PerinAustraliaOnyama Limba NEW
Juan J MorascaUnited KingdomIvan Magalhaes NEW
Jennifer X PerinBrazilXuxue Feng RENEWAL
Greenwood O DarakjySpainOnyama Limba UNQUALIFIED
Kadeem V FigeroaFranceAnna Fali PROPOSAL
Isabel D StockhamBrazilBernardo Dominic QUALIFIED
Aruna U MacleadJapanBernardo Dominic UNQUALIFIED
Johnson D ShinkoArgentinaIoni Bowcher UNQUALIFIED
Greenwood F StensethFranceIvan Magalhaes UNQUALIFIED
Rodrigues D AlbaresCanadaBernardo Dominic QUALIFIED
Rodrigues I DarakjyFranceBernardo Dominic NEW
Aruna I WaycottGermanyElwin Sharvill RENEWAL
Deepesh K ShinkoFranceAmy Elsner NEGOTIATION
Leja N WhobreyBrazilAnna Fali RENEWAL
Maria L MorascaArgentinaOnyama Limba NEW
Jennifer H GarufiArgentinaIoni Bowcher NEW
Cody C CaldareraItalyOnyama Limba UNQUALIFIED
James J FerenczCanadaAnna Fali QUALIFIED
Jones N DilliardUnited KingdomOnyama Limba PROPOSAL
Costa W StensethJapanIvan Magalhaes NEGOTIATION
Jeanfrancois Y ChuiArgentinaOnyama Limba RENEWAL
Misaki E RutaAustraliaBernardo Dominic RENEWAL
Ricardo Z RulapaughCanadaAsiya Javayant PROPOSAL
Mayumi X RimAustraliaAnna Fali NEGOTIATION
Mayumi K DilliardFranceElwin Sharvill PROPOSAL
Leon N SlusarskiBrazilOnyama Limba RENEWAL
Darci Z GillianCanadaAnna Fali QUALIFIED
Ashley L RoysterJapanIoni Bowcher PROPOSAL
Adams G CaldareraJapanIoni Bowcher RENEWAL
Ricardo G WieserGermanyXuxue Feng UNQUALIFIED
Munro C StensethBrazilStephen Shaw NEGOTIATION
Ricardo L RimRussiaBernardo Dominic QUALIFIED
Greenwood V MacleadRussiaOnyama Limba PROPOSAL
Sinclair T BologniaArgentinaXuxue Feng PROPOSAL
Ashley V MarrierUnited KingdomAsiya 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>