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
Salvatore S SaylorsGermanyBernardo Dominic PROPOSAL
Greenwood X SlusarskiBrazilOnyama Limba QUALIFIED
Costa A GlickCanadaElwin Sharvill UNQUALIFIED
Faith X CaldareraItalyElwin Sharvill PROPOSAL
Ashley S KolmetzArgentinaIoni Bowcher NEGOTIATION
Kaitlin Y VenereIndiaXuxue Feng QUALIFIED
Clifford N SlusarskiIndiaIoni Bowcher NEW
Darci N CampainJapanElwin Sharvill QUALIFIED
Cody P OstroskyGermanyOnyama Limba QUALIFIED
Jefferson V AmigonUnited KingdomXuxue Feng PROPOSAL
Silvio P NestleFranceIoni Bowcher NEW
Smith F SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Ashley R BriddickRussiaBernardo Dominic RENEWAL
Smith M GlickGermanyAnna Fali QUALIFIED
Maria F SchemmerIndiaIvan Magalhaes QUALIFIED
Greenwood U ShinkoSpainXuxue Feng UNQUALIFIED
Kaitlin J DarakjyFranceElwin Sharvill QUALIFIED
Wickens M SlusarskiJapanIvan Magalhaes QUALIFIED
Ivar X BriddickFranceAsiya Javayant NEGOTIATION
Misaki Z StockhamItalyIoni Bowcher UNQUALIFIED
Mujtaba O KolmetzRussiaAsiya Javayant NEW
Francesco J CampainItalyIvan Magalhaes QUALIFIED
Ricardo B RutaItalyIvan Magalhaes NEW
Darci Z WhobreyUnited KingdomXuxue Feng NEW
Nicolas Z ChuiCanadaAmy Elsner NEGOTIATION
Mujtaba W VocelkaCanadaAsiya Javayant PROPOSAL
Morrow K DoeJapanBernardo Dominic NEW
Tony Y ButtGermanyAnna Fali UNQUALIFIED
Silvio Y FlosiBrazilIoni Bowcher RENEWAL
Darci M MorascaSpainOnyama Limba QUALIFIED
Deepesh I BologniaArgentinaAnna Fali QUALIFIED
Johnson T GarufiGermanyXuxue Feng PROPOSAL
Octavia C FigeroaItalyStephen Shaw UNQUALIFIED
Silvio X StockhamCanadaAnna Fali QUALIFIED
Aika H PaprockiUnited KingdomElwin Sharvill QUALIFIED
Mayumi J CampainCanadaAsiya Javayant PROPOSAL
Aika D RoysterGermanyAnna Fali PROPOSAL
Francesco Q DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Aruna E RimArgentinaXuxue Feng UNQUALIFIED
Clifford J VenereFranceIvan Magalhaes QUALIFIED
Kaitlin H KuskoJapanAmy Elsner PROPOSAL
Ivar H NestleArgentinaAmy Elsner NEGOTIATION
Murillo S StensethGermanyAnna Fali RENEWAL
Ivar B StensethGermanyAsiya Javayant NEW
Cody U GlickItalyXuxue Feng QUALIFIED
Ricardo H SlusarskiGermanyElwin Sharvill RENEWAL
James U PoquetteBrazilAnna Fali NEW
Jefferson I VenereRussiaIoni Bowcher UNQUALIFIED
Morrow E MacleadRussiaAnna Fali QUALIFIED
Salvatore U WhobreyItalyBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
James N SaylorsItalyIvan Magalhaes UNQUALIFIED
Aruna N VocelkaItalyOnyama Limba QUALIFIED
Tony G BologniaArgentinaOnyama Limba RENEWAL
Alejandro A WaycottBrazilStephen Shaw RENEWAL
Kaitlin V WaycottIndiaOnyama Limba UNQUALIFIED
Maria M DarakjyRussiaAnna Fali RENEWAL
Adams F PerinSpainIvan Magalhaes NEW
Johnson M KuskoGermanyAnna Fali NEW
Claire A StensethCanadaAsiya Javayant RENEWAL
Clifford P SaylorsBrazilIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba F OstroskyIndia2026-07-09Chapman, Ross E Esq NEW81Xuxue Feng
1001Morrow P OstroskyJapan2026-07-14Buckley Miller Wright UNQUALIFIED80Bernardo Dominic
1002Darci N ButtUnited Kingdom2026-07-19Chemel, James L Cpa RENEWAL92Asiya Javayant
1003Emily G KolmetzItaly2026-06-30Feiner Bros RENEWAL12Anna Fali
1004Ashley Z SlusarskiCanada2026-07-16Morlong Associates PROPOSAL64Onyama Limba
1005Misaki M BriddickFrance2026-07-02Rangoni Of Florence NEGOTIATION66Xuxue Feng
1006Rodrigues I AmigonItaly2026-07-11King, Christopher A Esq QUALIFIED65Stephen Shaw
1007Salvatore T NestleCanada2026-07-06Feltz Printing Service NEGOTIATION69Anna Fali
1008Murillo M FigeroaItaly2026-06-29King, Christopher A Esq RENEWAL74Ivan Magalhaes
1009Clifford F GillianIndia2026-06-21King, Christopher A Esq RENEWAL23Onyama Limba
1010Silvio I AmigonIndia2026-06-27Printing Dimensions QUALIFIED40Elwin Sharvill
1011Salvatore A DoeFrance2026-07-14Feltz Printing Service RENEWAL20Ioni Bowcher
1012Adams U VenereItaly2026-06-25Benton, John B Jr NEGOTIATION86Anna Fali
1013Juan D PoquetteGermany2026-06-20Chanay, Jeffrey A Esq RENEWAL36Onyama Limba
1014Stacey I WhobreyGermany2026-06-26Benton, John B Jr NEGOTIATION57Ivan Magalhaes
1015Costa T StensethBrazil2026-07-08Commercial Press UNQUALIFIED18Elwin Sharvill
1016Alejandro W BriddickFrance2026-07-02Buckley Miller Wright QUALIFIED76Ivan Magalhaes
1017Sinclair A MarrierArgentina2026-07-08Chapman, Ross E Esq RENEWAL19Stephen Shaw
1018Chavez D PerinArgentina2026-07-14Chemel, James L Cpa RENEWAL2Onyama Limba
1019Jennifer Y InouyeIndia2026-06-25King, Christopher A Esq NEGOTIATION82Anna Fali
1020Ricardo Y FollerFrance2026-06-23Buckley Miller Wright RENEWAL4Anna Fali
1021Munro L DoeIndia2026-06-28Feltz Printing Service QUALIFIED67Anna Fali
1022Ashley M CampainJapan2026-06-27Printing Dimensions NEW56Asiya Javayant
1023Tony D MacleadJapan2026-07-10Printing Dimensions PROPOSAL68Anna Fali
1024Cody S KolmetzGermany2026-06-29Buckley Miller Wright NEGOTIATION98Bernardo Dominic
1025Ashley I BowleyBrazil2026-06-26Buckley Miller Wright UNQUALIFIED83Onyama Limba
1026Faith K MacleadFrance2026-07-17Benton, John B Jr UNQUALIFIED45Amy Elsner
1027Munro M OstroskyUnited Kingdom2026-07-03Printing Dimensions UNQUALIFIED82Ivan Magalhaes
1028Ashley T RimJapan2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED95Elwin Sharvill
1029Aditya T MacleadArgentina2026-07-16Benton, John B Jr NEW16Elwin Sharvill
1030Octavia X PerinFrance2026-06-30Feiner Bros QUALIFIED70Xuxue Feng
1031Jones R CaldareraFrance2026-06-22Morlong Associates QUALIFIED34Onyama Limba
1032Murillo Z AlbaresBrazil2026-06-26Chapman, Ross E Esq NEW85Amy Elsner
1033James Q DilliardSpain2026-07-08Chanay, Jeffrey A Esq QUALIFIED65Elwin Sharvill
1034Jeanfrancois B MacleadJapan2026-06-20Chapman, Ross E Esq PROPOSAL53Ivan Magalhaes
1035Greenwood A MaletCanada2026-06-28Commercial Press QUALIFIED60Xuxue Feng
1036Clifford Y TollnerAustralia2026-06-30King, Christopher A Esq PROPOSAL85Ioni Bowcher
1037Morrow E RutaArgentina2026-06-28Truhlar And Truhlar Attys PROPOSAL76Xuxue Feng
1038Greenwood N CaldareraJapan2026-07-19Dorl, James J Esq NEW47Anna Fali
1039Leja D RoysterBrazil2026-07-18Chapman, Ross E Esq PROPOSAL91Stephen Shaw
1040Adams X ShinkoCanada2026-06-25Feltz Printing Service PROPOSAL55Xuxue Feng
1041Maisha A WieserArgentina2026-07-10Chanay, Jeffrey A Esq QUALIFIED43Anna Fali
1042James H CaldareraItaly2026-07-08Truhlar And Truhlar Attys UNQUALIFIED35Xuxue Feng
1043Jennifer L CaudyGermany2026-07-08Commercial Press UNQUALIFIED10Stephen Shaw
1044Mayumi F BologniaCanada2026-07-10Chapman, Ross E Esq UNQUALIFIED42Ivan Magalhaes
1045Jeanfrancois Y GarufiGermany2026-07-04Rangoni Of Florence PROPOSAL8Amy Elsner
1046Greenwood Y FerenczBrazil2026-06-23Dorl, James J Esq RENEWAL18Stephen Shaw
1047Clifford I MorascaUnited Kingdom2026-06-27Chapman, Ross E Esq QUALIFIED24Elwin Sharvill
1048Arvin G MaletBrazil2026-06-28Chanay, Jeffrey A Esq PROPOSAL51Ioni Bowcher
1049Jones Z SergiGermany2026-07-16Benton, John B Jr NEGOTIATION83Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Munro B PoquetteArgentinaElwin Sharvill RENEWAL
Clifford I NestleUnited KingdomXuxue Feng QUALIFIED
Smith G MaletJapanIvan Magalhaes QUALIFIED
Ivar L IturbideSpainAmy Elsner RENEWAL
Faith Z NestleAustraliaAmy Elsner QUALIFIED
Greenwood E SergiJapanElwin Sharvill UNQUALIFIED
Alejandro A BowleyGermanyIoni Bowcher NEGOTIATION
Arvin Z FerenczGermanyIvan Magalhaes NEW
Deepesh H RoysterItalyAnna Fali QUALIFIED
Ricardo P GarufiSpainIvan Magalhaes QUALIFIED
Jennifer X CaudyRussiaAmy Elsner QUALIFIED
Antonio I TollnerFranceAsiya Javayant QUALIFIED
Izzy A CaudyCanadaIvan Magalhaes RENEWAL
Claire T FollerUnited KingdomAnna Fali NEGOTIATION
Silvio S MacleadArgentinaOnyama Limba QUALIFIED
Arvin D RimRussiaElwin Sharvill QUALIFIED
Salvatore E StockhamBrazilAnna Fali QUALIFIED
Ivar Y NestleArgentinaAsiya Javayant PROPOSAL
Misaki C ChuiGermanyAsiya Javayant QUALIFIED
Tony M WhobreyJapanAmy Elsner NEGOTIATION
Costa B GarufiCanadaElwin Sharvill UNQUALIFIED
Antonio G SergiRussiaIoni Bowcher QUALIFIED
Cody T KuskoArgentinaStephen Shaw NEGOTIATION
Juan Y RutaAustraliaIoni Bowcher QUALIFIED
Izzy S ButtFranceBernardo Dominic NEW
Darci B VocelkaItalyIvan Magalhaes RENEWAL
Leon V StockhamIndiaBernardo Dominic UNQUALIFIED
Silvio U MacleadAustraliaIvan Magalhaes PROPOSAL
Kadeem Y GauchoCanadaIvan Magalhaes NEGOTIATION
Octavia K ButtCanadaStephen Shaw RENEWAL
Aditya O PerinSpainIoni Bowcher RENEWAL
Stacey T NickaFranceIvan Magalhaes QUALIFIED
Murillo C ChuiBrazilStephen Shaw PROPOSAL
Munro Z TollnerIndiaStephen Shaw RENEWAL
Mujtaba F RimIndiaAnna Fali NEW
Ashley F TollnerCanadaAsiya Javayant PROPOSAL
Darci O GarufiJapanAmy Elsner NEGOTIATION
Darci Q WaycottIndiaAmy Elsner UNQUALIFIED
Leja D StockhamBrazilElwin Sharvill NEGOTIATION
Arvin G SergiAustraliaAmy Elsner QUALIFIED
James U MarrierBrazilBernardo Dominic PROPOSAL
Tony D PaprockiArgentinaIvan Magalhaes QUALIFIED
Nicolas B FlosiArgentinaAsiya Javayant RENEWAL
Chavez K PerinArgentinaIvan Magalhaes QUALIFIED
Chavez W GlickFranceBernardo Dominic UNQUALIFIED
Aruna Y MacleadAustraliaXuxue Feng RENEWAL
Emily T FerenczBrazilIoni Bowcher RENEWAL
Izzy T KuskoIndiaAnna Fali UNQUALIFIED
Kadeem J MaletCanadaBernardo Dominic RENEWAL
Cody U NestleFranceIoni Bowcher RENEWAL
Frozen Columns
Name
Claire S Waycott
Jennifer I Kolmetz
Johnson Z Bolognia
Silvio Y Darakjy
Silvio C Malet
Ricardo H Marrier
Adams M Sergi
Silvio K Paprocki
David V Inouye
David A Maclead
Octavia I Rulapaugh
Clifford G Marrier
Adams O Slusarski
Faith C Briddick
Aditya M Paprocki
Morrow U Malet
Greenwood U Ferencz
Maisha C Wieser
Clifford S Garufi
Tony Y Ferencz
Johnson F Figeroa
Maria R Campain
Izzy N Bowley
Aditya T Malet
Jeanfrancois M Poquette
Jeanfrancois Q Bowley
Costa X Chui
Darci O Perin
Emily L Stenseth
Deepesh N Caldarera
Ashley F Venere
Misaki X Rulapaugh
Salvatore U Maclead
Misaki U Gillian
Greenwood G Kusko
Tony C Butt
Izzy L Oldroyd
Deepesh R Maclead
Johnson O Foller
Rodrigues W Rulapaugh
Alejandro G Figeroa
Sinclair Z Whobrey
Juan E Caldarera
Nicolas M Marrier
Nicolas A Rulapaugh
Misaki F Sergi
Ashley F Waycott
Kaitlin W Oldroyd
Francesco Q Paprocki
Ricardo C Slusarski
IdCountryDate
1000Canada2026-06-23
1001France2026-06-27
1002France2026-07-02
1003Argentina2026-07-07
1004Italy2026-06-26
1005Canada2026-06-26
1006Italy2026-07-04
1007Japan2026-06-25
1008Argentina2026-06-20
1009Argentina2026-07-03
1010Italy2026-06-21
1011Australia2026-06-20
1012United Kingdom2026-07-19
1013France2026-07-17
1014Brazil2026-07-04
1015Canada2026-06-26
1016Japan2026-07-15
1017Argentina2026-07-06
1018Canada2026-06-22
1019France2026-07-16
1020Russia2026-07-09
1021France2026-06-25
1022Japan2026-07-02
1023India2026-07-08
1024Australia2026-06-23
1025France2026-06-20
1026Japan2026-07-11
1027Italy2026-07-19
1028Spain2026-06-26
1029Brazil2026-06-27
1030Brazil2026-06-20
1031Spain2026-07-13
1032Germany2026-07-15
1033Spain2026-07-01
1034Canada2026-07-02
1035Japan2026-07-04
1036France2026-07-09
1037India2026-07-09
1038Russia2026-06-20
1039United Kingdom2026-06-20
1040Brazil2026-07-08
1041Argentina2026-06-21
1042Russia2026-06-28
1043Germany2026-06-28
1044Canada2026-06-21
1045Argentina2026-07-19
1046Italy2026-07-11
1047Russia2026-06-26
1048Argentina2026-07-07
1049Spain2026-07-14

On-Demand Data

NameIdCountryDate
Aika N Schemmer1000Australia2026-07-04
Silvio I Garufi1001Russia2026-06-27
Kadeem V Slusarski1002Canada2026-07-19
Salvatore U Paprocki1003Russia2026-06-21
Ashley K Royster1004United Kingdom2026-07-16
David T Campain1005Russia2026-07-18
Nicolas Y Flosi1006Germany2026-07-12
Emily D Albares1007Russia2026-06-29
Antonio B Marrier1008Spain2026-06-20
Cody Y Tollner1009Japan2026-06-22
Jennifer K Poquette1010Italy2026-07-14
Julie O Foller1011Germany2026-07-02
Sinclair G Butt1012United Kingdom2026-07-13
Clifford N Dilliard1013Canada2026-07-05
Sinclair M Ferencz1014Germany2026-07-06
Mayumi C Oldroyd1015India2026-06-23
Deepesh X Amigon1016Brazil2026-07-07
Salvatore I Dilliard1017Canada2026-07-06
James O Albares1018Germany2026-07-15
Maria U Albares1019Germany2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci G SergiGermanyBernardo Dominic UNQUALIFIED
Emily G StockhamUnited KingdomXuxue Feng NEGOTIATION
Francesco A MarrierRussiaAmy Elsner RENEWAL
Ricardo I VenereIndiaAnna Fali QUALIFIED
Adams M CaldareraUnited KingdomAmy Elsner RENEWAL
Isabel U WhobreyJapanAnna Fali NEW
Alejandro F MaletAustraliaStephen Shaw PROPOSAL
Costa F GauchoJapanIoni Bowcher QUALIFIED
Izzy J DoeJapanElwin Sharvill NEGOTIATION
Jones O VenereJapanXuxue Feng NEW
James R RulapaughSpainAmy Elsner RENEWAL
Kaitlin E MaletJapanAnna Fali PROPOSAL
Johnson L StockhamUnited KingdomAnna Fali RENEWAL
Aika G SchemmerUnited KingdomAsiya Javayant RENEWAL
Maria B CampainItalyAnna Fali UNQUALIFIED
Julie V BologniaSpainIvan Magalhaes PROPOSAL
Leon Y DilliardSpainXuxue Feng UNQUALIFIED
Mujtaba L RoysterJapanXuxue Feng NEW
Johnson K DarakjyUnited KingdomXuxue Feng NEGOTIATION
Ashley K MacleadArgentinaAnna Fali PROPOSAL
Arvin N NestleCanadaAsiya Javayant PROPOSAL
Kadeem G DarakjyItalyIoni Bowcher PROPOSAL
Izzy R IturbideCanadaAsiya Javayant NEW
Misaki U GillianFranceElwin Sharvill PROPOSAL
Aditya V SaylorsUnited KingdomAnna Fali QUALIFIED
Kaitlin W ShinkoSpainStephen Shaw QUALIFIED
Adams X SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues E AlbaresSpainBernardo Dominic RENEWAL
Greenwood J IturbideFranceIvan Magalhaes RENEWAL
Ivar C BriddickGermanyIoni Bowcher PROPOSAL
David G StockhamArgentinaIvan Magalhaes QUALIFIED
Aika P RimBrazilIvan Magalhaes PROPOSAL
Jeanfrancois J DoeBrazilIoni Bowcher UNQUALIFIED
Izzy F ChuiGermanyIvan Magalhaes UNQUALIFIED
Cody O MorascaArgentinaStephen Shaw NEGOTIATION
Emily E NickaFranceElwin Sharvill RENEWAL
Sinclair Y KuskoArgentinaIvan Magalhaes NEGOTIATION
Johnson N NickaAustraliaAnna Fali PROPOSAL
Mujtaba F RoysterCanadaBernardo Dominic QUALIFIED
Sinclair H CampainArgentinaXuxue Feng NEGOTIATION

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