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
Julie D SchemmerItalyBernardo Dominic NEW
Octavia V NestleBrazilElwin Sharvill RENEWAL
Darci E ShinkoGermanyBernardo Dominic UNQUALIFIED
Munro R SlusarskiIndiaOnyama Limba NEGOTIATION
Claire K VenereSpainStephen Shaw RENEWAL
Mayumi W FollerFranceElwin Sharvill PROPOSAL
Mujtaba Z DarakjyJapanOnyama Limba RENEWAL
Tony N SchemmerSpainXuxue Feng UNQUALIFIED
Silvio W RimCanadaXuxue Feng RENEWAL
Octavia X ButtIndiaIvan Magalhaes PROPOSAL
Leon C PaprockiGermanyAsiya Javayant NEGOTIATION
Kadeem H SaylorsCanadaElwin Sharvill QUALIFIED
Jones C DoeFranceIvan Magalhaes RENEWAL
Juan G CampainGermanyIvan Magalhaes NEGOTIATION
Ashley N MarrierSpainIoni Bowcher UNQUALIFIED
Nicolas M RulapaughAustraliaElwin Sharvill PROPOSAL
Maria Q AlbaresAustraliaAnna Fali QUALIFIED
Morrow H GlickGermanyStephen Shaw NEGOTIATION
Juan R ShinkoUnited KingdomStephen Shaw QUALIFIED
Morrow F GarufiSpainAnna Fali UNQUALIFIED
Mujtaba F OstroskyAustraliaOnyama Limba NEGOTIATION
Clifford G StensethIndiaAnna Fali NEW
Salvatore H CampainCanadaIoni Bowcher NEW
Juan N KuskoSpainAnna Fali QUALIFIED
Stacey V RutaUnited KingdomOnyama Limba NEW
Julie A MorascaSpainIoni Bowcher UNQUALIFIED
Deepesh I CaldareraCanadaElwin Sharvill UNQUALIFIED
Mayumi Q WhobreyCanadaAsiya Javayant QUALIFIED
Ricardo B OstroskyIndiaElwin Sharvill PROPOSAL
Chavez W MaletBrazilOnyama Limba NEW
Mayumi Q FerenczSpainBernardo Dominic PROPOSAL
Silvio N ButtCanadaElwin Sharvill PROPOSAL
Costa C FerenczGermanyIoni Bowcher UNQUALIFIED
Stacey P GillianCanadaIoni Bowcher RENEWAL
Cody V WieserFranceXuxue Feng RENEWAL
Rodrigues Q DoeCanadaXuxue Feng NEW
Emily E RoysterAustraliaBernardo Dominic UNQUALIFIED
Adams F ChuiUnited KingdomIvan Magalhaes NEW
Munro M CaudyRussiaXuxue Feng UNQUALIFIED
Tony L OstroskyBrazilAsiya Javayant NEW
Clifford F AmigonSpainXuxue Feng NEGOTIATION
Ashley V WaycottIndiaOnyama Limba UNQUALIFIED
Jefferson E VocelkaBrazilIoni Bowcher PROPOSAL
Ivar Z OstroskyUnited KingdomElwin Sharvill PROPOSAL
Rodrigues H StensethJapanXuxue Feng NEGOTIATION
Deepesh O MorascaCanadaIoni Bowcher RENEWAL
Maria C FlosiSpainOnyama Limba RENEWAL
Costa K GlickGermanyIoni Bowcher PROPOSAL
Antonio S MacleadIndiaXuxue Feng UNQUALIFIED
Nicolas F SlusarskiCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio X StockhamFranceIoni Bowcher PROPOSAL
Maisha V MorascaBrazilIoni Bowcher NEW
Tony J NickaSpainAsiya Javayant NEW
Murillo A StensethItalyAnna Fali UNQUALIFIED
Kaitlin R GillianFranceAmy Elsner PROPOSAL
Jennifer Z StensethUnited KingdomIoni Bowcher NEGOTIATION
Kaitlin Q DarakjyIndiaStephen Shaw NEW
Ivar Q StensethItalyAsiya Javayant QUALIFIED
Jones K MaletArgentinaStephen Shaw PROPOSAL
Clifford I VocelkaRussiaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon J VenereFrance2026-07-20King, Christopher A Esq NEW10Bernardo Dominic
1001Tony P ChuiBrazil2026-08-10Rousseaux, Michael Esq UNQUALIFIED12Onyama Limba
1002Arvin Q MacleadCanada2026-08-04Feltz Printing Service QUALIFIED90Amy Elsner
1003James W VenereArgentina2026-07-30Truhlar And Truhlar Attys PROPOSAL85Bernardo Dominic
1004Alejandro L AmigonRussia2026-08-01Dorl, James J Esq NEW5Onyama Limba
1005Jones M ShinkoIndia2026-07-23Morlong Associates PROPOSAL48Bernardo Dominic
1006Darci V FigeroaCanada2026-08-05Benton, John B Jr UNQUALIFIED4Onyama Limba
1007Mayumi W PerinArgentina2026-07-29Feiner Bros RENEWAL42Asiya Javayant
1008Julie F FerenczGermany2026-08-11Truhlar And Truhlar Attys UNQUALIFIED88Asiya Javayant
1009Claire N ShinkoItaly2026-07-23Morlong Associates UNQUALIFIED69Anna Fali
1010Aika K PerinRussia2026-08-12Buckley Miller Wright QUALIFIED13Ivan Magalhaes
1011Murillo Q RutaUnited Kingdom2026-07-25Printing Dimensions NEW70Elwin Sharvill
1012Maria J CaudyBrazil2026-08-02Feiner Bros NEGOTIATION23Ioni Bowcher
1013Claire W WhobreyUnited Kingdom2026-07-21Morlong Associates NEW30Ivan Magalhaes
1014Nicolas C WieserGermany2026-07-22Feltz Printing Service NEW34Bernardo Dominic
1015Johnson S RoysterItaly2026-07-26Printing Dimensions PROPOSAL50Bernardo Dominic
1016Leja F FerenczCanada2026-07-19Commercial Press RENEWAL88Ivan Magalhaes
1017Rodrigues L KolmetzFrance2026-07-23Commercial Press QUALIFIED91Asiya Javayant
1018Ricardo Z CaldareraSpain2026-07-30Dorl, James J Esq PROPOSAL62Amy Elsner
1019Kaitlin Q KolmetzGermany2026-07-22Rousseaux, Michael Esq UNQUALIFIED81Onyama Limba
1020Aditya Y GlickRussia2026-08-14Benton, John B Jr NEW5Ioni Bowcher
1021Munro E MarrierArgentina2026-08-13Rousseaux, Michael Esq NEGOTIATION18Elwin Sharvill
1022Izzy X CampainGermany2026-08-13Feiner Bros RENEWAL17Asiya Javayant
1023Emily D PoquetteSpain2026-07-16Truhlar And Truhlar Attys PROPOSAL87Asiya Javayant
1024Juan Y MarrierIndia2026-08-09Dorl, James J Esq NEGOTIATION20Amy Elsner
1025Clifford N ChuiAustralia2026-07-16Dorl, James J Esq NEW86Bernardo Dominic
1026Francesco W SergiBrazil2026-07-17Chapman, Ross E Esq UNQUALIFIED66Onyama Limba
1027Nicolas T ButtAustralia2026-08-03Truhlar And Truhlar Attys PROPOSAL85Bernardo Dominic
1028Rodrigues P WhobreyCanada2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED42Ioni Bowcher
1029Ricardo P RulapaughIndia2026-07-25Chanay, Jeffrey A Esq PROPOSAL82Bernardo Dominic
1030Isabel J RulapaughGermany2026-08-04Chanay, Jeffrey A Esq RENEWAL21Bernardo Dominic
1031Darci X WaycottAustralia2026-08-12Commercial Press UNQUALIFIED95Ioni Bowcher
1032Mujtaba C MaletFrance2026-08-06Printing Dimensions PROPOSAL70Ivan Magalhaes
1033Maisha Q WaycottFrance2026-08-05Rangoni Of Florence RENEWAL75Bernardo Dominic
1034Deepesh M GlickFrance2026-07-29Feiner Bros NEGOTIATION89Onyama Limba
1035Ashley O WieserArgentina2026-07-25Printing Dimensions UNQUALIFIED57Stephen Shaw
1036Maria W NestleIndia2026-07-26Rangoni Of Florence RENEWAL66Amy Elsner
1037Darci Y RutaCanada2026-08-02Printing Dimensions NEW0Stephen Shaw
1038Kadeem H KuskoRussia2026-07-20Rousseaux, Michael Esq NEW51Anna Fali
1039Faith G MarrierAustralia2026-08-03Rangoni Of Florence UNQUALIFIED86Bernardo Dominic
1040Aditya F MaletArgentina2026-08-12Commercial Press NEW96Anna Fali
1041Mayumi C NickaRussia2026-08-13Benton, John B Jr NEW38Stephen Shaw
1042Leja W KuskoJapan2026-07-21King, Christopher A Esq PROPOSAL21Elwin Sharvill
1043Leon Y ShinkoItaly2026-07-22Rangoni Of Florence RENEWAL95Ivan Magalhaes
1044Jennifer L FollerAustralia2026-08-07Morlong Associates NEGOTIATION22Onyama Limba
1045Claire P BriddickCanada2026-08-04Morlong Associates NEW93Anna Fali
1046Maisha T TollnerGermany2026-08-10Chanay, Jeffrey A Esq NEGOTIATION92Ivan Magalhaes
1047Jones M VenereAustralia2026-07-31Chanay, Jeffrey A Esq NEGOTIATION57Asiya Javayant
1048Nicolas I OstroskySpain2026-07-29Chanay, Jeffrey A Esq RENEWAL47Asiya Javayant
1049Jennifer Z GlickFrance2026-08-03Commercial Press UNQUALIFIED6Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Stacey O NestleFranceAnna Fali NEW
Silvio A SergiSpainXuxue Feng NEW
Morrow A SaylorsUnited KingdomStephen Shaw NEGOTIATION
Francesco B RutaRussiaStephen Shaw NEGOTIATION
Leja D BologniaBrazilXuxue Feng PROPOSAL
Faith F DoeGermanyOnyama Limba QUALIFIED
Cody D SlusarskiGermanyBernardo Dominic NEW
Jennifer N CaudyCanadaOnyama Limba NEGOTIATION
David G OstroskyIndiaElwin Sharvill NEW
Sinclair H SaylorsCanadaAmy Elsner NEGOTIATION
Mayumi J BologniaAustraliaOnyama Limba QUALIFIED
Faith F SchemmerItalyIoni Bowcher QUALIFIED
Aika I BologniaJapanAsiya Javayant NEGOTIATION
David I CaldareraFranceElwin Sharvill RENEWAL
Munro A FigeroaAustraliaElwin Sharvill UNQUALIFIED
Salvatore D MaletSpainAmy Elsner UNQUALIFIED
Jennifer A BowleyFranceOnyama Limba RENEWAL
Juan D OstroskyJapanStephen Shaw PROPOSAL
Kadeem Z KolmetzItalyBernardo Dominic PROPOSAL
Jones C MaletBrazilStephen Shaw NEGOTIATION
Juan O SergiJapanIvan Magalhaes NEW
Isabel H OstroskyJapanOnyama Limba NEGOTIATION
Rodrigues B WhobreyFranceIvan Magalhaes NEGOTIATION
David A NestleIndiaAmy Elsner NEW
Jones Q OstroskyBrazilAnna Fali RENEWAL
Chavez Z PoquetteSpainAsiya Javayant PROPOSAL
Antonio I ShinkoArgentinaBernardo Dominic RENEWAL
Mayumi Z FerenczRussiaElwin Sharvill UNQUALIFIED
Aditya T MaletGermanyAsiya Javayant NEW
Johnson E RulapaughGermanyAnna Fali QUALIFIED
Tony G KuskoGermanyElwin Sharvill PROPOSAL
Alejandro T GauchoArgentinaAsiya Javayant UNQUALIFIED
Kadeem U CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Chavez S FigeroaCanadaOnyama Limba RENEWAL
Maisha D DoeJapanAsiya Javayant RENEWAL
Francesco J VocelkaJapanIoni Bowcher QUALIFIED
Clifford O ChuiJapanIoni Bowcher QUALIFIED
Juan F DarakjyCanadaIoni Bowcher NEW
Silvio G CaudyRussiaIoni Bowcher UNQUALIFIED
Isabel U BologniaUnited KingdomStephen Shaw NEGOTIATION
Morrow G PerinSpainElwin Sharvill RENEWAL
Morrow R PerinUnited KingdomAnna Fali QUALIFIED
Misaki R NickaSpainAsiya Javayant NEW
Jefferson O PerinIndiaXuxue Feng NEGOTIATION
Julie A OldroydJapanBernardo Dominic RENEWAL
Jefferson T MaletIndiaOnyama Limba UNQUALIFIED
Leon T VocelkaCanadaIoni Bowcher PROPOSAL
Leja T StensethGermanyIoni Bowcher UNQUALIFIED
Silvio L MarrierFranceAmy Elsner PROPOSAL
Maisha I AlbaresFranceAmy Elsner QUALIFIED
Frozen Columns
Name
Greenwood M Doe
Smith U Nestle
Silvio A Rim
Tony N Paprocki
Morrow G Bolognia
Munro M Caudy
Julie X Gillian
Arvin J Caudy
Ricardo U Poquette
Aika Z Perin
Nicolas D Inouye
Deepesh Y Poquette
Silvio Y Morasca
Deepesh Z Oldroyd
Leon J Doe
Mujtaba V Bolognia
Ivar K Morasca
Francesco Z Ferencz
Antonio T Vocelka
David W Shinko
Silvio Z Poquette
Julie T Slusarski
Emily I Wieser
Leja I Wieser
Faith C Butt
Maria U Chui
Rodrigues B Flosi
Ashley B Venere
Maria I Vocelka
Murillo W Paprocki
Chavez I Gillian
Rodrigues S Bowley
Maisha M Briddick
Leja E Stockham
Mujtaba L Malet
Misaki T Royster
Leja N Chui
Arvin V Glick
Tony Q Royster
Kadeem E Sergi
Adams M Nicka
Julie Q Waycott
Francesco L Gaucho
Jefferson Z Morasca
Kadeem A Sergi
Isabel Z Perin
Morrow T Oldroyd
Clifford C Caldarera
Cody F Amigon
Johnson A Paprocki
IdCountryDate
1000Russia2026-08-14
1001Canada2026-08-11
1002France2026-08-13
1003France2026-08-07
1004Russia2026-08-08
1005Argentina2026-07-30
1006Australia2026-08-09
1007Japan2026-08-01
1008France2026-07-30
1009Russia2026-08-03
1010India2026-08-08
1011United Kingdom2026-07-18
1012Canada2026-08-02
1013Germany2026-07-27
1014Canada2026-07-23
1015United Kingdom2026-08-08
1016Italy2026-08-06
1017Spain2026-07-27
1018France2026-08-11
1019Canada2026-08-02
1020Germany2026-08-10
1021Argentina2026-07-25
1022France2026-07-16
1023India2026-07-27
1024Australia2026-07-30
1025Australia2026-08-11
1026Germany2026-08-08
1027Canada2026-08-06
1028Australia2026-08-14
1029Germany2026-08-11
1030United Kingdom2026-08-12
1031Spain2026-08-01
1032Canada2026-07-22
1033Argentina2026-07-31
1034Spain2026-08-09
1035Australia2026-07-16
1036France2026-08-05
1037United Kingdom2026-07-30
1038Russia2026-08-06
1039France2026-08-05
1040Brazil2026-08-13
1041Italy2026-07-25
1042Spain2026-07-27
1043United Kingdom2026-07-24
1044Argentina2026-08-12
1045India2026-08-11
1046Spain2026-07-27
1047Spain2026-07-17
1048Australia2026-08-05
1049Argentina2026-07-20

On-Demand Data

NameIdCountryDate
Deepesh E Sergi1000Argentina2026-07-28
Murillo G Ostrosky1001Brazil2026-08-02
David P Shinko1002Spain2026-08-03
James P Malet1003India2026-07-22
Leon O Dilliard1004France2026-08-07
Cody Q Ferencz1005Spain2026-07-22
Ivar Q Albares1006Australia2026-07-17
Maria A Marrier1007Germany2026-07-28
Octavia R Albares1008Germany2026-07-19
Rodrigues X Ruta1009Brazil2026-08-13
Chavez P Stockham1010India2026-07-29
Silvio N Chui1011Argentina2026-07-19
David D Maclead1012Japan2026-07-24
Johnson S Albares1013Italy2026-08-12
Silvio M Sergi1014United Kingdom2026-07-16
Jones V Stenseth1015Australia2026-08-07
Morrow K Vocelka1016Japan2026-07-18
Munro A Vocelka1017Russia2026-08-04
Leon Q Waycott1018France2026-07-18
Wickens W Venere1019India2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams O GillianFranceStephen Shaw NEGOTIATION
Aruna P KuskoSpainXuxue Feng QUALIFIED
Kaitlin Q GauchoAustraliaOnyama Limba NEW
Misaki J RoysterItalyIoni Bowcher NEGOTIATION
Leja V RutaFranceElwin Sharvill QUALIFIED
Octavia N TollnerFranceAmy Elsner PROPOSAL
Nicolas G NestleAustraliaAsiya Javayant RENEWAL
Faith X RulapaughBrazilIoni Bowcher NEW
Jennifer B OldroydAustraliaXuxue Feng UNQUALIFIED
Nicolas S WhobreyGermanyAnna Fali QUALIFIED
Wickens B VenereCanadaIoni Bowcher UNQUALIFIED
Darci P CaldareraIndiaIvan Magalhaes QUALIFIED
Izzy G FerenczIndiaAnna Fali UNQUALIFIED
Kaitlin H StockhamGermanyAsiya Javayant PROPOSAL
Smith D PerinBrazilIvan Magalhaes QUALIFIED
Mujtaba X RulapaughUnited KingdomOnyama Limba NEGOTIATION
Aruna N ShinkoJapanIoni Bowcher RENEWAL
Darci A GillianSpainAmy Elsner QUALIFIED
Morrow W MaletArgentinaAnna Fali UNQUALIFIED
Isabel Q DarakjyArgentinaElwin Sharvill NEGOTIATION
Smith V ChuiAustraliaIvan Magalhaes RENEWAL
Darci T GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer B StockhamItalyBernardo Dominic NEW
Rodrigues N SergiRussiaIoni Bowcher PROPOSAL
Adams M TollnerArgentinaAnna Fali UNQUALIFIED
Mujtaba V RimAustraliaIoni Bowcher NEGOTIATION
Jennifer X RutaJapanXuxue Feng QUALIFIED
Antonio M ButtGermanyXuxue Feng RENEWAL
Izzy Z PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Aruna D RimItalyAsiya Javayant RENEWAL
Costa N NickaArgentinaAmy Elsner UNQUALIFIED
Sinclair S MorascaBrazilAnna Fali NEW
Darci J GarufiSpainIoni Bowcher NEW
Ivar W VocelkaFranceAmy Elsner PROPOSAL
Aruna J PaprockiGermanyAnna Fali RENEWAL
Emily G ChuiFranceAsiya Javayant UNQUALIFIED
Aruna Z DarakjyCanadaAnna Fali QUALIFIED
Maria R StensethUnited KingdomAsiya Javayant UNQUALIFIED
Ashley R PerinItalyAsiya Javayant PROPOSAL
Greenwood R MacleadJapanIvan Magalhaes 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>