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
Octavia N MaletItalyAnna Fali UNQUALIFIED
Smith W RimArgentinaBernardo Dominic NEGOTIATION
Leja G MaletFranceAnna Fali PROPOSAL
Silvio Z DarakjyIndiaXuxue Feng NEGOTIATION
Julie W WhobreyAustraliaStephen Shaw UNQUALIFIED
Julie B DarakjyIndiaAmy Elsner QUALIFIED
Silvio B NickaRussiaAmy Elsner QUALIFIED
Ashley L ButtIndiaStephen Shaw NEW
Stacey X DarakjyAustraliaAnna Fali RENEWAL
Jones K CaudyCanadaElwin Sharvill UNQUALIFIED
Jennifer G PoquetteFranceIvan Magalhaes RENEWAL
Izzy C FigeroaIndiaStephen Shaw PROPOSAL
Jeanfrancois I StockhamItalyIoni Bowcher RENEWAL
Aruna C ChuiAustraliaXuxue Feng PROPOSAL
Johnson X PoquetteFranceAmy Elsner UNQUALIFIED
Murillo X DilliardItalyOnyama Limba NEGOTIATION
Aika P NickaRussiaOnyama Limba NEW
Costa B NestleUnited KingdomElwin Sharvill NEW
Isabel V WaycottItalyOnyama Limba NEGOTIATION
Isabel Y CampainGermanyOnyama Limba RENEWAL
Arvin C GauchoSpainStephen Shaw UNQUALIFIED
Ivar Y GarufiJapanAmy Elsner PROPOSAL
Misaki T StensethAustraliaStephen Shaw RENEWAL
Darci L PoquetteItalyIoni Bowcher QUALIFIED
Jeanfrancois D BowleyCanadaIoni Bowcher QUALIFIED
Morrow B OstroskyRussiaIoni Bowcher NEGOTIATION
Smith W KuskoBrazilElwin Sharvill RENEWAL
Aika T SlusarskiAustraliaIoni Bowcher NEW
Nicolas W BriddickBrazilElwin Sharvill NEGOTIATION
Rodrigues J AmigonUnited KingdomAsiya Javayant PROPOSAL
Aika T WieserItalyIvan Magalhaes QUALIFIED
Leon X WaycottSpainAmy Elsner NEW
Silvio H MaletRussiaAnna Fali UNQUALIFIED
Deepesh W CampainIndiaIvan Magalhaes UNQUALIFIED
Adams Y MaletRussiaStephen Shaw UNQUALIFIED
Alejandro Q RoysterUnited KingdomAmy Elsner UNQUALIFIED
Faith X BologniaItalyIoni Bowcher PROPOSAL
Claire N SaylorsIndiaElwin Sharvill UNQUALIFIED
Wickens Y GillianItalyStephen Shaw NEGOTIATION
Francesco Y CampainJapanIvan Magalhaes NEW
Darci B SaylorsAustraliaAnna Fali PROPOSAL
Faith A KolmetzBrazilAsiya Javayant PROPOSAL
Aditya A BowleyRussiaIvan Magalhaes QUALIFIED
Nicolas U CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem C AlbaresArgentinaAmy Elsner PROPOSAL
Aruna H KuskoJapanXuxue Feng NEW
Silvio H ButtRussiaBernardo Dominic RENEWAL
Kadeem Q SaylorsJapanStephen Shaw NEGOTIATION
Jones Z BowleyBrazilElwin Sharvill RENEWAL
Sinclair E CaldareraAustraliaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams O SlusarskiGermanyAnna Fali RENEWAL
Maria M RoysterBrazilIvan Magalhaes RENEWAL
Murillo R ShinkoJapanOnyama Limba RENEWAL
Smith N MacleadItalyOnyama Limba PROPOSAL
Mujtaba S CampainItalyAmy Elsner RENEWAL
Stacey V MaletCanadaAmy Elsner UNQUALIFIED
Juan N FerenczIndiaOnyama Limba RENEWAL
Deepesh G WieserGermanyIoni Bowcher PROPOSAL
Jefferson Q FigeroaSpainStephen Shaw NEGOTIATION
Jefferson W NestleUnited KingdomStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya G RimUnited Kingdom2025-05-25Rousseaux, Michael Esq QUALIFIED21Ioni Bowcher
1001Murillo L WieserAustralia2025-05-16Chapman, Ross E Esq QUALIFIED7Anna Fali
1002Tony W PoquetteAustralia2025-05-17Dorl, James J Esq PROPOSAL46Amy Elsner
1003Adams T MaletIndia2025-06-11Chanay, Jeffrey A Esq RENEWAL32Elwin Sharvill
1004Misaki G RoysterBrazil2025-05-31Benton, John B Jr NEW67Asiya Javayant
1005Aditya D SlusarskiSpain2025-05-24Benton, John B Jr NEGOTIATION59Ioni Bowcher
1006Mayumi Y PaprockiFrance2025-06-11Morlong Associates NEGOTIATION39Stephen Shaw
1007Munro L SergiGermany2025-06-13Truhlar And Truhlar Attys PROPOSAL59Ioni Bowcher
1008Leja D InouyeRussia2025-06-03Printing Dimensions RENEWAL6Elwin Sharvill
1009Johnson J MaletAustralia2025-06-02Chanay, Jeffrey A Esq QUALIFIED98Xuxue Feng
1010Jennifer J ChuiAustralia2025-05-28Feiner Bros QUALIFIED63Asiya Javayant
1011Morrow G MarrierCanada2025-05-16King, Christopher A Esq UNQUALIFIED61Amy Elsner
1012Sinclair O GillianItaly2025-06-13Buckley Miller Wright PROPOSAL95Elwin Sharvill
1013Arvin W RimAustralia2025-05-17Commercial Press UNQUALIFIED37Anna Fali
1014Emily I ShinkoIndia2025-05-22Chapman, Ross E Esq RENEWAL44Bernardo Dominic
1015Greenwood L NestleGermany2025-06-01Chapman, Ross E Esq NEW50Ivan Magalhaes
1016Jefferson Y ButtBrazil2025-06-01Rangoni Of Florence QUALIFIED67Stephen Shaw
1017Aditya F ShinkoJapan2025-05-25Chanay, Jeffrey A Esq NEGOTIATION37Stephen Shaw
1018Kadeem L AlbaresGermany2025-06-12Morlong Associates NEGOTIATION61Elwin Sharvill
1019Kadeem H OldroydIndia2025-06-14Feiner Bros UNQUALIFIED96Ivan Magalhaes
1020Izzy G RulapaughGermany2025-06-07Rangoni Of Florence PROPOSAL87Stephen Shaw
1021Juan G BriddickJapan2025-05-16Rangoni Of Florence NEW19Stephen Shaw
1022Darci P PerinArgentina2025-06-02Dorl, James J Esq RENEWAL99Asiya Javayant
1023Munro A BologniaArgentina2025-05-23King, Christopher A Esq PROPOSAL54Amy Elsner
1024Tony H NickaIndia2025-06-10Chapman, Ross E Esq QUALIFIED0Amy Elsner
1025Aika J VocelkaItaly2025-05-26Chemel, James L Cpa QUALIFIED94Asiya Javayant
1026Wickens K IturbideSpain2025-05-19Rousseaux, Michael Esq UNQUALIFIED26Anna Fali
1027Misaki V SaylorsSpain2025-05-26Dorl, James J Esq UNQUALIFIED32Ivan Magalhaes
1028Izzy W PoquetteIndia2025-06-13Benton, John B Jr RENEWAL3Xuxue Feng
1029Octavia F NestleBrazil2025-05-17Chemel, James L Cpa RENEWAL93Elwin Sharvill
1030Adams K GlickRussia2025-06-09Morlong Associates RENEWAL15Ioni Bowcher
1031Mujtaba K FerenczIndia2025-05-27Chapman, Ross E Esq NEW45Amy Elsner
1032Morrow D GillianItaly2025-06-09Truhlar And Truhlar Attys RENEWAL0Elwin Sharvill
1033Aruna B FlosiItaly2025-06-05Dorl, James J Esq UNQUALIFIED43Ivan Magalhaes
1034Maisha J AlbaresBrazil2025-05-24Feltz Printing Service PROPOSAL23Ivan Magalhaes
1035Johnson A CaldareraArgentina2025-05-23Benton, John B Jr QUALIFIED82Elwin Sharvill
1036Claire W ShinkoSpain2025-05-16Feltz Printing Service NEGOTIATION89Asiya Javayant
1037Mayumi T AmigonCanada2025-05-21Feltz Printing Service PROPOSAL45Ioni Bowcher
1038Aika T NickaArgentina2025-05-27Printing Dimensions UNQUALIFIED21Xuxue Feng
1039Maria M FlosiUnited Kingdom2025-06-08Morlong Associates NEW95Elwin Sharvill
1040Ashley Y AlbaresFrance2025-06-12Chanay, Jeffrey A Esq NEW70Onyama Limba
1041Tony X WhobreyItaly2025-06-06King, Christopher A Esq PROPOSAL90Ivan Magalhaes
1042Jennifer N DoeIndia2025-05-19Buckley Miller Wright UNQUALIFIED40Anna Fali
1043Cody M CampainGermany2025-06-12Feltz Printing Service QUALIFIED84Xuxue Feng
1044Leja F BologniaFrance2025-06-03Rousseaux, Michael Esq UNQUALIFIED30Stephen Shaw
1045Aruna Q AlbaresItaly2025-05-16Chemel, James L Cpa UNQUALIFIED1Onyama Limba
1046Murillo G SlusarskiGermany2025-05-22Feltz Printing Service NEW80Bernardo Dominic
1047Johnson Z MorascaJapan2025-05-31Chanay, Jeffrey A Esq PROPOSAL39Onyama Limba
1048Jeanfrancois M RimCanada2025-05-26Rousseaux, Michael Esq QUALIFIED93Ivan Magalhaes
1049Leon O TollnerUnited Kingdom2025-06-14Feiner Bros QUALIFIED22Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria P DoeGermanyIvan Magalhaes UNQUALIFIED
Octavia I GillianGermanyIvan Magalhaes UNQUALIFIED
Greenwood S CampainJapanElwin Sharvill NEW
Greenwood H CaldareraUnited KingdomBernardo Dominic QUALIFIED
Jefferson U MaletRussiaAmy Elsner NEW
Rodrigues U RoysterAustraliaBernardo Dominic RENEWAL
Deepesh T SergiUnited KingdomOnyama Limba UNQUALIFIED
Ashley U StockhamJapanElwin Sharvill NEW
Adams I IturbideItalyXuxue Feng RENEWAL
Smith B MarrierCanadaElwin Sharvill NEGOTIATION
Jeanfrancois Q GlickAustraliaBernardo Dominic QUALIFIED
Jennifer G RutaCanadaXuxue Feng UNQUALIFIED
Cody J SchemmerBrazilOnyama Limba NEW
Emily Y BowleyGermanyAmy Elsner PROPOSAL
Julie I PaprockiSpainXuxue Feng PROPOSAL
Costa K FerenczSpainIvan Magalhaes PROPOSAL
Clifford W StockhamAustraliaAnna Fali PROPOSAL
Emily F ButtBrazilElwin Sharvill PROPOSAL
Aika H TollnerRussiaXuxue Feng RENEWAL
Juan U GillianIndiaIvan Magalhaes PROPOSAL
Silvio T FollerGermanyAmy Elsner NEGOTIATION
Aika V BriddickSpainAnna Fali UNQUALIFIED
Salvatore W FerenczArgentinaXuxue Feng QUALIFIED
Izzy K PoquetteItalyAnna Fali NEGOTIATION
Jennifer X ChuiAustraliaAnna Fali PROPOSAL
Morrow O DarakjyFranceAsiya Javayant UNQUALIFIED
Kadeem V PerinArgentinaAsiya Javayant QUALIFIED
Sinclair J MaletCanadaIvan Magalhaes PROPOSAL
Chavez J OstroskyBrazilAnna Fali NEGOTIATION
Jones V RutaIndiaStephen Shaw NEGOTIATION
Sinclair I OstroskyGermanyIvan Magalhaes NEW
Antonio L SergiUnited KingdomOnyama Limba QUALIFIED
Murillo Q StensethSpainStephen Shaw PROPOSAL
Kadeem A GauchoCanadaXuxue Feng NEW
Wickens P VenereUnited KingdomAsiya Javayant NEW
Salvatore H MacleadGermanyBernardo Dominic RENEWAL
Clifford O FigeroaUnited KingdomAnna Fali QUALIFIED
James P GlickIndiaIvan Magalhaes UNQUALIFIED
Deepesh G BologniaJapanAsiya Javayant UNQUALIFIED
Munro D ButtGermanyStephen Shaw QUALIFIED
Mujtaba C GillianRussiaAsiya Javayant QUALIFIED
Francesco B PaprockiItalyAsiya Javayant NEW
Ashley W StockhamArgentinaXuxue Feng QUALIFIED
Ivar A PerinUnited KingdomAmy Elsner QUALIFIED
Adams S TollnerItalyXuxue Feng UNQUALIFIED
Aditya M CaldareraJapanIvan Magalhaes NEW
Deepesh E GlickBrazilIvan Magalhaes QUALIFIED
Kadeem J MaletJapanElwin Sharvill QUALIFIED
Costa W AlbaresArgentinaXuxue Feng PROPOSAL
Morrow S CaudyAustraliaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Francesco F Marrier
Greenwood K Morasca
Mayumi F Glick
Aditya A Albares
Mayumi J Maclead
Johnson S Sergi
Ivar F Ferencz
Greenwood T Wieser
James C Malet
Octavia F Ferencz
Jones T Nestle
Claire I Morasca
Izzy G Malet
Jeanfrancois R Vocelka
Antonio A Gaucho
Juan D Malet
Julie M Darakjy
Kaitlin M Inouye
Silvio B Butt
Aruna C Nestle
Jennifer G Flosi
Stacey L Malet
Nicolas X Caldarera
Rodrigues C Iturbide
Ricardo D Morasca
Isabel S Whobrey
Alejandro K Rim
Antonio D Briddick
Cody H Sergi
Jefferson C Stenseth
Rodrigues C Flosi
Wickens H Gillian
Aruna N Royster
Claire S Slusarski
Juan O Malet
Silvio T Marrier
Jefferson H Bowley
Stacey L Bowley
Alejandro W Ferencz
Jennifer G Kolmetz
Misaki Y Caudy
Aruna O Dilliard
Emily N Rim
Kaitlin J Perin
Chavez B Perin
Chavez W Flosi
Ricardo M Stenseth
Clifford A Campain
Murillo Y Campain
Isabel I Slusarski
IdCountryDate
1000Argentina2025-05-16
1001United Kingdom2025-06-13
1002France2025-05-23
1003Russia2025-06-08
1004France2025-06-07
1005India2025-05-29
1006Canada2025-06-10
1007Spain2025-05-21
1008United Kingdom2025-06-11
1009Brazil2025-05-26
1010United Kingdom2025-05-27
1011Japan2025-05-28
1012Germany2025-06-11
1013Russia2025-06-10
1014India2025-06-13
1015Germany2025-05-28
1016Italy2025-05-28
1017Germany2025-05-31
1018India2025-06-01
1019Spain2025-05-30
1020Germany2025-05-20
1021Japan2025-06-13
1022Australia2025-05-21
1023Germany2025-05-29
1024Australia2025-05-16
1025Germany2025-05-16
1026Australia2025-06-10
1027India2025-06-09
1028India2025-05-28
1029India2025-05-30
1030Japan2025-06-09
1031Japan2025-06-14
1032United Kingdom2025-06-09
1033India2025-05-25
1034Canada2025-06-07
1035Argentina2025-06-02
1036Japan2025-06-11
1037Italy2025-06-11
1038Argentina2025-05-22
1039Russia2025-05-28
1040Germany2025-06-10
1041Italy2025-05-24
1042Argentina2025-06-08
1043Australia2025-05-20
1044Argentina2025-05-16
1045Brazil2025-06-07
1046India2025-05-21
1047Germany2025-06-11
1048Australia2025-06-11
1049Canada2025-05-29

On-Demand Data

NameIdCountryDate
Mujtaba Y Gillian1000Italy2025-06-09
Greenwood F Bowley1001India2025-06-14
Claire R Schemmer1002France2025-06-14
Mayumi J Nestle1003United Kingdom2025-06-09
Claire C Flosi1004Canada2025-05-26
Maria E Venere1005India2025-05-19
Juan P Slusarski1006Spain2025-06-05
Kadeem P Tollner1007Russia2025-05-22
Stacey G Stockham1008Argentina2025-06-02
Silvio K Stenseth1009Canada2025-06-13
Emily U Darakjy1010Germany2025-06-07
Clifford H Glick1011Japan2025-05-20
Leja G Chui1012Spain2025-05-27
Jefferson N Perin1013Italy2025-05-27
James I Whobrey1014Spain2025-06-14
Julie G Slusarski1015United Kingdom2025-05-18
Salvatore O Shinko1016Argentina2025-05-24
Ashley K Bolognia1017Canada2025-06-01
Chavez V Marrier1018Italy2025-05-23
Tony Z Poquette1019France2025-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo D InouyeGermanyIoni Bowcher PROPOSAL
Johnson Q MorascaJapanStephen Shaw UNQUALIFIED
Maria J PerinJapanAsiya Javayant QUALIFIED
Jennifer W ChuiGermanyAnna Fali RENEWAL
Darci H AlbaresItalyAsiya Javayant NEGOTIATION
Murillo O RoysterJapanAmy Elsner RENEWAL
David H FigeroaArgentinaStephen Shaw QUALIFIED
Mayumi T GillianItalyAnna Fali PROPOSAL
Jeanfrancois D OstroskyAustraliaOnyama Limba PROPOSAL
Rodrigues J FlosiJapanBernardo Dominic NEGOTIATION
Jones B WaycottArgentinaAnna Fali PROPOSAL
Jeanfrancois J PaprockiJapanAnna Fali RENEWAL
Sinclair N TollnerSpainAnna Fali RENEWAL
Johnson W PerinUnited KingdomAmy Elsner NEGOTIATION
Aditya P NickaItalyIvan Magalhaes RENEWAL
Kadeem P MacleadRussiaStephen Shaw NEW
Emily J DoeIndiaAsiya Javayant UNQUALIFIED
Jefferson B GillianRussiaXuxue Feng UNQUALIFIED
Maria R DilliardItalyAsiya Javayant NEW
Deepesh Y PaprockiRussiaAnna Fali UNQUALIFIED
Julie O GlickCanadaAsiya Javayant UNQUALIFIED
Maisha A SchemmerAustraliaAnna Fali RENEWAL
Morrow Z ButtRussiaAmy Elsner PROPOSAL
Jeanfrancois I VenereArgentinaAsiya Javayant NEW
Jennifer G WaycottAustraliaElwin Sharvill RENEWAL
Leja O WaycottArgentinaOnyama Limba UNQUALIFIED
Jennifer B KuskoJapanElwin Sharvill PROPOSAL
Ashley L CaudyRussiaElwin Sharvill QUALIFIED
Claire Q SergiBrazilIvan Magalhaes PROPOSAL
Aruna L MaletJapanBernardo Dominic RENEWAL
Antonio Y NestleFranceAmy Elsner NEW
Jones U GillianJapanStephen Shaw RENEWAL
Juan K WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Leon Y RulapaughBrazilAmy Elsner QUALIFIED
Rodrigues O DarakjyArgentinaElwin Sharvill QUALIFIED
James H AlbaresSpainIoni Bowcher PROPOSAL
Murillo L MaletSpainOnyama Limba NEW
Clifford G ShinkoIndiaOnyama Limba RENEWAL
Johnson A WieserJapanBernardo Dominic RENEWAL
Julie P PaprockiSpainAnna Fali PROPOSAL

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