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
Mujtaba Y PerinItalyAmy Elsner RENEWAL
Julie S CaudyFranceOnyama Limba RENEWAL
Alejandro T NestleRussiaIoni Bowcher NEW
Aika H VenereGermanyAsiya Javayant NEW
Emily T PerinFranceBernardo Dominic NEW
Arvin B BologniaJapanOnyama Limba RENEWAL
Jeanfrancois U SergiItalyAsiya Javayant PROPOSAL
Johnson Y AmigonFranceIvan Magalhaes PROPOSAL
Darci O FerenczItalyElwin Sharvill NEGOTIATION
David B WhobreyBrazilAmy Elsner NEGOTIATION
Nicolas M SlusarskiCanadaIvan Magalhaes QUALIFIED
Salvatore H FlosiJapanAsiya Javayant UNQUALIFIED
Tony F StockhamArgentinaElwin Sharvill NEGOTIATION
Maria A FigeroaItalyAnna Fali RENEWAL
Kadeem W TollnerIndiaElwin Sharvill PROPOSAL
Aruna J TollnerItalyIoni Bowcher UNQUALIFIED
Izzy I MaletBrazilAnna Fali NEGOTIATION
Maria F DarakjySpainXuxue Feng NEW
Maisha K PoquetteUnited KingdomXuxue Feng NEW
Nicolas J ButtFranceIvan Magalhaes NEGOTIATION
Murillo W CaudyBrazilStephen Shaw NEW
Smith E WaycottSpainOnyama Limba NEW
Leon R KolmetzBrazilStephen Shaw UNQUALIFIED
Misaki E MacleadCanadaAsiya Javayant QUALIFIED
Clifford T AlbaresGermanyIvan Magalhaes RENEWAL
Morrow A AlbaresJapanElwin Sharvill NEGOTIATION
Morrow X IturbideBrazilStephen Shaw PROPOSAL
Leja U SchemmerJapanStephen Shaw PROPOSAL
Tony L BowleySpainAsiya Javayant PROPOSAL
Jefferson O NestleSpainAsiya Javayant PROPOSAL
Tony E MaletAustraliaElwin Sharvill PROPOSAL
Jeanfrancois F DoeIndiaIoni Bowcher NEW
Jeanfrancois U DarakjyCanadaAnna Fali RENEWAL
Alejandro J GlickBrazilElwin Sharvill UNQUALIFIED
Maria L FollerIndiaElwin Sharvill NEGOTIATION
Wickens O MaletBrazilXuxue Feng RENEWAL
Julie E StockhamSpainAsiya Javayant NEW
Munro G GarufiUnited KingdomIoni Bowcher RENEWAL
Leja K GlickCanadaIvan Magalhaes QUALIFIED
Maria F ButtBrazilAmy Elsner NEGOTIATION
Tony H GarufiAustraliaAsiya Javayant UNQUALIFIED
Maria S DarakjyCanadaBernardo Dominic QUALIFIED
Maisha S KolmetzBrazilIvan Magalhaes QUALIFIED
Mayumi U NickaFranceBernardo Dominic QUALIFIED
Leon W MacleadItalyElwin Sharvill QUALIFIED
Emily H BowleyIndiaAmy Elsner PROPOSAL
Salvatore Y RulapaughArgentinaStephen Shaw NEGOTIATION
Izzy G CampainFranceAnna Fali QUALIFIED
Ivar R RimSpainAsiya Javayant NEGOTIATION
Costa D BriddickUnited KingdomBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Smith T FerenczBrazilAsiya Javayant UNQUALIFIED
Isabel B RimFranceAnna Fali NEW
Faith L RoysterCanadaStephen Shaw NEW
Clifford Z NestleSpainXuxue Feng NEW
Juan X TollnerRussiaElwin Sharvill PROPOSAL
Costa W ButtFranceIvan Magalhaes NEGOTIATION
Aika R NestleRussiaIvan Magalhaes UNQUALIFIED
Tony F PaprockiAustraliaStephen Shaw NEW
Maria Y SaylorsBrazilAsiya Javayant QUALIFIED
Sinclair K MaletUnited KingdomStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez K RutaAustralia2026-08-19King, Christopher A Esq UNQUALIFIED62Asiya Javayant
1001Claire N CaldareraIndia2026-07-30King, Christopher A Esq NEW6Anna Fali
1002Kadeem Q VenereAustralia2026-08-04Buckley Miller Wright RENEWAL5Bernardo Dominic
1003Stacey C DarakjyFrance2026-07-29Rangoni Of Florence PROPOSAL23Anna Fali
1004Silvio Y KolmetzSpain2026-08-02Printing Dimensions RENEWAL89Anna Fali
1005Izzy E RoysterCanada2026-08-08Truhlar And Truhlar Attys NEW75Ioni Bowcher
1006Antonio C BologniaRussia2026-07-29Dorl, James J Esq PROPOSAL34Xuxue Feng
1007Deepesh C VenereCanada2026-08-13Rousseaux, Michael Esq UNQUALIFIED2Ioni Bowcher
1008Isabel S IturbideItaly2026-07-24Commercial Press NEW84Onyama Limba
1009Antonio V FollerGermany2026-08-02Feiner Bros NEGOTIATION76Onyama Limba
1010Smith Q PoquetteArgentina2026-08-06Chapman, Ross E Esq RENEWAL79Stephen Shaw
1011Chavez G FerenczGermany2026-08-06Feltz Printing Service NEGOTIATION82Amy Elsner
1012Julie S GlickSpain2026-07-31Rousseaux, Michael Esq QUALIFIED27Amy Elsner
1013Costa S MaletSpain2026-08-01Rangoni Of Florence PROPOSAL40Stephen Shaw
1014Murillo V SlusarskiUnited Kingdom2026-08-10Benton, John B Jr QUALIFIED35Onyama Limba
1015David E GauchoItaly2026-07-27Rangoni Of Florence NEGOTIATION7Stephen Shaw
1016Kadeem A CaldareraFrance2026-08-08Feltz Printing Service NEGOTIATION89Ioni Bowcher
1017Chavez G VocelkaSpain2026-08-19Buckley Miller Wright NEGOTIATION73Elwin Sharvill
1018Greenwood C BologniaArgentina2026-07-24Rangoni Of Florence QUALIFIED30Amy Elsner
1019Kaitlin A GauchoUnited Kingdom2026-08-08King, Christopher A Esq QUALIFIED28Stephen Shaw
1020Leja W IturbideJapan2026-08-17Chanay, Jeffrey A Esq RENEWAL75Onyama Limba
1021Murillo B InouyeRussia2026-07-25Chanay, Jeffrey A Esq QUALIFIED69Ivan Magalhaes
1022Alejandro D KuskoRussia2026-07-30Chemel, James L Cpa UNQUALIFIED62Ioni Bowcher
1023Wickens N GillianIndia2026-07-24Printing Dimensions NEGOTIATION81Asiya Javayant
1024Kaitlin L AlbaresRussia2026-08-01Chanay, Jeffrey A Esq PROPOSAL58Ioni Bowcher
1025Maria G KuskoFrance2026-07-23Chapman, Ross E Esq NEGOTIATION81Onyama Limba
1026Johnson H CaudySpain2026-08-14Printing Dimensions RENEWAL72Onyama Limba
1027Smith V PerinJapan2026-08-16Feltz Printing Service UNQUALIFIED18Amy Elsner
1028James M StockhamArgentina2026-08-05Dorl, James J Esq PROPOSAL89Amy Elsner
1029Emily D BologniaIndia2026-08-04Dorl, James J Esq NEW81Onyama Limba
1030Aika O WieserBrazil2026-08-16Chapman, Ross E Esq NEGOTIATION64Onyama Limba
1031Maria Y MorascaRussia2026-08-02King, Christopher A Esq UNQUALIFIED45Onyama Limba
1032Mayumi S VenereGermany2026-08-10Dorl, James J Esq NEW72Bernardo Dominic
1033Sinclair U MarrierCanada2026-08-06Truhlar And Truhlar Attys PROPOSAL76Ivan Magalhaes
1034Leja N VocelkaGermany2026-07-31King, Christopher A Esq RENEWAL29Ioni Bowcher
1035Ricardo P ChuiCanada2026-08-05Chapman, Ross E Esq NEGOTIATION55Asiya Javayant
1036Kadeem W StockhamCanada2026-07-23Chemel, James L Cpa NEW98Bernardo Dominic
1037Silvio P FollerArgentina2026-08-20Chemel, James L Cpa RENEWAL38Amy Elsner
1038Kaitlin D FerenczGermany2026-07-26Rangoni Of Florence NEGOTIATION37Bernardo Dominic
1039Ricardo D OstroskyItaly2026-08-04Buckley Miller Wright PROPOSAL73Xuxue Feng
1040Deepesh Y ButtUnited Kingdom2026-08-19Printing Dimensions PROPOSAL17Onyama Limba
1041Misaki F MaletRussia2026-08-02Chapman, Ross E Esq NEW10Stephen Shaw
1042Cody Z PerinAustralia2026-07-28Truhlar And Truhlar Attys PROPOSAL94Bernardo Dominic
1043Greenwood R BologniaJapan2026-08-19Dorl, James J Esq PROPOSAL13Stephen Shaw
1044Francesco F RutaJapan2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED42Onyama Limba
1045Nicolas P PoquetteBrazil2026-08-11Rangoni Of Florence NEGOTIATION15Asiya Javayant
1046James R KuskoGermany2026-07-23Chemel, James L Cpa UNQUALIFIED39Xuxue Feng
1047Ricardo S AlbaresSpain2026-07-28Buckley Miller Wright QUALIFIED48Bernardo Dominic
1048Aika Y RoysterArgentina2026-08-10Commercial Press PROPOSAL3Ivan Magalhaes
1049Jefferson R PaprockiUnited Kingdom2026-08-04Chapman, Ross E Esq PROPOSAL12Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony K StensethUnited KingdomBernardo Dominic RENEWAL
Smith F NickaFranceStephen Shaw PROPOSAL
Arvin I WaycottArgentinaStephen Shaw RENEWAL
Leon C RutaJapanStephen Shaw PROPOSAL
Aika W RimAustraliaBernardo Dominic RENEWAL
Julie D AlbaresArgentinaIoni Bowcher QUALIFIED
Morrow O BowleyIndiaIvan Magalhaes RENEWAL
Faith F OstroskySpainAnna Fali PROPOSAL
Sinclair X NickaUnited KingdomAmy Elsner NEW
Wickens W WaycottItalyOnyama Limba UNQUALIFIED
Kaitlin B StensethFranceAnna Fali QUALIFIED
Faith T VocelkaBrazilElwin Sharvill QUALIFIED
Aditya H StockhamSpainAmy Elsner UNQUALIFIED
Adams L ShinkoUnited KingdomAmy Elsner QUALIFIED
Aditya R RimBrazilStephen Shaw PROPOSAL
Leon I RulapaughRussiaAmy Elsner UNQUALIFIED
Stacey J MorascaFranceAnna Fali RENEWAL
Nicolas W RoysterArgentinaIoni Bowcher PROPOSAL
Aika P VocelkaUnited KingdomXuxue Feng PROPOSAL
Juan T MaletSpainAnna Fali NEGOTIATION
Faith R MaletCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois R WieserSpainXuxue Feng QUALIFIED
Ivar G CampainCanadaAmy Elsner NEW
Jones N SergiUnited KingdomIoni Bowcher QUALIFIED
Ivar K CaudyCanadaOnyama Limba QUALIFIED
James X RutaJapanXuxue Feng NEW
Adams Q RutaIndiaIvan Magalhaes PROPOSAL
Isabel X OstroskyBrazilAnna Fali RENEWAL
Ivar M FigeroaJapanIvan Magalhaes QUALIFIED
Misaki W GauchoAustraliaIvan Magalhaes NEGOTIATION
James C DilliardAustraliaAmy Elsner UNQUALIFIED
Adams P NickaFranceOnyama Limba NEGOTIATION
Murillo X OstroskyUnited KingdomBernardo Dominic NEW
Julie X InouyeRussiaOnyama Limba QUALIFIED
Ricardo E ButtIndiaBernardo Dominic RENEWAL
Maria T MorascaGermanyBernardo Dominic RENEWAL
Rodrigues E InouyeJapanIvan Magalhaes RENEWAL
Maisha U GlickUnited KingdomIoni Bowcher NEGOTIATION
Jones M StensethSpainOnyama Limba NEW
Antonio P CaldareraUnited KingdomOnyama Limba NEW
Julie Y RutaBrazilAmy Elsner RENEWAL
Morrow T RoysterJapanAsiya Javayant QUALIFIED
Faith I InouyeJapanAmy Elsner NEGOTIATION
Johnson P BriddickBrazilXuxue Feng PROPOSAL
Misaki K PaprockiIndiaStephen Shaw NEW
Aruna Y VocelkaSpainAnna Fali UNQUALIFIED
Ricardo M GlickFranceAsiya Javayant NEGOTIATION
Aditya J FollerRussiaAmy Elsner UNQUALIFIED
Cody N RoysterFranceAmy Elsner NEGOTIATION
Johnson Z MorascaAustraliaAnna Fali UNQUALIFIED
Frozen Columns
Name
Francesco D Bowley
Aruna J Caudy
Antonio R Whobrey
Julie T Iturbide
Nicolas W Chui
Tony X Dilliard
Costa F Waycott
Munro A Figeroa
Morrow M Waycott
Nicolas O Stenseth
Emily A Ruta
Jefferson T Morasca
Leja S Kusko
Cody T Stockham
Darci D Stenseth
Stacey M Bolognia
Leon G Nestle
Isabel K Royster
Maria G Darakjy
Claire T Gillian
Leon O Poquette
Juan I Poquette
David M Ferencz
Cody G Foller
Mujtaba Y Sergi
Tony D Kolmetz
Nicolas T Albares
Rodrigues M Sergi
Adams B Vocelka
Nicolas T Amigon
Aruna V Amigon
Smith O Malet
Munro G Waycott
Arvin F Waycott
Darci I Marrier
Maria C Perin
Maria F Morasca
Alejandro G Caudy
Aditya Y Doe
Cody S Doe
Kadeem C Maclead
Aika D Nicka
Aditya T Kolmetz
Johnson T Vocelka
Munro F Malet
Izzy H Kusko
Misaki Z Ostrosky
Francesco F Stockham
Darci E Rim
Cody Y Malet
IdCountryDate
1000Germany2026-08-16
1001Argentina2026-08-11
1002France2026-08-18
1003Australia2026-08-11
1004Canada2026-07-25
1005Spain2026-07-22
1006Germany2026-08-01
1007Russia2026-07-30
1008India2026-07-29
1009Italy2026-07-31
1010France2026-07-30
1011France2026-08-13
1012Brazil2026-08-04
1013Brazil2026-08-14
1014Japan2026-08-13
1015Canada2026-07-30
1016Italy2026-08-17
1017Japan2026-07-25
1018Australia2026-08-16
1019Japan2026-08-14
1020United Kingdom2026-07-22
1021France2026-07-23
1022Canada2026-07-27
1023Spain2026-07-26
1024Argentina2026-07-24
1025Japan2026-08-20
1026Brazil2026-07-25
1027Russia2026-08-16
1028France2026-08-20
1029Japan2026-07-26
1030Germany2026-08-15
1031Russia2026-07-30
1032Argentina2026-08-07
1033Italy2026-08-05
1034Argentina2026-08-07
1035Argentina2026-07-23
1036Italy2026-08-17
1037Japan2026-08-19
1038Germany2026-07-27
1039Spain2026-08-08
1040Argentina2026-08-15
1041France2026-07-27
1042Germany2026-08-04
1043Brazil2026-07-29
1044Japan2026-07-25
1045Germany2026-08-06
1046Brazil2026-08-03
1047Canada2026-08-03
1048Japan2026-07-22
1049Germany2026-08-14

On-Demand Data

NameIdCountryDate
Jeanfrancois W Albares1000Australia2026-07-29
Morrow T Gillian1001Australia2026-07-25
Kaitlin T Glick1002Italy2026-07-24
Morrow U Vocelka1003Germany2026-08-06
Mujtaba U Royster1004United Kingdom2026-08-02
Aditya P Bolognia1005Russia2026-08-10
Rodrigues N Tollner1006Russia2026-07-28
Jones X Ostrosky1007United Kingdom2026-08-12
Tony Q Wieser1008Spain2026-08-07
Claire Z Darakjy1009Japan2026-07-30
Arvin E Marrier1010Australia2026-08-15
Emily S Iturbide1011France2026-08-04
Wickens E Kusko1012Canada2026-08-05
James P Ferencz1013Japan2026-08-17
Kaitlin Q Saylors1014Australia2026-08-09
Alejandro C Marrier1015France2026-08-07
Jeanfrancois I Oldroyd1016Russia2026-07-26
Stacey F Ostrosky1017Germany2026-07-29
Greenwood O Kolmetz1018Germany2026-08-04
Jefferson G Nestle1019Japan2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia G GarufiIndiaBernardo Dominic NEGOTIATION
Aditya B PerinGermanyElwin Sharvill UNQUALIFIED
Leon D MacleadBrazilIvan Magalhaes UNQUALIFIED
Alejandro Q VocelkaArgentinaXuxue Feng NEW
Antonio Z CaldareraBrazilIoni Bowcher NEW
Sinclair E SlusarskiRussiaAsiya Javayant NEW
Nicolas R SergiFranceAsiya Javayant QUALIFIED
David V PoquetteFranceAmy Elsner UNQUALIFIED
Mayumi E KuskoItalyStephen Shaw PROPOSAL
Costa S VocelkaFranceAmy Elsner RENEWAL
Cody V KuskoFranceElwin Sharvill PROPOSAL
Greenwood E WhobreyUnited KingdomStephen Shaw QUALIFIED
Misaki F DoeArgentinaIoni Bowcher UNQUALIFIED
Clifford S RimAustraliaIvan Magalhaes UNQUALIFIED
Mayumi Y GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer C GauchoGermanyElwin Sharvill NEW
Munro E CampainFranceXuxue Feng RENEWAL
Maisha T CampainFranceAmy Elsner PROPOSAL
Murillo D TollnerArgentinaAnna Fali RENEWAL
Cody V FlosiGermanyOnyama Limba NEW
Costa T WhobreyCanadaBernardo Dominic PROPOSAL
Sinclair Z FerenczJapanBernardo Dominic QUALIFIED
Jeanfrancois Q RimArgentinaElwin Sharvill QUALIFIED
Faith W VenereRussiaElwin Sharvill NEW
Ivar M StockhamCanadaAsiya Javayant NEW
Greenwood N StensethIndiaOnyama Limba RENEWAL
Julie T MorascaCanadaIvan Magalhaes QUALIFIED
Stacey R AlbaresUnited KingdomXuxue Feng NEGOTIATION
Jefferson K ButtRussiaAnna Fali NEW
Octavia X InouyeSpainBernardo Dominic QUALIFIED
Adams D InouyeRussiaOnyama Limba QUALIFIED
Tony S ShinkoFranceStephen Shaw QUALIFIED
Wickens B StockhamCanadaIoni Bowcher NEW
Kadeem H SergiFranceIvan Magalhaes NEW
Salvatore L WhobreyItalyBernardo Dominic RENEWAL
Kadeem I GarufiBrazilBernardo Dominic NEGOTIATION
Silvio K MaletBrazilIvan Magalhaes UNQUALIFIED
Cody L ShinkoBrazilStephen Shaw RENEWAL
Ashley D RulapaughFranceXuxue Feng NEW
Rodrigues B DilliardUnited KingdomAmy Elsner UNQUALIFIED

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