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
Stacey R KuskoCanadaAsiya Javayant NEW
Mujtaba Q RutaItalyAmy Elsner PROPOSAL
Antonio M GlickSpainAmy Elsner PROPOSAL
Nicolas C PerinAustraliaOnyama Limba UNQUALIFIED
Chavez T OldroydAustraliaOnyama Limba NEGOTIATION
Mayumi H KuskoIndiaOnyama Limba NEW
Aika I IturbideItalyOnyama Limba QUALIFIED
Stacey L FigeroaCanadaIvan Magalhaes UNQUALIFIED
Arvin E FerenczRussiaIvan Magalhaes QUALIFIED
Cody R StockhamUnited KingdomIvan Magalhaes PROPOSAL
Murillo J PoquetteUnited KingdomOnyama Limba PROPOSAL
Arvin F MacleadRussiaAmy Elsner NEGOTIATION
Jefferson J MarrierGermanyStephen Shaw QUALIFIED
Francesco P ButtAustraliaAsiya Javayant RENEWAL
Deepesh R BologniaRussiaIoni Bowcher NEW
Claire L RulapaughIndiaIvan Magalhaes RENEWAL
Kadeem K RutaJapanOnyama Limba RENEWAL
Claire S ShinkoArgentinaIoni Bowcher NEGOTIATION
Tony J BologniaCanadaAmy Elsner RENEWAL
Mujtaba S BologniaRussiaElwin Sharvill QUALIFIED
Kadeem P MacleadCanadaStephen Shaw NEGOTIATION
Jennifer I MacleadFranceIoni Bowcher UNQUALIFIED
Ivar X WhobreyCanadaBernardo Dominic RENEWAL
Adams L RoysterArgentinaIoni Bowcher NEW
Maisha A PerinJapanIvan Magalhaes PROPOSAL
Munro F RoysterJapanAsiya Javayant QUALIFIED
Salvatore K SlusarskiArgentinaAnna Fali QUALIFIED
Stacey O WhobreyBrazilAsiya Javayant NEGOTIATION
Munro H DilliardIndiaElwin Sharvill PROPOSAL
Aditya F IturbideGermanyAmy Elsner PROPOSAL
David H MacleadJapanOnyama Limba QUALIFIED
Munro I AmigonGermanyXuxue Feng NEW
Jeanfrancois N BowleyArgentinaElwin Sharvill NEW
Mujtaba T SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore I TollnerGermanyAmy Elsner NEW
Munro P GillianJapanAmy Elsner RENEWAL
Leja M SlusarskiGermanyStephen Shaw QUALIFIED
Deepesh T VenereUnited KingdomAsiya Javayant QUALIFIED
Jennifer W WaycottSpainAsiya Javayant UNQUALIFIED
Chavez V NickaSpainOnyama Limba NEW
Sinclair T OstroskyArgentinaStephen Shaw NEGOTIATION
Wickens Y TollnerAustraliaOnyama Limba QUALIFIED
Mujtaba H FigeroaSpainAsiya Javayant QUALIFIED
Octavia B FerenczArgentinaIvan Magalhaes RENEWAL
Nicolas W FlosiRussiaAsiya Javayant NEGOTIATION
Deepesh U MorascaBrazilAmy Elsner QUALIFIED
Jones B AmigonCanadaBernardo Dominic QUALIFIED
Misaki C VocelkaGermanyStephen Shaw UNQUALIFIED
Jennifer W TollnerAustraliaIoni Bowcher NEGOTIATION
Emily F RutaRussiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Antonio F FigeroaItalyAsiya Javayant QUALIFIED
Morrow I BologniaBrazilStephen Shaw RENEWAL
Kaitlin T VocelkaGermanyXuxue Feng NEW
Greenwood B CaldareraRussiaElwin Sharvill NEW
Sinclair A VenereRussiaIvan Magalhaes PROPOSAL
Aditya K RoysterAustraliaBernardo Dominic NEGOTIATION
Julie E PoquetteSpainIvan Magalhaes QUALIFIED
Tony A KuskoJapanAnna Fali NEGOTIATION
Cody J BriddickAustraliaStephen Shaw RENEWAL
Darci A GlickItalyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith O DarakjyAustralia2026-08-18Commercial Press NEGOTIATION23Anna Fali
1001Leon Y DoeFrance2026-08-08Dorl, James J Esq RENEWAL41Xuxue Feng
1002Sinclair T RulapaughAustralia2026-08-23Commercial Press NEGOTIATION32Ioni Bowcher
1003Aditya W VocelkaRussia2026-08-19Chapman, Ross E Esq QUALIFIED95Amy Elsner
1004Emily S CaudyJapan2026-07-29Buckley Miller Wright NEW73Elwin Sharvill
1005Darci Z DoeJapan2026-08-18Rangoni Of Florence UNQUALIFIED67Elwin Sharvill
1006Aruna B DoeUnited Kingdom2026-08-11Rousseaux, Michael Esq PROPOSAL53Bernardo Dominic
1007Jones B NickaJapan2026-08-11Benton, John B Jr NEW49Bernardo Dominic
1008Juan I DilliardArgentina2026-08-09Chapman, Ross E Esq UNQUALIFIED50Bernardo Dominic
1009Rodrigues U ChuiRussia2026-08-23Chemel, James L Cpa RENEWAL83Ivan Magalhaes
1010Cody Z DilliardUnited Kingdom2026-07-28King, Christopher A Esq RENEWAL45Ioni Bowcher
1011Octavia O NickaItaly2026-08-12Commercial Press QUALIFIED55Xuxue Feng
1012Jefferson B RoysterBrazil2026-08-25Printing Dimensions NEW43Elwin Sharvill
1013Ivar M TollnerItaly2026-08-02Rousseaux, Michael Esq RENEWAL3Onyama Limba
1014Kaitlin C FerenczGermany2026-08-26Feltz Printing Service NEW7Ioni Bowcher
1015Aika R StockhamRussia2026-08-02Truhlar And Truhlar Attys RENEWAL24Ivan Magalhaes
1016Isabel M KuskoFrance2026-08-10Feltz Printing Service PROPOSAL6Ioni Bowcher
1017Deepesh J ChuiRussia2026-08-07Commercial Press NEW51Ivan Magalhaes
1018Costa K ButtRussia2026-08-02Truhlar And Truhlar Attys PROPOSAL97Amy Elsner
1019Chavez P TollnerIndia2026-08-08Benton, John B Jr NEGOTIATION61Ivan Magalhaes
1020Juan K GlickJapan2026-08-20Truhlar And Truhlar Attys NEGOTIATION99Ioni Bowcher
1021Costa T IturbideIndia2026-08-10Chanay, Jeffrey A Esq NEGOTIATION86Onyama Limba
1022Wickens A SergiCanada2026-07-28Chapman, Ross E Esq UNQUALIFIED83Ivan Magalhaes
1023Tony R InouyeJapan2026-08-25Buckley Miller Wright PROPOSAL1Amy Elsner
1024Nicolas N TollnerArgentina2026-08-26Feltz Printing Service NEGOTIATION78Asiya Javayant
1025Mayumi A CaudyIndia2026-08-07Chapman, Ross E Esq QUALIFIED4Asiya Javayant
1026Maisha H IturbideCanada2026-08-02Feiner Bros QUALIFIED76Ioni Bowcher
1027Izzy F GarufiJapan2026-08-04Morlong Associates UNQUALIFIED79Stephen Shaw
1028Silvio I KolmetzBrazil2026-08-04Truhlar And Truhlar Attys NEGOTIATION88Onyama Limba
1029Clifford Q RulapaughFrance2026-08-16Printing Dimensions PROPOSAL93Stephen Shaw
1030Aditya T InouyeBrazil2026-08-26Chanay, Jeffrey A Esq NEGOTIATION46Amy Elsner
1031Aditya P FigeroaJapan2026-08-25Rousseaux, Michael Esq NEGOTIATION15Ioni Bowcher
1032Costa U CaldareraGermany2026-08-08Truhlar And Truhlar Attys RENEWAL31Ioni Bowcher
1033Kadeem V PerinSpain2026-08-26Chapman, Ross E Esq NEGOTIATION72Elwin Sharvill
1034Isabel X TollnerItaly2026-08-13Chanay, Jeffrey A Esq PROPOSAL7Bernardo Dominic
1035Arvin J MaletFrance2026-08-20Chemel, James L Cpa RENEWAL41Anna Fali
1036Johnson Z ChuiJapan2026-08-25Rangoni Of Florence RENEWAL29Amy Elsner
1037Emily K CaldareraCanada2026-08-13Feltz Printing Service NEW3Ioni Bowcher
1038Cody V AlbaresGermany2026-08-06Rangoni Of Florence QUALIFIED40Elwin Sharvill
1039Jennifer N DarakjyItaly2026-08-12Commercial Press RENEWAL63Ivan Magalhaes
1040David L WaycottGermany2026-07-29Morlong Associates NEGOTIATION53Ioni Bowcher
1041Kaitlin E RulapaughArgentina2026-08-04Commercial Press NEGOTIATION55Anna Fali
1042Octavia A BriddickArgentina2026-08-07Commercial Press RENEWAL34Elwin Sharvill
1043Cody Q GarufiSpain2026-08-25Chemel, James L Cpa UNQUALIFIED21Asiya Javayant
1044Adams Y MarrierItaly2026-08-06Buckley Miller Wright RENEWAL57Xuxue Feng
1045Jones R FerenczItaly2026-08-25Chanay, Jeffrey A Esq NEW76Ivan Magalhaes
1046David U BologniaGermany2026-07-31Buckley Miller Wright UNQUALIFIED79Elwin Sharvill
1047Adams H RulapaughCanada2026-08-11Chanay, Jeffrey A Esq QUALIFIED62Elwin Sharvill
1048Misaki M PerinFrance2026-08-05Feiner Bros PROPOSAL20Xuxue Feng
1049Aika I MacleadArgentina2026-08-16Truhlar And Truhlar Attys UNQUALIFIED13Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Greenwood Z SergiAustraliaAmy Elsner QUALIFIED
Nicolas T RoysterBrazilIoni Bowcher UNQUALIFIED
Wickens V DoeAustraliaAnna Fali QUALIFIED
Misaki M TollnerBrazilXuxue Feng NEGOTIATION
Silvio P StockhamJapanStephen Shaw QUALIFIED
Misaki F BowleyUnited KingdomIvan Magalhaes RENEWAL
Johnson A RutaAustraliaIoni Bowcher NEGOTIATION
Octavia Z DilliardBrazilIoni Bowcher NEGOTIATION
Emily T BologniaIndiaIoni Bowcher NEW
Morrow L GillianSpainAnna Fali UNQUALIFIED
Arvin Z WaycottIndiaAmy Elsner UNQUALIFIED
David C PoquetteJapanOnyama Limba PROPOSAL
Rodrigues B MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Aika V BowleyArgentinaXuxue Feng PROPOSAL
Ivar T InouyeGermanyIoni Bowcher NEGOTIATION
Jefferson D KuskoJapanAmy Elsner UNQUALIFIED
David I ChuiAustraliaAmy Elsner NEW
Salvatore V RulapaughFranceStephen Shaw NEGOTIATION
Aruna F CampainAustraliaElwin Sharvill QUALIFIED
Maisha V FigeroaAustraliaBernardo Dominic NEW
Chavez H SchemmerBrazilIoni Bowcher QUALIFIED
Maria T AlbaresJapanBernardo Dominic PROPOSAL
Stacey J AmigonCanadaIvan Magalhaes RENEWAL
Emily Y WhobreyJapanAmy Elsner NEGOTIATION
Octavia T ChuiJapanAmy Elsner NEW
Kadeem Q GlickBrazilAsiya Javayant NEW
Octavia I OstroskyFranceAmy Elsner NEGOTIATION
Mayumi M FigeroaGermanyIvan Magalhaes RENEWAL
Tony L PerinSpainXuxue Feng NEGOTIATION
Greenwood E GauchoUnited KingdomStephen Shaw PROPOSAL
Jones D SchemmerFranceAnna Fali QUALIFIED
Octavia M StockhamGermanyAnna Fali NEGOTIATION
Ricardo Z OldroydUnited KingdomAmy Elsner UNQUALIFIED
Costa X OstroskySpainOnyama Limba QUALIFIED
Aika A SlusarskiAustraliaAnna Fali QUALIFIED
Jefferson C WhobreyFranceXuxue Feng RENEWAL
Isabel G NickaAustraliaStephen Shaw UNQUALIFIED
Greenwood F StockhamSpainStephen Shaw UNQUALIFIED
Alejandro S DoeJapanOnyama Limba PROPOSAL
Clifford J MarrierAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois F MaletBrazilIoni Bowcher RENEWAL
Munro I DilliardAustraliaAnna Fali RENEWAL
Nicolas Q GarufiFranceElwin Sharvill PROPOSAL
David T CaudySpainAmy Elsner PROPOSAL
Izzy X CaldareraBrazilXuxue Feng QUALIFIED
Smith Y DilliardArgentinaOnyama Limba UNQUALIFIED
Ivar V KolmetzFranceStephen Shaw NEW
Clifford L WaycottGermanyBernardo Dominic NEGOTIATION
David D MarrierArgentinaIoni Bowcher NEGOTIATION
Jennifer R DoeFranceOnyama Limba UNQUALIFIED
Frozen Columns
Name
Murillo G Rulapaugh
Stacey P Caldarera
Jefferson I Foller
Murillo C Stenseth
Juan U Rulapaugh
Kadeem U Saylors
Ricardo E Venere
Wickens U Chui
Salvatore C Albares
Aika J Saylors
David F Garufi
Munro K Malet
Greenwood Y Ostrosky
Deepesh O Waycott
Misaki Q Dilliard
Ivar F Waycott
Maria L Stenseth
Morrow V Ruta
Claire O Nestle
Leon Q Caldarera
Ivar M Bolognia
Jefferson R Schemmer
Ashley N Amigon
Leja Y Glick
Mujtaba B Foller
Costa P Campain
Izzy C Foller
Clifford V Perin
Claire B Stenseth
Greenwood W Oldroyd
Jeanfrancois R Tollner
Silvio H Nicka
Leja F Figeroa
Tony A Ostrosky
Smith N Wieser
Aditya U Gillian
Mayumi W Campain
Julie C Figeroa
Misaki L Royster
Aika E Chui
Alejandro Q Briddick
Antonio H Caldarera
Antonio G Schemmer
Silvio J Saylors
Aruna L Maclead
Maisha G Oldroyd
Maisha L Nestle
Maria B Sergi
Julie N Bowley
Sinclair Q Slusarski
IdCountryDate
1000Italy2026-08-04
1001Japan2026-07-30
1002Russia2026-07-28
1003Brazil2026-08-26
1004Canada2026-08-16
1005Russia2026-08-22
1006Germany2026-08-13
1007Australia2026-08-11
1008Russia2026-08-14
1009United Kingdom2026-08-10
1010Australia2026-08-03
1011Japan2026-08-19
1012Italy2026-08-10
1013Japan2026-08-18
1014Germany2026-08-20
1015India2026-08-11
1016Spain2026-08-06
1017Japan2026-08-10
1018Germany2026-08-17
1019France2026-08-04
1020Canada2026-08-01
1021Argentina2026-08-05
1022Germany2026-07-30
1023Japan2026-08-15
1024Spain2026-08-01
1025Russia2026-08-13
1026Russia2026-08-04
1027Italy2026-07-28
1028Canada2026-08-19
1029Russia2026-08-12
1030Italy2026-07-31
1031Argentina2026-07-31
1032Japan2026-08-20
1033Japan2026-08-25
1034United Kingdom2026-08-01
1035Germany2026-08-05
1036Australia2026-08-08
1037Brazil2026-08-12
1038United Kingdom2026-08-20
1039Japan2026-08-07
1040Australia2026-07-30
1041Australia2026-08-19
1042Canada2026-07-31
1043Italy2026-07-31
1044India2026-08-08
1045India2026-07-31
1046Germany2026-08-08
1047Germany2026-08-04
1048Russia2026-08-05
1049Spain2026-08-01

On-Demand Data

NameIdCountryDate
Alejandro H Amigon1000United Kingdom2026-07-31
Tony S Darakjy1001Russia2026-08-24
Ivar S Poquette1002France2026-08-23
Faith G Wieser1003Canada2026-08-22
Stacey Q Royster1004Spain2026-08-01
Claire Y Whobrey1005Spain2026-08-06
Ivar U Foller1006Australia2026-08-05
Jones U Amigon1007Italy2026-08-07
Clifford T Oldroyd1008United Kingdom2026-08-14
Munro V Ferencz1009Canada2026-08-13
Izzy W Slusarski1010Spain2026-08-20
Francesco W Venere1011Russia2026-08-26
Mujtaba Q Malet1012Brazil2026-08-05
Antonio G Wieser1013Spain2026-08-09
Aruna C Whobrey1014Brazil2026-08-26
Morrow A Sergi1015France2026-08-26
Chavez J Maclead1016Australia2026-07-30
Munro S Chui1017Russia2026-08-10
Deepesh X Shinko1018Australia2026-08-24
Ivar G Morasca1019Germany2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois Y NickaAustraliaBernardo Dominic NEW
Nicolas C MaletItalyIvan Magalhaes NEW
Ivar A GarufiBrazilElwin Sharvill UNQUALIFIED
Francesco N MarrierCanadaStephen Shaw UNQUALIFIED
Cody Q GauchoFranceBernardo Dominic NEGOTIATION
Sinclair Z KuskoCanadaAmy Elsner PROPOSAL
Murillo I RulapaughUnited KingdomXuxue Feng NEW
Claire X StensethArgentinaXuxue Feng UNQUALIFIED
Julie T GarufiJapanXuxue Feng RENEWAL
Julie G OldroydFranceAnna Fali NEW
Leon V DilliardFranceAsiya Javayant PROPOSAL
Cody E VenereIndiaXuxue Feng PROPOSAL
Leon P NestleBrazilBernardo Dominic NEGOTIATION
Munro V CampainFranceStephen Shaw NEW
Faith J CampainSpainStephen Shaw NEGOTIATION
Julie Q SergiAustraliaBernardo Dominic NEGOTIATION
Jones Y RimGermanyOnyama Limba UNQUALIFIED
Deepesh Z OstroskyGermanyXuxue Feng PROPOSAL
Mujtaba W BriddickAustraliaAnna Fali QUALIFIED
Darci O WhobreyGermanyAsiya Javayant QUALIFIED
Stacey V MacleadGermanyBernardo Dominic QUALIFIED
Francesco J ShinkoSpainAnna Fali NEGOTIATION
Misaki A FollerItalyStephen Shaw UNQUALIFIED
Ivar Y BriddickJapanIoni Bowcher NEW
Maria U PaprockiUnited KingdomXuxue Feng NEGOTIATION
Munro W DarakjyIndiaIvan Magalhaes PROPOSAL
Jones D SlusarskiSpainElwin Sharvill NEW
Smith M AlbaresArgentinaXuxue Feng NEW
Rodrigues L DoeFranceAnna Fali NEW
Octavia R CaldareraSpainIoni Bowcher NEGOTIATION
Costa I BowleyIndiaIoni Bowcher UNQUALIFIED
Clifford C RulapaughFranceAsiya Javayant NEGOTIATION
Darci F PaprockiCanadaElwin Sharvill NEW
Ivar O NestleJapanAmy Elsner NEGOTIATION
Deepesh E ShinkoRussiaAsiya Javayant RENEWAL
Jones E KuskoSpainAsiya Javayant RENEWAL
Jeanfrancois M CaldareraBrazilAmy Elsner PROPOSAL
Mayumi M GauchoItalyOnyama Limba QUALIFIED
Mujtaba A BriddickGermanyXuxue Feng UNQUALIFIED
David O MarrierArgentinaIvan Magalhaes NEW

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