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
Deepesh B KuskoGermanyStephen Shaw PROPOSAL
Antonio Y RimRussiaAnna Fali PROPOSAL
Morrow S PaprockiAustraliaOnyama Limba NEGOTIATION
Nicolas Z KuskoUnited KingdomIvan Magalhaes PROPOSAL
Emily M MacleadJapanIoni Bowcher RENEWAL
Leon G PerinGermanyAsiya Javayant QUALIFIED
David C MaletBrazilIvan Magalhaes UNQUALIFIED
Wickens J SaylorsAustraliaIvan Magalhaes PROPOSAL
Aditya M TollnerSpainStephen Shaw NEW
Izzy F ShinkoRussiaIvan Magalhaes PROPOSAL
Julie T RimSpainIoni Bowcher QUALIFIED
Emily J FerenczIndiaIoni Bowcher QUALIFIED
Misaki J AlbaresRussiaAmy Elsner PROPOSAL
Jeanfrancois I VenereFranceIoni Bowcher QUALIFIED
Maria O OstroskyJapanXuxue Feng RENEWAL
Faith F ButtJapanAsiya Javayant UNQUALIFIED
Arvin Y PaprockiUnited KingdomElwin Sharvill PROPOSAL
Ivar Q DilliardIndiaAnna Fali QUALIFIED
Adams U SchemmerBrazilAnna Fali QUALIFIED
Octavia U InouyeAustraliaXuxue Feng QUALIFIED
Clifford E DarakjyGermanyAnna Fali RENEWAL
Mayumi A WieserSpainAmy Elsner NEGOTIATION
Morrow W SergiGermanyIoni Bowcher UNQUALIFIED
Leon W MacleadBrazilBernardo Dominic PROPOSAL
Mayumi D StensethJapanElwin Sharvill NEGOTIATION
Jennifer L PerinFranceAmy Elsner NEGOTIATION
Antonio E ButtUnited KingdomElwin Sharvill PROPOSAL
Darci J PoquetteItalyIoni Bowcher NEGOTIATION
Alejandro G StensethBrazilIvan Magalhaes NEW
Jones R GlickArgentinaOnyama Limba PROPOSAL
Kadeem I CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Faith K BriddickSpainXuxue Feng NEW
Emily G VocelkaItalyStephen Shaw NEGOTIATION
Francesco A NickaUnited KingdomStephen Shaw RENEWAL
Jeanfrancois W NestleArgentinaBernardo Dominic QUALIFIED
Jones S GlickRussiaElwin Sharvill RENEWAL
Kaitlin K CampainAustraliaAsiya Javayant UNQUALIFIED
Kadeem L MorascaSpainAmy Elsner RENEWAL
Salvatore U RutaArgentinaIvan Magalhaes NEGOTIATION
Maria A SaylorsIndiaStephen Shaw UNQUALIFIED
Kadeem U GlickGermanyIvan Magalhaes NEW
Kaitlin U ChuiBrazilStephen Shaw QUALIFIED
Antonio I GauchoAustraliaElwin Sharvill QUALIFIED
Jefferson H DoeArgentinaOnyama Limba PROPOSAL
Juan F FollerCanadaIoni Bowcher UNQUALIFIED
Sinclair N MacleadUnited KingdomOnyama Limba UNQUALIFIED
Leon B SlusarskiRussiaOnyama Limba PROPOSAL
Silvio G AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Adams W DarakjyRussiaIoni Bowcher UNQUALIFIED
Izzy K RulapaughFranceAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel O NickaBrazilOnyama Limba PROPOSAL
Jones F MacleadBrazilAmy Elsner NEGOTIATION
Wickens V RulapaughFranceAsiya Javayant QUALIFIED
Jeanfrancois C PoquetteIndiaAsiya Javayant UNQUALIFIED
Claire Z RutaBrazilOnyama Limba QUALIFIED
Aika I DoeUnited KingdomBernardo Dominic RENEWAL
Julie W MaletRussiaStephen Shaw NEW
Stacey Q OstroskyBrazilBernardo Dominic RENEWAL
Emily V NestleSpainStephen Shaw NEGOTIATION
Aditya D MacleadIndiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan G WhobreySpain2025-04-30Dorl, James J Esq RENEWAL80Amy Elsner
1001Munro H SaylorsSpain2025-04-20Truhlar And Truhlar Attys UNQUALIFIED93Amy Elsner
1002Faith U NickaRussia2025-05-14Benton, John B Jr NEGOTIATION70Stephen Shaw
1003David Y DilliardItaly2025-05-02Buckley Miller Wright NEGOTIATION41Bernardo Dominic
1004Silvio A InouyeFrance2025-05-13Buckley Miller Wright PROPOSAL90Elwin Sharvill
1005Maria Z BowleyArgentina2025-04-20Feltz Printing Service UNQUALIFIED5Anna Fali
1006Antonio M SaylorsArgentina2025-05-06Rangoni Of Florence PROPOSAL20Ivan Magalhaes
1007Leon P WieserBrazil2025-05-15Rousseaux, Michael Esq QUALIFIED13Stephen Shaw
1008Leon G ButtGermany2025-05-05Chanay, Jeffrey A Esq NEGOTIATION32Anna Fali
1009Claire G GillianBrazil2025-04-21Truhlar And Truhlar Attys NEW69Amy Elsner
1010Greenwood A GillianCanada2025-05-10Dorl, James J Esq NEGOTIATION72Xuxue Feng
1011Arvin N FollerBrazil2025-05-06Buckley Miller Wright QUALIFIED57Bernardo Dominic
1012Tony X TollnerFrance2025-05-02Rousseaux, Michael Esq UNQUALIFIED17Asiya Javayant
1013Ivar L WhobreyUnited Kingdom2025-05-12Feltz Printing Service QUALIFIED40Anna Fali
1014Silvio Y MaletRussia2025-05-01Buckley Miller Wright NEW33Stephen Shaw
1015Claire X FerenczSpain2025-04-24Benton, John B Jr NEW0Ivan Magalhaes
1016Juan T FigeroaCanada2025-05-03Morlong Associates NEW3Xuxue Feng
1017Clifford M MaletGermany2025-05-09King, Christopher A Esq UNQUALIFIED1Stephen Shaw
1018Morrow G CampainItaly2025-04-20Printing Dimensions NEW70Anna Fali
1019Aruna T FerenczCanada2025-05-03Truhlar And Truhlar Attys PROPOSAL60Ioni Bowcher
1020Ivar W TollnerCanada2025-04-18Feiner Bros UNQUALIFIED42Xuxue Feng
1021Francesco Z SchemmerBrazil2025-05-16King, Christopher A Esq PROPOSAL3Anna Fali
1022Alejandro V PerinFrance2025-05-04Printing Dimensions QUALIFIED54Stephen Shaw
1023Ricardo L ShinkoSpain2025-05-13Buckley Miller Wright QUALIFIED12Onyama Limba
1024Tony J FigeroaGermany2025-04-19Chemel, James L Cpa NEW45Anna Fali
1025Ricardo K SaylorsArgentina2025-05-07Buckley Miller Wright NEW17Amy Elsner
1026Aika T FollerUnited Kingdom2025-04-23Morlong Associates NEW73Xuxue Feng
1027Johnson I AmigonGermany2025-05-12Rousseaux, Michael Esq NEW5Ioni Bowcher
1028Costa R DarakjyUnited Kingdom2025-04-25Printing Dimensions UNQUALIFIED29Xuxue Feng
1029Francesco Y GauchoUnited Kingdom2025-05-06Morlong Associates NEGOTIATION49Stephen Shaw
1030Jeanfrancois F FigeroaSpain2025-04-23Printing Dimensions NEGOTIATION14Amy Elsner
1031Nicolas D MaletRussia2025-04-28Commercial Press QUALIFIED40Ivan Magalhaes
1032Juan I ChuiFrance2025-05-16Rousseaux, Michael Esq NEW81Asiya Javayant
1033Alejandro E MorascaItaly2025-05-15Chapman, Ross E Esq UNQUALIFIED79Stephen Shaw
1034Aruna R BologniaItaly2025-04-21Rangoni Of Florence PROPOSAL44Bernardo Dominic
1035Deepesh G WaycottArgentina2025-05-08Rousseaux, Michael Esq NEW86Asiya Javayant
1036Maisha V ButtIndia2025-04-21Chanay, Jeffrey A Esq QUALIFIED35Stephen Shaw
1037Mayumi H MarrierUnited Kingdom2025-04-29Commercial Press UNQUALIFIED70Onyama Limba
1038Nicolas O PoquetteFrance2025-05-06Rousseaux, Michael Esq NEW61Xuxue Feng
1039Jeanfrancois W StensethGermany2025-04-29Truhlar And Truhlar Attys QUALIFIED17Amy Elsner
1040Smith R SchemmerBrazil2025-05-08Feltz Printing Service NEGOTIATION29Ioni Bowcher
1041Wickens Z RoysterArgentina2025-04-19Commercial Press NEGOTIATION92Ivan Magalhaes
1042Francesco A RoysterItaly2025-05-05Commercial Press UNQUALIFIED21Asiya Javayant
1043Stacey T NickaGermany2025-04-17Dorl, James J Esq RENEWAL24Onyama Limba
1044Aika I DarakjyItaly2025-05-07Feiner Bros NEGOTIATION54Ivan Magalhaes
1045Chavez H MarrierFrance2025-05-01Chapman, Ross E Esq RENEWAL42Ivan Magalhaes
1046Antonio B PaprockiIndia2025-05-15Printing Dimensions RENEWAL68Onyama Limba
1047Leon V RutaBrazil2025-05-04Benton, John B Jr RENEWAL24Stephen Shaw
1048Kadeem A SchemmerUnited Kingdom2025-04-27Truhlar And Truhlar Attys PROPOSAL12Ivan Magalhaes
1049Octavia O MarrierItaly2025-04-25Chemel, James L Cpa QUALIFIED20Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Misaki H GillianItalyIoni Bowcher UNQUALIFIED
Costa Z DilliardGermanyXuxue Feng PROPOSAL
Octavia C GarufiFranceOnyama Limba PROPOSAL
Clifford A FlosiSpainXuxue Feng PROPOSAL
Johnson B FerenczItalyAnna Fali NEW
Stacey T WaycottItalyElwin Sharvill NEW
Johnson V StockhamAustraliaOnyama Limba PROPOSAL
Ivar Z BowleyJapanAmy Elsner RENEWAL
Jennifer X SaylorsIndiaStephen Shaw NEGOTIATION
Arvin O RimJapanElwin Sharvill UNQUALIFIED
Silvio R CaudyIndiaAnna Fali UNQUALIFIED
Jeanfrancois I FlosiGermanyIoni Bowcher QUALIFIED
Greenwood X MaletArgentinaXuxue Feng NEW
Arvin C SlusarskiArgentinaBernardo Dominic PROPOSAL
Jeanfrancois Q NestleArgentinaAmy Elsner NEGOTIATION
Kadeem C MacleadBrazilAsiya Javayant UNQUALIFIED
Nicolas R FigeroaCanadaXuxue Feng UNQUALIFIED
Alejandro C CaldareraGermanyAsiya Javayant QUALIFIED
Juan U MaletArgentinaAmy Elsner UNQUALIFIED
Kaitlin D PaprockiRussiaOnyama Limba NEW
Cody N PerinFranceBernardo Dominic UNQUALIFIED
Morrow A FollerGermanyXuxue Feng RENEWAL
Misaki F StockhamArgentinaElwin Sharvill QUALIFIED
Morrow X ShinkoItalyXuxue Feng NEGOTIATION
Johnson G WhobreyCanadaIvan Magalhaes RENEWAL
Aika D FlosiAustraliaAnna Fali UNQUALIFIED
Mayumi T MarrierCanadaAnna Fali NEGOTIATION
Octavia K BriddickGermanyOnyama Limba RENEWAL
Francesco L CaudyIndiaBernardo Dominic QUALIFIED
Aditya N BologniaIndiaOnyama Limba RENEWAL
Silvio K BowleyItalyAnna Fali NEGOTIATION
Ashley V VenereRussiaElwin Sharvill NEGOTIATION
Greenwood J WhobreyFranceAnna Fali UNQUALIFIED
Izzy N SchemmerFranceXuxue Feng QUALIFIED
Emily P StockhamAustraliaIoni Bowcher NEW
James E BowleyGermanyIvan Magalhaes UNQUALIFIED
Rodrigues X MorascaGermanyAmy Elsner QUALIFIED
Claire I GlickArgentinaAnna Fali NEW
Arvin L PaprockiJapanElwin Sharvill NEGOTIATION
Nicolas U PerinJapanStephen Shaw RENEWAL
Adams Q MaletIndiaElwin Sharvill RENEWAL
Jeanfrancois F WaycottCanadaAsiya Javayant QUALIFIED
Izzy A FollerRussiaStephen Shaw NEGOTIATION
Alejandro V GlickItalyBernardo Dominic QUALIFIED
Arvin E VenereAustraliaBernardo Dominic NEGOTIATION
Tony M PerinUnited KingdomElwin Sharvill PROPOSAL
Sinclair T RoysterJapanXuxue Feng NEW
Maria R DilliardAustraliaXuxue Feng UNQUALIFIED
Tony V PoquetteRussiaBernardo Dominic RENEWAL
Francesco M FollerUnited KingdomAnna Fali NEW
Frozen Columns
Name
Kadeem Y Malet
Aditya P Nestle
Adams A Bolognia
Izzy X Malet
Johnson I Briddick
Ricardo D Malet
Clifford B Gillian
Mujtaba S Bowley
Ivar Z Garufi
Aika D Kusko
Francesco A Iturbide
Smith S Butt
Aruna E Gillian
Jeanfrancois P Schemmer
Darci F Ruta
Faith N Gillian
Wickens Y Campain
Isabel P Malet
Maisha Z Bolognia
Johnson B Whobrey
Leon Q Tollner
Jefferson O Garufi
Costa R Morasca
Deepesh H Malet
James G Tollner
Morrow J Malet
David W Albares
Faith D Oldroyd
Faith X Shinko
Johnson R Bolognia
Chavez D Perin
Jeanfrancois T Amigon
Maisha M Chui
Faith Y Garufi
Maisha D Paprocki
Clifford B Caldarera
Mujtaba L Oldroyd
Chavez Q Gaucho
James E Malet
Greenwood F Butt
Mayumi O Kusko
Nicolas H Ferencz
Munro M Campain
Wickens Q Garufi
Clifford Z Ruta
Aruna M Stenseth
Ricardo V Royster
Adams C Oldroyd
Mujtaba W Paprocki
Tony Y Dilliard
IdCountryDate
1000Canada2025-05-11
1001Spain2025-04-26
1002Brazil2025-04-21
1003Brazil2025-05-15
1004Italy2025-05-10
1005Japan2025-04-22
1006India2025-04-18
1007Argentina2025-04-23
1008Japan2025-04-24
1009Brazil2025-04-17
1010India2025-04-26
1011France2025-05-04
1012France2025-04-20
1013Spain2025-04-28
1014Brazil2025-05-01
1015Japan2025-04-27
1016Canada2025-05-08
1017Australia2025-04-30
1018Russia2025-05-01
1019Italy2025-05-10
1020India2025-04-19
1021Italy2025-04-17
1022Brazil2025-05-05
1023Germany2025-05-11
1024Germany2025-05-07
1025France2025-04-20
1026Spain2025-05-09
1027Germany2025-05-15
1028Australia2025-04-22
1029France2025-05-10
1030Spain2025-05-14
1031Canada2025-05-16
1032Brazil2025-04-29
1033Spain2025-05-15
1034Canada2025-05-01
1035Germany2025-05-06
1036Italy2025-04-21
1037United Kingdom2025-04-23
1038Italy2025-05-10
1039Australia2025-05-03
1040Argentina2025-05-14
1041Germany2025-04-29
1042Argentina2025-04-25
1043United Kingdom2025-04-20
1044India2025-04-28
1045Australia2025-04-29
1046Japan2025-05-12
1047Brazil2025-05-09
1048Canada2025-05-13
1049Japan2025-05-08

On-Demand Data

NameIdCountryDate
Jeanfrancois D Doe1000Spain2025-04-21
Rodrigues S Stockham1001Canada2025-04-26
Rodrigues N Briddick1002Italy2025-05-14
Misaki M Rim1003Canada2025-05-16
Maria A Malet1004Germany2025-05-15
Costa X Flosi1005Japan2025-05-01
Johnson F Chui1006Japan2025-04-20
Ashley C Albares1007Japan2025-05-06
Silvio T Poquette1008Brazil2025-04-25
Costa K Stockham1009Canada2025-05-02
Leja X Kusko1010Germany2025-04-28
Kaitlin M Iturbide1011United Kingdom2025-05-10
Alejandro C Malet1012Australia2025-05-10
Mujtaba E Ruta1013Germany2025-05-01
Isabel M Malet1014Argentina2025-05-15
Greenwood J Albares1015Italy2025-05-04
Maisha G Iturbide1016United Kingdom2025-05-01
Ashley I Kusko1017Russia2025-05-01
Ashley T Malet1018United Kingdom2025-05-01
Cody X Saylors1019France2025-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley E DarakjyCanadaAsiya Javayant NEGOTIATION
Sinclair H MaletGermanyXuxue Feng QUALIFIED
Jennifer P ButtBrazilXuxue Feng RENEWAL
Clifford L ButtUnited KingdomIoni Bowcher NEW
Jeanfrancois I DilliardAustraliaBernardo Dominic QUALIFIED
Stacey Z RutaItalyAnna Fali UNQUALIFIED
Smith N MaletBrazilOnyama Limba PROPOSAL
Ricardo T MarrierGermanyBernardo Dominic RENEWAL
Antonio U PaprockiJapanBernardo Dominic NEGOTIATION
Kaitlin Q GillianCanadaBernardo Dominic QUALIFIED
Isabel Y SchemmerAustraliaIoni Bowcher NEW
Leja G OstroskySpainAnna Fali NEGOTIATION
Kadeem C MorascaRussiaAmy Elsner NEGOTIATION
Octavia A GarufiGermanyAnna Fali UNQUALIFIED
Darci U FigeroaIndiaAnna Fali QUALIFIED
Darci E DoeIndiaIoni Bowcher RENEWAL
Costa I TollnerUnited KingdomIoni Bowcher NEW
Jeanfrancois W NestleArgentinaIvan Magalhaes UNQUALIFIED
Claire H VocelkaAustraliaElwin Sharvill PROPOSAL
Octavia R KuskoBrazilXuxue Feng PROPOSAL
Wickens F ButtAustraliaStephen Shaw NEGOTIATION
Salvatore H FerenczAustraliaBernardo Dominic QUALIFIED
Leon T BologniaFranceIvan Magalhaes RENEWAL
Jeanfrancois M InouyeIndiaBernardo Dominic NEGOTIATION
Emily D MarrierSpainElwin Sharvill RENEWAL
Cody A RoysterSpainStephen Shaw NEW
Ricardo X SchemmerArgentinaIvan Magalhaes RENEWAL
Darci B FigeroaArgentinaOnyama Limba NEGOTIATION
Darci V SchemmerBrazilAnna Fali RENEWAL
Mujtaba O RutaFranceAmy Elsner PROPOSAL
Aika V StockhamIndiaElwin Sharvill UNQUALIFIED
Arvin I MarrierArgentinaAmy Elsner NEW
Francesco R MorascaCanadaXuxue Feng NEGOTIATION
Smith B StensethIndiaOnyama Limba NEGOTIATION
James B IturbideUnited KingdomAnna Fali NEGOTIATION
Misaki C TollnerGermanyAsiya Javayant NEGOTIATION
Adams I ChuiItalyIvan Magalhaes QUALIFIED
Francesco U PaprockiItalyElwin Sharvill UNQUALIFIED
Tony A ButtArgentinaAnna Fali NEGOTIATION
Ashley N GauchoJapanAmy Elsner RENEWAL

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