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
Julie T StockhamGermanyBernardo Dominic RENEWAL
Izzy Y ChuiIndiaIvan Magalhaes RENEWAL
Rodrigues L WhobreyGermanyXuxue Feng QUALIFIED
Smith R FlosiAustraliaElwin Sharvill QUALIFIED
Jeanfrancois X BowleyCanadaXuxue Feng PROPOSAL
Ivar K StensethCanadaIvan Magalhaes PROPOSAL
Alejandro Q FollerCanadaStephen Shaw PROPOSAL
Aditya C WhobreyCanadaIoni Bowcher PROPOSAL
Leon M PerinAustraliaAnna Fali RENEWAL
Faith Y BologniaGermanyAnna Fali UNQUALIFIED
Rodrigues H VocelkaJapanAnna Fali QUALIFIED
Sinclair F PaprockiIndiaAsiya Javayant NEGOTIATION
Faith G StensethItalyBernardo Dominic RENEWAL
Julie K SaylorsIndiaAmy Elsner QUALIFIED
James G NickaFranceIoni Bowcher UNQUALIFIED
Maria O WieserJapanIvan Magalhaes RENEWAL
Costa Q FigeroaRussiaAsiya Javayant RENEWAL
Nicolas Q WieserSpainStephen Shaw PROPOSAL
Mayumi H GlickIndiaXuxue Feng PROPOSAL
Claire K OldroydCanadaIvan Magalhaes QUALIFIED
Ricardo I VenereBrazilAsiya Javayant UNQUALIFIED
Stacey Y BowleyCanadaAsiya Javayant PROPOSAL
Juan V BowleyUnited KingdomAnna Fali UNQUALIFIED
Darci C OldroydIndiaBernardo Dominic PROPOSAL
Juan B DilliardFranceAnna Fali PROPOSAL
Salvatore C GlickUnited KingdomElwin Sharvill QUALIFIED
Munro S FigeroaRussiaAnna Fali QUALIFIED
Greenwood I CaldareraGermanyAmy Elsner NEW
Sinclair Z FlosiUnited KingdomStephen Shaw UNQUALIFIED
Ricardo C DoeRussiaElwin Sharvill RENEWAL
Silvio H MaletCanadaIvan Magalhaes UNQUALIFIED
Munro S VenereUnited KingdomIoni Bowcher RENEWAL
James R FollerRussiaAnna Fali UNQUALIFIED
Ashley M AlbaresBrazilXuxue Feng NEGOTIATION
Maisha I DoeBrazilAsiya Javayant QUALIFIED
Adams G CaldareraIndiaOnyama Limba PROPOSAL
Nicolas N CampainJapanBernardo Dominic PROPOSAL
Isabel M NickaRussiaOnyama Limba QUALIFIED
Claire J PerinJapanOnyama Limba PROPOSAL
Rodrigues U FigeroaFranceXuxue Feng NEW
Darci V MacleadIndiaElwin Sharvill NEGOTIATION
Greenwood F RulapaughGermanyIoni Bowcher NEGOTIATION
Aruna A TollnerArgentinaAmy Elsner PROPOSAL
Leja X AmigonCanadaElwin Sharvill UNQUALIFIED
Maria Z FlosiUnited KingdomAmy Elsner RENEWAL
Jefferson P VenereArgentinaOnyama Limba UNQUALIFIED
Silvio A MacleadItalyXuxue Feng RENEWAL
Mujtaba V KolmetzArgentinaAnna Fali UNQUALIFIED
Faith Y CampainBrazilIvan Magalhaes NEW
Faith L ShinkoJapanXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin Z MarrierGermanyAsiya Javayant NEW
Johnson P WhobreySpainAsiya Javayant QUALIFIED
Octavia T FollerRussiaIoni Bowcher PROPOSAL
Juan Z BriddickArgentinaOnyama Limba QUALIFIED
Munro T SchemmerFranceBernardo Dominic QUALIFIED
Izzy C ButtIndiaAnna Fali RENEWAL
Mayumi T CaldareraFranceAmy Elsner PROPOSAL
Aditya T SergiGermanyIoni Bowcher UNQUALIFIED
Antonio Y CaldareraArgentinaBernardo Dominic NEW
Jeanfrancois T BriddickUnited KingdomOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar B RoysterAustralia2025-04-24Benton, John B Jr RENEWAL33Stephen Shaw
1001Stacey M SergiBrazil2025-04-09King, Christopher A Esq UNQUALIFIED84Ioni Bowcher
1002Jefferson S RimSpain2025-04-24Printing Dimensions PROPOSAL47Stephen Shaw
1003Johnson G ChuiCanada2025-04-03Printing Dimensions NEW13Ivan Magalhaes
1004Izzy G SlusarskiGermany2025-04-11Commercial Press NEW82Amy Elsner
1005Ivar B CaldareraSpain2025-04-14Chemel, James L Cpa RENEWAL98Elwin Sharvill
1006Jeanfrancois Q MorascaFrance2025-04-11Chemel, James L Cpa NEGOTIATION34Bernardo Dominic
1007Arvin H GillianRussia2025-04-20Printing Dimensions NEGOTIATION54Amy Elsner
1008Octavia M VocelkaCanada2025-04-15Commercial Press PROPOSAL85Ioni Bowcher
1009Greenwood V TollnerArgentina2025-04-06Truhlar And Truhlar Attys QUALIFIED14Elwin Sharvill
1010Munro V GauchoGermany2025-04-29Buckley Miller Wright UNQUALIFIED70Bernardo Dominic
1011Faith J PerinIndia2025-04-22Truhlar And Truhlar Attys PROPOSAL1Xuxue Feng
1012Clifford P OldroydRussia2025-04-22Benton, John B Jr UNQUALIFIED7Stephen Shaw
1013Claire O VenereItaly2025-04-17Dorl, James J Esq UNQUALIFIED59Ivan Magalhaes
1014Jones A GarufiAustralia2025-04-02Chemel, James L Cpa NEW68Elwin Sharvill
1015Murillo H VocelkaGermany2025-04-12Feltz Printing Service QUALIFIED26Anna Fali
1016Aruna A KolmetzBrazil2025-04-30Morlong Associates PROPOSAL44Onyama Limba
1017Mujtaba N PoquetteJapan2025-04-15Commercial Press PROPOSAL99Stephen Shaw
1018Johnson L BowleyArgentina2025-04-10Morlong Associates NEGOTIATION62Ioni Bowcher
1019Misaki P GillianGermany2025-04-02King, Christopher A Esq PROPOSAL81Asiya Javayant
1020Jeanfrancois O ChuiAustralia2025-04-27Rangoni Of Florence PROPOSAL81Stephen Shaw
1021Johnson W IturbideRussia2025-04-13Truhlar And Truhlar Attys NEGOTIATION32Stephen Shaw
1022Aika O OldroydItaly2025-04-08Benton, John B Jr PROPOSAL18Elwin Sharvill
1023Smith Q RulapaughUnited Kingdom2025-04-15Chanay, Jeffrey A Esq QUALIFIED73Ioni Bowcher
1024Ivar R ShinkoBrazil2025-04-24Benton, John B Jr NEW53Xuxue Feng
1025Clifford M RulapaughJapan2025-04-23Morlong Associates RENEWAL11Anna Fali
1026Kaitlin V DilliardCanada2025-04-11Feltz Printing Service NEW6Elwin Sharvill
1027Faith Y FerenczUnited Kingdom2025-04-07Benton, John B Jr QUALIFIED82Ivan Magalhaes
1028Jeanfrancois J KuskoSpain2025-04-25Rangoni Of Florence NEGOTIATION57Asiya Javayant
1029Stacey N KolmetzRussia2025-04-16Commercial Press NEW29Elwin Sharvill
1030Ricardo S WhobreySpain2025-04-27King, Christopher A Esq NEGOTIATION25Ivan Magalhaes
1031James R SlusarskiBrazil2025-04-23Rousseaux, Michael Esq RENEWAL84Bernardo Dominic
1032Cody T RimArgentina2025-04-28Morlong Associates NEW92Onyama Limba
1033Greenwood F ButtRussia2025-04-11Morlong Associates PROPOSAL43Ivan Magalhaes
1034Jefferson P DilliardFrance2025-04-20Chapman, Ross E Esq PROPOSAL73Asiya Javayant
1035Aruna Y MarrierBrazil2025-04-04Chanay, Jeffrey A Esq RENEWAL47Ioni Bowcher
1036Jeanfrancois W DilliardBrazil2025-04-17Feltz Printing Service RENEWAL64Elwin Sharvill
1037Murillo X WaycottUnited Kingdom2025-04-12King, Christopher A Esq QUALIFIED68Ioni Bowcher
1038Clifford B SaylorsUnited Kingdom2025-04-02King, Christopher A Esq NEW25Ivan Magalhaes
1039Ivar I RimSpain2025-04-28Printing Dimensions QUALIFIED51Amy Elsner
1040Mujtaba V OstroskyFrance2025-04-21Truhlar And Truhlar Attys NEW36Ioni Bowcher
1041Tony C GauchoArgentina2025-04-20Feltz Printing Service RENEWAL64Elwin Sharvill
1042Jennifer E RulapaughCanada2025-04-14Buckley Miller Wright QUALIFIED7Bernardo Dominic
1043Kadeem D ShinkoItaly2025-04-09Morlong Associates QUALIFIED16Bernardo Dominic
1044Mujtaba K SlusarskiRussia2025-04-21Truhlar And Truhlar Attys PROPOSAL17Anna Fali
1045Stacey I WaycottJapan2025-04-10Chapman, Ross E Esq RENEWAL55Ivan Magalhaes
1046Arvin Y VocelkaIndia2025-04-04Chanay, Jeffrey A Esq QUALIFIED63Ioni Bowcher
1047Deepesh B WieserRussia2025-04-16Chapman, Ross E Esq UNQUALIFIED81Ivan Magalhaes
1048Nicolas W RulapaughFrance2025-04-26Rousseaux, Michael Esq UNQUALIFIED78Elwin Sharvill
1049Mujtaba U StockhamCanada2025-04-28Chemel, James L Cpa PROPOSAL16Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan B GlickCanadaOnyama Limba QUALIFIED
Aditya A RulapaughFranceAmy Elsner NEGOTIATION
Deepesh T ButtArgentinaOnyama Limba NEW
Juan A SlusarskiGermanyIvan Magalhaes RENEWAL
Octavia D WaycottArgentinaAmy Elsner NEW
Mayumi G GlickRussiaStephen Shaw QUALIFIED
Kaitlin V PerinBrazilXuxue Feng UNQUALIFIED
Chavez L NestleSpainAmy Elsner QUALIFIED
Kaitlin Q GauchoJapanElwin Sharvill NEGOTIATION
Aruna P FigeroaCanadaStephen Shaw PROPOSAL
Johnson K AlbaresBrazilIvan Magalhaes UNQUALIFIED
Jefferson U ChuiJapanElwin Sharvill RENEWAL
Jones H InouyeAustraliaBernardo Dominic RENEWAL
Misaki X OldroydArgentinaIoni Bowcher PROPOSAL
Faith L FollerCanadaAsiya Javayant PROPOSAL
Arvin H BriddickJapanIoni Bowcher QUALIFIED
Leja B RulapaughAustraliaBernardo Dominic QUALIFIED
Izzy M FlosiGermanyElwin Sharvill PROPOSAL
Chavez O GillianRussiaAmy Elsner UNQUALIFIED
Morrow G IturbideArgentinaIoni Bowcher QUALIFIED
Wickens A StensethFranceIvan Magalhaes QUALIFIED
Mujtaba D PoquetteCanadaStephen Shaw NEW
Arvin V RutaArgentinaElwin Sharvill RENEWAL
Wickens O TollnerGermanyOnyama Limba NEGOTIATION
James V FollerArgentinaIvan Magalhaes NEGOTIATION
Wickens A FlosiIndiaIoni Bowcher RENEWAL
Octavia T FerenczFranceAsiya Javayant UNQUALIFIED
Maria G RoysterRussiaAmy Elsner PROPOSAL
Cody H VenereRussiaStephen Shaw QUALIFIED
Jeanfrancois V MaletGermanyStephen Shaw PROPOSAL
Juan V GarufiItalyAmy Elsner NEGOTIATION
Leja D WhobreyFranceIvan Magalhaes NEGOTIATION
Ivar N MarrierIndiaBernardo Dominic RENEWAL
Arvin V BowleySpainAmy Elsner NEGOTIATION
James F PaprockiFranceAnna Fali RENEWAL
Murillo Y RulapaughRussiaXuxue Feng RENEWAL
Jeanfrancois Y CaldareraJapanAnna Fali NEGOTIATION
Izzy J DilliardCanadaBernardo Dominic QUALIFIED
Murillo P FigeroaBrazilIvan Magalhaes NEGOTIATION
Rodrigues H BowleyJapanAmy Elsner PROPOSAL
Aditya H FigeroaFranceElwin Sharvill RENEWAL
Wickens F OldroydAustraliaAnna Fali PROPOSAL
Aruna B PoquetteArgentinaXuxue Feng PROPOSAL
Wickens S AlbaresAustraliaAmy Elsner NEW
Johnson F BriddickItalyXuxue Feng NEGOTIATION
Deepesh Z CaldareraCanadaAnna Fali NEGOTIATION
Julie X ChuiRussiaAsiya Javayant UNQUALIFIED
Adams L SergiSpainAnna Fali QUALIFIED
Smith A GillianFranceIvan Magalhaes NEGOTIATION
Morrow W SchemmerIndiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Misaki P Paprocki
Costa G Gillian
Johnson Z Rulapaugh
Octavia Z Ferencz
Aruna G Stockham
Leja F Royster
James T Campain
Rodrigues C Nicka
Salvatore N Tollner
Juan C Wieser
Sinclair Q Chui
Aruna P Tollner
Juan S Stockham
Sinclair R Dilliard
Jeanfrancois R Campain
Maria P Stenseth
Ricardo H Schemmer
Emily Z Stockham
Deepesh B Saylors
Adams N Stenseth
Deepesh S Kolmetz
Arvin T Garufi
Isabel A Sergi
Darci D Dilliard
Mayumi X Paprocki
Johnson O Ostrosky
Ivar C Bolognia
Johnson R Garufi
Tony R Venere
Costa L Caldarera
Tony B Schemmer
Adams C Paprocki
Isabel I Nicka
Jeanfrancois L Chui
Juan F Rulapaugh
Octavia M Inouye
Munro A Doe
Jennifer J Venere
Ricardo U Stenseth
Munro C Venere
Kadeem B Paprocki
Munro X Ruta
Kadeem H Shinko
Johnson G Nicka
Jefferson M Paprocki
Smith P Kolmetz
Smith V Flosi
Greenwood R Iturbide
Aika D Rulapaugh
Aditya B Darakjy
IdCountryDate
1000Brazil2025-04-01
1001Brazil2025-04-04
1002Italy2025-04-07
1003India2025-04-24
1004France2025-04-09
1005India2025-04-01
1006Spain2025-04-12
1007Japan2025-04-21
1008United Kingdom2025-04-30
1009Germany2025-04-10
1010Russia2025-04-19
1011Germany2025-04-05
1012France2025-04-27
1013United Kingdom2025-04-02
1014Brazil2025-04-23
1015Canada2025-04-27
1016Brazil2025-04-19
1017France2025-04-02
1018Japan2025-04-16
1019Brazil2025-04-09
1020Brazil2025-04-03
1021Argentina2025-04-02
1022Japan2025-04-03
1023Germany2025-04-27
1024Japan2025-04-21
1025France2025-04-10
1026Australia2025-04-05
1027Russia2025-04-16
1028Argentina2025-04-05
1029Brazil2025-04-01
1030Argentina2025-04-16
1031Canada2025-04-22
1032Australia2025-04-10
1033Spain2025-04-26
1034Germany2025-04-07
1035Italy2025-04-05
1036Argentina2025-04-15
1037United Kingdom2025-04-30
1038Australia2025-04-10
1039United Kingdom2025-04-17
1040Spain2025-04-07
1041Spain2025-04-08
1042Germany2025-04-03
1043Spain2025-04-29
1044Russia2025-04-26
1045France2025-04-23
1046Spain2025-04-22
1047Canada2025-04-27
1048India2025-04-05
1049United Kingdom2025-04-06

On-Demand Data

NameIdCountryDate
Aika G Ferencz1000Australia2025-04-06
Wickens H Nicka1001Australia2025-04-12
Clifford G Kusko1002India2025-04-16
Aika J Poquette1003Japan2025-04-29
Kaitlin U Waycott1004Australia2025-04-10
Maria J Garufi1005Argentina2025-04-20
Leja H Briddick1006Brazil2025-04-29
Antonio V Morasca1007Canada2025-04-29
Stacey A Maclead1008Russia2025-04-26
Stacey A Ferencz1009Germany2025-04-23
Smith R Dilliard1010India2025-04-20
Kaitlin Y Schemmer1011Argentina2025-04-05
Octavia D Slusarski1012Canada2025-04-27
James B Albares1013Italy2025-04-20
Sinclair E Sergi1014Russia2025-04-28
Nicolas G Morasca1015Spain2025-04-14
Juan S Venere1016United Kingdom2025-04-08
Jeanfrancois S Rim1017Canada2025-04-19
Julie T Rim1018Germany2025-04-24
Alejandro W Ferencz1019Canada2025-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin K TollnerRussiaOnyama Limba UNQUALIFIED
Wickens V InouyeGermanyStephen Shaw RENEWAL
Ricardo N SergiItalyIoni Bowcher RENEWAL
Darci C AlbaresArgentinaIvan Magalhaes NEW
Deepesh I VocelkaBrazilAmy Elsner PROPOSAL
Emily I GauchoBrazilAmy Elsner NEW
Wickens Q MacleadCanadaStephen Shaw RENEWAL
Ricardo S ChuiJapanOnyama Limba NEW
Johnson I WaycottUnited KingdomXuxue Feng QUALIFIED
Murillo P FerenczSpainBernardo Dominic NEW
Munro Z GauchoGermanyStephen Shaw NEW
Stacey J DilliardRussiaAmy Elsner NEW
Cody E SaylorsRussiaOnyama Limba NEW
Aruna P ButtAustraliaStephen Shaw RENEWAL
Ricardo Z SchemmerArgentinaStephen Shaw UNQUALIFIED
Aika K DoeBrazilAnna Fali QUALIFIED
Murillo D ButtJapanIvan Magalhaes QUALIFIED
Sinclair H RutaAustraliaXuxue Feng NEW
Alejandro Y FigeroaRussiaAmy Elsner NEW
Costa Y SlusarskiRussiaElwin Sharvill PROPOSAL
Jennifer V TollnerCanadaIoni Bowcher QUALIFIED
Isabel A KuskoFranceStephen Shaw NEGOTIATION
Murillo Q DilliardJapanXuxue Feng PROPOSAL
Faith R GlickCanadaOnyama Limba NEW
Deepesh C NickaIndiaIvan Magalhaes NEGOTIATION
Morrow F PaprockiFranceAmy Elsner UNQUALIFIED
Claire S PaprockiBrazilAnna Fali UNQUALIFIED
Aruna A BologniaGermanyIvan Magalhaes RENEWAL
Maisha E RutaGermanyIoni Bowcher QUALIFIED
Jeanfrancois Y MarrierIndiaIoni Bowcher QUALIFIED
Costa N PoquetteFranceAsiya Javayant NEGOTIATION
Silvio S OldroydFranceAsiya Javayant NEGOTIATION
Sinclair E ButtIndiaIvan Magalhaes RENEWAL
Aruna R StockhamItalyXuxue Feng RENEWAL
Smith S OstroskyRussiaIvan Magalhaes NEGOTIATION
Morrow Z DilliardItalyElwin Sharvill QUALIFIED
Kaitlin S CampainArgentinaXuxue Feng PROPOSAL
Jones H ButtUnited KingdomAmy Elsner UNQUALIFIED
Julie C ChuiItalyOnyama Limba NEGOTIATION
Juan D FerenczGermanyAmy Elsner NEW

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