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
David R MorascaBrazilElwin Sharvill UNQUALIFIED
Costa B OstroskyGermanyBernardo Dominic PROPOSAL
James U ShinkoIndiaIoni Bowcher UNQUALIFIED
Tony R CampainAustraliaIoni Bowcher NEW
Julie T ShinkoIndiaAnna Fali PROPOSAL
Cody G BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Cody X ButtAustraliaStephen Shaw UNQUALIFIED
Deepesh B MarrierRussiaIvan Magalhaes NEGOTIATION
Mujtaba K GauchoGermanyAnna Fali NEW
Isabel T RoysterJapanAnna Fali PROPOSAL
Johnson W KolmetzCanadaIvan Magalhaes NEGOTIATION
Emily I GauchoJapanIvan Magalhaes QUALIFIED
Jennifer X CampainJapanOnyama Limba NEGOTIATION
Murillo L DoeSpainIvan Magalhaes NEW
Emily B KolmetzAustraliaAsiya Javayant NEW
Ashley J RutaAustraliaAsiya Javayant UNQUALIFIED
Kadeem X AmigonArgentinaBernardo Dominic PROPOSAL
Ashley H BologniaIndiaAsiya Javayant UNQUALIFIED
Greenwood M KolmetzCanadaIvan Magalhaes NEW
Silvio K DoeUnited KingdomIvan Magalhaes PROPOSAL
Antonio L MaletItalyAnna Fali NEGOTIATION
Mujtaba H CaldareraArgentinaElwin Sharvill NEGOTIATION
Greenwood T DoeSpainIoni Bowcher NEW
Jennifer M PerinItalyIoni Bowcher NEGOTIATION
Munro K GillianSpainIvan Magalhaes NEGOTIATION
Maisha W TollnerIndiaIoni Bowcher NEGOTIATION
Greenwood O ShinkoItalyOnyama Limba QUALIFIED
Smith A DoeFranceOnyama Limba PROPOSAL
Adams M VocelkaCanadaStephen Shaw UNQUALIFIED
Jennifer A NestleRussiaBernardo Dominic PROPOSAL
Sinclair A RulapaughAustraliaAmy Elsner NEGOTIATION
Ashley V AlbaresUnited KingdomStephen Shaw NEGOTIATION
Aditya P KuskoIndiaBernardo Dominic QUALIFIED
Munro Y AlbaresAustraliaBernardo Dominic NEGOTIATION
Ivar B RoysterAustraliaElwin Sharvill UNQUALIFIED
Antonio A RulapaughItalyElwin Sharvill RENEWAL
Mujtaba D OstroskyAustraliaOnyama Limba RENEWAL
Aruna P MorascaRussiaOnyama Limba QUALIFIED
Aruna Z KolmetzArgentinaElwin Sharvill PROPOSAL
Nicolas Z VocelkaFranceIoni Bowcher UNQUALIFIED
Ivar W SaylorsBrazilAmy Elsner NEGOTIATION
Adams L BologniaFranceAsiya Javayant NEGOTIATION
Wickens Z IturbideRussiaBernardo Dominic RENEWAL
Silvio K PaprockiIndiaElwin Sharvill NEW
Darci U PaprockiBrazilAmy Elsner RENEWAL
Murillo P RutaItalyIoni Bowcher UNQUALIFIED
Smith P PaprockiJapanIoni Bowcher NEW
Emily R CampainArgentinaElwin Sharvill PROPOSAL
Deepesh H ShinkoItalyAnna Fali RENEWAL
Mayumi L GillianUnited KingdomStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez K FigeroaCanadaOnyama Limba RENEWAL
Antonio V BriddickJapanIvan Magalhaes NEW
Claire P CampainArgentinaIvan Magalhaes RENEWAL
Misaki B DoeGermanyElwin Sharvill PROPOSAL
Jeanfrancois Y AlbaresGermanyStephen Shaw NEW
Emily W AmigonGermanyElwin Sharvill UNQUALIFIED
Isabel R GauchoArgentinaAnna Fali PROPOSAL
Wickens B PerinIndiaIvan Magalhaes UNQUALIFIED
Aruna I ButtIndiaBernardo Dominic NEGOTIATION
Tony Z VenereCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan Z DilliardCanada2025-04-19Commercial Press UNQUALIFIED18Elwin Sharvill
1001Francesco M TollnerAustralia2025-04-24Printing Dimensions NEW36Bernardo Dominic
1002Greenwood E GarufiUnited Kingdom2025-04-29Printing Dimensions NEGOTIATION3Amy Elsner
1003Murillo W BriddickBrazil2025-04-14Commercial Press NEW78Ioni Bowcher
1004Antonio Y PaprockiJapan2025-05-05Printing Dimensions UNQUALIFIED40Ivan Magalhaes
1005Darci O CaudySpain2025-04-17Feiner Bros QUALIFIED68Amy Elsner
1006Aruna H WaycottCanada2025-04-27Chapman, Ross E Esq NEW37Asiya Javayant
1007Nicolas Q DilliardArgentina2025-05-07Benton, John B Jr RENEWAL0Onyama Limba
1008Jennifer N TollnerUnited Kingdom2025-05-04Truhlar And Truhlar Attys NEW34Xuxue Feng
1009Kaitlin Y FlosiBrazil2025-05-04Rousseaux, Michael Esq PROPOSAL0Ioni Bowcher
1010Octavia L DoeRussia2025-04-11King, Christopher A Esq UNQUALIFIED62Anna Fali
1011Emily Q KolmetzRussia2025-05-05Rousseaux, Michael Esq NEGOTIATION66Asiya Javayant
1012Morrow N SchemmerItaly2025-04-16Benton, John B Jr RENEWAL6Elwin Sharvill
1013Greenwood O OldroydJapan2025-04-30Buckley Miller Wright PROPOSAL36Elwin Sharvill
1014Maisha K AlbaresItaly2025-04-28Chapman, Ross E Esq QUALIFIED90Bernardo Dominic
1015Juan S GillianUnited Kingdom2025-04-28Feltz Printing Service NEW21Bernardo Dominic
1016Maisha B SlusarskiUnited Kingdom2025-04-28Commercial Press PROPOSAL14Ioni Bowcher
1017Jones E GarufiGermany2025-05-05Printing Dimensions RENEWAL45Stephen Shaw
1018Ashley F GauchoBrazil2025-04-21Morlong Associates UNQUALIFIED80Bernardo Dominic
1019Leja E BriddickItaly2025-05-07Rousseaux, Michael Esq RENEWAL92Ioni Bowcher
1020Murillo N SergiAustralia2025-05-01Commercial Press UNQUALIFIED60Stephen Shaw
1021Jones B WieserBrazil2025-05-02Commercial Press QUALIFIED35Onyama Limba
1022Jefferson V WaycottCanada2025-04-18Commercial Press NEGOTIATION18Elwin Sharvill
1023Arvin N VocelkaFrance2025-04-28Morlong Associates UNQUALIFIED17Bernardo Dominic
1024Maria B PaprockiCanada2025-04-27Chemel, James L Cpa NEGOTIATION90Ivan Magalhaes
1025Munro T DoeFrance2025-04-29Morlong Associates NEGOTIATION60Xuxue Feng
1026Silvio D AlbaresUnited Kingdom2025-05-06Chapman, Ross E Esq NEW69Onyama Limba
1027Ashley I MaletJapan2025-04-11Truhlar And Truhlar Attys NEW65Bernardo Dominic
1028Aditya R RutaUnited Kingdom2025-04-14Commercial Press NEGOTIATION31Anna Fali
1029Deepesh R RutaSpain2025-05-08Buckley Miller Wright NEGOTIATION8Stephen Shaw
1030Morrow G BowleyAustralia2025-04-17Rousseaux, Michael Esq NEW6Anna Fali
1031Rodrigues J FollerIndia2025-05-08Dorl, James J Esq NEGOTIATION92Ivan Magalhaes
1032Ricardo H AmigonAustralia2025-05-01Rousseaux, Michael Esq QUALIFIED43Amy Elsner
1033Octavia U GarufiArgentina2025-04-16Chapman, Ross E Esq UNQUALIFIED6Stephen Shaw
1034Misaki R SaylorsJapan2025-05-06Chanay, Jeffrey A Esq UNQUALIFIED1Xuxue Feng
1035Silvio O RoysterFrance2025-04-29Morlong Associates NEGOTIATION27Xuxue Feng
1036Mujtaba H GlickSpain2025-04-18Feiner Bros QUALIFIED29Ivan Magalhaes
1037Salvatore Q RutaArgentina2025-05-07Printing Dimensions RENEWAL41Anna Fali
1038Munro U BowleyCanada2025-04-13Feiner Bros QUALIFIED16Xuxue Feng
1039Wickens R KuskoCanada2025-04-19Buckley Miller Wright PROPOSAL45Amy Elsner
1040Munro E CaudyUnited Kingdom2025-04-16Commercial Press UNQUALIFIED28Stephen Shaw
1041Johnson M GarufiBrazil2025-05-08Chanay, Jeffrey A Esq RENEWAL69Asiya Javayant
1042Jefferson M RimRussia2025-04-27Dorl, James J Esq UNQUALIFIED7Asiya Javayant
1043David V StockhamJapan2025-04-14Rangoni Of Florence NEW23Stephen Shaw
1044Johnson P NickaFrance2025-05-04Chanay, Jeffrey A Esq NEW64Stephen Shaw
1045Claire O OldroydUnited Kingdom2025-04-25Morlong Associates NEW25Amy Elsner
1046Deepesh U GillianBrazil2025-05-02Commercial Press UNQUALIFIED71Amy Elsner
1047Isabel R NickaCanada2025-04-25Printing Dimensions RENEWAL36Stephen Shaw
1048Maria O FerenczArgentina2025-04-11Benton, John B Jr NEW43Amy Elsner
1049Chavez X StensethCanada2025-04-13Buckley Miller Wright PROPOSAL46Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire D MorascaItalyAnna Fali RENEWAL
Claire O MorascaIndiaIoni Bowcher QUALIFIED
Kadeem F WhobreyAustraliaIoni Bowcher RENEWAL
Darci Y SchemmerFranceXuxue Feng UNQUALIFIED
Tony K DoeSpainIvan Magalhaes PROPOSAL
Sinclair L IturbideArgentinaAmy Elsner PROPOSAL
James Y OstroskyGermanyAnna Fali PROPOSAL
Wickens E DarakjyArgentinaStephen Shaw RENEWAL
Antonio A MarrierItalyStephen Shaw RENEWAL
Claire N VenereGermanyElwin Sharvill NEW
Rodrigues F FlosiUnited KingdomStephen Shaw RENEWAL
Ivar Z FerenczAustraliaOnyama Limba RENEWAL
Jones P SchemmerIndiaAmy Elsner QUALIFIED
Mujtaba I KuskoItalyAnna Fali NEW
Jeanfrancois S OldroydJapanIvan Magalhaes NEGOTIATION
Alejandro J SergiRussiaAsiya Javayant PROPOSAL
Ivar Q MacleadAustraliaIvan Magalhaes NEW
Leja Y BriddickItalyIvan Magalhaes RENEWAL
Octavia C DarakjyItalyIvan Magalhaes PROPOSAL
Izzy H NestleGermanyAnna Fali UNQUALIFIED
Antonio H DoeAustraliaBernardo Dominic RENEWAL
Costa D RutaItalyIoni Bowcher UNQUALIFIED
Jeanfrancois Z SaylorsUnited KingdomAsiya Javayant RENEWAL
Cody M KolmetzJapanStephen Shaw NEW
Morrow R BowleyBrazilAmy Elsner NEW
Silvio G RulapaughCanadaIoni Bowcher UNQUALIFIED
Maisha P GillianArgentinaIvan Magalhaes UNQUALIFIED
Jennifer Z SaylorsIndiaOnyama Limba QUALIFIED
Leja E SchemmerArgentinaAnna Fali PROPOSAL
Nicolas Y RulapaughUnited KingdomXuxue Feng RENEWAL
Tony B InouyeBrazilAnna Fali NEW
Antonio E SchemmerCanadaIvan Magalhaes QUALIFIED
Munro P GarufiRussiaAsiya Javayant NEGOTIATION
Rodrigues V CaldareraItalyBernardo Dominic PROPOSAL
Kaitlin P KolmetzSpainAmy Elsner NEW
James T VocelkaBrazilXuxue Feng NEGOTIATION
Adams G GillianFranceAsiya Javayant RENEWAL
Johnson D MarrierAustraliaAmy Elsner UNQUALIFIED
Maisha N PerinGermanyBernardo Dominic NEW
Maria P KuskoBrazilOnyama Limba QUALIFIED
Leja Q MarrierIndiaIoni Bowcher QUALIFIED
David N NestleIndiaIoni Bowcher UNQUALIFIED
Johnson I CaldareraBrazilOnyama Limba NEGOTIATION
Isabel I FollerBrazilBernardo Dominic RENEWAL
Munro T SaylorsIndiaXuxue Feng PROPOSAL
Maisha H CaudyFranceAmy Elsner UNQUALIFIED
Mayumi P GauchoCanadaOnyama Limba QUALIFIED
Murillo D DoeGermanyElwin Sharvill PROPOSAL
Isabel S DilliardBrazilAmy Elsner QUALIFIED
Ricardo N VenereArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Jennifer J Dilliard
Emily E Stenseth
Adams T Malet
Faith Q Butt
Julie O Shinko
Murillo W Waycott
Emily Q Rulapaugh
Darci P Caudy
Julie S Stenseth
Claire K Amigon
Aruna W Campain
Darci D Tollner
Smith G Butt
Antonio E Poquette
Francesco P Whobrey
Cody C Flosi
Wickens V Schemmer
Arvin R Rim
Aruna H Malet
Rodrigues Q Oldroyd
Antonio Q Briddick
Emily Z Stockham
Sinclair C Caudy
Arvin J Royster
Murillo I Campain
Clifford I Oldroyd
Leja P Poquette
Adams X Figeroa
Rodrigues K Ruta
Kadeem Z Kolmetz
Alejandro V Glick
Jones V Waycott
Costa N Kolmetz
Tony M Kolmetz
Misaki E Vocelka
Arvin L Marrier
Juan P Figeroa
Ivar O Slusarski
Smith C Figeroa
Izzy A Stockham
Wickens O Amigon
Darci E Paprocki
Chavez L Royster
Aika G Ostrosky
Stacey P Garufi
Kaitlin U Perin
Maria V Bowley
Arvin G Iturbide
Isabel M Sergi
Maisha E Butt
IdCountryDate
1000Germany2025-04-29
1001Japan2025-04-15
1002Japan2025-04-28
1003Australia2025-04-10
1004Russia2025-05-01
1005Italy2025-04-20
1006Germany2025-04-27
1007India2025-05-08
1008France2025-04-22
1009Argentina2025-04-24
1010Spain2025-05-03
1011India2025-04-24
1012Spain2025-04-27
1013Brazil2025-04-25
1014Canada2025-04-25
1015India2025-04-22
1016France2025-04-23
1017Australia2025-04-22
1018Germany2025-05-02
1019Canada2025-04-25
1020India2025-04-22
1021France2025-04-25
1022India2025-05-02
1023Argentina2025-05-07
1024Canada2025-04-22
1025Argentina2025-04-16
1026India2025-05-06
1027Germany2025-04-20
1028Japan2025-05-08
1029Canada2025-04-19
1030India2025-05-03
1031France2025-04-20
1032Italy2025-04-11
1033Japan2025-04-18
1034United Kingdom2025-04-29
1035Italy2025-04-13
1036India2025-05-08
1037Germany2025-04-11
1038Brazil2025-05-04
1039Russia2025-05-03
1040Germany2025-05-03
1041Russia2025-04-09
1042Russia2025-04-22
1043Brazil2025-04-15
1044Italy2025-04-20
1045Japan2025-04-15
1046United Kingdom2025-05-01
1047Australia2025-04-22
1048Brazil2025-04-19
1049United Kingdom2025-04-10

On-Demand Data

NameIdCountryDate
Aika I Maclead1000Italy2025-04-26
Aika T Caudy1001Australia2025-04-30
Johnson S Gillian1002Canada2025-04-12
Julie J Saylors1003Brazil2025-04-13
James D Oldroyd1004Russia2025-04-26
Izzy Z Amigon1005Australia2025-04-17
Murillo U Malet1006Argentina2025-04-23
Smith T Oldroyd1007United Kingdom2025-04-19
Maisha C Waycott1008Argentina2025-04-14
Costa Y Saylors1009Argentina2025-04-19
Chavez V Wieser1010Canada2025-04-29
Antonio I Malet1011India2025-04-28
Greenwood X Paprocki1012Canada2025-04-19
Darci U Gillian1013Argentina2025-04-13
Faith Q Gillian1014Russia2025-04-12
Jefferson P Caldarera1015India2025-04-14
Leja M Venere1016Japan2025-04-18
Faith O Iturbide1017Australia2025-05-07
Jennifer V Rim1018Australia2025-04-28
Chavez X Flosi1019India2025-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa N BowleyUnited KingdomStephen Shaw QUALIFIED
Alejandro V DilliardFranceOnyama Limba RENEWAL
Ricardo C MorascaJapanIvan Magalhaes NEGOTIATION
Greenwood E DilliardJapanAmy Elsner QUALIFIED
Darci E ChuiAustraliaElwin Sharvill QUALIFIED
Kadeem X DarakjyUnited KingdomStephen Shaw NEGOTIATION
Adams V GarufiUnited KingdomAsiya Javayant NEW
Jefferson E VenereArgentinaAmy Elsner QUALIFIED
Juan I ShinkoCanadaBernardo Dominic NEGOTIATION
Nicolas O PaprockiUnited KingdomBernardo Dominic PROPOSAL
Leja A BologniaFranceAmy Elsner UNQUALIFIED
Leja R BologniaIndiaXuxue Feng NEGOTIATION
Greenwood D MorascaFranceAsiya Javayant UNQUALIFIED
Salvatore N RimFranceBernardo Dominic QUALIFIED
Mujtaba T RoysterAustraliaElwin Sharvill UNQUALIFIED
Mujtaba L RutaGermanyIoni Bowcher QUALIFIED
Leja P AmigonItalyElwin Sharvill RENEWAL
Tony J CampainSpainStephen Shaw NEGOTIATION
Jones M GillianBrazilOnyama Limba UNQUALIFIED
Rodrigues Q PerinItalyIvan Magalhaes UNQUALIFIED
Deepesh L ButtUnited KingdomIoni Bowcher NEGOTIATION
Francesco R WhobreyUnited KingdomAsiya Javayant QUALIFIED
Nicolas P ButtAustraliaBernardo Dominic NEW
Chavez F DarakjyFranceBernardo Dominic QUALIFIED
Deepesh Q MaletJapanIoni Bowcher QUALIFIED
Julie G ButtItalyOnyama Limba QUALIFIED
Izzy M TollnerArgentinaIoni Bowcher NEGOTIATION
Emily R AlbaresUnited KingdomBernardo Dominic QUALIFIED
Emily S RimCanadaAmy Elsner RENEWAL
Aika Z AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Costa W PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Faith X RimIndiaAnna Fali PROPOSAL
Francesco V RoysterAustraliaXuxue Feng RENEWAL
Jennifer B FerenczItalyAsiya Javayant UNQUALIFIED
Darci W MorascaGermanyIvan Magalhaes RENEWAL
Ivar P TollnerIndiaOnyama Limba PROPOSAL
Adams U DoeIndiaBernardo Dominic UNQUALIFIED
Clifford U NickaGermanyStephen Shaw RENEWAL
Octavia E SchemmerAustraliaAmy Elsner UNQUALIFIED
Maisha N SchemmerFranceXuxue Feng 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>