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
Arvin S GarufiJapanStephen Shaw QUALIFIED
Leon K VenereGermanyIoni Bowcher NEW
Faith Y GauchoIndiaXuxue Feng UNQUALIFIED
Wickens R OldroydArgentinaAnna Fali NEW
Aruna D GauchoSpainStephen Shaw UNQUALIFIED
Darci R OldroydRussiaIoni Bowcher PROPOSAL
Misaki E FlosiIndiaIoni Bowcher RENEWAL
Jones E KolmetzArgentinaStephen Shaw UNQUALIFIED
Claire Z RoysterIndiaBernardo Dominic NEGOTIATION
Salvatore N ShinkoAustraliaOnyama Limba NEGOTIATION
Darci C ShinkoBrazilBernardo Dominic PROPOSAL
Maisha P AmigonGermanyBernardo Dominic UNQUALIFIED
Morrow Q StockhamUnited KingdomStephen Shaw NEGOTIATION
Arvin G GillianUnited KingdomAmy Elsner NEW
Mujtaba Z GauchoGermanyAmy Elsner NEGOTIATION
Silvio A AmigonJapanBernardo Dominic RENEWAL
Salvatore O FlosiJapanOnyama Limba NEGOTIATION
Stacey X TollnerJapanIvan Magalhaes UNQUALIFIED
Jones D SaylorsFranceIvan Magalhaes NEW
Darci W CaudySpainIvan Magalhaes NEW
Jeanfrancois Z FigeroaItalyIoni Bowcher RENEWAL
Jennifer R NickaSpainXuxue Feng PROPOSAL
Deepesh Y PoquetteAustraliaElwin Sharvill RENEWAL
Sinclair X MorascaRussiaIvan Magalhaes PROPOSAL
Maria Y AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Arvin H GarufiAustraliaXuxue Feng UNQUALIFIED
Sinclair X FlosiUnited KingdomIvan Magalhaes QUALIFIED
Salvatore Z GlickCanadaElwin Sharvill QUALIFIED
Munro Y PerinIndiaAnna Fali RENEWAL
Jennifer C RoysterItalyIvan Magalhaes UNQUALIFIED
Antonio K DoeRussiaAmy Elsner RENEWAL
Aika I BologniaBrazilXuxue Feng RENEWAL
David Z RutaFranceAsiya Javayant NEW
Ricardo X GarufiArgentinaIvan Magalhaes QUALIFIED
Smith W TollnerIndiaIvan Magalhaes RENEWAL
Jennifer K MaletArgentinaAnna Fali UNQUALIFIED
Faith R MorascaItalyIvan Magalhaes UNQUALIFIED
Johnson R VocelkaAustraliaAnna Fali UNQUALIFIED
Darci N VocelkaJapanAnna Fali RENEWAL
Maisha Y OstroskyJapanElwin Sharvill NEGOTIATION
Salvatore W RimCanadaAnna Fali QUALIFIED
Johnson A PerinIndiaElwin Sharvill QUALIFIED
Chavez T InouyeBrazilBernardo Dominic UNQUALIFIED
Izzy W TollnerCanadaAnna Fali UNQUALIFIED
Mujtaba V CaudyRussiaXuxue Feng QUALIFIED
Aditya W NickaCanadaIvan Magalhaes RENEWAL
Kadeem W IturbideSpainIoni Bowcher NEGOTIATION
Ricardo Q NickaSpainBernardo Dominic NEW
Jones H ButtUnited KingdomIoni Bowcher NEW
Aditya I GauchoArgentinaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi Q BowleyBrazilBernardo Dominic PROPOSAL
Rodrigues M FerenczAustraliaOnyama Limba UNQUALIFIED
Emily I StockhamItalyAnna Fali QUALIFIED
Julie D BowleyBrazilStephen Shaw UNQUALIFIED
Leja Q StockhamCanadaAnna Fali PROPOSAL
Ricardo F BowleyIndiaAnna Fali NEGOTIATION
Jefferson Z AmigonRussiaIoni Bowcher UNQUALIFIED
Costa K MacleadJapanIoni Bowcher QUALIFIED
Kaitlin S RoysterRussiaBernardo Dominic PROPOSAL
Smith R FerenczAustraliaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez W TollnerRussia2024-05-31King, Christopher A Esq UNQUALIFIED66Bernardo Dominic
1001Maisha K KuskoAustralia2024-05-23Rangoni Of Florence NEGOTIATION11Elwin Sharvill
1002Mayumi T MorascaIndia2024-05-17Printing Dimensions RENEWAL77Stephen Shaw
1003Jones W RutaRussia2024-05-31Morlong Associates NEGOTIATION17Ioni Bowcher
1004James W BowleyBrazil2024-05-17Commercial Press NEW57Onyama Limba
1005Darci K ButtItaly2024-05-07Rousseaux, Michael Esq QUALIFIED87Amy Elsner
1006Tony V PaprockiSpain2024-05-09Chapman, Ross E Esq RENEWAL12Bernardo Dominic
1007Octavia E DilliardItaly2024-05-09Commercial Press NEGOTIATION82Stephen Shaw
1008Ricardo P SergiGermany2024-05-28Commercial Press QUALIFIED27Ivan Magalhaes
1009Ricardo P FigeroaBrazil2024-05-10Chemel, James L Cpa NEGOTIATION28Xuxue Feng
1010Mayumi F OstroskyArgentina2024-05-29Printing Dimensions NEGOTIATION93Elwin Sharvill
1011Izzy K KolmetzRussia2024-05-10Truhlar And Truhlar Attys QUALIFIED25Stephen Shaw
1012Claire D RoysterBrazil2024-05-09Benton, John B Jr NEGOTIATION45Stephen Shaw
1013Juan X PaprockiUnited Kingdom2024-05-29Chapman, Ross E Esq PROPOSAL79Elwin Sharvill
1014Arvin S RutaArgentina2024-05-17Commercial Press UNQUALIFIED54Asiya Javayant
1015Kadeem C NestleBrazil2024-05-17Buckley Miller Wright RENEWAL60Ivan Magalhaes
1016Misaki O WieserAustralia2024-05-30Chanay, Jeffrey A Esq UNQUALIFIED55Stephen Shaw
1017Antonio O InouyeJapan2024-05-23Printing Dimensions RENEWAL21Bernardo Dominic
1018Jefferson Y OstroskyFrance2024-05-11Buckley Miller Wright UNQUALIFIED62Stephen Shaw
1019Isabel P WieserSpain2024-05-08Buckley Miller Wright RENEWAL82Bernardo Dominic
1020Darci G MorascaSpain2024-06-01Chemel, James L Cpa NEGOTIATION98Xuxue Feng
1021Deepesh T MacleadUnited Kingdom2024-05-21Chanay, Jeffrey A Esq NEW65Onyama Limba
1022Francesco A CampainIndia2024-05-27Commercial Press NEW50Ivan Magalhaes
1023Wickens A GarufiUnited Kingdom2024-05-15Printing Dimensions PROPOSAL12Asiya Javayant
1024Chavez G DilliardIndia2024-05-09Morlong Associates NEW95Anna Fali
1025Jefferson T SlusarskiUnited Kingdom2024-05-16King, Christopher A Esq UNQUALIFIED6Elwin Sharvill
1026Jennifer M BriddickGermany2024-05-30Chanay, Jeffrey A Esq PROPOSAL85Ioni Bowcher
1027Francesco L RulapaughRussia2024-06-02Chapman, Ross E Esq UNQUALIFIED8Bernardo Dominic
1028Misaki V RimBrazil2024-05-23Morlong Associates PROPOSAL65Xuxue Feng
1029Julie S CaldareraItaly2024-05-11Feltz Printing Service UNQUALIFIED67Asiya Javayant
1030Silvio N BologniaArgentina2024-05-06King, Christopher A Esq UNQUALIFIED54Xuxue Feng
1031Sinclair R BowleyJapan2024-05-04Chanay, Jeffrey A Esq PROPOSAL48Elwin Sharvill
1032Kaitlin K OstroskyAustralia2024-05-26Morlong Associates UNQUALIFIED14Elwin Sharvill
1033Alejandro L PaprockiFrance2024-05-13Feiner Bros NEGOTIATION97Stephen Shaw
1034Costa R CaldareraJapan2024-05-18Buckley Miller Wright NEW40Ioni Bowcher
1035Salvatore S BriddickGermany2024-05-23Chapman, Ross E Esq RENEWAL62Asiya Javayant
1036Mujtaba O GauchoCanada2024-05-09Chemel, James L Cpa NEGOTIATION94Xuxue Feng
1037Julie Y GauchoIndia2024-05-04Feiner Bros NEGOTIATION47Stephen Shaw
1038Mujtaba C SchemmerItaly2024-05-14Chanay, Jeffrey A Esq NEGOTIATION22Anna Fali
1039Stacey G ChuiArgentina2024-05-21Chapman, Ross E Esq PROPOSAL51Ioni Bowcher
1040Maisha K VenereFrance2024-05-20Chanay, Jeffrey A Esq RENEWAL68Ioni Bowcher
1041Murillo G MaletCanada2024-05-26Printing Dimensions RENEWAL32Ioni Bowcher
1042Claire I PerinJapan2024-06-02Chemel, James L Cpa UNQUALIFIED7Ioni Bowcher
1043Wickens W CaldareraFrance2024-05-10Rangoni Of Florence RENEWAL33Ivan Magalhaes
1044Maisha P SchemmerRussia2024-05-18Morlong Associates PROPOSAL10Amy Elsner
1045David Z RoysterSpain2024-05-11Chanay, Jeffrey A Esq RENEWAL64Ivan Magalhaes
1046David Y KolmetzRussia2024-05-28Rousseaux, Michael Esq RENEWAL61Ivan Magalhaes
1047Izzy Q SergiRussia2024-06-02Commercial Press NEGOTIATION93Amy Elsner
1048Mayumi M MarrierArgentina2024-05-08King, Christopher A Esq RENEWAL18Ivan Magalhaes
1049Chavez A PaprockiSpain2024-05-18Chemel, James L Cpa UNQUALIFIED22Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Emily F FigeroaGermanyIoni Bowcher UNQUALIFIED
Smith P GlickItalyIoni Bowcher QUALIFIED
Clifford L PaprockiGermanyAmy Elsner NEGOTIATION
Chavez Z StensethSpainIoni Bowcher NEGOTIATION
Isabel Z BriddickBrazilIoni Bowcher NEW
Adams X RoysterAustraliaBernardo Dominic PROPOSAL
Cody R VocelkaBrazilAmy Elsner RENEWAL
Rodrigues M WaycottFranceAsiya Javayant NEW
Ashley G CampainFranceAnna Fali PROPOSAL
Salvatore D StensethIndiaIvan Magalhaes RENEWAL
Tony F IturbideRussiaIoni Bowcher RENEWAL
Ricardo W StensethAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois J FerenczBrazilElwin Sharvill QUALIFIED
Nicolas D InouyeItalyStephen Shaw RENEWAL
Wickens F AmigonFranceStephen Shaw RENEWAL
Ashley D KuskoArgentinaAmy Elsner PROPOSAL
Smith I FlosiUnited KingdomOnyama Limba NEW
Rodrigues G VocelkaIndiaAsiya Javayant QUALIFIED
Nicolas H PoquetteJapanBernardo Dominic QUALIFIED
Aruna T CampainFranceStephen Shaw PROPOSAL
Stacey U ButtArgentinaAnna Fali QUALIFIED
Nicolas T BriddickSpainIoni Bowcher NEW
Jones S ChuiAustraliaIvan Magalhaes RENEWAL
Antonio E OldroydIndiaOnyama Limba PROPOSAL
Antonio H CaudyAustraliaXuxue Feng NEGOTIATION
Jennifer U DoeGermanyIoni Bowcher NEGOTIATION
Emily U ButtItalyStephen Shaw NEW
Johnson Y FerenczAustraliaAmy Elsner UNQUALIFIED
Juan Q AmigonIndiaAsiya Javayant NEGOTIATION
Aika D ChuiBrazilAsiya Javayant UNQUALIFIED
Jennifer R MaletRussiaXuxue Feng NEW
Jennifer B AmigonBrazilAsiya Javayant QUALIFIED
Smith N NickaArgentinaIoni Bowcher RENEWAL
Darci B OstroskyCanadaStephen Shaw NEW
Greenwood S DoeBrazilAsiya Javayant RENEWAL
Claire E GauchoFranceStephen Shaw UNQUALIFIED
Leja B RimCanadaBernardo Dominic NEW
Clifford M CampainJapanIoni Bowcher NEW
Kaitlin S MaletFranceBernardo Dominic UNQUALIFIED
Ricardo H ChuiAustraliaAsiya Javayant UNQUALIFIED
Aika T GauchoBrazilIvan Magalhaes RENEWAL
Claire Q BologniaRussiaAnna Fali PROPOSAL
Aruna G ButtAustraliaBernardo Dominic QUALIFIED
Adams M OldroydIndiaElwin Sharvill QUALIFIED
Emily E RoysterGermanyAnna Fali UNQUALIFIED
Alejandro Q CaldareraSpainAnna Fali UNQUALIFIED
Antonio Q GlickRussiaIvan Magalhaes NEGOTIATION
Jones X VocelkaRussiaAmy Elsner PROPOSAL
Clifford Q BowleyCanadaBernardo Dominic RENEWAL
Greenwood K ChuiCanadaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Kadeem R Rulapaugh
Greenwood L Albares
Ivar J Kusko
Misaki S Rim
Faith I Whobrey
Isabel K Dilliard
Jeanfrancois Z Morasca
Kadeem A Briddick
Juan N Caudy
Wickens L Slusarski
Jeanfrancois Y Paprocki
Antonio T Rim
Ivar S Gillian
Mayumi X Nestle
Misaki W Darakjy
Salvatore Z Rim
Deepesh F Doe
James C Amigon
Leon B Malet
Munro L Oldroyd
Ivar H Saylors
Murillo K Dilliard
Aditya R Venere
Salvatore U Ferencz
Nicolas D Butt
Silvio P Foller
Sinclair V Dilliard
Antonio S Vocelka
Silvio Q Poquette
Chavez H Ostrosky
Leon M Campain
Stacey V Inouye
Octavia U Kolmetz
Kadeem J Nicka
Rodrigues R Bowley
Adams I Sergi
Nicolas A Inouye
James C Amigon
Jones H Ostrosky
Juan D Malet
Rodrigues I Albares
David C Wieser
Kadeem Z Malet
Leja A Kusko
Rodrigues T Ruta
Morrow Z Foller
Smith S Shinko
Sinclair I Gaucho
Jeanfrancois J Malet
Murillo V Bowley
IdCountryDate
1000Spain2024-05-07
1001Japan2024-05-12
1002Australia2024-05-24
1003Russia2024-05-11
1004Brazil2024-05-14
1005United Kingdom2024-05-18
1006Argentina2024-05-24
1007Italy2024-05-30
1008Germany2024-06-02
1009Brazil2024-05-15
1010Spain2024-05-14
1011Germany2024-05-23
1012Japan2024-05-18
1013Italy2024-05-27
1014Germany2024-05-14
1015United Kingdom2024-05-17
1016India2024-05-19
1017Spain2024-05-08
1018Australia2024-05-29
1019United Kingdom2024-05-15
1020Argentina2024-05-14
1021Canada2024-05-16
1022Japan2024-06-02
1023Japan2024-05-12
1024Australia2024-05-26
1025Japan2024-05-24
1026Canada2024-05-19
1027France2024-05-10
1028Canada2024-05-26
1029Japan2024-05-27
1030Brazil2024-05-04
1031Australia2024-05-08
1032Russia2024-05-04
1033Argentina2024-05-06
1034Germany2024-05-08
1035Japan2024-05-10
1036United Kingdom2024-05-22
1037Australia2024-05-21
1038Brazil2024-05-31
1039Argentina2024-05-07
1040Spain2024-05-24
1041Brazil2024-05-19
1042Japan2024-05-16
1043United Kingdom2024-05-30
1044Russia2024-05-12
1045Germany2024-05-12
1046Canada2024-06-01
1047Italy2024-05-07
1048Australia2024-05-09
1049Russia2024-05-04

On-Demand Data

NameIdCountryDate
Jeanfrancois N Ferencz1000France2024-05-27
Munro M Tollner1001United Kingdom2024-05-07
Arvin J Campain1002United Kingdom2024-05-29
Maisha S Waycott1003Brazil2024-05-29
Maria R Ruta1004Canada2024-05-23
Nicolas T Slusarski1005United Kingdom2024-05-27
Leja J Poquette1006Spain2024-06-01
Smith A Oldroyd1007Argentina2024-05-28
Ashley E Briddick1008United Kingdom2024-05-25
Stacey G Garufi1009India2024-05-24
Morrow P Venere1010Russia2024-05-22
Jeanfrancois R Slusarski1011Italy2024-05-13
Tony W Caldarera1012Spain2024-05-13
Francesco W Dilliard1013United Kingdom2024-05-22
Claire P Foller1014India2024-05-26
Chavez R Ferencz1015Brazil2024-05-11
Jones J Stockham1016Italy2024-05-21
Smith A Whobrey1017Brazil2024-05-09
Arvin F Schemmer1018Italy2024-05-04
Maria Y Garufi1019Japan2024-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire R IturbideUnited KingdomAnna Fali UNQUALIFIED
Costa G PerinCanadaIvan Magalhaes QUALIFIED
Alejandro G CaldareraCanadaBernardo Dominic PROPOSAL
Claire G AmigonRussiaIvan Magalhaes PROPOSAL
Ricardo E DilliardFranceBernardo Dominic NEGOTIATION
Izzy Z DoeItalyXuxue Feng PROPOSAL
Faith D MaletJapanIoni Bowcher NEW
Emily I DilliardSpainAnna Fali UNQUALIFIED
Mayumi K MaletArgentinaAnna Fali PROPOSAL
Smith X FigeroaFranceXuxue Feng NEW
Mujtaba S MaletFranceXuxue Feng QUALIFIED
Jeanfrancois F RimSpainStephen Shaw UNQUALIFIED
Deepesh T OstroskyArgentinaStephen Shaw QUALIFIED
Mayumi G TollnerFranceIoni Bowcher NEGOTIATION
Wickens E FlosiArgentinaIvan Magalhaes NEW
Jones I MaletArgentinaAmy Elsner RENEWAL
Leon P InouyeJapanIvan Magalhaes QUALIFIED
David F WhobreyFranceXuxue Feng QUALIFIED
Misaki P AmigonAustraliaOnyama Limba RENEWAL
Antonio S WieserFranceElwin Sharvill NEW
Wickens P BriddickIndiaIoni Bowcher NEW
Arvin U KuskoArgentinaBernardo Dominic QUALIFIED
Adams M CaudyArgentinaElwin Sharvill UNQUALIFIED
Francesco R WhobreyGermanyIvan Magalhaes NEGOTIATION
Izzy X IturbideUnited KingdomAmy Elsner NEGOTIATION
Leon Y WaycottFranceElwin Sharvill PROPOSAL
Darci R NestleGermanyAsiya Javayant NEW
Silvio W SaylorsJapanIoni Bowcher NEW
Salvatore U WhobreyRussiaAsiya Javayant PROPOSAL
Rodrigues M StockhamBrazilAnna Fali NEW
Clifford V MacleadItalyAnna Fali NEGOTIATION
Adams A MacleadAustraliaElwin Sharvill QUALIFIED
Costa G SergiFranceElwin Sharvill PROPOSAL
Jeanfrancois X BowleyRussiaAsiya Javayant NEGOTIATION
Greenwood V NestleJapanOnyama Limba NEGOTIATION
Maisha K MorascaCanadaStephen Shaw PROPOSAL
Murillo N MaletAustraliaElwin Sharvill NEW
Claire M GarufiJapanElwin Sharvill UNQUALIFIED
Maisha K AmigonAustraliaBernardo Dominic PROPOSAL
Emily Q FollerUnited KingdomIvan Magalhaes UNQUALIFIED

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