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
Chavez F GlickGermanyElwin Sharvill RENEWAL
Arvin F IturbideAustraliaAnna Fali NEGOTIATION
Rodrigues N GillianJapanAsiya Javayant RENEWAL
Leja V MorascaUnited KingdomBernardo Dominic RENEWAL
Leon O RoysterCanadaAnna Fali NEGOTIATION
Jefferson V MaletCanadaAnna Fali UNQUALIFIED
Leon Q RutaJapanAmy Elsner QUALIFIED
Misaki R NestleRussiaAnna Fali NEW
Nicolas P FollerAustraliaStephen Shaw NEGOTIATION
Mayumi I BriddickRussiaOnyama Limba UNQUALIFIED
Emily P CampainUnited KingdomOnyama Limba RENEWAL
Ivar B RimArgentinaBernardo Dominic PROPOSAL
Stacey O PaprockiGermanyElwin Sharvill PROPOSAL
Leon L CampainCanadaOnyama Limba NEGOTIATION
Chavez P InouyeUnited KingdomAnna Fali NEW
Jeanfrancois B InouyeArgentinaAnna Fali NEW
Adams A RimAustraliaStephen Shaw QUALIFIED
Wickens R MarrierCanadaIvan Magalhaes UNQUALIFIED
Isabel H KuskoAustraliaOnyama Limba UNQUALIFIED
Rodrigues U MaletArgentinaAnna Fali PROPOSAL
Salvatore A CaldareraUnited KingdomXuxue Feng NEGOTIATION
Octavia S GauchoAustraliaAnna Fali NEGOTIATION
Ashley Z DoeAustraliaIoni Bowcher RENEWAL
Ricardo R DarakjySpainAmy Elsner PROPOSAL
Stacey R RutaBrazilXuxue Feng QUALIFIED
Stacey S BriddickSpainOnyama Limba NEW
Tony W MorascaCanadaElwin Sharvill PROPOSAL
Rodrigues G MorascaSpainAsiya Javayant NEGOTIATION
Jennifer B CaldareraGermanyAsiya Javayant QUALIFIED
Jeanfrancois G MarrierArgentinaElwin Sharvill QUALIFIED
Munro Q TollnerRussiaAsiya Javayant NEW
Wickens S OldroydFranceOnyama Limba QUALIFIED
Munro G DarakjyBrazilElwin Sharvill PROPOSAL
Kaitlin J PoquetteUnited KingdomElwin Sharvill PROPOSAL
Leon C FerenczSpainAmy Elsner QUALIFIED
Arvin J WieserIndiaOnyama Limba QUALIFIED
Jeanfrancois C PerinRussiaIoni Bowcher QUALIFIED
Greenwood Q TollnerAustraliaOnyama Limba PROPOSAL
Aditya S IturbideAustraliaAsiya Javayant NEGOTIATION
Rodrigues T GarufiAustraliaAnna Fali NEW
Ashley F PerinRussiaAsiya Javayant PROPOSAL
Arvin M InouyeFranceElwin Sharvill NEGOTIATION
Maria K IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Silvio S FlosiGermanyBernardo Dominic UNQUALIFIED
Izzy X CampainFranceXuxue Feng RENEWAL
Claire H StockhamUnited KingdomAmy Elsner QUALIFIED
Izzy N RimItalyAmy Elsner NEW
Antonio L RulapaughAustraliaBernardo Dominic NEGOTIATION
Mayumi B RutaCanadaBernardo Dominic RENEWAL
Mujtaba A BowleyFranceXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro C WieserArgentinaAnna Fali UNQUALIFIED
Misaki Z GauchoBrazilElwin Sharvill UNQUALIFIED
Johnson Q CampainAustraliaAnna Fali NEW
Mayumi D AlbaresCanadaIoni Bowcher UNQUALIFIED
Stacey S VenereRussiaAsiya Javayant QUALIFIED
Morrow T SergiFranceIvan Magalhaes PROPOSAL
Johnson K BriddickFranceXuxue Feng UNQUALIFIED
Wickens Y TollnerIndiaStephen Shaw UNQUALIFIED
Misaki D SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Stacey Y GlickItalyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David X WhobreySpain2024-06-06Printing Dimensions PROPOSAL5Ioni Bowcher
1001Misaki I CaudyFrance2024-06-03Dorl, James J Esq UNQUALIFIED90Onyama Limba
1002Jennifer K CampainGermany2024-06-16Buckley Miller Wright RENEWAL49Stephen Shaw
1003Costa P WhobreyRussia2024-06-10Commercial Press UNQUALIFIED45Anna Fali
1004Johnson M PoquetteAustralia2024-06-09Truhlar And Truhlar Attys RENEWAL63Ioni Bowcher
1005Sinclair J FlosiUnited Kingdom2024-05-25Rangoni Of Florence NEW33Xuxue Feng
1006Juan N RutaRussia2024-06-09King, Christopher A Esq NEGOTIATION51Xuxue Feng
1007Smith N GauchoBrazil2024-06-05Truhlar And Truhlar Attys NEW95Asiya Javayant
1008James A ShinkoArgentina2024-05-20Commercial Press NEGOTIATION6Anna Fali
1009Stacey X VenereGermany2024-06-15Feltz Printing Service UNQUALIFIED49Stephen Shaw
1010Misaki K AlbaresIndia2024-06-11Benton, John B Jr NEW99Ioni Bowcher
1011Leon P DilliardRussia2024-06-18Chapman, Ross E Esq PROPOSAL68Asiya Javayant
1012Arvin H WaycottIndia2024-06-07Truhlar And Truhlar Attys UNQUALIFIED25Anna Fali
1013Alejandro F OstroskyRussia2024-06-11Morlong Associates RENEWAL58Amy Elsner
1014Silvio C NickaSpain2024-05-26Buckley Miller Wright QUALIFIED92Amy Elsner
1015Chavez M ShinkoSpain2024-06-08Printing Dimensions NEGOTIATION1Ivan Magalhaes
1016Silvio W TollnerJapan2024-06-03Chapman, Ross E Esq PROPOSAL61Amy Elsner
1017Julie F BologniaSpain2024-06-05Chapman, Ross E Esq NEGOTIATION2Ioni Bowcher
1018Julie P DarakjyAustralia2024-05-25Commercial Press UNQUALIFIED86Asiya Javayant
1019Kadeem A NestleBrazil2024-05-23Rangoni Of Florence QUALIFIED24Ioni Bowcher
1020Maria S BowleyIndia2024-06-17Chanay, Jeffrey A Esq RENEWAL58Bernardo Dominic
1021Kaitlin W InouyeCanada2024-05-20Printing Dimensions RENEWAL47Elwin Sharvill
1022Aika V WaycottItaly2024-06-03Chemel, James L Cpa NEW37Ioni Bowcher
1023Isabel F OldroydUnited Kingdom2024-06-12Chapman, Ross E Esq NEGOTIATION27Asiya Javayant
1024Adams U DilliardBrazil2024-06-15Truhlar And Truhlar Attys QUALIFIED29Bernardo Dominic
1025Arvin D VenereIndia2024-06-11Chemel, James L Cpa QUALIFIED62Stephen Shaw
1026Wickens Y BriddickUnited Kingdom2024-06-18Truhlar And Truhlar Attys UNQUALIFIED17Bernardo Dominic
1027Aditya M MacleadFrance2024-06-14Feiner Bros RENEWAL83Bernardo Dominic
1028Leja P FerenczFrance2024-06-06Chapman, Ross E Esq PROPOSAL82Amy Elsner
1029Leon A FerenczIndia2024-06-17Buckley Miller Wright NEW10Ioni Bowcher
1030Clifford V SergiRussia2024-06-03Truhlar And Truhlar Attys QUALIFIED21Ioni Bowcher
1031Sinclair J WhobreyBrazil2024-05-20Benton, John B Jr QUALIFIED59Asiya Javayant
1032Chavez Y RoysterSpain2024-05-27Chanay, Jeffrey A Esq UNQUALIFIED19Stephen Shaw
1033Octavia N PaprockiUnited Kingdom2024-05-24Feiner Bros NEW39Amy Elsner
1034Smith M RulapaughRussia2024-06-12Truhlar And Truhlar Attys NEGOTIATION16Stephen Shaw
1035Darci T FollerGermany2024-06-10Benton, John B Jr NEGOTIATION39Ioni Bowcher
1036Morrow F RulapaughBrazil2024-05-25King, Christopher A Esq QUALIFIED59Bernardo Dominic
1037Sinclair T CaldareraFrance2024-06-03Commercial Press UNQUALIFIED19Xuxue Feng
1038Maisha J SaylorsAustralia2024-06-15Chemel, James L Cpa NEW73Onyama Limba
1039Stacey F KolmetzCanada2024-05-28King, Christopher A Esq RENEWAL51Asiya Javayant
1040Mayumi H IturbideFrance2024-06-06Dorl, James J Esq NEW56Elwin Sharvill
1041Costa G KuskoIndia2024-06-04Benton, John B Jr QUALIFIED78Stephen Shaw
1042Claire L ShinkoArgentina2024-06-02Chemel, James L Cpa UNQUALIFIED21Onyama Limba
1043Antonio L SergiFrance2024-06-06Chemel, James L Cpa QUALIFIED41Stephen Shaw
1044Jones G FerenczItaly2024-05-30Buckley Miller Wright NEGOTIATION42Asiya Javayant
1045Salvatore E TollnerUnited Kingdom2024-06-16Buckley Miller Wright UNQUALIFIED29Ivan Magalhaes
1046Ivar B ButtCanada2024-06-16Chemel, James L Cpa RENEWAL54Asiya Javayant
1047Costa E RulapaughRussia2024-05-23Benton, John B Jr QUALIFIED5Elwin Sharvill
1048Arvin P DarakjyIndia2024-06-09Commercial Press UNQUALIFIED17Elwin Sharvill
1049Munro X WaycottIndia2024-05-23Printing Dimensions NEGOTIATION26Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez F RoysterSpainAmy Elsner NEGOTIATION
Maisha L InouyeJapanBernardo Dominic UNQUALIFIED
Jones I GarufiItalyIvan Magalhaes UNQUALIFIED
Ivar Y KolmetzUnited KingdomOnyama Limba NEW
Adams E VocelkaCanadaOnyama Limba RENEWAL
Clifford D InouyeIndiaXuxue Feng UNQUALIFIED
Leja R VenereBrazilElwin Sharvill NEGOTIATION
Aruna B MacleadAustraliaAsiya Javayant RENEWAL
Stacey S WhobreyCanadaAmy Elsner QUALIFIED
Leja D FigeroaSpainOnyama Limba UNQUALIFIED
Tony F OstroskyUnited KingdomAsiya Javayant QUALIFIED
Mayumi J MacleadItalyAmy Elsner NEGOTIATION
Salvatore W IturbideRussiaStephen Shaw NEW
Francesco W OstroskyGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois O OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Octavia D WhobreyItalyAnna Fali QUALIFIED
Costa T SergiArgentinaAsiya Javayant PROPOSAL
Octavia C VenereUnited KingdomOnyama Limba PROPOSAL
Ivar S RimSpainStephen Shaw NEW
Mayumi A BowleyAustraliaOnyama Limba RENEWAL
Deepesh C WaycottBrazilIvan Magalhaes PROPOSAL
Juan V CaldareraBrazilIvan Magalhaes UNQUALIFIED
Ricardo D OldroydSpainAmy Elsner UNQUALIFIED
Clifford E RutaArgentinaAmy Elsner NEW
Greenwood J KolmetzRussiaIoni Bowcher RENEWAL
Nicolas S VenereIndiaElwin Sharvill NEW
Munro I FollerGermanyAnna Fali PROPOSAL
Maisha I OstroskyUnited KingdomStephen Shaw NEGOTIATION
Emily S MarrierFranceIoni Bowcher NEW
Emily Z MaletItalyAsiya Javayant RENEWAL
Tony G BriddickAustraliaAsiya Javayant UNQUALIFIED
Sinclair C GauchoSpainAnna Fali UNQUALIFIED
Maisha X RimJapanXuxue Feng NEGOTIATION
James V GauchoRussiaIoni Bowcher QUALIFIED
Francesco Z WhobreyFranceAsiya Javayant PROPOSAL
Aditya D BologniaUnited KingdomAsiya Javayant RENEWAL
Jones Q GlickCanadaAsiya Javayant NEW
Nicolas E WhobreyCanadaElwin Sharvill NEGOTIATION
Alejandro K SlusarskiRussiaIoni Bowcher NEW
Ashley J MarrierBrazilIvan Magalhaes QUALIFIED
Salvatore G GarufiFranceAmy Elsner NEW
Kadeem B PoquetteArgentinaAsiya Javayant PROPOSAL
Claire E PaprockiSpainIoni Bowcher PROPOSAL
Alejandro Y ChuiJapanAsiya Javayant QUALIFIED
Murillo W BriddickJapanElwin Sharvill PROPOSAL
Arvin X BriddickBrazilAmy Elsner UNQUALIFIED
Costa A CaldareraRussiaElwin Sharvill UNQUALIFIED
Maria M MorascaItalyIvan Magalhaes QUALIFIED
Chavez Z ShinkoItalyXuxue Feng RENEWAL
Aika X KolmetzJapanIvan Magalhaes RENEWAL
Frozen Columns
Name
Claire Y Slusarski
Murillo U Venere
Jeanfrancois A Butt
David Q Stenseth
Mujtaba N Tollner
Kaitlin A Saylors
Silvio O Figeroa
Mujtaba Z Doe
Misaki Q Oldroyd
Ashley V Morasca
Ivar N Campain
Kadeem Y Whobrey
Maisha M Tollner
Deepesh B Rim
Chavez N Kusko
Jeanfrancois Y Whobrey
Cody Z Ferencz
Munro P Albares
Rodrigues E Nestle
Maisha E Oldroyd
Ivar J Malet
Ashley K Oldroyd
Aditya E Ruta
Smith C Figeroa
Munro L Ruta
Jeanfrancois H Venere
Mujtaba L Briddick
Alejandro T Stenseth
Munro H Wieser
Faith O Nestle
Costa S Morasca
Jennifer P Maclead
Antonio F Kusko
Mayumi K Nestle
Stacey A Figeroa
Jeanfrancois N Vocelka
Murillo G Butt
Maria N Slusarski
Munro Q Venere
Rodrigues I Briddick
Ashley Y Nicka
Izzy B Sergi
Costa T Chui
Mujtaba Q Albares
Greenwood C Paprocki
Jefferson L Briddick
Johnson U Ruta
Chavez H Flosi
Jennifer E Marrier
Greenwood I Royster
IdCountryDate
1000Brazil2024-06-15
1001Japan2024-06-14
1002Russia2024-06-17
1003Russia2024-05-30
1004Canada2024-05-28
1005Brazil2024-06-06
1006Spain2024-05-23
1007Argentina2024-06-02
1008Russia2024-06-18
1009Australia2024-06-03
1010Brazil2024-06-16
1011Spain2024-05-24
1012Germany2024-05-27
1013Australia2024-06-05
1014Russia2024-05-25
1015Canada2024-06-14
1016Brazil2024-06-04
1017India2024-06-10
1018Germany2024-05-26
1019Japan2024-06-03
1020Brazil2024-06-18
1021France2024-06-16
1022Italy2024-05-20
1023Brazil2024-06-18
1024Russia2024-06-03
1025Germany2024-06-09
1026Japan2024-06-11
1027Brazil2024-06-03
1028Russia2024-05-31
1029Germany2024-05-27
1030Brazil2024-05-28
1031Australia2024-06-10
1032United Kingdom2024-06-17
1033Germany2024-05-26
1034Argentina2024-06-06
1035Spain2024-05-25
1036Brazil2024-06-16
1037Russia2024-06-17
1038Argentina2024-06-10
1039United Kingdom2024-05-23
1040India2024-06-13
1041Canada2024-05-26
1042Spain2024-06-06
1043Brazil2024-06-18
1044Germany2024-05-29
1045Spain2024-05-29
1046Russia2024-05-26
1047Japan2024-05-30
1048Spain2024-06-14
1049Russia2024-06-10

On-Demand Data

NameIdCountryDate
Octavia W Bowley1000Japan2024-06-18
Francesco N Stockham1001Argentina2024-05-23
Aika Q Royster1002Russia2024-05-31
Mayumi R Stockham1003Spain2024-06-07
Tony B Waycott1004Germany2024-06-08
Faith E Poquette1005France2024-06-04
Chavez L Kusko1006India2024-05-23
Nicolas X Slusarski1007Brazil2024-06-01
Salvatore O Poquette1008Germany2024-05-23
Octavia D Flosi1009India2024-05-27
Kadeem D Wieser1010Argentina2024-06-11
Stacey E Amigon1011India2024-06-16
Misaki W Whobrey1012United Kingdom2024-06-07
Jefferson O Wieser1013Spain2024-05-23
James W Sergi1014Australia2024-06-15
Jennifer E Ostrosky1015United Kingdom2024-06-12
Emily U Rulapaugh1016India2024-05-31
Emily J Figeroa1017United Kingdom2024-06-01
Costa P Briddick1018Canada2024-06-03
Johnson B Paprocki1019France2024-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Q RulapaughJapanElwin Sharvill QUALIFIED
Juan G CampainAustraliaIoni Bowcher PROPOSAL
Octavia Z NestleSpainOnyama Limba QUALIFIED
Maria I CaldareraArgentinaAmy Elsner PROPOSAL
Aditya N WieserBrazilXuxue Feng NEW
Rodrigues G IturbideFranceIoni Bowcher QUALIFIED
Francesco S StensethGermanyAnna Fali QUALIFIED
Arvin X WieserJapanIoni Bowcher PROPOSAL
Claire L TollnerCanadaXuxue Feng PROPOSAL
Francesco A BriddickSpainIvan Magalhaes NEGOTIATION
Aika Y TollnerItalyXuxue Feng UNQUALIFIED
Tony S GarufiCanadaIvan Magalhaes RENEWAL
Arvin Z SchemmerFranceAsiya Javayant NEGOTIATION
Costa X MaletFranceAmy Elsner UNQUALIFIED
Nicolas V PerinFranceAsiya Javayant QUALIFIED
Leon D StensethRussiaOnyama Limba QUALIFIED
Juan Y AlbaresFranceAmy Elsner QUALIFIED
Cody R FerenczArgentinaElwin Sharvill PROPOSAL
Maria G SaylorsUnited KingdomXuxue Feng RENEWAL
Claire E CaldareraIndiaElwin Sharvill NEGOTIATION
Maria P IturbideFranceIoni Bowcher NEW
Rodrigues W MacleadAustraliaIvan Magalhaes PROPOSAL
Leon P IturbideArgentinaOnyama Limba PROPOSAL
Salvatore G FigeroaArgentinaElwin Sharvill UNQUALIFIED
Leja R DoeArgentinaIoni Bowcher QUALIFIED
Izzy G FerenczBrazilOnyama Limba QUALIFIED
Maria Q StensethJapanIvan Magalhaes RENEWAL
Chavez X MaletItalyElwin Sharvill PROPOSAL
Ashley C GauchoUnited KingdomBernardo Dominic NEGOTIATION
Munro S CaldareraArgentinaIoni Bowcher UNQUALIFIED
Alejandro H SchemmerAustraliaElwin Sharvill QUALIFIED
Maria I IturbideSpainAmy Elsner NEGOTIATION
Jeanfrancois S MaletRussiaIoni Bowcher NEW
Aruna T StensethArgentinaAnna Fali RENEWAL
Ashley N PerinIndiaXuxue Feng UNQUALIFIED
David P PaprockiAustraliaIvan Magalhaes NEGOTIATION
Silvio U BriddickGermanyAmy Elsner PROPOSAL
David R FollerAustraliaBernardo Dominic PROPOSAL
Isabel N FigeroaBrazilIoni Bowcher RENEWAL
Mujtaba D InouyeSpainAsiya Javayant 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>