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
Mayumi O StockhamJapanIvan Magalhaes RENEWAL
Smith N SlusarskiItalyStephen Shaw NEGOTIATION
Clifford Z KolmetzIndiaStephen Shaw QUALIFIED
Stacey R WaycottItalyStephen Shaw UNQUALIFIED
Ivar A TollnerRussiaAnna Fali NEW
Silvio Y GlickSpainAmy Elsner QUALIFIED
Ricardo K NestleRussiaXuxue Feng QUALIFIED
Clifford G BowleyFranceAmy Elsner NEW
Mayumi S SergiJapanAmy Elsner RENEWAL
Alejandro M RulapaughJapanAnna Fali NEGOTIATION
Kadeem S SaylorsCanadaBernardo Dominic UNQUALIFIED
Faith F GauchoFranceXuxue Feng NEW
Wickens X DoeSpainAnna Fali RENEWAL
Ashley L GillianBrazilOnyama Limba UNQUALIFIED
Morrow K BowleyFranceAsiya Javayant UNQUALIFIED
Ashley X VenereJapanXuxue Feng PROPOSAL
Cody K OldroydArgentinaElwin Sharvill RENEWAL
David Y ButtUnited KingdomStephen Shaw PROPOSAL
Sinclair K AlbaresJapanElwin Sharvill NEW
Faith I WaycottArgentinaAnna Fali PROPOSAL
Nicolas E IturbideUnited KingdomAsiya Javayant PROPOSAL
Salvatore L DarakjyItalyAnna Fali NEW
Adams U RoysterAustraliaElwin Sharvill NEW
Isabel M PaprockiFranceIvan Magalhaes UNQUALIFIED
Izzy C MorascaBrazilElwin Sharvill QUALIFIED
Morrow X ButtSpainAmy Elsner NEW
Juan S MaletIndiaAsiya Javayant UNQUALIFIED
Chavez G FerenczBrazilAsiya Javayant UNQUALIFIED
Murillo C ShinkoIndiaXuxue Feng PROPOSAL
Arvin D SergiArgentinaOnyama Limba QUALIFIED
Francesco Z PerinAustraliaAmy Elsner PROPOSAL
Izzy Y RimItalyAsiya Javayant UNQUALIFIED
James H OldroydJapanIoni Bowcher RENEWAL
Emily G GauchoUnited KingdomIoni Bowcher NEGOTIATION
Leja V RutaUnited KingdomAsiya Javayant PROPOSAL
Aditya C DarakjyGermanyAnna Fali QUALIFIED
Leja T FlosiCanadaElwin Sharvill NEW
Rodrigues S PerinJapanAmy Elsner NEW
Salvatore L PoquetteUnited KingdomAmy Elsner NEW
Kaitlin H FollerGermanyAsiya Javayant NEW
Costa T StensethBrazilXuxue Feng NEW
Cody V ChuiAustraliaXuxue Feng RENEWAL
Darci N WaycottItalyBernardo Dominic PROPOSAL
Maisha I AmigonAustraliaAmy Elsner PROPOSAL
Faith C NestleBrazilBernardo Dominic UNQUALIFIED
Jennifer A FlosiAustraliaXuxue Feng RENEWAL
Ashley F VocelkaCanadaXuxue Feng NEGOTIATION
Aruna V GlickJapanElwin Sharvill RENEWAL
Munro S StensethCanadaElwin Sharvill UNQUALIFIED
Kaitlin L PerinArgentinaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon U NestleJapanXuxue Feng NEW
Wickens U WhobreyArgentinaXuxue Feng UNQUALIFIED
Maisha X GauchoIndiaIvan Magalhaes UNQUALIFIED
Leon P VenereItalyIoni Bowcher NEW
Kaitlin O MorascaFranceStephen Shaw QUALIFIED
Deepesh O OldroydAustraliaIoni Bowcher QUALIFIED
Sinclair Y CaudyArgentinaXuxue Feng NEW
Wickens I VenereBrazilAsiya Javayant NEGOTIATION
Izzy W DarakjyItalyAsiya Javayant PROPOSAL
Faith U SaylorsSpainAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David W SlusarskiSpain2026-08-01Rousseaux, Michael Esq PROPOSAL33Xuxue Feng
1001Claire Z CampainFrance2026-07-30King, Christopher A Esq NEW92Onyama Limba
1002Kaitlin P PerinJapan2026-07-29Rousseaux, Michael Esq RENEWAL38Asiya Javayant
1003Cody N GillianSpain2026-08-14Rangoni Of Florence NEGOTIATION44Bernardo Dominic
1004Nicolas B FlosiFrance2026-08-12Commercial Press PROPOSAL78Bernardo Dominic
1005Greenwood Q IturbideItaly2026-08-17Morlong Associates NEW88Elwin Sharvill
1006Julie K NestleGermany2026-08-15Truhlar And Truhlar Attys QUALIFIED33Xuxue Feng
1007Rodrigues K MaletUnited Kingdom2026-08-22Chemel, James L Cpa PROPOSAL30Onyama Limba
1008Julie Y SchemmerCanada2026-08-20Commercial Press QUALIFIED8Xuxue Feng
1009Greenwood M KolmetzJapan2026-08-06Truhlar And Truhlar Attys RENEWAL72Ivan Magalhaes
1010Deepesh B BowleyRussia2026-08-14Chemel, James L Cpa UNQUALIFIED5Elwin Sharvill
1011Smith P FerenczSpain2026-08-16Commercial Press NEW58Asiya Javayant
1012Morrow A RimItaly2026-08-04Chemel, James L Cpa NEGOTIATION29Bernardo Dominic
1013Kaitlin E SchemmerArgentina2026-07-27King, Christopher A Esq NEW12Stephen Shaw
1014Darci U CaldareraCanada2026-08-24Feltz Printing Service QUALIFIED82Anna Fali
1015Rodrigues Z PaprockiCanada2026-08-04Chapman, Ross E Esq NEW53Anna Fali
1016Mujtaba Y SergiIndia2026-07-27Chanay, Jeffrey A Esq RENEWAL60Anna Fali
1017Jennifer W KuskoJapan2026-08-13Chemel, James L Cpa PROPOSAL63Anna Fali
1018Isabel C VocelkaSpain2026-08-13Dorl, James J Esq UNQUALIFIED45Anna Fali
1019James V InouyeGermany2026-08-20Buckley Miller Wright PROPOSAL54Elwin Sharvill
1020Silvio R SchemmerCanada2026-08-21Truhlar And Truhlar Attys RENEWAL39Bernardo Dominic
1021Francesco D OstroskyUnited Kingdom2026-08-02Dorl, James J Esq NEGOTIATION75Onyama Limba
1022Aika U BriddickFrance2026-07-31Chemel, James L Cpa NEW33Elwin Sharvill
1023James O AlbaresFrance2026-08-04Chemel, James L Cpa NEGOTIATION38Elwin Sharvill
1024Aditya R StockhamArgentina2026-07-30Morlong Associates NEW45Elwin Sharvill
1025Chavez X StensethItaly2026-07-27Dorl, James J Esq UNQUALIFIED76Anna Fali
1026Morrow T AlbaresGermany2026-07-27Chapman, Ross E Esq QUALIFIED76Asiya Javayant
1027Salvatore F SergiGermany2026-08-22Rousseaux, Michael Esq PROPOSAL97Asiya Javayant
1028Mujtaba A MorascaItaly2026-08-11Morlong Associates PROPOSAL41Stephen Shaw
1029Claire A FigeroaAustralia2026-08-24Chemel, James L Cpa QUALIFIED76Xuxue Feng
1030Alejandro I VenereIndia2026-08-02Chapman, Ross E Esq NEW0Bernardo Dominic
1031Arvin C KuskoUnited Kingdom2026-08-08Printing Dimensions PROPOSAL19Amy Elsner
1032Alejandro H DilliardJapan2026-08-04Commercial Press PROPOSAL97Xuxue Feng
1033Johnson J StensethItaly2026-08-12Buckley Miller Wright PROPOSAL78Stephen Shaw
1034Jones K FerenczAustralia2026-07-26Rousseaux, Michael Esq NEW9Anna Fali
1035Aruna L TollnerArgentina2026-08-09Chapman, Ross E Esq NEW86Ivan Magalhaes
1036Ivar N WieserAustralia2026-08-22Feiner Bros QUALIFIED99Xuxue Feng
1037Maisha C GauchoUnited Kingdom2026-07-31Rangoni Of Florence PROPOSAL69Onyama Limba
1038Jennifer X DoeItaly2026-08-06Rousseaux, Michael Esq NEW16Elwin Sharvill
1039Salvatore L ShinkoJapan2026-07-28Printing Dimensions UNQUALIFIED46Stephen Shaw
1040Murillo D OstroskyRussia2026-07-29Chapman, Ross E Esq RENEWAL94Anna Fali
1041Aika D TollnerJapan2026-08-07Buckley Miller Wright NEGOTIATION89Ivan Magalhaes
1042Julie Y ButtCanada2026-08-17Buckley Miller Wright QUALIFIED15Xuxue Feng
1043Murillo G RulapaughFrance2026-08-03Rangoni Of Florence QUALIFIED2Amy Elsner
1044Aruna X DoeSpain2026-08-05Chemel, James L Cpa NEW97Anna Fali
1045Johnson Y KolmetzFrance2026-07-26Printing Dimensions PROPOSAL9Amy Elsner
1046Isabel V VenereBrazil2026-08-13Printing Dimensions NEW20Anna Fali
1047Ashley S RulapaughAustralia2026-08-18Feiner Bros QUALIFIED72Onyama Limba
1048Costa L SlusarskiItaly2026-07-27Rangoni Of Florence UNQUALIFIED9Xuxue Feng
1049Antonio J AlbaresArgentina2026-08-18Truhlar And Truhlar Attys NEW18Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin R PaprockiSpainIoni Bowcher QUALIFIED
Adams J IturbideItalyBernardo Dominic RENEWAL
Kaitlin E WaycottBrazilXuxue Feng RENEWAL
Nicolas C DilliardItalyAnna Fali NEGOTIATION
Ivar E OstroskyAustraliaAnna Fali QUALIFIED
Faith N IturbideFranceAmy Elsner QUALIFIED
Darci B DoeItalyElwin Sharvill NEW
Arvin S GillianItalyBernardo Dominic NEW
Julie K OldroydGermanyIoni Bowcher NEW
Maisha Z SaylorsCanadaStephen Shaw UNQUALIFIED
Costa W NickaArgentinaOnyama Limba UNQUALIFIED
Darci M DilliardFranceIvan Magalhaes NEW
Kaitlin K ButtRussiaIvan Magalhaes UNQUALIFIED
Maisha W KolmetzCanadaIvan Magalhaes UNQUALIFIED
Juan G RulapaughJapanIoni Bowcher NEGOTIATION
Claire G GauchoUnited KingdomElwin Sharvill NEW
Alejandro S MorascaUnited KingdomAmy Elsner NEW
Ricardo F RutaBrazilIoni Bowcher NEGOTIATION
Rodrigues W AmigonSpainBernardo Dominic NEW
Emily H MaletIndiaElwin Sharvill PROPOSAL
Johnson V DoeRussiaAnna Fali NEW
Wickens I GlickRussiaXuxue Feng RENEWAL
Smith K WieserRussiaAmy Elsner NEW
Darci N RulapaughBrazilIoni Bowcher NEW
Mayumi M CampainGermanyBernardo Dominic NEGOTIATION
Morrow L GillianSpainIvan Magalhaes RENEWAL
Ricardo T SaylorsJapanBernardo Dominic QUALIFIED
Wickens S PaprockiCanadaElwin Sharvill NEW
Ashley F VocelkaGermanyIoni Bowcher UNQUALIFIED
James I NestleJapanBernardo Dominic PROPOSAL
Faith J ChuiUnited KingdomAmy Elsner QUALIFIED
Munro W GauchoBrazilIoni Bowcher NEW
Clifford G OldroydIndiaBernardo Dominic PROPOSAL
Deepesh A WhobreyJapanXuxue Feng NEW
Morrow R BowleyJapanElwin Sharvill UNQUALIFIED
Silvio L WhobreyAustraliaAsiya Javayant UNQUALIFIED
Antonio U MacleadBrazilAsiya Javayant RENEWAL
Ashley Z GlickGermanyXuxue Feng QUALIFIED
Leon Q DoeFranceStephen Shaw UNQUALIFIED
Adams U BriddickUnited KingdomAsiya Javayant NEGOTIATION
Jennifer F RulapaughUnited KingdomAsiya Javayant PROPOSAL
Arvin G ChuiAustraliaIoni Bowcher NEGOTIATION
Nicolas N DilliardIndiaBernardo Dominic UNQUALIFIED
Octavia B GillianGermanyAnna Fali RENEWAL
Antonio V CampainItalyElwin Sharvill RENEWAL
Johnson M TollnerUnited KingdomXuxue Feng UNQUALIFIED
Izzy D BowleyFranceIvan Magalhaes UNQUALIFIED
Salvatore J WaycottJapanAsiya Javayant RENEWAL
Ricardo H PaprockiJapanStephen Shaw UNQUALIFIED
Francesco Q OstroskyAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Octavia I Slusarski
Izzy F Maclead
Ricardo W Figeroa
Mujtaba U Doe
Stacey Y Sergi
Ricardo W Shinko
Aruna V Stenseth
Isabel B Doe
Salvatore I Darakjy
Antonio Y Foller
Nicolas F Vocelka
Deepesh H Marrier
Aditya T Dilliard
Ashley S Whobrey
Jefferson X Ostrosky
Isabel E Briddick
Mayumi H Gillian
Aditya M Kolmetz
Cody S Foller
Leja R Ferencz
Antonio P Rim
Kadeem C Gillian
Antonio V Campain
Salvatore P Gillian
Mayumi U Briddick
Tony E Gaucho
Sinclair D Nicka
Kadeem A Caudy
Aruna D Slusarski
Claire F Amigon
Maria N Albares
Misaki V Stockham
Misaki M Garufi
Tony K Ferencz
Silvio X Rulapaugh
Ivar W Inouye
Jennifer T Garufi
David L Waycott
Aika B Gillian
Wickens L Glick
James H Flosi
Mujtaba S Malet
Cody Y Stockham
Jeanfrancois A Glick
Izzy Q Saylors
Smith A Oldroyd
Cody S Vocelka
Nicolas C Caudy
Deepesh G Amigon
Kadeem H Amigon
IdCountryDate
1000Germany2026-07-28
1001Argentina2026-08-20
1002India2026-08-03
1003Brazil2026-08-15
1004France2026-08-23
1005Italy2026-08-15
1006Germany2026-08-10
1007Germany2026-08-07
1008Germany2026-07-31
1009Italy2026-07-28
1010Argentina2026-08-17
1011Canada2026-08-22
1012Brazil2026-08-13
1013India2026-08-24
1014Japan2026-08-06
1015Brazil2026-08-07
1016Australia2026-08-19
1017Japan2026-08-18
1018Spain2026-07-28
1019Brazil2026-08-16
1020United Kingdom2026-08-15
1021Australia2026-07-31
1022Australia2026-08-17
1023Spain2026-08-10
1024India2026-08-07
1025Brazil2026-08-20
1026Brazil2026-08-06
1027Canada2026-07-31
1028Germany2026-08-17
1029Australia2026-08-22
1030Russia2026-07-27
1031Spain2026-08-16
1032United Kingdom2026-08-23
1033Argentina2026-08-13
1034France2026-08-21
1035Russia2026-08-07
1036France2026-08-04
1037Argentina2026-07-27
1038France2026-08-15
1039Russia2026-08-05
1040Argentina2026-08-19
1041India2026-08-09
1042France2026-07-26
1043Russia2026-08-20
1044Germany2026-08-23
1045Spain2026-08-04
1046Spain2026-08-04
1047Japan2026-08-14
1048United Kingdom2026-08-14
1049Russia2026-07-28

On-Demand Data

NameIdCountryDate
Kadeem T Schemmer1000Germany2026-08-15
Mayumi Q Stockham1001United Kingdom2026-08-11
Ricardo T Ferencz1002Brazil2026-08-10
Alejandro I Paprocki1003Japan2026-08-03
Jefferson V Whobrey1004United Kingdom2026-08-21
David G Butt1005Brazil2026-08-10
Aditya H Figeroa1006France2026-08-14
Aditya K Perin1007Argentina2026-08-20
Tony B Flosi1008Canada2026-08-24
Leon S Ferencz1009Brazil2026-08-23
Faith Q Amigon1010Argentina2026-08-10
Aika Z Malet1011Brazil2026-08-10
Nicolas O Malet1012Canada2026-08-22
Juan W Malet1013Japan2026-08-23
Alejandro Z Saylors1014United Kingdom2026-08-10
Emily E Morasca1015Australia2026-08-21
Julie R Maclead1016Canada2026-08-15
Aditya I Darakjy1017Spain2026-08-12
Francesco K Poquette1018India2026-07-28
Wickens J Amigon1019Japan2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo W FerenczIndiaIoni Bowcher NEGOTIATION
Alejandro M AmigonIndiaIoni Bowcher UNQUALIFIED
David D FigeroaBrazilOnyama Limba RENEWAL
Adams Q SlusarskiRussiaAnna Fali UNQUALIFIED
Cody E WhobreyArgentinaOnyama Limba NEW
Aruna M IturbideCanadaIvan Magalhaes QUALIFIED
Alejandro L BowleyJapanStephen Shaw QUALIFIED
Jennifer T WaycottArgentinaIvan Magalhaes NEGOTIATION
Chavez J NickaGermanyIvan Magalhaes PROPOSAL
Johnson K CaldareraIndiaIvan Magalhaes RENEWAL
Silvio I PaprockiItalyXuxue Feng UNQUALIFIED
Smith Q BriddickIndiaBernardo Dominic NEW
Wickens K BologniaCanadaAnna Fali UNQUALIFIED
Munro G BowleyGermanyAmy Elsner UNQUALIFIED
Jefferson C DilliardJapanElwin Sharvill UNQUALIFIED
Chavez E MaletIndiaIvan Magalhaes NEW
Isabel L CaldareraBrazilIoni Bowcher NEW
Tony U GillianSpainXuxue Feng UNQUALIFIED
Faith X GauchoUnited KingdomBernardo Dominic RENEWAL
Mujtaba Z NestleRussiaOnyama Limba NEW
Ricardo D MacleadAustraliaBernardo Dominic NEGOTIATION
Deepesh Q PerinSpainAnna Fali PROPOSAL
Mayumi Y ChuiRussiaElwin Sharvill PROPOSAL
Francesco A FerenczGermanyXuxue Feng NEGOTIATION
Isabel Y WhobreyRussiaIoni Bowcher NEGOTIATION
Jefferson S StockhamJapanElwin Sharvill UNQUALIFIED
Murillo D KuskoArgentinaXuxue Feng NEGOTIATION
Octavia M RulapaughRussiaOnyama Limba QUALIFIED
Murillo N CampainFranceStephen Shaw NEW
Aditya I AmigonSpainIoni Bowcher NEGOTIATION
Silvio I TollnerFranceIvan Magalhaes QUALIFIED
Darci H InouyeArgentinaXuxue Feng RENEWAL
Maisha X DilliardSpainOnyama Limba PROPOSAL
Ashley N KolmetzArgentinaAsiya Javayant RENEWAL
Maria G ButtIndiaElwin Sharvill NEW
Chavez H ChuiGermanyAnna Fali RENEWAL
Cody W WhobreyBrazilElwin Sharvill RENEWAL
Ricardo Q InouyeSpainStephen Shaw QUALIFIED
David Z InouyeUnited KingdomElwin Sharvill NEGOTIATION
Isabel X DoeJapanIoni Bowcher QUALIFIED

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