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
Antonio M FlosiJapanAsiya Javayant RENEWAL
Morrow Z DoeSpainAmy Elsner UNQUALIFIED
Maria L WieserFranceAnna Fali NEW
Silvio U DilliardArgentinaBernardo Dominic NEGOTIATION
Faith P PaprockiCanadaAmy Elsner UNQUALIFIED
Kaitlin R StensethUnited KingdomIoni Bowcher UNQUALIFIED
David C BriddickIndiaBernardo Dominic PROPOSAL
Johnson L AlbaresBrazilXuxue Feng UNQUALIFIED
Murillo A ChuiArgentinaXuxue Feng NEGOTIATION
Alejandro L FerenczFranceBernardo Dominic QUALIFIED
Deepesh A AlbaresBrazilIoni Bowcher QUALIFIED
Octavia G TollnerJapanElwin Sharvill QUALIFIED
Maria V VocelkaItalyBernardo Dominic QUALIFIED
Ricardo F BriddickJapanAnna Fali QUALIFIED
Francesco E AmigonIndiaAsiya Javayant UNQUALIFIED
Chavez Z CaldareraUnited KingdomIoni Bowcher NEW
Kadeem F MorascaGermanyElwin Sharvill PROPOSAL
Nicolas S WhobreyJapanAsiya Javayant PROPOSAL
Tony N GlickUnited KingdomAsiya Javayant QUALIFIED
Clifford E BologniaFranceOnyama Limba QUALIFIED
Jones U WaycottCanadaAsiya Javayant NEW
Sinclair K FerenczRussiaAmy Elsner PROPOSAL
Julie G PerinFranceAmy Elsner NEGOTIATION
Mujtaba U StensethArgentinaAmy Elsner QUALIFIED
Faith A ButtCanadaBernardo Dominic PROPOSAL
Leon A SaylorsIndiaOnyama Limba NEGOTIATION
Nicolas R PoquetteCanadaAsiya Javayant NEW
Maisha M DarakjyIndiaStephen Shaw QUALIFIED
Rodrigues A StockhamArgentinaOnyama Limba RENEWAL
Adams C GauchoGermanyAmy Elsner RENEWAL
Julie C SaylorsBrazilAnna Fali UNQUALIFIED
Julie U NestleJapanAmy Elsner PROPOSAL
Leon V RulapaughSpainXuxue Feng RENEWAL
Ricardo M RulapaughFranceElwin Sharvill NEW
Mayumi V MaletFranceAnna Fali PROPOSAL
Cody W PaprockiIndiaXuxue Feng QUALIFIED
Aruna H KolmetzBrazilOnyama Limba UNQUALIFIED
Octavia B MaletUnited KingdomAsiya Javayant RENEWAL
Darci S ButtRussiaOnyama Limba PROPOSAL
Mujtaba B GauchoFranceIvan Magalhaes NEW
Alejandro V GlickIndiaOnyama Limba NEGOTIATION
Adams X RulapaughArgentinaStephen Shaw UNQUALIFIED
Ashley L GlickItalyOnyama Limba RENEWAL
Kadeem I BologniaIndiaAnna Fali NEGOTIATION
Stacey A WieserItalyAmy Elsner NEGOTIATION
Rodrigues L KolmetzAustraliaBernardo Dominic NEGOTIATION
Munro Z OldroydIndiaBernardo Dominic PROPOSAL
Juan D ButtSpainAsiya Javayant QUALIFIED
Julie U DarakjyBrazilBernardo Dominic QUALIFIED
Greenwood X SaylorsRussiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues T BologniaAustraliaAnna Fali PROPOSAL
Kadeem Q DoeIndiaAsiya Javayant PROPOSAL
Chavez P ButtAustraliaStephen Shaw PROPOSAL
Stacey I IturbideRussiaIvan Magalhaes UNQUALIFIED
Alejandro N SaylorsItalyAsiya Javayant NEGOTIATION
Greenwood L DilliardItalyStephen Shaw RENEWAL
Jones W KuskoFranceIvan Magalhaes UNQUALIFIED
Greenwood P WhobreyIndiaAsiya Javayant NEW
Greenwood K BologniaBrazilXuxue Feng NEW
Darci Z BowleySpainAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco O OstroskyItaly2026-07-29Chanay, Jeffrey A Esq NEW29Stephen Shaw
1001Jefferson E PerinFrance2026-07-10Benton, John B Jr QUALIFIED79Onyama Limba
1002Murillo G TollnerSpain2026-07-08Printing Dimensions QUALIFIED80Elwin Sharvill
1003Darci L PoquetteAustralia2026-07-31Dorl, James J Esq UNQUALIFIED66Bernardo Dominic
1004Ricardo P MarrierArgentina2026-07-10King, Christopher A Esq RENEWAL0Anna Fali
1005Antonio J DoeItaly2026-07-06Chemel, James L Cpa NEGOTIATION30Elwin Sharvill
1006Clifford M FollerItaly2026-07-29Chanay, Jeffrey A Esq NEW54Xuxue Feng
1007Nicolas O ChuiCanada2026-07-26King, Christopher A Esq UNQUALIFIED90Stephen Shaw
1008Smith G ShinkoArgentina2026-07-22Morlong Associates PROPOSAL8Ivan Magalhaes
1009Johnson P DarakjyCanada2026-07-18Morlong Associates UNQUALIFIED63Onyama Limba
1010Stacey Z WieserUnited Kingdom2026-07-23Feiner Bros QUALIFIED54Bernardo Dominic
1011Maisha Y DoeCanada2026-07-25Chemel, James L Cpa RENEWAL64Stephen Shaw
1012Smith D RimRussia2026-08-04Feiner Bros RENEWAL55Stephen Shaw
1013Mujtaba Y GarufiAustralia2026-07-09Buckley Miller Wright NEGOTIATION90Bernardo Dominic
1014Jefferson G StensethCanada2026-07-17Commercial Press NEW2Xuxue Feng
1015Maria L NickaGermany2026-07-15Dorl, James J Esq PROPOSAL39Amy Elsner
1016Misaki O IturbideIndia2026-07-15King, Christopher A Esq NEW9Xuxue Feng
1017Francesco F NestleCanada2026-07-26Chemel, James L Cpa QUALIFIED13Amy Elsner
1018Stacey P BowleyArgentina2026-07-19Printing Dimensions NEGOTIATION14Ivan Magalhaes
1019Juan M GarufiIndia2026-07-23Rangoni Of Florence NEW27Amy Elsner
1020Izzy W FlosiBrazil2026-07-13Chemel, James L Cpa NEGOTIATION0Ivan Magalhaes
1021Deepesh Y CaldareraBrazil2026-08-03Printing Dimensions NEW69Xuxue Feng
1022Emily T IturbideCanada2026-07-12Feiner Bros PROPOSAL79Ioni Bowcher
1023Kadeem I MaletUnited Kingdom2026-08-04Commercial Press QUALIFIED35Amy Elsner
1024Aruna V StensethAustralia2026-07-11King, Christopher A Esq QUALIFIED7Xuxue Feng
1025Claire C VocelkaAustralia2026-07-25King, Christopher A Esq QUALIFIED95Ioni Bowcher
1026Morrow M KuskoJapan2026-07-16Benton, John B Jr NEGOTIATION98Amy Elsner
1027Morrow Y IturbideAustralia2026-07-26Rangoni Of Florence PROPOSAL2Anna Fali
1028Antonio D MaletRussia2026-07-09Feltz Printing Service NEW57Ivan Magalhaes
1029Smith I TollnerItaly2026-07-29Feiner Bros UNQUALIFIED72Elwin Sharvill
1030Maisha B GauchoBrazil2026-07-29Benton, John B Jr QUALIFIED51Ioni Bowcher
1031Ivar V ButtJapan2026-07-25Chapman, Ross E Esq QUALIFIED46Stephen Shaw
1032Kaitlin W MarrierArgentina2026-07-11Chemel, James L Cpa QUALIFIED32Ivan Magalhaes
1033Ricardo O FlosiUnited Kingdom2026-07-18Chapman, Ross E Esq RENEWAL85Onyama Limba
1034Arvin T WaycottIndia2026-07-13Benton, John B Jr QUALIFIED76Elwin Sharvill
1035Adams Z WhobreyBrazil2026-07-08Printing Dimensions PROPOSAL75Amy Elsner
1036Wickens X KuskoRussia2026-07-19Buckley Miller Wright QUALIFIED75Stephen Shaw
1037Darci R StockhamRussia2026-07-31Rousseaux, Michael Esq NEW83Bernardo Dominic
1038Claire B MaletAustralia2026-07-24King, Christopher A Esq RENEWAL24Ioni Bowcher
1039Aruna O DilliardSpain2026-08-04Chemel, James L Cpa NEGOTIATION52Amy Elsner
1040Cody P InouyeItaly2026-07-27Chanay, Jeffrey A Esq QUALIFIED81Onyama Limba
1041Nicolas U BologniaGermany2026-07-16Buckley Miller Wright QUALIFIED92Bernardo Dominic
1042Costa T FollerGermany2026-07-28Morlong Associates PROPOSAL77Bernardo Dominic
1043Cody M MaletSpain2026-07-15Chapman, Ross E Esq UNQUALIFIED27Onyama Limba
1044Jefferson E KolmetzUnited Kingdom2026-07-08Chemel, James L Cpa QUALIFIED57Onyama Limba
1045Greenwood P OldroydIndia2026-07-21Benton, John B Jr QUALIFIED91Stephen Shaw
1046Ashley U ChuiUnited Kingdom2026-08-01Benton, John B Jr QUALIFIED1Elwin Sharvill
1047Smith J OstroskyCanada2026-07-21Chanay, Jeffrey A Esq RENEWAL0Onyama Limba
1048Salvatore H DoeAustralia2026-07-14Buckley Miller Wright PROPOSAL27Stephen Shaw
1049Morrow I MaletArgentina2026-07-14Rousseaux, Michael Esq QUALIFIED89Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Salvatore J PaprockiRussiaElwin Sharvill RENEWAL
Izzy W GauchoUnited KingdomAnna Fali QUALIFIED
Jeanfrancois F PaprockiFranceIoni Bowcher RENEWAL
Greenwood W RulapaughUnited KingdomAmy Elsner NEGOTIATION
Octavia B KolmetzGermanyBernardo Dominic QUALIFIED
Adams S CampainCanadaOnyama Limba RENEWAL
Misaki E CampainJapanAsiya Javayant NEW
Murillo U DarakjySpainElwin Sharvill NEW
Faith R PoquetteBrazilElwin Sharvill RENEWAL
Julie Y MorascaGermanyAmy Elsner NEW
Leon X SaylorsCanadaBernardo Dominic NEW
Smith X DoeGermanyOnyama Limba NEW
Isabel W StockhamUnited KingdomIvan Magalhaes RENEWAL
Faith G ShinkoAustraliaAnna Fali PROPOSAL
Sinclair O InouyeUnited KingdomBernardo Dominic NEGOTIATION
Maisha E BowleyCanadaIoni Bowcher QUALIFIED
Antonio G InouyeItalyAnna Fali RENEWAL
Isabel H AlbaresJapanOnyama Limba UNQUALIFIED
Murillo W VenereItalyBernardo Dominic UNQUALIFIED
Jefferson F RimUnited KingdomAnna Fali QUALIFIED
Julie W ChuiRussiaAnna Fali UNQUALIFIED
Francesco B FollerArgentinaAmy Elsner NEW
Mujtaba V MaletFranceIvan Magalhaes NEW
Kaitlin K GillianAustraliaElwin Sharvill QUALIFIED
Francesco K CaldareraSpainXuxue Feng PROPOSAL
Kadeem Y MaletSpainAnna Fali NEGOTIATION
Rodrigues P PerinArgentinaBernardo Dominic NEGOTIATION
Jones G CaudyIndiaAnna Fali NEW
Rodrigues Q DilliardBrazilAnna Fali QUALIFIED
Aditya Y SaylorsCanadaElwin Sharvill QUALIFIED
Aruna A BowleyIndiaXuxue Feng RENEWAL
Cody B StensethBrazilIoni Bowcher NEW
Faith I SergiJapanAsiya Javayant NEW
Misaki I DilliardCanadaStephen Shaw NEGOTIATION
Ricardo I GauchoArgentinaAnna Fali NEW
Munro E NickaJapanIoni Bowcher RENEWAL
Aruna U IturbideItalyAsiya Javayant QUALIFIED
Octavia R MaletFranceStephen Shaw UNQUALIFIED
Aditya K WieserAustraliaStephen Shaw NEGOTIATION
Claire L SaylorsIndiaAnna Fali PROPOSAL
Aruna A WieserItalyBernardo Dominic NEGOTIATION
Ricardo A DoeItalyXuxue Feng PROPOSAL
Jeanfrancois I MarrierJapanOnyama Limba RENEWAL
Adams M CaudyBrazilOnyama Limba UNQUALIFIED
Alejandro O MorascaArgentinaAnna Fali UNQUALIFIED
Morrow C DilliardUnited KingdomBernardo Dominic PROPOSAL
Claire T FerenczSpainElwin Sharvill PROPOSAL
Claire A AmigonUnited KingdomAmy Elsner UNQUALIFIED
Johnson A RulapaughBrazilIoni Bowcher UNQUALIFIED
Smith Z SergiAustraliaAnna Fali PROPOSAL
Frozen Columns
Name
Izzy F Glick
Murillo V Malet
Johnson E Perin
David T Ostrosky
Isabel T Sergi
Emily X Campain
Maria R Darakjy
Alejandro T Doe
Rodrigues X Maclead
Rodrigues T Briddick
Morrow I Stenseth
Jeanfrancois I Ferencz
Mujtaba P Albares
Jennifer W Sergi
Alejandro R Vocelka
Clifford X Whobrey
Mujtaba R Dilliard
Aika L Garufi
Morrow C Malet
Misaki F Bolognia
Silvio U Saylors
Misaki F Wieser
Juan V Paprocki
Claire R Marrier
Maria H Campain
Mayumi J Caldarera
Jefferson V Dilliard
Smith N Rim
Silvio R Stenseth
Kadeem M Inouye
Morrow U Royster
Aruna I Stenseth
Stacey Q Kusko
Morrow W Amigon
Mayumi S Garufi
Jefferson J Wieser
Ricardo H Slusarski
Jeanfrancois F Chui
Costa E Ruta
Mayumi Q Marrier
Mujtaba T Shinko
Greenwood S Campain
James Z Schemmer
Deepesh D Inouye
Aika J Marrier
Murillo H Gaucho
Claire N Kolmetz
Aditya O Dilliard
Juan W Rim
Mujtaba B Perin
IdCountryDate
1000Argentina2026-08-01
1001Argentina2026-08-04
1002France2026-07-31
1003Japan2026-07-13
1004Russia2026-08-04
1005India2026-08-04
1006India2026-07-21
1007France2026-07-29
1008Brazil2026-07-15
1009Spain2026-07-22
1010Argentina2026-07-12
1011Canada2026-07-17
1012Italy2026-07-25
1013France2026-07-17
1014Canada2026-07-31
1015Canada2026-07-24
1016Australia2026-07-21
1017Germany2026-07-10
1018India2026-07-14
1019United Kingdom2026-07-29
1020United Kingdom2026-07-31
1021Canada2026-07-11
1022Argentina2026-07-12
1023France2026-07-28
1024Brazil2026-07-23
1025Australia2026-07-06
1026Australia2026-08-03
1027Spain2026-07-06
1028Spain2026-07-28
1029Germany2026-07-31
1030Australia2026-07-18
1031United Kingdom2026-07-10
1032Argentina2026-08-03
1033Spain2026-07-17
1034United Kingdom2026-07-22
1035France2026-07-15
1036Canada2026-07-30
1037Canada2026-07-26
1038Italy2026-07-27
1039Germany2026-07-17
1040Australia2026-07-31
1041Brazil2026-07-17
1042United Kingdom2026-07-09
1043Italy2026-08-01
1044Italy2026-07-14
1045Australia2026-07-17
1046Italy2026-08-04
1047Japan2026-07-19
1048Spain2026-07-25
1049Germany2026-07-08

On-Demand Data

NameIdCountryDate
Emily S Chui1000Canada2026-07-24
Munro Z Rulapaugh1001Russia2026-07-31
Sinclair G Gillian1002United Kingdom2026-07-07
Clifford Q Kusko1003Japan2026-07-18
Sinclair S Butt1004Brazil2026-07-12
Mujtaba G Ostrosky1005Germany2026-07-21
Kaitlin O Poquette1006Japan2026-07-06
Clifford H Chui1007Spain2026-07-18
Wickens R Maclead1008Argentina2026-07-26
Emily O Glick1009Australia2026-08-02
Rodrigues V Paprocki1010Spain2026-07-06
Misaki Q Poquette1011Brazil2026-07-08
Nicolas L Stockham1012Brazil2026-07-09
Ricardo R Nestle1013Germany2026-08-01
Jeanfrancois H Oldroyd1014Russia2026-07-08
Antonio K Rulapaugh1015Brazil2026-07-06
Tony N Sergi1016Brazil2026-08-04
Faith V Morasca1017Canada2026-07-27
Salvatore V Flosi1018Russia2026-07-27
Salvatore T Nicka1019Argentina2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams Q FerenczArgentinaAsiya Javayant NEW
Deepesh K VenereIndiaBernardo Dominic UNQUALIFIED
Alejandro S SergiItalyAsiya Javayant NEGOTIATION
Faith D MacleadRussiaBernardo Dominic QUALIFIED
Leja U TollnerFranceOnyama Limba PROPOSAL
Morrow B MaletBrazilIoni Bowcher QUALIFIED
Octavia T GarufiGermanyAmy Elsner UNQUALIFIED
Greenwood V DoeJapanElwin Sharvill NEGOTIATION
Claire D MorascaCanadaAsiya Javayant QUALIFIED
Aruna B WaycottArgentinaStephen Shaw QUALIFIED
Clifford G BologniaItalyXuxue Feng PROPOSAL
Jones H AmigonJapanStephen Shaw PROPOSAL
Kadeem Z GarufiAustraliaElwin Sharvill NEW
Maisha M AlbaresUnited KingdomAmy Elsner RENEWAL
Maria L FlosiItalyAsiya Javayant NEW
Octavia U RutaJapanAmy Elsner PROPOSAL
Antonio B TollnerGermanyElwin Sharvill UNQUALIFIED
Arvin R OstroskyGermanyStephen Shaw QUALIFIED
Tony C VenereRussiaIvan Magalhaes NEGOTIATION
Aika Q VocelkaArgentinaElwin Sharvill PROPOSAL
Aruna N AmigonItalyAsiya Javayant PROPOSAL
Emily X CaudyItalyAnna Fali QUALIFIED
Mayumi N DarakjyGermanyAnna Fali NEGOTIATION
Juan Z DarakjyRussiaAnna Fali NEW
Aruna R DoeCanadaElwin Sharvill PROPOSAL
Chavez G SlusarskiFranceAmy Elsner NEGOTIATION
Faith A BriddickItalyAnna Fali PROPOSAL
Clifford Z PaprockiBrazilXuxue Feng QUALIFIED
Kadeem W WhobreyFranceXuxue Feng UNQUALIFIED
Smith W RulapaughBrazilAnna Fali PROPOSAL
Izzy X RulapaughArgentinaAnna Fali NEGOTIATION
Salvatore R StensethJapanXuxue Feng PROPOSAL
Murillo O ChuiRussiaElwin Sharvill NEGOTIATION
Mayumi R MacleadArgentinaBernardo Dominic NEW
Ivar F SaylorsBrazilIvan Magalhaes NEW
David V GlickUnited KingdomElwin Sharvill PROPOSAL
Leja Y OstroskyFranceStephen Shaw QUALIFIED
Greenwood T IturbideIndiaAsiya Javayant NEGOTIATION
Kadeem N NickaArgentinaBernardo Dominic RENEWAL
David J MacleadUnited KingdomAsiya Javayant 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>