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
Aika K DoeSpainElwin Sharvill NEW
Alejandro J FlosiAustraliaBernardo Dominic RENEWAL
Claire G InouyeItalyBernardo Dominic QUALIFIED
Smith Y SlusarskiJapanAnna Fali NEW
Juan A BriddickUnited KingdomAsiya Javayant NEGOTIATION
Claire F CaldareraGermanyElwin Sharvill UNQUALIFIED
Jones V BologniaArgentinaIvan Magalhaes QUALIFIED
Greenwood T ButtUnited KingdomStephen Shaw PROPOSAL
Darci T NickaItalyElwin Sharvill QUALIFIED
Isabel R OldroydSpainAnna Fali NEGOTIATION
Jeanfrancois V PerinJapanAnna Fali NEGOTIATION
Claire G FerenczJapanAsiya Javayant PROPOSAL
Arvin J ChuiArgentinaElwin Sharvill PROPOSAL
Maria H MarrierBrazilAnna Fali NEW
Smith B PoquetteFranceAmy Elsner PROPOSAL
Leja E FollerRussiaAnna Fali RENEWAL
Deepesh U VenereGermanyXuxue Feng QUALIFIED
Aditya X RimArgentinaAmy Elsner PROPOSAL
Misaki S StockhamAustraliaOnyama Limba NEGOTIATION
Johnson R ShinkoCanadaAmy Elsner QUALIFIED
Sinclair K WieserGermanyElwin Sharvill QUALIFIED
Stacey U CaudyIndiaIvan Magalhaes NEGOTIATION
Murillo T WieserArgentinaAmy Elsner NEW
David U PerinItalyElwin Sharvill NEW
Misaki L StensethIndiaStephen Shaw PROPOSAL
Ashley W DilliardBrazilIvan Magalhaes PROPOSAL
Murillo K DarakjyJapanBernardo Dominic PROPOSAL
Aika T SlusarskiJapanIvan Magalhaes RENEWAL
Murillo S ShinkoGermanyXuxue Feng UNQUALIFIED
Murillo O InouyeArgentinaAmy Elsner UNQUALIFIED
Mayumi W RoysterItalyElwin Sharvill NEW
Ricardo G WieserBrazilElwin Sharvill QUALIFIED
Adams F GarufiUnited KingdomBernardo Dominic PROPOSAL
Chavez Q MacleadItalyElwin Sharvill NEGOTIATION
Tony R ChuiIndiaIoni Bowcher NEW
Costa T DarakjyFranceBernardo Dominic PROPOSAL
Salvatore E ButtJapanOnyama Limba NEW
Jones O RutaUnited KingdomBernardo Dominic PROPOSAL
Alejandro G OldroydItalyOnyama Limba NEW
Leon L GlickItalyBernardo Dominic NEW
Ricardo D RulapaughGermanyIvan Magalhaes NEGOTIATION
David B SaylorsGermanyOnyama Limba PROPOSAL
Kaitlin N WieserIndiaAsiya Javayant NEW
Wickens B BowleyGermanyAsiya Javayant QUALIFIED
David U ShinkoUnited KingdomOnyama Limba QUALIFIED
Stacey V WieserAustraliaIvan Magalhaes RENEWAL
Murillo W MaletItalyAmy Elsner PROPOSAL
Izzy N BriddickArgentinaElwin Sharvill NEGOTIATION
Costa U IturbideGermanyStephen Shaw PROPOSAL
Costa B IturbideItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody N FigeroaCanadaBernardo Dominic NEW
Francesco N BologniaIndiaStephen Shaw RENEWAL
Deepesh U FlosiIndiaXuxue Feng QUALIFIED
Claire H DarakjyAustraliaBernardo Dominic UNQUALIFIED
Munro E ShinkoJapanIvan Magalhaes NEGOTIATION
James B CaldareraFranceAnna Fali QUALIFIED
Mujtaba F MorascaUnited KingdomStephen Shaw RENEWAL
Tony U WhobreyIndiaAnna Fali NEW
Misaki V KuskoIndiaXuxue Feng PROPOSAL
Faith C StensethIndiaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki V KuskoItaly2026-08-20Rousseaux, Michael Esq NEW53Asiya Javayant
1001Munro C RulapaughGermany2026-08-19Rousseaux, Michael Esq NEW44Asiya Javayant
1002Aika N VocelkaCanada2026-08-04Commercial Press UNQUALIFIED29Ivan Magalhaes
1003Deepesh L AmigonCanada2026-08-19Rangoni Of Florence NEW18Bernardo Dominic
1004Ricardo S SaylorsSpain2026-08-01Chemel, James L Cpa NEW89Bernardo Dominic
1005Johnson B RimSpain2026-08-11Feltz Printing Service QUALIFIED45Bernardo Dominic
1006Alejandro T TollnerItaly2026-08-15Dorl, James J Esq PROPOSAL0Amy Elsner
1007Izzy D FlosiRussia2026-08-22Rousseaux, Michael Esq UNQUALIFIED38Ivan Magalhaes
1008Kaitlin I CaldareraIndia2026-08-23King, Christopher A Esq RENEWAL55Bernardo Dominic
1009Stacey N NestleAustralia2026-08-10Chapman, Ross E Esq NEGOTIATION57Ioni Bowcher
1010Juan K MacleadArgentina2026-08-23Printing Dimensions QUALIFIED13Ioni Bowcher
1011Smith M MaletRussia2026-08-19Buckley Miller Wright UNQUALIFIED74Xuxue Feng
1012Sinclair U GarufiIndia2026-08-17Chapman, Ross E Esq NEW46Bernardo Dominic
1013Deepesh M DilliardJapan2026-08-12Buckley Miller Wright QUALIFIED16Xuxue Feng
1014David C MaletIndia2026-07-31Chapman, Ross E Esq QUALIFIED88Amy Elsner
1015Jefferson L FlosiFrance2026-07-29Chapman, Ross E Esq PROPOSAL44Anna Fali
1016Jennifer L CaudyBrazil2026-08-16Printing Dimensions NEW29Anna Fali
1017Kadeem R ShinkoUnited Kingdom2026-08-02King, Christopher A Esq NEW87Onyama Limba
1018Isabel C FigeroaFrance2026-08-21Chapman, Ross E Esq NEW20Ivan Magalhaes
1019Jennifer B MaletSpain2026-08-10King, Christopher A Esq PROPOSAL59Bernardo Dominic
1020Murillo T InouyeCanada2026-08-04Commercial Press NEGOTIATION76Ivan Magalhaes
1021Juan Q ShinkoSpain2026-08-09King, Christopher A Esq NEW84Xuxue Feng
1022Aditya G PerinBrazil2026-08-08Buckley Miller Wright UNQUALIFIED13Ivan Magalhaes
1023Jeanfrancois L IturbideSpain2026-08-21Rousseaux, Michael Esq NEGOTIATION85Onyama Limba
1024Ivar S MaletArgentina2026-08-22Chanay, Jeffrey A Esq QUALIFIED91Asiya Javayant
1025Kadeem L SaylorsIndia2026-08-03Rousseaux, Michael Esq NEGOTIATION20Stephen Shaw
1026Aika K AmigonAustralia2026-08-25Printing Dimensions NEW96Ioni Bowcher
1027Ricardo V OldroydCanada2026-08-11Feltz Printing Service NEW69Onyama Limba
1028Munro Y InouyeRussia2026-08-08Chemel, James L Cpa NEGOTIATION15Asiya Javayant
1029Murillo L MarrierItaly2026-08-08Chemel, James L Cpa QUALIFIED3Asiya Javayant
1030Julie P OstroskyRussia2026-08-03Dorl, James J Esq UNQUALIFIED55Bernardo Dominic
1031Stacey R SlusarskiGermany2026-08-05Chanay, Jeffrey A Esq NEW98Bernardo Dominic
1032Jeanfrancois K StockhamSpain2026-07-29King, Christopher A Esq PROPOSAL7Stephen Shaw
1033Aditya Q KolmetzIndia2026-08-07Printing Dimensions RENEWAL22Amy Elsner
1034Alejandro Y WieserAustralia2026-08-20Dorl, James J Esq NEGOTIATION58Stephen Shaw
1035Smith Q MarrierBrazil2026-08-11Chemel, James L Cpa NEGOTIATION55Asiya Javayant
1036Kadeem B ButtRussia2026-08-23Chapman, Ross E Esq QUALIFIED47Amy Elsner
1037James C MacleadAustralia2026-08-18Feiner Bros QUALIFIED24Ioni Bowcher
1038Ivar E NestleItaly2026-08-07Chanay, Jeffrey A Esq NEW4Xuxue Feng
1039Darci F FerenczGermany2026-08-03Benton, John B Jr RENEWAL20Amy Elsner
1040Izzy X VocelkaCanada2026-08-15Morlong Associates NEW17Stephen Shaw
1041Maisha W FerenczRussia2026-08-03Feltz Printing Service NEGOTIATION33Stephen Shaw
1042Darci E BologniaJapan2026-08-13Rousseaux, Michael Esq UNQUALIFIED70Ioni Bowcher
1043David G ButtSpain2026-08-26Dorl, James J Esq NEW85Anna Fali
1044Darci M RimJapan2026-08-13King, Christopher A Esq UNQUALIFIED26Onyama Limba
1045Cody O RulapaughUnited Kingdom2026-08-11Morlong Associates PROPOSAL34Bernardo Dominic
1046Silvio A PoquetteFrance2026-08-14Chapman, Ross E Esq NEW45Xuxue Feng
1047Adams F MarrierRussia2026-08-22Truhlar And Truhlar Attys UNQUALIFIED40Amy Elsner
1048David G FigeroaSpain2026-08-11Benton, John B Jr QUALIFIED20Bernardo Dominic
1049Arvin O WieserJapan2026-07-29Truhlar And Truhlar Attys UNQUALIFIED29Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Silvio F PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Maisha S RoysterCanadaIvan Magalhaes PROPOSAL
Munro Y GillianArgentinaAnna Fali UNQUALIFIED
Wickens D KuskoIndiaAmy Elsner NEW
Maisha W FollerRussiaXuxue Feng PROPOSAL
Jefferson A RimJapanAmy Elsner PROPOSAL
Jones D ShinkoRussiaIoni Bowcher NEW
Mujtaba S GauchoGermanyXuxue Feng QUALIFIED
Chavez A BriddickUnited KingdomIvan Magalhaes RENEWAL
Morrow Y ButtArgentinaElwin Sharvill NEGOTIATION
Octavia D DoeRussiaAnna Fali QUALIFIED
Francesco V StockhamItalyAmy Elsner QUALIFIED
Ricardo N KuskoUnited KingdomStephen Shaw UNQUALIFIED
Emily K ShinkoItalyBernardo Dominic NEW
Tony Y WieserRussiaXuxue Feng UNQUALIFIED
Arvin P StensethGermanyAmy Elsner NEGOTIATION
Jones D GlickAustraliaAnna Fali NEW
Maisha N FollerIndiaAmy Elsner RENEWAL
Julie J WhobreySpainAnna Fali RENEWAL
Sinclair O OldroydSpainIoni Bowcher NEW
Maria J KuskoArgentinaIoni Bowcher PROPOSAL
Leja N FigeroaIndiaIvan Magalhaes RENEWAL
Tony X BriddickBrazilStephen Shaw UNQUALIFIED
Smith G RutaArgentinaAnna Fali NEW
Ricardo Y PerinRussiaAnna Fali PROPOSAL
Sinclair H TollnerCanadaAnna Fali QUALIFIED
Ivar P DilliardIndiaIoni Bowcher UNQUALIFIED
Kaitlin C ChuiArgentinaStephen Shaw UNQUALIFIED
Claire C MarrierFranceStephen Shaw UNQUALIFIED
Munro O AlbaresUnited KingdomIvan Magalhaes NEW
Octavia H BowleyCanadaAmy Elsner RENEWAL
Ricardo A MarrierFranceOnyama Limba NEW
Morrow S NestleJapanIoni Bowcher PROPOSAL
Alejandro A FollerJapanXuxue Feng NEW
Mayumi E FlosiItalyIvan Magalhaes UNQUALIFIED
Salvatore L KolmetzJapanXuxue Feng UNQUALIFIED
Antonio I CaudyItalyBernardo Dominic NEW
Munro Z IturbideFranceOnyama Limba NEW
Tony Z TollnerItalyElwin Sharvill NEW
Misaki O KuskoBrazilElwin Sharvill NEW
Sinclair S MaletArgentinaOnyama Limba NEW
Cody K SaylorsArgentinaIoni Bowcher RENEWAL
Greenwood Z DarakjyRussiaOnyama Limba NEGOTIATION
Tony X PaprockiSpainBernardo Dominic QUALIFIED
Aika Y PaprockiRussiaAnna Fali NEW
Deepesh X WhobreyArgentinaAmy Elsner RENEWAL
Rodrigues X RutaSpainIvan Magalhaes RENEWAL
Munro X SlusarskiSpainIvan Magalhaes RENEWAL
Adams C MaletItalyBernardo Dominic RENEWAL
Alejandro R RimCanadaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Aika A Poquette
Julie O Briddick
Jeanfrancois I Royster
Nicolas B Saylors
Darci Y Gillian
Aika M Marrier
Maisha S Albares
David F Flosi
Johnson U Amigon
Johnson Y Darakjy
Francesco B Dilliard
Mayumi U Schemmer
Misaki U Maclead
David D Rulapaugh
Darci Q Oldroyd
Munro G Bolognia
Maria J Foller
Kadeem A Doe
Julie Y Dilliard
Jefferson H Stockham
Munro Z Dilliard
Faith S Butt
Maisha F Maclead
Juan R Chui
Maria B Tollner
Nicolas O Foller
Chavez U Figeroa
Antonio J Poquette
Ricardo F Kolmetz
Costa L Saylors
Rodrigues N Slusarski
Stacey R Rim
Mujtaba O Schemmer
Aika A Darakjy
Clifford V Garufi
Silvio Y Kusko
Morrow W Gaucho
Izzy R Briddick
Chavez W Darakjy
Cody N Ostrosky
Jennifer J Bowley
Ricardo M Waycott
Darci O Tollner
Octavia D Saylors
Claire M Malet
Ashley P Butt
Aditya G Garufi
Wickens E Poquette
Tony L Stenseth
Ricardo E Schemmer
IdCountryDate
1000Japan2026-08-11
1001Canada2026-08-25
1002Italy2026-08-19
1003Canada2026-08-07
1004Russia2026-08-25
1005Brazil2026-08-27
1006Australia2026-08-02
1007Argentina2026-08-22
1008Canada2026-08-01
1009France2026-07-29
1010Brazil2026-08-25
1011Argentina2026-08-08
1012Australia2026-08-09
1013Japan2026-08-03
1014Canada2026-08-03
1015Brazil2026-08-03
1016Spain2026-08-12
1017United Kingdom2026-08-13
1018Italy2026-08-25
1019Japan2026-08-11
1020Brazil2026-08-27
1021United Kingdom2026-08-02
1022Russia2026-08-27
1023Germany2026-08-05
1024Argentina2026-07-29
1025Japan2026-07-29
1026Australia2026-08-04
1027Canada2026-08-21
1028Italy2026-08-05
1029France2026-07-31
1030Japan2026-08-26
1031Australia2026-08-13
1032Japan2026-07-29
1033Germany2026-08-23
1034Spain2026-08-04
1035Spain2026-08-13
1036Argentina2026-08-13
1037Brazil2026-08-01
1038United Kingdom2026-08-12
1039United Kingdom2026-08-14
1040Brazil2026-08-12
1041France2026-08-25
1042Germany2026-08-24
1043Australia2026-08-05
1044Germany2026-08-06
1045Brazil2026-07-30
1046Canada2026-08-19
1047Japan2026-08-03
1048Brazil2026-08-06
1049United Kingdom2026-08-01

On-Demand Data

NameIdCountryDate
Francesco J Ruta1000Spain2026-07-29
Salvatore M Amigon1001Australia2026-08-07
Isabel K Butt1002Russia2026-08-13
Sinclair C Campain1003Brazil2026-08-04
Kadeem K Doe1004Brazil2026-08-27
Darci P Paprocki1005Canada2026-08-23
Maria V Butt1006Australia2026-07-31
Mujtaba Z Briddick1007United Kingdom2026-08-07
Clifford E Caudy1008Spain2026-08-10
Mayumi Z Kolmetz1009United Kingdom2026-08-23
Juan K Schemmer1010Brazil2026-08-19
Arvin V Stenseth1011Brazil2026-08-04
Faith G Caldarera1012Brazil2026-08-01
Greenwood N Flosi1013Brazil2026-08-07
Salvatore S Oldroyd1014Argentina2026-08-06
Sinclair O Saylors1015Australia2026-07-31
Mujtaba X Sergi1016France2026-08-18
Costa Y Amigon1017India2026-08-04
Izzy O Bowley1018Argentina2026-08-03
Aditya T Malet1019India2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo M TollnerCanadaBernardo Dominic NEW
Isabel Q GarufiUnited KingdomIoni Bowcher RENEWAL
Jefferson X PoquetteUnited KingdomBernardo Dominic NEW
Smith X SergiBrazilAnna Fali NEGOTIATION
Tony T StensethAustraliaAmy Elsner RENEWAL
Claire N BriddickItalyAmy Elsner QUALIFIED
James Z MacleadArgentinaElwin Sharvill QUALIFIED
Misaki E OldroydBrazilIvan Magalhaes UNQUALIFIED
Johnson M FlosiBrazilAmy Elsner NEW
James B RutaItalyOnyama Limba NEGOTIATION
Leon U OldroydFranceAnna Fali NEGOTIATION
Smith N GlickAustraliaIvan Magalhaes RENEWAL
Leja A KuskoJapanAmy Elsner UNQUALIFIED
Silvio V WieserArgentinaXuxue Feng QUALIFIED
Mujtaba K BowleyArgentinaAnna Fali NEGOTIATION
Maria B DarakjyItalyAmy Elsner RENEWAL
Leja E NickaCanadaBernardo Dominic UNQUALIFIED
Claire Y PerinItalyAsiya Javayant QUALIFIED
Nicolas X StensethUnited KingdomAsiya Javayant RENEWAL
Mayumi C KolmetzAustraliaAsiya Javayant NEGOTIATION
Rodrigues V NickaJapanAnna Fali NEW
Darci W StensethGermanyOnyama Limba UNQUALIFIED
Silvio X WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez F GillianRussiaAmy Elsner PROPOSAL
Kadeem T GlickIndiaAsiya Javayant NEW
Jefferson I InouyeRussiaIoni Bowcher UNQUALIFIED
Ricardo V DoeBrazilOnyama Limba RENEWAL
Sinclair M ButtRussiaAmy Elsner PROPOSAL
Greenwood O BologniaFranceOnyama Limba NEGOTIATION
Kadeem B MorascaGermanyIvan Magalhaes PROPOSAL
Jefferson Y MorascaUnited KingdomOnyama Limba RENEWAL
Julie G MorascaUnited KingdomOnyama Limba PROPOSAL
Ricardo W ChuiAustraliaIvan Magalhaes NEGOTIATION
Rodrigues S VenereFranceIoni Bowcher RENEWAL
Aruna A RutaBrazilAmy Elsner NEGOTIATION
Maria N SlusarskiItalyAmy Elsner PROPOSAL
Silvio I SergiFranceAsiya Javayant RENEWAL
Ivar H CaldareraCanadaIoni Bowcher NEW
Jefferson J SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Deepesh J SaylorsFranceBernardo Dominic 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>