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
Deepesh L StockhamItalyStephen Shaw NEGOTIATION
Murillo B IturbideFranceIvan Magalhaes QUALIFIED
Cody W DoeUnited KingdomOnyama Limba NEGOTIATION
Jones I GauchoIndiaStephen Shaw PROPOSAL
Costa K KuskoJapanIoni Bowcher RENEWAL
Julie X MaletCanadaAsiya Javayant NEW
Aika E VenereGermanyAnna Fali QUALIFIED
Johnson N BowleySpainIoni Bowcher NEW
Chavez J GlickUnited KingdomAsiya Javayant NEW
Isabel L NickaUnited KingdomBernardo Dominic NEW
Cody Z ButtRussiaAsiya Javayant NEGOTIATION
Rodrigues Q SaylorsJapanStephen Shaw PROPOSAL
Francesco T SchemmerCanadaAnna Fali NEW
Costa F CampainAustraliaStephen Shaw PROPOSAL
Adams S DoeIndiaAnna Fali UNQUALIFIED
David Y CaudyAustraliaAnna Fali PROPOSAL
Jefferson K InouyeArgentinaAnna Fali QUALIFIED
Faith A PaprockiCanadaStephen Shaw UNQUALIFIED
Deepesh V ChuiIndiaIoni Bowcher QUALIFIED
Clifford C SlusarskiItalyIvan Magalhaes PROPOSAL
Jones H BowleyIndiaAmy Elsner NEGOTIATION
Misaki N TollnerGermanyAmy Elsner UNQUALIFIED
Mayumi K RulapaughBrazilAnna Fali UNQUALIFIED
Octavia N VenereIndiaBernardo Dominic PROPOSAL
Ricardo Z BologniaJapanStephen Shaw NEGOTIATION
Ashley V FigeroaItalyAsiya Javayant RENEWAL
Arvin X WaycottSpainOnyama Limba NEGOTIATION
Mujtaba M InouyeIndiaXuxue Feng QUALIFIED
Maisha Q StensethUnited KingdomIvan Magalhaes QUALIFIED
Claire K FerenczBrazilElwin Sharvill RENEWAL
Costa X RoysterFranceAsiya Javayant NEW
Aditya M FlosiRussiaXuxue Feng NEGOTIATION
Wickens F RimRussiaOnyama Limba QUALIFIED
Ivar C NestleFranceBernardo Dominic NEW
Morrow C MaletJapanBernardo Dominic PROPOSAL
Stacey Z WaycottRussiaBernardo Dominic PROPOSAL
Kadeem V WaycottJapanStephen Shaw NEGOTIATION
Maria C MaletArgentinaAmy Elsner QUALIFIED
Francesco P InouyeAustraliaElwin Sharvill NEW
Ricardo Y DarakjyRussiaIoni Bowcher QUALIFIED
Ivar B GauchoCanadaElwin Sharvill RENEWAL
Julie N FerenczSpainBernardo Dominic NEW
Leja K TollnerGermanyStephen Shaw QUALIFIED
Greenwood N DilliardItalyBernardo Dominic QUALIFIED
Murillo D KuskoUnited KingdomElwin Sharvill NEW
Faith I PaprockiFranceIvan Magalhaes RENEWAL
Ashley X DoeFranceElwin Sharvill UNQUALIFIED
Aditya Z MaletCanadaBernardo Dominic NEW
Adams N TollnerBrazilIvan Magalhaes RENEWAL
David J OldroydUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues A BowleyJapanIoni Bowcher NEW
Maria T KolmetzIndiaAnna Fali RENEWAL
Salvatore F GillianAustraliaBernardo Dominic QUALIFIED
Johnson S TollnerCanadaAnna Fali UNQUALIFIED
Stacey V VenereArgentinaOnyama Limba QUALIFIED
Munro B SlusarskiBrazilAmy Elsner NEGOTIATION
Smith H PerinRussiaElwin Sharvill PROPOSAL
Johnson K ChuiGermanyIvan Magalhaes QUALIFIED
Costa R MacleadRussiaElwin Sharvill UNQUALIFIED
Ashley R ButtUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin H MacleadAustralia2026-08-23Commercial Press UNQUALIFIED29Onyama Limba
1001Julie G MorascaAustralia2026-08-10Rangoni Of Florence NEGOTIATION63Stephen Shaw
1002Julie L NickaRussia2026-08-20Benton, John B Jr RENEWAL59Elwin Sharvill
1003Nicolas J RoysterGermany2026-07-30Buckley Miller Wright UNQUALIFIED40Xuxue Feng
1004Tony C CampainUnited Kingdom2026-08-09Chapman, Ross E Esq NEGOTIATION85Bernardo Dominic
1005Jennifer I MorascaRussia2026-08-05King, Christopher A Esq QUALIFIED98Onyama Limba
1006Ricardo T CaudyRussia2026-08-24Printing Dimensions QUALIFIED8Elwin Sharvill
1007Stacey R AlbaresRussia2026-08-24Feltz Printing Service RENEWAL86Amy Elsner
1008Claire B KolmetzAustralia2026-08-06King, Christopher A Esq NEW2Ivan Magalhaes
1009Ivar E RulapaughGermany2026-08-03Dorl, James J Esq PROPOSAL47Stephen Shaw
1010Smith I CampainRussia2026-08-19Buckley Miller Wright NEW25Asiya Javayant
1011Adams L RutaRussia2026-08-05Truhlar And Truhlar Attys NEW84Ivan Magalhaes
1012Ricardo P PaprockiUnited Kingdom2026-08-14Commercial Press PROPOSAL36Ivan Magalhaes
1013Alejandro T RimFrance2026-08-06Truhlar And Truhlar Attys RENEWAL25Stephen Shaw
1014Aditya J IturbideSpain2026-08-20Printing Dimensions QUALIFIED52Xuxue Feng
1015Clifford L GauchoIndia2026-07-31Rousseaux, Michael Esq NEGOTIATION56Onyama Limba
1016Maria B FollerFrance2026-07-30Rangoni Of Florence UNQUALIFIED1Bernardo Dominic
1017Smith A ShinkoItaly2026-08-01Chemel, James L Cpa NEGOTIATION56Bernardo Dominic
1018Stacey X NestleJapan2026-08-03Benton, John B Jr NEW8Ivan Magalhaes
1019Ricardo T SchemmerSpain2026-08-17Dorl, James J Esq UNQUALIFIED21Asiya Javayant
1020Misaki Z StensethFrance2026-08-10Benton, John B Jr NEW12Elwin Sharvill
1021Maisha F NickaBrazil2026-07-28Chapman, Ross E Esq UNQUALIFIED13Elwin Sharvill
1022Jennifer S BriddickItaly2026-08-23Truhlar And Truhlar Attys QUALIFIED75Elwin Sharvill
1023Kaitlin X FerenczJapan2026-08-01Benton, John B Jr PROPOSAL48Ivan Magalhaes
1024Julie X BologniaCanada2026-08-21Benton, John B Jr NEW19Onyama Limba
1025Chavez S GlickFrance2026-08-23Dorl, James J Esq QUALIFIED73Xuxue Feng
1026David G OstroskyArgentina2026-08-21Buckley Miller Wright QUALIFIED22Ivan Magalhaes
1027Kadeem P AlbaresAustralia2026-08-01Truhlar And Truhlar Attys RENEWAL43Anna Fali
1028Ivar G BowleyRussia2026-08-23Chanay, Jeffrey A Esq RENEWAL48Elwin Sharvill
1029Arvin G FollerRussia2026-07-30Chapman, Ross E Esq NEGOTIATION9Ioni Bowcher
1030Sinclair R MorascaJapan2026-08-16Chanay, Jeffrey A Esq QUALIFIED61Onyama Limba
1031Munro D NickaArgentina2026-08-18King, Christopher A Esq NEW25Asiya Javayant
1032Darci S PerinUnited Kingdom2026-08-02Benton, John B Jr RENEWAL8Bernardo Dominic
1033Clifford U DarakjyArgentina2026-08-17King, Christopher A Esq QUALIFIED26Bernardo Dominic
1034Antonio N DoeAustralia2026-07-28King, Christopher A Esq RENEWAL26Elwin Sharvill
1035Tony N CaldareraItaly2026-08-11Feiner Bros QUALIFIED67Elwin Sharvill
1036Octavia G DoeItaly2026-08-01King, Christopher A Esq RENEWAL59Asiya Javayant
1037Ashley P SaylorsSpain2026-08-17King, Christopher A Esq RENEWAL79Bernardo Dominic
1038Silvio L GauchoGermany2026-08-06Chapman, Ross E Esq PROPOSAL23Asiya Javayant
1039Emily Z OldroydBrazil2026-08-23Morlong Associates QUALIFIED87Asiya Javayant
1040Jennifer L InouyeRussia2026-08-12Truhlar And Truhlar Attys UNQUALIFIED23Asiya Javayant
1041Kadeem I DilliardSpain2026-08-22Rangoni Of Florence NEGOTIATION37Xuxue Feng
1042Aditya A InouyeAustralia2026-08-06Benton, John B Jr QUALIFIED42Asiya Javayant
1043Stacey M NickaItaly2026-07-27King, Christopher A Esq PROPOSAL85Xuxue Feng
1044Alejandro S MacleadCanada2026-08-24Dorl, James J Esq RENEWAL13Asiya Javayant
1045Johnson K KolmetzBrazil2026-08-11Rousseaux, Michael Esq NEW13Asiya Javayant
1046Jones W FollerJapan2026-08-08Feltz Printing Service QUALIFIED2Elwin Sharvill
1047Kaitlin O PoquetteArgentina2026-08-15King, Christopher A Esq PROPOSAL59Stephen Shaw
1048Mayumi P FerenczArgentina2026-08-01Chanay, Jeffrey A Esq NEW59Anna Fali
1049Julie U MacleadRussia2026-07-30Buckley Miller Wright UNQUALIFIED58Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maria U ShinkoUnited KingdomIvan Magalhaes RENEWAL
Aika G AlbaresAustraliaIoni Bowcher UNQUALIFIED
Faith C FigeroaGermanyOnyama Limba NEGOTIATION
Julie P RimSpainOnyama Limba PROPOSAL
Claire W MorascaJapanAnna Fali PROPOSAL
Francesco R KuskoCanadaAsiya Javayant UNQUALIFIED
Chavez Y SchemmerJapanIoni Bowcher QUALIFIED
Chavez R KolmetzCanadaXuxue Feng UNQUALIFIED
Leon K FerenczBrazilOnyama Limba QUALIFIED
Rodrigues N RulapaughGermanyBernardo Dominic RENEWAL
Ivar T CaldareraRussiaAsiya Javayant UNQUALIFIED
Jefferson C PoquetteBrazilBernardo Dominic NEGOTIATION
Sinclair Q PaprockiJapanIoni Bowcher UNQUALIFIED
Johnson F ButtGermanyOnyama Limba RENEWAL
Murillo X BowleyItalyAmy Elsner QUALIFIED
Isabel P VenereCanadaXuxue Feng NEW
Maria O SergiArgentinaOnyama Limba QUALIFIED
Darci Z BologniaCanadaXuxue Feng NEGOTIATION
David C WieserFranceAsiya Javayant NEW
James D FlosiAustraliaIoni Bowcher NEW
Alejandro A CampainAustraliaOnyama Limba NEW
Clifford J GauchoGermanyBernardo Dominic PROPOSAL
Mayumi I WaycottIndiaAsiya Javayant NEW
Kadeem U SchemmerJapanBernardo Dominic RENEWAL
Kadeem L WieserGermanyBernardo Dominic NEGOTIATION
Emily C DilliardBrazilAnna Fali NEW
Kadeem C WhobreySpainOnyama Limba RENEWAL
Julie A DilliardItalyBernardo Dominic UNQUALIFIED
Aruna Q FerenczItalyAmy Elsner NEW
Faith J NestleUnited KingdomIvan Magalhaes NEW
Aruna Z GauchoGermanyIoni Bowcher QUALIFIED
Johnson S DilliardAustraliaAsiya Javayant UNQUALIFIED
Francesco Q RoysterGermanyXuxue Feng QUALIFIED
Leon W CaudySpainElwin Sharvill UNQUALIFIED
Antonio A FollerGermanyIvan Magalhaes NEGOTIATION
Chavez D CaldareraArgentinaElwin Sharvill NEW
Faith T NickaCanadaIvan Magalhaes UNQUALIFIED
Antonio H DarakjyIndiaIvan Magalhaes NEW
Juan I DilliardRussiaAmy Elsner RENEWAL
Arvin J GlickItalyAmy Elsner NEGOTIATION
Stacey N FlosiUnited KingdomElwin Sharvill NEGOTIATION
Cody D CampainSpainIoni Bowcher NEGOTIATION
Murillo X SchemmerIndiaOnyama Limba NEW
Isabel U IturbideSpainAsiya Javayant UNQUALIFIED
Rodrigues B MarrierJapanElwin Sharvill RENEWAL
Silvio I OstroskyUnited KingdomAnna Fali NEW
Mayumi Y MacleadBrazilElwin Sharvill QUALIFIED
Emily R DoeSpainIvan Magalhaes RENEWAL
Misaki I ShinkoArgentinaOnyama Limba UNQUALIFIED
James G DarakjyCanadaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Smith S Malet
Clifford F Poquette
Clifford Q Shinko
Adams Q Kolmetz
Jennifer D Shinko
Misaki N Sergi
Aditya T Oldroyd
Murillo W Iturbide
Aika G Bowley
Sinclair H Inouye
Nicolas U Shinko
Deepesh K Malet
Alejandro G Foller
Jennifer T Ferencz
Alejandro J Foller
Aditya O Wieser
Mujtaba R Caudy
Wickens F Stenseth
Greenwood S Garufi
Maria Y Malet
Kaitlin T Kolmetz
Aditya U Kolmetz
Ashley X Venere
Munro A Slusarski
Adams B Sergi
Francesco G Ferencz
Claire N Morasca
Antonio D Poquette
James G Kolmetz
Aruna W Darakjy
Nicolas Q Amigon
Leja F Darakjy
Greenwood X Venere
Aditya B Ostrosky
Stacey T Gaucho
Jefferson C Waycott
Adams L Nicka
Arvin I Nicka
Mujtaba C Garufi
Nicolas K Marrier
Nicolas J Gaucho
Smith A Doe
Aika L Amigon
Deepesh G Albares
Adams Q Foller
Sinclair Q Maclead
Jones J Tollner
Maria E Stenseth
Aruna Q Stenseth
Costa Y Slusarski
IdCountryDate
1000Canada2026-08-06
1001India2026-08-12
1002Russia2026-07-26
1003United Kingdom2026-07-27
1004Spain2026-08-21
1005Germany2026-07-31
1006Russia2026-07-27
1007Spain2026-08-12
1008Canada2026-07-29
1009India2026-08-04
1010Spain2026-08-14
1011Canada2026-08-11
1012Australia2026-07-30
1013Russia2026-08-06
1014Argentina2026-08-15
1015France2026-08-24
1016Brazil2026-07-29
1017India2026-08-01
1018Russia2026-07-27
1019Russia2026-08-06
1020Australia2026-08-12
1021United Kingdom2026-08-06
1022Canada2026-08-03
1023Italy2026-08-18
1024Australia2026-08-13
1025Australia2026-07-28
1026Italy2026-07-29
1027Italy2026-07-28
1028Italy2026-08-22
1029France2026-08-06
1030Italy2026-07-31
1031France2026-08-09
1032France2026-07-27
1033Russia2026-08-04
1034France2026-07-30
1035Russia2026-08-23
1036Germany2026-08-20
1037Australia2026-08-04
1038Germany2026-07-30
1039Argentina2026-08-12
1040Argentina2026-08-22
1041Italy2026-08-10
1042India2026-08-23
1043India2026-08-06
1044Brazil2026-08-18
1045Argentina2026-08-22
1046France2026-07-29
1047Brazil2026-08-08
1048Argentina2026-08-10
1049France2026-08-05

On-Demand Data

NameIdCountryDate
Maria A Sergi1000Canada2026-08-08
Rodrigues J Flosi1001Italy2026-08-16
Julie U Perin1002India2026-08-09
Silvio G Schemmer1003Italy2026-08-11
Jennifer S Garufi1004Argentina2026-08-10
Claire N Shinko1005Brazil2026-08-21
Leja C Rulapaugh1006United Kingdom2026-08-15
Mujtaba B Schemmer1007India2026-07-26
Morrow T Poquette1008Canada2026-08-10
Kaitlin A Morasca1009Spain2026-07-29
Murillo W Kolmetz1010Italy2026-08-04
Jones F Royster1011Spain2026-08-21
Wickens U Butt1012Argentina2026-08-21
Johnson H Briddick1013France2026-08-16
Maisha Q Shinko1014Canada2026-08-24
Stacey N Schemmer1015Germany2026-08-07
Aruna Z Caldarera1016Brazil2026-07-31
Nicolas U Butt1017Spain2026-08-17
Maisha V Rim1018Brazil2026-08-11
Emily A Gaucho1019United Kingdom2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley E BologniaItalyElwin Sharvill NEGOTIATION
Maria G CaudyRussiaXuxue Feng RENEWAL
Clifford O PerinBrazilIoni Bowcher NEW
Ivar P PerinJapanIoni Bowcher UNQUALIFIED
Clifford S GlickItalyBernardo Dominic NEGOTIATION
Jeanfrancois D MacleadIndiaIvan Magalhaes QUALIFIED
Emily I SergiBrazilIoni Bowcher UNQUALIFIED
Leon I SchemmerRussiaAsiya Javayant QUALIFIED
Maria P RoysterCanadaAsiya Javayant PROPOSAL
Tony G WieserSpainOnyama Limba PROPOSAL
Murillo M StensethRussiaAmy Elsner RENEWAL
Arvin K BowleySpainStephen Shaw NEW
David K SchemmerSpainAsiya Javayant RENEWAL
Adams A AlbaresRussiaAsiya Javayant NEW
Julie I VenereAustraliaElwin Sharvill QUALIFIED
Aika J WieserAustraliaIvan Magalhaes RENEWAL
Wickens C AmigonSpainElwin Sharvill QUALIFIED
Jeanfrancois N PoquetteArgentinaElwin Sharvill PROPOSAL
Jennifer O AmigonBrazilBernardo Dominic PROPOSAL
Claire B BowleyItalyAsiya Javayant NEGOTIATION
Arvin K WhobreyJapanAnna Fali NEGOTIATION
Sinclair U MorascaItalyXuxue Feng NEGOTIATION
Kaitlin R SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Arvin K DarakjyUnited KingdomIoni Bowcher RENEWAL
Murillo Q MorascaFranceAmy Elsner NEGOTIATION
Costa I PaprockiIndiaIvan Magalhaes NEW
Claire Q InouyeUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois M OldroydAustraliaStephen Shaw UNQUALIFIED
Maisha J VocelkaArgentinaAsiya Javayant UNQUALIFIED
Greenwood H StockhamAustraliaBernardo Dominic PROPOSAL
Isabel I TollnerArgentinaIoni Bowcher NEGOTIATION
Nicolas Q GlickUnited KingdomIvan Magalhaes RENEWAL
Deepesh G DarakjyJapanBernardo Dominic NEW
Sinclair A WhobreyRussiaBernardo Dominic PROPOSAL
Clifford O PaprockiGermanyXuxue Feng NEGOTIATION
Silvio Y AmigonFranceElwin Sharvill QUALIFIED
Jefferson Z StockhamSpainAsiya Javayant RENEWAL
Maria F AmigonSpainOnyama Limba RENEWAL
Morrow W GarufiCanadaIvan Magalhaes NEW
Smith R FerenczItalyStephen Shaw 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>