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
Maisha D FollerUnited KingdomAnna Fali RENEWAL
Munro A PerinArgentinaAsiya Javayant NEGOTIATION
Clifford O GlickBrazilIvan Magalhaes QUALIFIED
Sinclair B RoysterIndiaStephen Shaw QUALIFIED
Adams P FerenczCanadaAnna Fali RENEWAL
Kaitlin F IturbideCanadaOnyama Limba NEGOTIATION
Murillo Y AmigonUnited KingdomAsiya Javayant PROPOSAL
Claire D KuskoAustraliaIvan Magalhaes RENEWAL
Francesco L DarakjyIndiaOnyama Limba PROPOSAL
Aditya Y InouyeArgentinaAnna Fali NEW
Misaki E DarakjyFranceBernardo Dominic NEGOTIATION
Murillo H GarufiRussiaXuxue Feng PROPOSAL
Darci V RulapaughAustraliaElwin Sharvill NEW
Wickens S KolmetzUnited KingdomAnna Fali NEW
Rodrigues S MorascaSpainAnna Fali PROPOSAL
Alejandro P MacleadItalyXuxue Feng PROPOSAL
Clifford V MacleadArgentinaAsiya Javayant QUALIFIED
James W BologniaIndiaIvan Magalhaes PROPOSAL
Ashley F KuskoItalyAsiya Javayant QUALIFIED
Aika P PaprockiJapanIvan Magalhaes NEW
Johnson V VenereIndiaOnyama Limba RENEWAL
Deepesh T GauchoUnited KingdomAnna Fali UNQUALIFIED
Isabel C CampainGermanyOnyama Limba RENEWAL
Mayumi N SlusarskiBrazilStephen Shaw RENEWAL
Jennifer I RulapaughUnited KingdomAsiya Javayant NEW
Rodrigues C RoysterAustraliaStephen Shaw QUALIFIED
Francesco A BriddickCanadaBernardo Dominic NEGOTIATION
Alejandro N RoysterCanadaBernardo Dominic PROPOSAL
Mayumi N SergiCanadaBernardo Dominic UNQUALIFIED
Izzy R BriddickFranceAsiya Javayant UNQUALIFIED
Isabel A FollerGermanyAnna Fali NEGOTIATION
Misaki U ShinkoBrazilOnyama Limba QUALIFIED
Mayumi D PoquetteArgentinaIoni Bowcher NEGOTIATION
Smith Z RimCanadaOnyama Limba QUALIFIED
Chavez E KuskoIndiaIvan Magalhaes RENEWAL
Adams R GauchoArgentinaOnyama Limba UNQUALIFIED
Clifford R OldroydIndiaAnna Fali NEW
Alejandro S CaudyItalyElwin Sharvill RENEWAL
Cody T MorascaBrazilAsiya Javayant UNQUALIFIED
Salvatore Y WhobreyAustraliaXuxue Feng QUALIFIED
Claire X GarufiSpainAsiya Javayant UNQUALIFIED
Jeanfrancois V BowleyUnited KingdomAmy Elsner QUALIFIED
Adams R FollerBrazilIoni Bowcher PROPOSAL
David D RoysterCanadaElwin Sharvill RENEWAL
Antonio I FollerArgentinaAsiya Javayant PROPOSAL
Jefferson R DoeRussiaStephen Shaw PROPOSAL
Greenwood M AmigonSpainElwin Sharvill NEW
Francesco P FigeroaBrazilStephen Shaw NEW
Cody X PaprockiCanadaOnyama Limba NEW
Silvio S ChuiBrazilStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Wickens Z CampainUnited KingdomAsiya Javayant PROPOSAL
Wickens G KolmetzSpainAmy Elsner QUALIFIED
Silvio J IturbideRussiaIoni Bowcher QUALIFIED
Clifford Z NestleItalyElwin Sharvill RENEWAL
Jefferson C GauchoItalyBernardo Dominic NEW
Adams B SchemmerCanadaElwin Sharvill QUALIFIED
Jefferson Y PerinRussiaIoni Bowcher RENEWAL
Jennifer S MaletSpainIvan Magalhaes NEGOTIATION
Adams M CampainArgentinaElwin Sharvill UNQUALIFIED
Wickens J WaycottItalyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh M RoysterCanada2025-04-07Feltz Printing Service NEW83Ioni Bowcher
1001Izzy W MaletItaly2025-04-16Chapman, Ross E Esq UNQUALIFIED6Onyama Limba
1002Johnson S RutaFrance2025-04-03Rangoni Of Florence UNQUALIFIED8Ioni Bowcher
1003Leja G AmigonFrance2025-04-12Commercial Press QUALIFIED93Ivan Magalhaes
1004Sinclair T GauchoItaly2025-04-05Commercial Press NEW9Ivan Magalhaes
1005Chavez G FollerIndia2025-04-05Commercial Press NEGOTIATION97Elwin Sharvill
1006Clifford S DoeFrance2025-04-30Rousseaux, Michael Esq RENEWAL29Ivan Magalhaes
1007Misaki Z InouyeUnited Kingdom2025-04-28Rangoni Of Florence UNQUALIFIED60Amy Elsner
1008Maisha R SaylorsGermany2025-04-21Rousseaux, Michael Esq PROPOSAL53Xuxue Feng
1009Salvatore A FerenczItaly2025-04-03Chanay, Jeffrey A Esq NEGOTIATION31Onyama Limba
1010Mujtaba R GauchoGermany2025-04-15Chemel, James L Cpa NEGOTIATION75Amy Elsner
1011Deepesh P PerinBrazil2025-04-23King, Christopher A Esq QUALIFIED95Ivan Magalhaes
1012Jefferson J MaletIndia2025-04-14Chanay, Jeffrey A Esq NEGOTIATION74Asiya Javayant
1013Smith O TollnerGermany2025-04-30Dorl, James J Esq NEW20Onyama Limba
1014Rodrigues T MacleadItaly2025-04-07Rousseaux, Michael Esq NEW66Anna Fali
1015Silvio G MacleadCanada2025-04-16Feiner Bros NEW51Ivan Magalhaes
1016Leon X DilliardIndia2025-04-28Rangoni Of Florence UNQUALIFIED34Amy Elsner
1017Salvatore V OstroskyUnited Kingdom2025-04-15King, Christopher A Esq RENEWAL52Ioni Bowcher
1018Stacey S DilliardArgentina2025-04-25Chemel, James L Cpa NEGOTIATION70Bernardo Dominic
1019Murillo Q OldroydItaly2025-04-14Chanay, Jeffrey A Esq NEW22Onyama Limba
1020Emily Q MacleadBrazil2025-04-20Feiner Bros PROPOSAL55Asiya Javayant
1021Misaki K MorascaUnited Kingdom2025-04-05Rangoni Of Florence NEW31Xuxue Feng
1022Ricardo K MorascaCanada2025-04-20Buckley Miller Wright NEGOTIATION72Xuxue Feng
1023Jefferson I SlusarskiArgentina2025-04-26Buckley Miller Wright RENEWAL84Bernardo Dominic
1024Cody Z BologniaJapan2025-04-18Commercial Press NEGOTIATION82Bernardo Dominic
1025Francesco G NestleFrance2025-04-12Dorl, James J Esq UNQUALIFIED8Ioni Bowcher
1026Cody I FlosiJapan2025-04-27Morlong Associates RENEWAL15Ioni Bowcher
1027Ashley H GillianItaly2025-04-28Truhlar And Truhlar Attys PROPOSAL3Ioni Bowcher
1028Morrow D FerenczFrance2025-04-26Chanay, Jeffrey A Esq QUALIFIED34Ivan Magalhaes
1029David B BologniaUnited Kingdom2025-04-04Dorl, James J Esq NEGOTIATION41Xuxue Feng
1030Cody O RoysterItaly2025-04-28Dorl, James J Esq QUALIFIED66Amy Elsner
1031Silvio T SchemmerUnited Kingdom2025-04-11Dorl, James J Esq RENEWAL36Bernardo Dominic
1032Rodrigues K OstroskyIndia2025-04-09Chapman, Ross E Esq NEGOTIATION64Bernardo Dominic
1033Nicolas C KolmetzGermany2025-04-01Benton, John B Jr PROPOSAL79Bernardo Dominic
1034Sinclair E ShinkoItaly2025-04-26Feiner Bros RENEWAL29Anna Fali
1035Emily T SchemmerItaly2025-04-21Feltz Printing Service NEGOTIATION53Stephen Shaw
1036Mujtaba L NickaFrance2025-04-04King, Christopher A Esq NEW31Ioni Bowcher
1037Morrow O OstroskyJapan2025-04-07King, Christopher A Esq PROPOSAL38Ivan Magalhaes
1038Izzy J WieserRussia2025-04-20King, Christopher A Esq QUALIFIED70Onyama Limba
1039Octavia L RoysterIndia2025-04-10Dorl, James J Esq PROPOSAL16Anna Fali
1040Ashley V NestleAustralia2025-04-10Morlong Associates UNQUALIFIED36Amy Elsner
1041Stacey Z MaletRussia2025-04-30Buckley Miller Wright NEGOTIATION3Amy Elsner
1042Maisha I BologniaIndia2025-04-14Feiner Bros NEGOTIATION4Bernardo Dominic
1043Claire H AmigonCanada2025-04-29Rousseaux, Michael Esq NEW94Stephen Shaw
1044Jeanfrancois S InouyeRussia2025-04-09Chemel, James L Cpa NEGOTIATION42Asiya Javayant
1045Maria Z SaylorsAustralia2025-04-03Buckley Miller Wright QUALIFIED2Amy Elsner
1046Mayumi J WaycottItaly2025-04-30King, Christopher A Esq NEGOTIATION61Anna Fali
1047Maria V BologniaAustralia2025-04-06Benton, John B Jr NEW99Stephen Shaw
1048Claire D InouyeCanada2025-04-25Rousseaux, Michael Esq PROPOSAL9Elwin Sharvill
1049Jennifer D RoysterRussia2025-04-25Feltz Printing Service NEW97Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
David T TollnerFranceElwin Sharvill QUALIFIED
Greenwood C StockhamAustraliaOnyama Limba PROPOSAL
Isabel L VenereUnited KingdomAnna Fali RENEWAL
Mujtaba E InouyeRussiaAsiya Javayant NEW
Ricardo W RoysterAustraliaAsiya Javayant NEW
Munro R NestleCanadaIoni Bowcher QUALIFIED
Rodrigues H GauchoAustraliaElwin Sharvill PROPOSAL
Jefferson V FlosiRussiaBernardo Dominic RENEWAL
Ricardo T RoysterArgentinaBernardo Dominic PROPOSAL
Octavia O InouyeCanadaAsiya Javayant UNQUALIFIED
Leja H InouyeAustraliaStephen Shaw NEW
Johnson F WieserAustraliaIoni Bowcher RENEWAL
Darci V MorascaSpainBernardo Dominic UNQUALIFIED
Munro X GauchoAustraliaStephen Shaw NEGOTIATION
Maisha L MaletUnited KingdomIoni Bowcher NEW
Juan U GarufiCanadaIvan Magalhaes NEGOTIATION
Leon T PoquetteBrazilAmy Elsner NEW
Jefferson T StockhamCanadaOnyama Limba NEGOTIATION
Salvatore B CaudyRussiaAsiya Javayant PROPOSAL
Maisha C FollerBrazilStephen Shaw NEW
Leon O StensethArgentinaOnyama Limba UNQUALIFIED
Kaitlin U ChuiCanadaElwin Sharvill NEGOTIATION
Darci X BowleyCanadaOnyama Limba QUALIFIED
Sinclair Z VocelkaUnited KingdomAsiya Javayant RENEWAL
Nicolas L WaycottJapanIvan Magalhaes NEW
Adams O FlosiRussiaAnna Fali NEW
Kaitlin B VocelkaBrazilXuxue Feng RENEWAL
Stacey U WhobreyRussiaOnyama Limba NEGOTIATION
Mayumi J ChuiRussiaStephen Shaw PROPOSAL
Mujtaba H TollnerJapanElwin Sharvill QUALIFIED
Francesco I FigeroaSpainAsiya Javayant RENEWAL
Salvatore X DoeGermanyOnyama Limba UNQUALIFIED
Salvatore U RoysterIndiaAmy Elsner PROPOSAL
Jefferson R AlbaresSpainAsiya Javayant PROPOSAL
Alejandro W SaylorsArgentinaAmy Elsner PROPOSAL
Sinclair N CampainGermanyIoni Bowcher QUALIFIED
Stacey I RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Munro O ShinkoAustraliaXuxue Feng RENEWAL
Mayumi H SlusarskiItalyIvan Magalhaes NEW
Wickens R CaldareraRussiaAnna Fali QUALIFIED
Jefferson T AmigonJapanElwin Sharvill QUALIFIED
Kaitlin P MacleadFranceElwin Sharvill PROPOSAL
Arvin I VocelkaGermanyIoni Bowcher NEW
Nicolas K FlosiBrazilAsiya Javayant RENEWAL
Murillo U CaldareraBrazilBernardo Dominic UNQUALIFIED
Arvin I PoquetteBrazilIvan Magalhaes RENEWAL
Ricardo L AlbaresSpainAsiya Javayant RENEWAL
Jones V NestleGermanyStephen Shaw NEGOTIATION
Aruna U SlusarskiSpainAnna Fali NEW
Murillo P FigeroaCanadaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Arvin Q Poquette
Costa Y Poquette
Leon P Ruta
Murillo W Slusarski
Ashley B Ruta
Ivar X Kusko
Maisha E Iturbide
Munro K Royster
Smith C Maclead
Darci C Foller
Silvio G Rulapaugh
Izzy Q Perin
Clifford Z Flosi
Jeanfrancois X Wieser
Maria L Royster
Maria X Gillian
Claire E Malet
Antonio H Albares
Wickens E Saylors
Maria F Gaucho
Darci E Paprocki
Leja G Caudy
Maisha W Schemmer
Deepesh K Schemmer
Maisha U Butt
Costa A Stenseth
Rodrigues T Stockham
Clifford K Inouye
Tony H Caudy
Chavez F Stockham
Deepesh G Albares
Octavia X Whobrey
Deepesh A Bowley
Adams N Bolognia
Juan J Kusko
Sinclair I Rulapaugh
Clifford X Saylors
Ashley G Slusarski
Izzy X Campain
Kadeem C Royster
Ashley O Perin
Jones F Darakjy
Emily R Tollner
Morrow W Wieser
Silvio P Dilliard
Rodrigues D Waycott
Alejandro F Albares
Silvio N Flosi
Octavia E Venere
Clifford F Flosi
IdCountryDate
1000United Kingdom2025-04-22
1001Argentina2025-04-25
1002United Kingdom2025-04-12
1003Germany2025-04-27
1004Japan2025-04-22
1005Spain2025-04-20
1006Australia2025-04-13
1007Spain2025-04-13
1008India2025-04-06
1009Russia2025-04-10
1010Australia2025-04-30
1011Canada2025-04-19
1012France2025-04-18
1013Japan2025-04-03
1014Canada2025-04-08
1015Italy2025-04-07
1016Germany2025-04-02
1017Argentina2025-04-21
1018United Kingdom2025-04-15
1019Brazil2025-04-05
1020Russia2025-04-01
1021United Kingdom2025-04-28
1022United Kingdom2025-04-24
1023United Kingdom2025-04-17
1024United Kingdom2025-04-03
1025Argentina2025-04-08
1026Japan2025-04-15
1027Russia2025-04-28
1028Argentina2025-04-20
1029France2025-04-09
1030Australia2025-04-02
1031Brazil2025-04-05
1032Australia2025-04-06
1033Canada2025-04-07
1034Spain2025-04-02
1035Argentina2025-04-20
1036Canada2025-04-01
1037Spain2025-04-12
1038Italy2025-04-29
1039United Kingdom2025-04-30
1040Spain2025-04-30
1041Canada2025-04-17
1042Brazil2025-04-23
1043Italy2025-04-26
1044United Kingdom2025-04-16
1045Brazil2025-04-02
1046Germany2025-04-15
1047Brazil2025-04-29
1048Russia2025-04-23
1049Brazil2025-04-06

On-Demand Data

NameIdCountryDate
Emily R Figeroa1000France2025-04-25
Mayumi U Bolognia1001Spain2025-04-17
Jeanfrancois D Nestle1002Argentina2025-04-25
Morrow B Amigon1003Russia2025-04-13
Mujtaba S Kusko1004Australia2025-04-12
Darci E Paprocki1005Argentina2025-04-28
Deepesh H Shinko1006Germany2025-04-06
Morrow U Caldarera1007Japan2025-04-13
Leja K Morasca1008Japan2025-04-19
James B Foller1009Germany2025-04-24
Murillo J Butt1010India2025-04-25
Antonio O Tollner1011Germany2025-04-03
Emily O Caldarera1012Japan2025-04-27
Mujtaba N Perin1013Germany2025-04-12
Misaki V Doe1014Australia2025-04-25
Aruna T Caudy1015Argentina2025-04-03
Smith T Figeroa1016Germany2025-04-08
Leon H Whobrey1017India2025-04-11
Chavez P Caudy1018India2025-04-02
Stacey S Glick1019Japan2025-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Q BowleyUnited KingdomIvan Magalhaes RENEWAL
Sinclair I BowleySpainOnyama Limba RENEWAL
Morrow T WhobreyAustraliaOnyama Limba NEGOTIATION
Ivar L MacleadFranceIvan Magalhaes QUALIFIED
Ashley A AmigonBrazilAnna Fali RENEWAL
Silvio K ChuiRussiaAmy Elsner PROPOSAL
Silvio Z BriddickArgentinaXuxue Feng NEW
Sinclair E VocelkaSpainXuxue Feng PROPOSAL
Morrow N RulapaughArgentinaXuxue Feng QUALIFIED
Julie H IturbideUnited KingdomIvan Magalhaes RENEWAL
Clifford K FollerRussiaAmy Elsner RENEWAL
Cody E NickaGermanyAmy Elsner QUALIFIED
Aruna I FollerCanadaAmy Elsner QUALIFIED
Aika F BowleyIndiaXuxue Feng PROPOSAL
Jefferson H GillianArgentinaStephen Shaw QUALIFIED
Izzy V MarrierSpainAsiya Javayant RENEWAL
Aditya O PaprockiItalyXuxue Feng RENEWAL
Salvatore S BriddickFranceBernardo Dominic NEGOTIATION
Maisha U RimArgentinaElwin Sharvill QUALIFIED
Nicolas S DarakjyJapanAnna Fali RENEWAL
Cody U KuskoFranceAnna Fali NEGOTIATION
Jeanfrancois N InouyeRussiaAsiya Javayant NEW
James G DarakjyBrazilStephen Shaw PROPOSAL
Misaki B MarrierArgentinaIoni Bowcher NEGOTIATION
Chavez V CaudyItalyIvan Magalhaes PROPOSAL
Murillo W FerenczArgentinaStephen Shaw NEGOTIATION
Aika K FollerBrazilAmy Elsner NEGOTIATION
Jones X RutaUnited KingdomIoni Bowcher NEGOTIATION
Ivar Z DarakjyArgentinaIoni Bowcher UNQUALIFIED
Ashley R NestleArgentinaIvan Magalhaes NEW
Mujtaba P DilliardAustraliaStephen Shaw QUALIFIED
Clifford T NickaIndiaAnna Fali NEW
Izzy M StockhamCanadaIoni Bowcher NEW
Ashley Q RoysterRussiaStephen Shaw RENEWAL
Maria C StockhamGermanyAnna Fali RENEWAL
Ricardo Y RutaRussiaElwin Sharvill RENEWAL
Kaitlin V SchemmerJapanAmy Elsner UNQUALIFIED
Juan L TollnerIndiaBernardo Dominic NEGOTIATION
Kaitlin Q SergiItalyElwin Sharvill NEW
Salvatore J CampainArgentinaStephen Shaw 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>