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 G DilliardIndiaAsiya Javayant NEW
Leja E OstroskyItalyAnna Fali NEGOTIATION
Emily V GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Emily V AlbaresBrazilBernardo Dominic QUALIFIED
Jones I RoysterBrazilBernardo Dominic QUALIFIED
Francesco F VocelkaGermanyXuxue Feng PROPOSAL
Alejandro K ChuiRussiaOnyama Limba RENEWAL
Leon W MaletFranceBernardo Dominic NEW
Ashley U ShinkoUnited KingdomXuxue Feng QUALIFIED
Munro H GarufiBrazilOnyama Limba PROPOSAL
Smith V ChuiBrazilStephen Shaw PROPOSAL
Claire U BowleyGermanyXuxue Feng RENEWAL
Aditya X WaycottIndiaXuxue Feng QUALIFIED
Aruna S ButtUnited KingdomIvan Magalhaes RENEWAL
Aditya W ChuiGermanyAsiya Javayant NEW
Aika C SlusarskiFranceXuxue Feng NEW
Tony B PaprockiSpainXuxue Feng NEGOTIATION
Kadeem I ButtRussiaIvan Magalhaes UNQUALIFIED
Greenwood B BowleyRussiaXuxue Feng PROPOSAL
Sinclair T RoysterCanadaAmy Elsner UNQUALIFIED
Aditya P GarufiSpainXuxue Feng UNQUALIFIED
Izzy Y PerinBrazilStephen Shaw RENEWAL
Mujtaba P SergiIndiaOnyama Limba UNQUALIFIED
Salvatore D DilliardArgentinaStephen Shaw RENEWAL
Darci M SchemmerSpainElwin Sharvill NEW
Izzy N GillianGermanyAnna Fali PROPOSAL
Octavia W MarrierUnited KingdomAmy Elsner NEW
Sinclair O AmigonItalyIoni Bowcher NEW
Aditya G CampainJapanXuxue Feng UNQUALIFIED
Mayumi V GlickSpainOnyama Limba UNQUALIFIED
Smith N DoeRussiaAmy Elsner NEGOTIATION
Izzy G FerenczSpainElwin Sharvill NEGOTIATION
Chavez R VocelkaJapanElwin Sharvill NEW
Smith I OstroskyItalyXuxue Feng PROPOSAL
Alejandro S MacleadArgentinaStephen Shaw PROPOSAL
Alejandro Z IturbideGermanyStephen Shaw NEW
Darci P MarrierSpainElwin Sharvill RENEWAL
James O ChuiIndiaIvan Magalhaes UNQUALIFIED
Maisha G DarakjyIndiaElwin Sharvill NEW
Murillo B WieserJapanIvan Magalhaes RENEWAL
Maria Z PaprockiBrazilAsiya Javayant NEGOTIATION
Murillo Z WieserAustraliaAmy Elsner UNQUALIFIED
Jones L KuskoCanadaBernardo Dominic UNQUALIFIED
Francesco Y BowleyGermanyAsiya Javayant PROPOSAL
Rodrigues C IturbideBrazilAsiya Javayant RENEWAL
Ricardo Q MaletCanadaXuxue Feng UNQUALIFIED
Izzy A ShinkoFranceAmy Elsner QUALIFIED
Jeanfrancois H MacleadGermanyXuxue Feng RENEWAL
Kadeem T DarakjySpainIvan Magalhaes NEGOTIATION
Mujtaba W OldroydCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro X SchemmerGermanyAmy Elsner QUALIFIED
Adams U MaletCanadaOnyama Limba RENEWAL
Antonio S MacleadSpainIoni Bowcher PROPOSAL
Aika N GlickFranceAsiya Javayant RENEWAL
Deepesh M FollerBrazilAnna Fali PROPOSAL
Tony K GillianUnited KingdomStephen Shaw PROPOSAL
Smith Q OstroskyItalyBernardo Dominic UNQUALIFIED
Antonio T SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Wickens T NestleItalyAsiya Javayant RENEWAL
Chavez O DarakjyGermanyElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar T GarufiSpain2025-05-20Morlong Associates RENEWAL66Onyama Limba
1001Costa F WaycottJapan2025-05-25King, Christopher A Esq RENEWAL10Ivan Magalhaes
1002Costa V MorascaBrazil2025-06-09Chemel, James L Cpa NEGOTIATION87Asiya Javayant
1003Emily K CampainIndia2025-06-07Commercial Press NEW64Stephen Shaw
1004Maisha R FollerAustralia2025-05-29Rangoni Of Florence UNQUALIFIED72Elwin Sharvill
1005Francesco T CampainSpain2025-06-09Chemel, James L Cpa PROPOSAL18Xuxue Feng
1006Isabel J DilliardJapan2025-05-22Chanay, Jeffrey A Esq NEGOTIATION83Ivan Magalhaes
1007Greenwood B PaprockiItaly2025-05-26Chapman, Ross E Esq RENEWAL35Onyama Limba
1008Deepesh P RimAustralia2025-06-09Chapman, Ross E Esq NEGOTIATION9Bernardo Dominic
1009Ricardo F PaprockiGermany2025-06-17Rangoni Of Florence NEW65Elwin Sharvill
1010Salvatore J OstroskyAustralia2025-06-05King, Christopher A Esq NEW98Ivan Magalhaes
1011Sinclair B NickaSpain2025-06-14Truhlar And Truhlar Attys NEGOTIATION63Stephen Shaw
1012Julie H KuskoUnited Kingdom2025-06-03Chanay, Jeffrey A Esq QUALIFIED96Anna Fali
1013Nicolas R RutaItaly2025-06-02Feltz Printing Service NEW44Xuxue Feng
1014Murillo M FollerFrance2025-05-28Feltz Printing Service NEGOTIATION7Asiya Javayant
1015Mujtaba U GauchoUnited Kingdom2025-06-02King, Christopher A Esq UNQUALIFIED49Onyama Limba
1016Nicolas E FollerUnited Kingdom2025-06-04Rangoni Of Florence QUALIFIED36Ioni Bowcher
1017Julie W FollerCanada2025-05-30Printing Dimensions NEGOTIATION33Ivan Magalhaes
1018Johnson R DilliardArgentina2025-06-13Printing Dimensions PROPOSAL98Anna Fali
1019Costa C KolmetzIndia2025-05-24Chapman, Ross E Esq RENEWAL84Asiya Javayant
1020Sinclair K StockhamIndia2025-06-10Feiner Bros RENEWAL32Elwin Sharvill
1021Costa W FigeroaArgentina2025-05-23Printing Dimensions NEGOTIATION62Amy Elsner
1022Maria J MorascaFrance2025-05-20King, Christopher A Esq NEGOTIATION28Asiya Javayant
1023Faith P KolmetzItaly2025-06-13Commercial Press RENEWAL51Asiya Javayant
1024Darci T SaylorsSpain2025-06-11Chemel, James L Cpa NEGOTIATION21Stephen Shaw
1025Chavez V KuskoJapan2025-06-03Chanay, Jeffrey A Esq NEW67Xuxue Feng
1026Francesco W RoysterAustralia2025-06-07Feiner Bros QUALIFIED87Amy Elsner
1027Izzy T OldroydUnited Kingdom2025-06-09King, Christopher A Esq QUALIFIED99Bernardo Dominic
1028Silvio W NestleAustralia2025-06-05Printing Dimensions UNQUALIFIED94Elwin Sharvill
1029Francesco A OldroydUnited Kingdom2025-06-15Printing Dimensions PROPOSAL45Amy Elsner
1030James M VocelkaArgentina2025-06-08Rousseaux, Michael Esq NEGOTIATION70Stephen Shaw
1031Costa B IturbideGermany2025-05-28Dorl, James J Esq NEGOTIATION15Ivan Magalhaes
1032Misaki P DilliardBrazil2025-05-30Printing Dimensions UNQUALIFIED38Ioni Bowcher
1033Greenwood E BologniaUnited Kingdom2025-06-13Rousseaux, Michael Esq PROPOSAL98Bernardo Dominic
1034Aruna P OldroydCanada2025-05-24Chemel, James L Cpa PROPOSAL33Xuxue Feng
1035Aditya M RutaJapan2025-05-31Chapman, Ross E Esq NEGOTIATION59Ioni Bowcher
1036Costa J ButtCanada2025-06-08Rangoni Of Florence QUALIFIED64Ioni Bowcher
1037Maisha F MorascaRussia2025-06-18Benton, John B Jr NEGOTIATION53Xuxue Feng
1038Leja N CampainArgentina2025-05-27Chapman, Ross E Esq QUALIFIED0Elwin Sharvill
1039Johnson A IturbideAustralia2025-06-14Rangoni Of Florence NEW16Anna Fali
1040Misaki E MaletRussia2025-06-14Chapman, Ross E Esq UNQUALIFIED87Elwin Sharvill
1041Maria Q MaletIndia2025-05-30King, Christopher A Esq UNQUALIFIED62Stephen Shaw
1042James F RoysterUnited Kingdom2025-05-26Chanay, Jeffrey A Esq NEGOTIATION65Asiya Javayant
1043Nicolas B DilliardArgentina2025-06-07Printing Dimensions NEGOTIATION91Onyama Limba
1044Adams V RutaFrance2025-05-26Feiner Bros NEW85Amy Elsner
1045Greenwood S ChuiIndia2025-06-09King, Christopher A Esq NEW11Asiya Javayant
1046Cody O VocelkaJapan2025-05-30Printing Dimensions UNQUALIFIED2Bernardo Dominic
1047Juan F MaletFrance2025-05-24King, Christopher A Esq RENEWAL55Stephen Shaw
1048Mujtaba M GlickFrance2025-06-12Truhlar And Truhlar Attys PROPOSAL72Stephen Shaw
1049Stacey U IturbideJapan2025-06-09Feiner Bros NEGOTIATION93Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh D ChuiIndiaIoni Bowcher NEW
Sinclair I FlosiCanadaAsiya Javayant NEW
Morrow H CaudyGermanyAmy Elsner QUALIFIED
Claire L GillianJapanAsiya Javayant NEGOTIATION
Darci J GillianFranceAmy Elsner QUALIFIED
Leja D NestleGermanyOnyama Limba QUALIFIED
Greenwood P FlosiFranceElwin Sharvill QUALIFIED
Aruna C FollerUnited KingdomOnyama Limba NEW
David E FerenczGermanyBernardo Dominic NEGOTIATION
Wickens T SchemmerFranceAsiya Javayant QUALIFIED
Cody N MaletGermanyElwin Sharvill NEGOTIATION
Johnson N WieserIndiaXuxue Feng NEGOTIATION
Emily G NickaArgentinaAsiya Javayant PROPOSAL
Maria G CaldareraAustraliaIvan Magalhaes NEGOTIATION
Munro J FigeroaGermanyXuxue Feng QUALIFIED
Costa L CampainSpainOnyama Limba NEGOTIATION
Silvio C PaprockiFranceAmy Elsner RENEWAL
James E RimCanadaBernardo Dominic UNQUALIFIED
Tony N OldroydRussiaBernardo Dominic QUALIFIED
Isabel X BologniaGermanyIvan Magalhaes UNQUALIFIED
Leja H MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Arvin B DoeGermanyOnyama Limba RENEWAL
Ivar C RutaFranceAmy Elsner RENEWAL
James B BriddickArgentinaAmy Elsner UNQUALIFIED
Juan A AmigonAustraliaAmy Elsner NEW
Salvatore Y StockhamBrazilAnna Fali QUALIFIED
Nicolas V NestleSpainAsiya Javayant QUALIFIED
Jones R DoeBrazilOnyama Limba NEGOTIATION
Juan Y StensethJapanAmy Elsner NEGOTIATION
Alejandro W RoysterItalyBernardo Dominic RENEWAL
James Y AmigonAustraliaAmy Elsner QUALIFIED
Jeanfrancois P RutaSpainBernardo Dominic NEGOTIATION
Leja I CaldareraAustraliaIvan Magalhaes NEGOTIATION
Salvatore C WieserIndiaAnna Fali NEW
Morrow G CaldareraCanadaAsiya Javayant NEW
Arvin Z FerenczUnited KingdomIoni Bowcher RENEWAL
Salvatore M RulapaughRussiaIvan Magalhaes PROPOSAL
Jones S MorascaFranceIoni Bowcher NEGOTIATION
Stacey A NickaRussiaXuxue Feng PROPOSAL
Johnson R NestleGermanyAsiya Javayant NEW
Maria B DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Aruna M MaletCanadaAmy Elsner UNQUALIFIED
Deepesh G CaudySpainAmy Elsner NEW
Julie V GlickFranceAnna Fali UNQUALIFIED
Smith K DarakjyItalyIvan Magalhaes RENEWAL
Jennifer X SchemmerBrazilAsiya Javayant QUALIFIED
Rodrigues V CampainArgentinaBernardo Dominic PROPOSAL
Deepesh G VenereBrazilOnyama Limba PROPOSAL
Emily K SchemmerCanadaIvan Magalhaes NEGOTIATION
Johnson F MarrierBrazilBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Maria C Wieser
James Y Albares
Aruna K Butt
Jones K Albares
Aditya Q Morasca
Antonio M Shinko
Maisha O Stenseth
Izzy V Whobrey
Arvin T Malet
Cody J Whobrey
Alejandro E Rulapaugh
Greenwood Y Rim
Clifford E Waycott
Faith K Wieser
Deepesh H Chui
Greenwood F Gaucho
Salvatore H Schemmer
Maisha Z Whobrey
Maria G Poquette
Julie Q Royster
Greenwood R Sergi
Mujtaba A Whobrey
Julie K Gaucho
Salvatore U Caldarera
Claire F Malet
Kaitlin K Bowley
Adams S Nicka
Munro S Schemmer
Aruna J Ferencz
Octavia F Stenseth
Arvin C Flosi
David P Royster
Greenwood W Glick
Kaitlin R Oldroyd
Octavia Y Vocelka
Claire T Saylors
Jefferson Y Iturbide
Leja O Tollner
Nicolas U Inouye
Claire W Sergi
Mayumi W Sergi
Antonio W Kolmetz
Faith S Glick
Ashley X Poquette
Isabel P Malet
David Q Caldarera
Izzy V Dilliard
Salvatore R Ruta
Emily U Darakjy
Leon E Saylors
IdCountryDate
1000Brazil2025-06-09
1001Russia2025-05-20
1002Spain2025-05-31
1003India2025-06-15
1004Spain2025-06-15
1005Canada2025-06-16
1006Spain2025-05-24
1007Italy2025-05-30
1008Russia2025-05-30
1009Australia2025-06-17
1010Russia2025-06-03
1011United Kingdom2025-05-26
1012Japan2025-05-21
1013Argentina2025-05-20
1014Spain2025-05-31
1015Spain2025-06-13
1016Argentina2025-06-05
1017France2025-06-10
1018United Kingdom2025-06-14
1019Spain2025-06-06
1020Japan2025-05-29
1021Italy2025-06-08
1022France2025-06-10
1023France2025-06-11
1024Canada2025-06-12
1025Argentina2025-06-16
1026Japan2025-06-11
1027Spain2025-05-30
1028India2025-06-03
1029United Kingdom2025-05-20
1030Japan2025-05-25
1031Russia2025-06-11
1032Argentina2025-06-13
1033Russia2025-06-07
1034Germany2025-05-28
1035Argentina2025-05-24
1036Japan2025-06-13
1037Russia2025-05-30
1038Germany2025-06-06
1039Germany2025-06-11
1040India2025-06-04
1041Japan2025-06-13
1042Canada2025-05-31
1043Russia2025-05-22
1044Germany2025-05-27
1045Germany2025-06-12
1046Canada2025-06-12
1047Italy2025-06-07
1048United Kingdom2025-05-25
1049Australia2025-05-30

On-Demand Data

NameIdCountryDate
Antonio Y Campain1000Canada2025-06-14
Faith Y Morasca1001Australia2025-06-11
Maisha R Gaucho1002Spain2025-05-31
Jennifer I Morasca1003Brazil2025-06-01
Octavia R Waycott1004Italy2025-06-14
Juan E Bowley1005Brazil2025-06-09
Maisha Y Poquette1006Brazil2025-05-22
Francesco J Nestle1007United Kingdom2025-06-17
Leon R Dilliard1008Italy2025-05-26
Alejandro N Royster1009India2025-05-31
Julie V Campain1010Australia2025-06-03
Jennifer U Kolmetz1011Spain2025-06-14
Johnson M Paprocki1012France2025-05-27
Aditya N Kolmetz1013France2025-06-02
Rodrigues K Nestle1014India2025-06-05
Clifford B Amigon1015Australia2025-05-21
Darci W Stockham1016United Kingdom2025-05-28
Chavez W Shinko1017Argentina2025-06-18
Arvin M Gillian1018United Kingdom2025-06-17
Munro J Bolognia1019Australia2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey I GauchoItalyXuxue Feng NEGOTIATION
Octavia F DarakjyCanadaIvan Magalhaes RENEWAL
Sinclair W ChuiUnited KingdomAsiya Javayant QUALIFIED
David M BowleyBrazilAsiya Javayant NEW
Nicolas E MarrierBrazilAmy Elsner QUALIFIED
Deepesh J SchemmerSpainOnyama Limba UNQUALIFIED
Aditya O FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Clifford L WieserItalyIoni Bowcher NEW
Greenwood B PoquetteCanadaIoni Bowcher NEW
Adams Q FigeroaGermanyXuxue Feng NEW
Greenwood S DoeGermanyBernardo Dominic QUALIFIED
Aditya T KolmetzSpainOnyama Limba NEW
Kaitlin M DarakjyAustraliaOnyama Limba UNQUALIFIED
Johnson S WhobreyBrazilAmy Elsner UNQUALIFIED
Darci J SaylorsRussiaOnyama Limba QUALIFIED
Jones T RoysterCanadaIvan Magalhaes RENEWAL
Jefferson R DarakjyUnited KingdomOnyama Limba NEGOTIATION
Costa N RimJapanAnna Fali UNQUALIFIED
Jeanfrancois M MorascaUnited KingdomXuxue Feng RENEWAL
Isabel B FlosiCanadaStephen Shaw PROPOSAL
Adams P IturbideSpainAmy Elsner NEW
Aruna R GauchoUnited KingdomStephen Shaw PROPOSAL
Jefferson Y PaprockiArgentinaAsiya Javayant PROPOSAL
Johnson O MarrierJapanElwin Sharvill RENEWAL
Misaki D FlosiCanadaOnyama Limba UNQUALIFIED
Faith U DoeJapanElwin Sharvill QUALIFIED
Isabel C SaylorsFranceAnna Fali NEGOTIATION
James B FigeroaItalyElwin Sharvill UNQUALIFIED
Claire M MaletItalyStephen Shaw UNQUALIFIED
Leon L TollnerAustraliaStephen Shaw QUALIFIED
Maisha I OldroydUnited KingdomAmy Elsner NEGOTIATION
Ivar N FlosiCanadaAnna Fali RENEWAL
Morrow D RulapaughRussiaAnna Fali NEW
Leja I OstroskyAustraliaAnna Fali PROPOSAL
Octavia K BowleyJapanAnna Fali NEW
Jeanfrancois K WaycottRussiaAsiya Javayant NEW
Rodrigues Q RutaItalyIoni Bowcher RENEWAL
Juan L SergiSpainIvan Magalhaes RENEWAL
Rodrigues Q KolmetzIndiaElwin Sharvill QUALIFIED
Claire Q PoquetteIndiaElwin Sharvill 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>