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
Ricardo H FigeroaIndiaBernardo Dominic NEW
Aditya T NickaSpainAsiya Javayant UNQUALIFIED
Murillo O FigeroaRussiaAsiya Javayant UNQUALIFIED
Ashley F StensethIndiaIvan Magalhaes RENEWAL
Octavia R PerinCanadaAmy Elsner QUALIFIED
Claire T CampainAustraliaStephen Shaw NEGOTIATION
Arvin A GarufiItalyAsiya Javayant NEGOTIATION
Kadeem C GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Johnson L TollnerUnited KingdomAmy Elsner NEGOTIATION
Nicolas M FlosiItalyOnyama Limba NEGOTIATION
Deepesh V GlickCanadaAnna Fali PROPOSAL
Aika H AmigonArgentinaAmy Elsner QUALIFIED
Ivar T VenereAustraliaXuxue Feng QUALIFIED
Leon H StockhamBrazilAsiya Javayant RENEWAL
Claire D ShinkoSpainOnyama Limba UNQUALIFIED
Jefferson C ChuiJapanXuxue Feng UNQUALIFIED
Antonio W FerenczCanadaAnna Fali UNQUALIFIED
Jennifer S StensethCanadaOnyama Limba PROPOSAL
Costa N IturbideCanadaAsiya Javayant PROPOSAL
Arvin M RoysterAustraliaElwin Sharvill PROPOSAL
Munro J VocelkaFranceBernardo Dominic PROPOSAL
Antonio O AmigonArgentinaIvan Magalhaes RENEWAL
Leja H GarufiBrazilXuxue Feng PROPOSAL
Jennifer H SergiItalyStephen Shaw NEW
Morrow A FlosiRussiaIoni Bowcher RENEWAL
Jones M StensethCanadaBernardo Dominic PROPOSAL
Izzy N PaprockiAustraliaXuxue Feng QUALIFIED
Morrow U WaycottArgentinaAnna Fali UNQUALIFIED
Jennifer P NickaIndiaElwin Sharvill PROPOSAL
Tony Y WieserSpainBernardo Dominic NEW
Jennifer I BriddickArgentinaAnna Fali UNQUALIFIED
Chavez C IturbideAustraliaIvan Magalhaes UNQUALIFIED
Isabel M VenereIndiaIoni Bowcher UNQUALIFIED
Greenwood E NickaAustraliaAsiya Javayant NEW
Maisha K FerenczFranceAsiya Javayant NEW
Greenwood T FlosiCanadaIvan Magalhaes RENEWAL
Jennifer P RulapaughGermanyXuxue Feng QUALIFIED
David S CaldareraCanadaAmy Elsner NEW
Kadeem B GauchoIndiaAnna Fali NEGOTIATION
Octavia B VenereAustraliaElwin Sharvill NEGOTIATION
Kaitlin S NickaArgentinaXuxue Feng RENEWAL
Isabel P SergiGermanyIoni Bowcher UNQUALIFIED
Aruna Q AlbaresCanadaXuxue Feng RENEWAL
Jefferson B OstroskyFranceIvan Magalhaes QUALIFIED
Leon O DoeAustraliaElwin Sharvill RENEWAL
Costa B SlusarskiCanadaXuxue Feng RENEWAL
Salvatore X DoeUnited KingdomAsiya Javayant UNQUALIFIED
Munro C FollerCanadaElwin Sharvill PROPOSAL
Sinclair X GillianBrazilOnyama Limba NEW
Kadeem N KolmetzGermanyOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Darci H ShinkoGermanyOnyama Limba UNQUALIFIED
David Z MaletIndiaAmy Elsner UNQUALIFIED
Faith N KuskoBrazilAmy Elsner PROPOSAL
Morrow H WieserIndiaAnna Fali QUALIFIED
Leon V AmigonRussiaAnna Fali PROPOSAL
Salvatore M GauchoFranceElwin Sharvill NEW
Mayumi N TollnerGermanyOnyama Limba NEGOTIATION
Tony Q GillianGermanyAmy Elsner UNQUALIFIED
Darci I GlickAustraliaIoni Bowcher QUALIFIED
Ricardo C SaylorsIndiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo V SaylorsFrance2026-07-22Rangoni Of Florence PROPOSAL13Onyama Limba
1001Izzy A AlbaresBrazil2026-08-04Morlong Associates NEW3Bernardo Dominic
1002Sinclair K KolmetzUnited Kingdom2026-07-21Buckley Miller Wright NEGOTIATION96Elwin Sharvill
1003Kaitlin H NestleUnited Kingdom2026-07-27Benton, John B Jr NEW67Onyama Limba
1004Ashley B WaycottBrazil2026-07-20Morlong Associates UNQUALIFIED69Ivan Magalhaes
1005Cody N DarakjyArgentina2026-07-29King, Christopher A Esq QUALIFIED51Stephen Shaw
1006Jennifer K VocelkaArgentina2026-08-07Truhlar And Truhlar Attys QUALIFIED43Amy Elsner
1007James C VenereIndia2026-08-01Feltz Printing Service QUALIFIED91Ivan Magalhaes
1008Leon S RimBrazil2026-08-08Truhlar And Truhlar Attys RENEWAL90Anna Fali
1009David U NestleArgentina2026-07-19Benton, John B Jr NEW65Anna Fali
1010Aika E BologniaCanada2026-07-19Feiner Bros NEGOTIATION50Xuxue Feng
1011Greenwood P DarakjyUnited Kingdom2026-07-29Chapman, Ross E Esq NEW28Ivan Magalhaes
1012Misaki X GillianItaly2026-07-31Chapman, Ross E Esq NEW44Ioni Bowcher
1013Alejandro M PoquetteSpain2026-08-10Chapman, Ross E Esq NEGOTIATION36Stephen Shaw
1014Sinclair M AlbaresBrazil2026-07-15Buckley Miller Wright UNQUALIFIED52Stephen Shaw
1015Faith P GlickArgentina2026-07-12Chanay, Jeffrey A Esq PROPOSAL80Anna Fali
1016Deepesh B DilliardRussia2026-07-15Chapman, Ross E Esq NEGOTIATION85Xuxue Feng
1017Tony Z PoquetteFrance2026-07-25Morlong Associates NEW88Onyama Limba
1018Maria W RoysterGermany2026-07-26Rousseaux, Michael Esq RENEWAL29Onyama Limba
1019Claire K SchemmerSpain2026-07-14Benton, John B Jr UNQUALIFIED87Xuxue Feng
1020Murillo D IturbideArgentina2026-07-30Chemel, James L Cpa PROPOSAL97Elwin Sharvill
1021Jennifer X ButtArgentina2026-07-17Benton, John B Jr PROPOSAL18Anna Fali
1022Wickens Q VocelkaArgentina2026-07-25Chapman, Ross E Esq PROPOSAL90Ioni Bowcher
1023Aditya W AmigonIndia2026-08-08Rangoni Of Florence RENEWAL36Elwin Sharvill
1024Smith E AlbaresGermany2026-08-10Rangoni Of Florence NEW11Xuxue Feng
1025Aika E ChuiArgentina2026-07-13Feiner Bros PROPOSAL85Ivan Magalhaes
1026Ricardo H MacleadCanada2026-07-17Dorl, James J Esq NEW68Ioni Bowcher
1027Nicolas Z RimAustralia2026-07-28Rousseaux, Michael Esq NEGOTIATION37Onyama Limba
1028Wickens H MarrierUnited Kingdom2026-07-15Buckley Miller Wright QUALIFIED72Onyama Limba
1029Greenwood G WaycottSpain2026-08-06Feiner Bros UNQUALIFIED75Onyama Limba
1030Claire O GauchoArgentina2026-07-14Morlong Associates NEGOTIATION35Ioni Bowcher
1031Aruna N SergiBrazil2026-07-23Rangoni Of Florence PROPOSAL7Anna Fali
1032Antonio J AmigonArgentina2026-08-08Feltz Printing Service RENEWAL99Stephen Shaw
1033Isabel K InouyeBrazil2026-07-31Chapman, Ross E Esq RENEWAL63Ivan Magalhaes
1034Deepesh J WhobreyAustralia2026-07-19Feiner Bros NEGOTIATION40Anna Fali
1035Mujtaba T OstroskyFrance2026-08-08Chanay, Jeffrey A Esq QUALIFIED41Asiya Javayant
1036Munro U MaletItaly2026-08-08King, Christopher A Esq UNQUALIFIED51Onyama Limba
1037Nicolas X WaycottItaly2026-07-13Feltz Printing Service UNQUALIFIED82Stephen Shaw
1038Alejandro U CampainCanada2026-07-20Rangoni Of Florence UNQUALIFIED22Onyama Limba
1039Leja A BowleyIndia2026-07-16Morlong Associates PROPOSAL93Elwin Sharvill
1040Izzy C MaletRussia2026-08-04Dorl, James J Esq PROPOSAL76Bernardo Dominic
1041Francesco H GarufiCanada2026-07-14Dorl, James J Esq UNQUALIFIED63Anna Fali
1042Salvatore R StockhamUnited Kingdom2026-07-12Truhlar And Truhlar Attys RENEWAL89Bernardo Dominic
1043Jeanfrancois B InouyeUnited Kingdom2026-07-29Feiner Bros UNQUALIFIED25Elwin Sharvill
1044Francesco I PaprockiFrance2026-07-23Feiner Bros NEGOTIATION31Amy Elsner
1045David U VocelkaUnited Kingdom2026-08-07Feiner Bros RENEWAL77Elwin Sharvill
1046Wickens L StensethFrance2026-07-12Truhlar And Truhlar Attys NEGOTIATION60Stephen Shaw
1047Aika P StockhamCanada2026-07-16Benton, John B Jr UNQUALIFIED48Stephen Shaw
1048Chavez L SchemmerGermany2026-07-19Truhlar And Truhlar Attys QUALIFIED67Xuxue Feng
1049Ashley X OstroskyFrance2026-07-15Feltz Printing Service PROPOSAL49Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci S AmigonArgentinaXuxue Feng UNQUALIFIED
James U DoeCanadaBernardo Dominic NEW
Emily I GlickUnited KingdomAsiya Javayant PROPOSAL
Jones T NestleItalyElwin Sharvill UNQUALIFIED
Salvatore X BologniaUnited KingdomOnyama Limba RENEWAL
Jeanfrancois U StockhamBrazilAsiya Javayant NEW
Ashley L GauchoBrazilStephen Shaw NEW
Juan H NestleItalyOnyama Limba PROPOSAL
Sinclair Z InouyeItalyAsiya Javayant QUALIFIED
Adams P StensethAustraliaAnna Fali NEGOTIATION
Mujtaba U DarakjyRussiaIoni Bowcher QUALIFIED
Darci Y WieserBrazilAmy Elsner NEGOTIATION
Jefferson C VenereFranceAmy Elsner QUALIFIED
Silvio W MacleadSpainStephen Shaw NEW
Maria O AlbaresRussiaBernardo Dominic NEW
Jeanfrancois S SergiFranceIvan Magalhaes NEW
Faith N BriddickAustraliaIvan Magalhaes RENEWAL
Ricardo D ChuiSpainIoni Bowcher UNQUALIFIED
Darci V GarufiAustraliaOnyama Limba QUALIFIED
Chavez W RulapaughSpainAmy Elsner UNQUALIFIED
Kadeem A KolmetzCanadaXuxue Feng UNQUALIFIED
Jeanfrancois W StockhamUnited KingdomAmy Elsner NEW
Jones P AlbaresJapanAmy Elsner UNQUALIFIED
Greenwood P MaletRussiaIvan Magalhaes PROPOSAL
Ricardo O MorascaItalyAmy Elsner UNQUALIFIED
Tony Z GarufiCanadaAnna Fali PROPOSAL
Isabel R RoysterAustraliaAmy Elsner NEW
Misaki K InouyeUnited KingdomIvan Magalhaes QUALIFIED
Antonio X MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Jones V MaletBrazilStephen Shaw NEW
Maisha V OstroskyJapanElwin Sharvill PROPOSAL
Jennifer F CampainAustraliaAnna Fali QUALIFIED
Jones P CaudyFranceIvan Magalhaes UNQUALIFIED
Ricardo T VocelkaItalyOnyama Limba NEGOTIATION
Aika X FigeroaCanadaIoni Bowcher RENEWAL
Morrow D MacleadJapanAnna Fali QUALIFIED
Leon V MarrierRussiaOnyama Limba PROPOSAL
Smith Q NestleSpainAsiya Javayant NEGOTIATION
Darci R OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Isabel K MacleadJapanAsiya Javayant PROPOSAL
Clifford U MaletJapanIoni Bowcher NEGOTIATION
Faith U CampainBrazilXuxue Feng NEGOTIATION
Cody C GarufiAustraliaElwin Sharvill RENEWAL
Darci R MaletAustraliaElwin Sharvill NEW
Jones P WieserArgentinaIoni Bowcher NEW
Jennifer L InouyeJapanAnna Fali UNQUALIFIED
Darci L PerinArgentinaBernardo Dominic RENEWAL
Aruna H OldroydUnited KingdomAmy Elsner NEGOTIATION
Ashley O VocelkaArgentinaAmy Elsner PROPOSAL
Johnson K ChuiJapanAnna Fali NEW
Frozen Columns
Name
Rodrigues B Waycott
Deepesh I Caldarera
Mujtaba Q Glick
Claire J Royster
Deepesh M Iturbide
Francesco N Nestle
Chavez W Nestle
Greenwood C Albares
Silvio S Whobrey
Leon R Schemmer
Murillo M Foller
Antonio T Gaucho
Smith I Venere
Arvin A Marrier
Emily P Caldarera
Munro S Gillian
Salvatore Z Ruta
Mayumi I Caldarera
Kadeem Y Iturbide
Juan V Tollner
Mayumi D Flosi
Kadeem T Dilliard
Francesco V Dilliard
Darci N Ostrosky
Greenwood V Flosi
Maisha G Royster
Morrow Y Iturbide
Jefferson T Butt
Francesco K Tollner
Sinclair A Ferencz
Rodrigues Q Malet
Tony Q Dilliard
Jefferson M Tollner
Greenwood P Poquette
Aika X Perin
Jennifer P Perin
Johnson S Flosi
Jones E Gaucho
Aika S Poquette
Maisha Q Stockham
Murillo F Schemmer
Mujtaba Y Butt
Deepesh V Rulapaugh
Silvio F Royster
Jennifer S Flosi
Murillo B Rim
Silvio N Marrier
Smith E Rim
Darci U Waycott
James R Kolmetz
IdCountryDate
1000Brazil2026-07-20
1001Germany2026-07-17
1002Japan2026-08-10
1003Argentina2026-07-24
1004Japan2026-07-14
1005Australia2026-07-21
1006Spain2026-07-29
1007Italy2026-07-30
1008India2026-07-30
1009India2026-07-20
1010Italy2026-08-03
1011Canada2026-08-08
1012Canada2026-07-19
1013Italy2026-07-29
1014Brazil2026-07-24
1015Australia2026-08-09
1016Spain2026-07-19
1017Argentina2026-07-15
1018Canada2026-07-21
1019Brazil2026-07-23
1020Australia2026-07-26
1021Japan2026-07-20
1022Brazil2026-07-30
1023India2026-07-12
1024Spain2026-07-19
1025Canada2026-08-01
1026Australia2026-07-28
1027Argentina2026-08-03
1028Russia2026-07-30
1029France2026-07-18
1030Spain2026-07-27
1031Australia2026-07-23
1032Brazil2026-07-27
1033Italy2026-08-02
1034Italy2026-07-14
1035Australia2026-08-08
1036Italy2026-08-05
1037Argentina2026-08-10
1038France2026-08-02
1039Japan2026-07-21
1040Canada2026-07-25
1041Canada2026-07-20
1042Spain2026-08-06
1043Germany2026-07-16
1044Australia2026-07-13
1045Canada2026-07-23
1046Brazil2026-08-09
1047Australia2026-08-01
1048Australia2026-07-15
1049Italy2026-07-12

On-Demand Data

NameIdCountryDate
Smith H Saylors1000France2026-07-12
Sinclair B Sergi1001France2026-07-12
Ashley N Iturbide1002Russia2026-07-31
Salvatore A Caudy1003France2026-08-06
Alejandro E Nicka1004Spain2026-08-03
Greenwood H Briddick1005Spain2026-08-04
Kaitlin T Figeroa1006India2026-07-26
Juan M Stenseth1007India2026-07-16
Aditya Y Vocelka1008Italy2026-07-15
Sinclair Y Stockham1009Brazil2026-07-19
Maisha T Figeroa1010India2026-08-07
Kaitlin D Slusarski1011Canada2026-08-02
Maisha M Slusarski1012Brazil2026-08-07
Aika Q Albares1013Japan2026-07-31
Emily D Vocelka1014Australia2026-08-08
Antonio X Perin1015Brazil2026-08-06
Izzy X Dilliard1016Russia2026-07-28
Misaki G Kusko1017Japan2026-07-29
Leja P Rulapaugh1018Italy2026-07-28
Misaki W Rulapaugh1019Brazil2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki X VocelkaItalyOnyama Limba RENEWAL
Morrow I NestleCanadaOnyama Limba UNQUALIFIED
Tony X NickaJapanElwin Sharvill QUALIFIED
Julie H FigeroaItalyAsiya Javayant PROPOSAL
Mujtaba E ButtUnited KingdomBernardo Dominic PROPOSAL
Chavez Q DoeItalyBernardo Dominic NEGOTIATION
Murillo Q BologniaArgentinaBernardo Dominic QUALIFIED
Aika H PerinJapanAmy Elsner UNQUALIFIED
Adams P FigeroaIndiaOnyama Limba RENEWAL
Sinclair S NickaRussiaOnyama Limba QUALIFIED
Aditya R PerinJapanIoni Bowcher QUALIFIED
Kaitlin E StensethRussiaXuxue Feng NEW
Jefferson P GlickSpainBernardo Dominic QUALIFIED
Kaitlin R MaletAustraliaIoni Bowcher QUALIFIED
Antonio O SlusarskiBrazilStephen Shaw QUALIFIED
Sinclair T DoeRussiaXuxue Feng NEW
Maria R TollnerIndiaAmy Elsner NEGOTIATION
Maisha I SergiAustraliaIoni Bowcher QUALIFIED
Antonio S SlusarskiArgentinaIvan Magalhaes NEW
Ricardo W AmigonCanadaElwin Sharvill NEW
Juan W BologniaRussiaBernardo Dominic PROPOSAL
Sinclair K WhobreyRussiaIoni Bowcher PROPOSAL
Maisha M GlickGermanyElwin Sharvill NEW
Leja J InouyeSpainBernardo Dominic PROPOSAL
Ashley M NickaFranceIoni Bowcher NEGOTIATION
Isabel E DilliardRussiaStephen Shaw UNQUALIFIED
Mujtaba F GillianFranceOnyama Limba QUALIFIED
Izzy A RulapaughItalyAnna Fali UNQUALIFIED
Greenwood U AlbaresBrazilElwin Sharvill NEGOTIATION
Jones Y MarrierCanadaElwin Sharvill QUALIFIED
Izzy D DilliardBrazilXuxue Feng NEGOTIATION
Ricardo J GarufiIndiaAsiya Javayant RENEWAL
Leon W NickaCanadaIvan Magalhaes RENEWAL
Leja G RulapaughCanadaAmy Elsner RENEWAL
Tony D CampainAustraliaElwin Sharvill PROPOSAL
Smith B BowleyGermanyIvan Magalhaes PROPOSAL
Cody Z FlosiItalyElwin Sharvill UNQUALIFIED
Maisha O MacleadUnited KingdomOnyama Limba NEGOTIATION
Deepesh O VenereBrazilStephen Shaw QUALIFIED
Leon P NickaFranceAnna 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>