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
Murillo D IturbideFranceStephen Shaw RENEWAL
Antonio H OldroydSpainStephen Shaw QUALIFIED
Jefferson P MarrierGermanyOnyama Limba NEGOTIATION
Maisha U DarakjyCanadaElwin Sharvill UNQUALIFIED
Chavez B KolmetzBrazilOnyama Limba PROPOSAL
Kaitlin D DilliardFranceStephen Shaw NEW
Mayumi M GauchoUnited KingdomIoni Bowcher RENEWAL
Jefferson B DarakjyCanadaElwin Sharvill NEGOTIATION
Antonio A RoysterFranceElwin Sharvill QUALIFIED
Aika R RoysterGermanyElwin Sharvill PROPOSAL
Leja T VenereFranceIoni Bowcher RENEWAL
Maria G GarufiAustraliaIvan Magalhaes PROPOSAL
Murillo K StockhamItalyIvan Magalhaes NEGOTIATION
James A RulapaughSpainElwin Sharvill UNQUALIFIED
Silvio L TollnerRussiaXuxue Feng PROPOSAL
Rodrigues Q AlbaresCanadaXuxue Feng NEGOTIATION
Arvin U SchemmerUnited KingdomIoni Bowcher NEGOTIATION
Ashley D GlickRussiaElwin Sharvill QUALIFIED
Isabel H DoeIndiaAnna Fali NEGOTIATION
Jeanfrancois K StensethArgentinaAmy Elsner RENEWAL
Chavez P NestleGermanyElwin Sharvill QUALIFIED
Ashley N PerinItalyAmy Elsner RENEWAL
Clifford U MaletAustraliaAnna Fali UNQUALIFIED
Aditya B AlbaresGermanyIoni Bowcher NEGOTIATION
James R StockhamFranceIoni Bowcher UNQUALIFIED
Claire Z KuskoUnited KingdomAnna Fali NEGOTIATION
Aditya A FerenczJapanBernardo Dominic QUALIFIED
Julie T FigeroaIndiaElwin Sharvill NEW
Octavia V CampainArgentinaElwin Sharvill QUALIFIED
Leja D ChuiAustraliaStephen Shaw NEGOTIATION
Tony X DoeSpainXuxue Feng UNQUALIFIED
Ivar V RutaRussiaIvan Magalhaes NEW
Emily X DarakjyArgentinaAnna Fali QUALIFIED
Faith C InouyeFranceElwin Sharvill PROPOSAL
Greenwood D DilliardGermanyIoni Bowcher QUALIFIED
Kadeem W MorascaRussiaIoni Bowcher QUALIFIED
Juan N ButtUnited KingdomAsiya Javayant QUALIFIED
Julie A RoysterJapanBernardo Dominic QUALIFIED
Chavez W FigeroaUnited KingdomAsiya Javayant NEW
Clifford L SchemmerItalyBernardo Dominic UNQUALIFIED
Tony L GillianSpainStephen Shaw NEGOTIATION
Misaki D RimUnited KingdomXuxue Feng NEGOTIATION
Darci U StensethFranceStephen Shaw NEW
Nicolas W IturbideJapanAsiya Javayant RENEWAL
Johnson F OstroskyRussiaXuxue Feng QUALIFIED
Ricardo Q DoeArgentinaElwin Sharvill NEGOTIATION
Izzy N GlickItalyXuxue Feng QUALIFIED
Rodrigues Q KolmetzRussiaIoni Bowcher NEGOTIATION
Stacey U InouyeItalyStephen Shaw QUALIFIED
Ricardo P GauchoCanadaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody J AlbaresCanadaAmy Elsner NEGOTIATION
Mayumi K CampainRussiaAmy Elsner PROPOSAL
Misaki U FigeroaJapanElwin Sharvill RENEWAL
Nicolas O GauchoBrazilStephen Shaw NEGOTIATION
Leja N WhobreyAustraliaAsiya Javayant NEGOTIATION
Smith X GauchoAustraliaAsiya Javayant PROPOSAL
Misaki Y RulapaughJapanIoni Bowcher UNQUALIFIED
Nicolas S FigeroaSpainElwin Sharvill QUALIFIED
Jefferson F ChuiIndiaOnyama Limba PROPOSAL
Aditya K WhobreyUnited KingdomElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson C RulapaughItaly2026-07-02Buckley Miller Wright QUALIFIED77Asiya Javayant
1001Murillo K ButtIndia2026-06-24Chanay, Jeffrey A Esq NEW10Ivan Magalhaes
1002Alejandro C MorascaIndia2026-07-05Chanay, Jeffrey A Esq QUALIFIED27Anna Fali
1003Ivar T WieserRussia2026-07-13Printing Dimensions NEGOTIATION88Elwin Sharvill
1004Antonio C AlbaresCanada2026-07-11Rangoni Of Florence UNQUALIFIED93Bernardo Dominic
1005Cody M IturbideUnited Kingdom2026-06-19Rousseaux, Michael Esq NEW26Bernardo Dominic
1006James Y VocelkaCanada2026-06-29Dorl, James J Esq PROPOSAL27Amy Elsner
1007Misaki V ChuiAustralia2026-07-15Benton, John B Jr RENEWAL94Ivan Magalhaes
1008Nicolas Q ButtUnited Kingdom2026-06-20Feltz Printing Service UNQUALIFIED14Ioni Bowcher
1009Ricardo L VenereItaly2026-06-27Morlong Associates UNQUALIFIED83Elwin Sharvill
1010David M VocelkaGermany2026-07-15Rousseaux, Michael Esq UNQUALIFIED97Stephen Shaw
1011Jeanfrancois F SchemmerItaly2026-07-12Feiner Bros QUALIFIED16Ivan Magalhaes
1012Mujtaba E NestleAustralia2026-06-20Chapman, Ross E Esq QUALIFIED75Anna Fali
1013Mujtaba V DoeIndia2026-07-02Chapman, Ross E Esq NEW26Stephen Shaw
1014Misaki N TollnerItaly2026-06-27Commercial Press NEW57Elwin Sharvill
1015Misaki B RutaFrance2026-07-02Morlong Associates NEGOTIATION11Elwin Sharvill
1016Jeanfrancois W MorascaCanada2026-07-06Benton, John B Jr RENEWAL82Xuxue Feng
1017Juan R BowleyGermany2026-06-23Printing Dimensions NEGOTIATION40Onyama Limba
1018Adams P KolmetzUnited Kingdom2026-06-30Chemel, James L Cpa UNQUALIFIED28Ivan Magalhaes
1019Deepesh J FerenczFrance2026-07-09Morlong Associates QUALIFIED56Xuxue Feng
1020Darci K AlbaresFrance2026-07-18Dorl, James J Esq RENEWAL26Ioni Bowcher
1021Emily H MaletCanada2026-06-27Benton, John B Jr NEGOTIATION1Asiya Javayant
1022Julie Z PaprockiGermany2026-07-04Chanay, Jeffrey A Esq RENEWAL77Stephen Shaw
1023Ivar P SaylorsCanada2026-07-04Morlong Associates UNQUALIFIED77Xuxue Feng
1024Clifford M DilliardArgentina2026-07-02Benton, John B Jr NEGOTIATION18Ioni Bowcher
1025Kaitlin R MarrierAustralia2026-06-24King, Christopher A Esq PROPOSAL6Bernardo Dominic
1026Kaitlin B VenereRussia2026-06-19Dorl, James J Esq PROPOSAL9Asiya Javayant
1027Mujtaba Q WaycottArgentina2026-06-26Buckley Miller Wright RENEWAL97Bernardo Dominic
1028Claire M GauchoCanada2026-07-10Rousseaux, Michael Esq RENEWAL11Bernardo Dominic
1029Jeanfrancois W GauchoGermany2026-07-13King, Christopher A Esq QUALIFIED41Bernardo Dominic
1030Mayumi Z InouyeRussia2026-07-14Feltz Printing Service NEW64Elwin Sharvill
1031Julie I AlbaresGermany2026-07-11Truhlar And Truhlar Attys NEW46Ivan Magalhaes
1032Darci W PoquetteJapan2026-07-17Truhlar And Truhlar Attys QUALIFIED18Stephen Shaw
1033Ivar X KuskoJapan2026-06-25Morlong Associates NEGOTIATION78Bernardo Dominic
1034Smith H MorascaSpain2026-07-16Dorl, James J Esq NEW26Anna Fali
1035Nicolas G IturbideItaly2026-07-06King, Christopher A Esq NEGOTIATION24Asiya Javayant
1036Claire C GarufiGermany2026-07-03Feltz Printing Service NEW83Asiya Javayant
1037Deepesh Q RoysterGermany2026-07-07Printing Dimensions NEW92Amy Elsner
1038Darci J RimSpain2026-06-20Commercial Press RENEWAL94Ioni Bowcher
1039Mujtaba O OldroydJapan2026-06-29Chemel, James L Cpa QUALIFIED20Asiya Javayant
1040Octavia F FigeroaSpain2026-07-16Chanay, Jeffrey A Esq QUALIFIED66Ioni Bowcher
1041Salvatore D GarufiRussia2026-07-09Dorl, James J Esq NEW18Stephen Shaw
1042Jennifer Q AmigonGermany2026-07-12Dorl, James J Esq QUALIFIED6Elwin Sharvill
1043Adams U FlosiGermany2026-06-25Rangoni Of Florence PROPOSAL56Anna Fali
1044Rodrigues F AmigonGermany2026-07-03Dorl, James J Esq NEGOTIATION84Ioni Bowcher
1045Rodrigues C DarakjyRussia2026-07-05Feiner Bros UNQUALIFIED15Elwin Sharvill
1046Johnson Q BowleyBrazil2026-07-16Chemel, James L Cpa NEGOTIATION2Ivan Magalhaes
1047James E RutaBrazil2026-07-08Rousseaux, Michael Esq QUALIFIED48Anna Fali
1048Darci I RutaCanada2026-06-29Feltz Printing Service NEW1Elwin Sharvill
1049Greenwood C NestleBrazil2026-07-05King, Christopher A Esq PROPOSAL0Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Costa Z FollerBrazilOnyama Limba PROPOSAL
Johnson R NestleUnited KingdomAmy Elsner UNQUALIFIED
James H MarrierSpainIoni Bowcher RENEWAL
Chavez X StensethBrazilOnyama Limba RENEWAL
Mujtaba I IturbideItalyAmy Elsner NEW
Sinclair I AmigonJapanIvan Magalhaes RENEWAL
Munro Z OldroydUnited KingdomAnna Fali PROPOSAL
Nicolas V NickaCanadaAsiya Javayant QUALIFIED
Clifford S BologniaItalyXuxue Feng QUALIFIED
Sinclair U CampainCanadaOnyama Limba RENEWAL
Ivar N RoysterBrazilBernardo Dominic PROPOSAL
Mujtaba U NestleFranceOnyama Limba QUALIFIED
Silvio N AmigonGermanyBernardo Dominic NEW
Tony Z FlosiCanadaAsiya Javayant NEGOTIATION
Munro X BowleySpainAmy Elsner RENEWAL
Alejandro Y DilliardArgentinaIvan Magalhaes PROPOSAL
Munro V DilliardItalyBernardo Dominic QUALIFIED
Mujtaba N GillianIndiaOnyama Limba NEGOTIATION
Jennifer A MaletFranceIvan Magalhaes RENEWAL
Ricardo Y WieserItalyIoni Bowcher NEW
James X ButtSpainAnna Fali RENEWAL
Ashley F VenereIndiaIvan Magalhaes NEW
Stacey K SchemmerAustraliaIoni Bowcher PROPOSAL
Octavia G MaletUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois I DoeFranceStephen Shaw RENEWAL
Aika E AlbaresIndiaIvan Magalhaes UNQUALIFIED
Antonio U VenereGermanyBernardo Dominic PROPOSAL
Ivar F IturbideBrazilXuxue Feng RENEWAL
Chavez C AlbaresJapanAmy Elsner NEW
Silvio A MaletGermanyIoni Bowcher NEW
Deepesh W AlbaresArgentinaAnna Fali RENEWAL
Faith J TollnerFranceAnna Fali UNQUALIFIED
Octavia C RoysterIndiaIvan Magalhaes RENEWAL
Tony J FerenczIndiaBernardo Dominic QUALIFIED
Claire V FollerCanadaXuxue Feng RENEWAL
Maisha E RimArgentinaOnyama Limba NEW
Johnson D ButtUnited KingdomAsiya Javayant QUALIFIED
Maria R FollerFranceAmy Elsner QUALIFIED
Wickens W BriddickRussiaBernardo Dominic RENEWAL
Jeanfrancois L SlusarskiCanadaIoni Bowcher NEGOTIATION
Wickens G KolmetzSpainAmy Elsner QUALIFIED
Aruna L DarakjyArgentinaElwin Sharvill RENEWAL
Deepesh S BologniaJapanBernardo Dominic NEW
Maisha S SlusarskiJapanAmy Elsner QUALIFIED
Kaitlin M BowleyGermanyIoni Bowcher NEGOTIATION
Smith R ButtBrazilBernardo Dominic RENEWAL
Emily Q RoysterUnited KingdomAnna Fali UNQUALIFIED
Chavez E SergiAustraliaAsiya Javayant QUALIFIED
Emily Z IturbideRussiaBernardo Dominic NEW
Izzy Y KuskoRussiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Kadeem I Amigon
Deepesh C Inouye
Alejandro V Maclead
Morrow H Foller
Salvatore F Campain
Ivar X Stockham
Kadeem M Ferencz
Rodrigues K Bowley
Murillo G Doe
Costa N Vocelka
Deepesh E Sergi
Misaki N Inouye
James H Stockham
Adams P Chui
Leja D Bolognia
Silvio R Wieser
Smith Y Inouye
Morrow J Malet
Darci S Glick
Kaitlin N Royster
Clifford P Ruta
Ivar U Ruta
Nicolas N Sergi
Misaki K Flosi
Sinclair S Sergi
Jennifer H Flosi
James E Saylors
David J Dilliard
Costa U Gaucho
Deepesh O Kusko
Smith Q Kolmetz
Nicolas Z Stenseth
Morrow E Ruta
Jennifer M Iturbide
Silvio B Ferencz
James L Shinko
Misaki F Darakjy
Octavia Y Inouye
Munro F Caudy
Murillo P Campain
Juan J Gaucho
Cody A Bolognia
Sinclair E Marrier
Maisha P Slusarski
Alejandro T Bolognia
Johnson A Malet
Salvatore E Whobrey
Clifford J Malet
Aditya X Kusko
Francesco S Iturbide
IdCountryDate
1000Spain2026-07-06
1001India2026-07-15
1002Canada2026-07-16
1003France2026-06-21
1004Japan2026-07-18
1005France2026-06-19
1006Canada2026-06-26
1007United Kingdom2026-07-12
1008Germany2026-07-10
1009Russia2026-07-09
1010Spain2026-06-26
1011Italy2026-06-27
1012Italy2026-06-27
1013Argentina2026-06-28
1014Argentina2026-06-21
1015United Kingdom2026-07-15
1016Russia2026-06-29
1017Japan2026-07-08
1018Argentina2026-06-19
1019Germany2026-07-10
1020France2026-06-22
1021India2026-06-20
1022Italy2026-06-26
1023Canada2026-07-05
1024Russia2026-06-29
1025Argentina2026-06-22
1026Brazil2026-07-11
1027Germany2026-06-26
1028Italy2026-06-19
1029France2026-07-14
1030Italy2026-07-18
1031Brazil2026-07-10
1032Canada2026-07-18
1033India2026-06-20
1034Australia2026-07-18
1035Russia2026-07-17
1036Russia2026-06-29
1037Russia2026-07-07
1038Germany2026-07-06
1039Russia2026-07-05
1040Canada2026-06-22
1041Italy2026-07-06
1042Spain2026-06-23
1043Russia2026-07-12
1044India2026-07-07
1045Japan2026-07-03
1046Germany2026-06-28
1047Germany2026-07-12
1048Japan2026-07-18
1049Australia2026-06-28

On-Demand Data

NameIdCountryDate
Jeanfrancois Q Amigon1000United Kingdom2026-07-18
Octavia I Ostrosky1001Germany2026-06-23
Darci M Rulapaugh1002Canada2026-07-03
Stacey X Sergi1003Germany2026-07-07
Isabel P Vocelka1004Spain2026-06-30
Murillo O Kolmetz1005Canada2026-06-21
Aika P Morasca1006Brazil2026-07-09
Adams Q Inouye1007Japan2026-07-04
Leon J Caudy1008Argentina2026-06-28
Misaki C Ruta1009Germany2026-06-23
Jeanfrancois B Doe1010Germany2026-07-06
Emily C Doe1011United Kingdom2026-06-19
Julie F Wieser1012Australia2026-07-15
Ivar P Malet1013Brazil2026-07-11
Johnson T Caldarera1014Germany2026-06-21
James M Foller1015Australia2026-06-25
Costa C Amigon1016Spain2026-06-20
Stacey C Dilliard1017Spain2026-07-10
Claire W Bolognia1018Canada2026-07-01
Johnson O Malet1019India2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Z SchemmerAustraliaIoni Bowcher NEGOTIATION
Ivar I WieserFranceIoni Bowcher NEW
Salvatore R FigeroaFranceBernardo Dominic UNQUALIFIED
Maria A SaylorsAustraliaXuxue Feng PROPOSAL
Deepesh H StockhamRussiaXuxue Feng NEW
David O SlusarskiSpainElwin Sharvill NEGOTIATION
Cody B RulapaughJapanAmy Elsner NEW
Mayumi T StensethIndiaOnyama Limba NEGOTIATION
Alejandro F RulapaughAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois W TollnerGermanyOnyama Limba PROPOSAL
Juan I VenereUnited KingdomBernardo Dominic NEW
Ashley K IturbideJapanAsiya Javayant QUALIFIED
Stacey F CaudyArgentinaAmy Elsner UNQUALIFIED
Izzy W KuskoArgentinaIoni Bowcher NEGOTIATION
Ivar P PaprockiArgentinaIoni Bowcher RENEWAL
Kaitlin E CaudyCanadaElwin Sharvill NEW
Chavez D ButtRussiaOnyama Limba RENEWAL
Juan P PerinIndiaXuxue Feng UNQUALIFIED
Aruna H IturbideBrazilIoni Bowcher QUALIFIED
Isabel M SchemmerBrazilStephen Shaw NEGOTIATION
Mujtaba K SaylorsCanadaAnna Fali QUALIFIED
Costa Z AlbaresArgentinaIvan Magalhaes PROPOSAL
Francesco T StockhamItalyXuxue Feng RENEWAL
Octavia I ChuiCanadaIoni Bowcher NEW
Stacey L DilliardUnited KingdomBernardo Dominic NEW
Munro T VocelkaAustraliaAsiya Javayant UNQUALIFIED
Julie D CaudyGermanyIoni Bowcher NEGOTIATION
Cody Z NestleFranceStephen Shaw QUALIFIED
Alejandro X MorascaIndiaOnyama Limba UNQUALIFIED
Deepesh L DarakjyArgentinaElwin Sharvill UNQUALIFIED
Darci A SchemmerRussiaStephen Shaw NEW
Munro W PerinFranceElwin Sharvill RENEWAL
Clifford I MaletArgentinaOnyama Limba RENEWAL
Jones N FlosiAustraliaStephen Shaw RENEWAL
Costa D StockhamRussiaOnyama Limba RENEWAL
Alejandro O VenereAustraliaOnyama Limba NEGOTIATION
Deepesh J DilliardArgentinaAmy Elsner UNQUALIFIED
Aditya N DilliardGermanyAnna Fali NEW
Clifford S BowleyFranceAnna Fali UNQUALIFIED
David L OldroydFranceXuxue Feng 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>