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
Morrow S DoeBrazilAsiya Javayant RENEWAL
Ivar X KuskoFranceAsiya Javayant RENEWAL
Jones Q DoeRussiaAmy Elsner UNQUALIFIED
Tony D OstroskySpainAnna Fali NEW
Kaitlin A KuskoArgentinaAmy Elsner UNQUALIFIED
Maisha L IturbideIndiaIvan Magalhaes UNQUALIFIED
Costa C CaldareraUnited KingdomOnyama Limba NEGOTIATION
Kaitlin E DoeBrazilBernardo Dominic NEGOTIATION
Maria S AlbaresItalyOnyama Limba RENEWAL
Mayumi K GillianCanadaAsiya Javayant NEW
Rodrigues W NickaUnited KingdomOnyama Limba QUALIFIED
Emily P RimRussiaStephen Shaw QUALIFIED
Octavia K GauchoItalyElwin Sharvill QUALIFIED
Murillo Y GillianIndiaStephen Shaw QUALIFIED
David K MarrierGermanyStephen Shaw RENEWAL
Maria Y TollnerCanadaAsiya Javayant NEGOTIATION
Julie P MorascaSpainIoni Bowcher RENEWAL
Morrow W MaletBrazilIvan Magalhaes PROPOSAL
Maisha Y FlosiFranceIoni Bowcher NEGOTIATION
Nicolas I BriddickGermanyAsiya Javayant QUALIFIED
Munro Q ShinkoAustraliaAsiya Javayant RENEWAL
Ricardo O CaldareraIndiaAsiya Javayant UNQUALIFIED
Stacey Z VenereFranceAmy Elsner NEW
Juan D RutaJapanOnyama Limba QUALIFIED
Kadeem M WieserAustraliaAnna Fali PROPOSAL
Salvatore A FollerIndiaXuxue Feng QUALIFIED
Wickens Z AmigonUnited KingdomOnyama Limba NEW
Morrow G VocelkaSpainElwin Sharvill QUALIFIED
Aditya X WieserArgentinaElwin Sharvill NEGOTIATION
Ricardo X WhobreySpainAsiya Javayant UNQUALIFIED
Sinclair N DarakjyItalyBernardo Dominic NEW
Sinclair Z WhobreyIndiaElwin Sharvill QUALIFIED
Chavez S GillianSpainXuxue Feng PROPOSAL
Francesco H StockhamCanadaIoni Bowcher QUALIFIED
Chavez G ChuiIndiaAsiya Javayant NEGOTIATION
Munro X PaprockiJapanElwin Sharvill NEW
Mayumi P ShinkoSpainOnyama Limba PROPOSAL
Jefferson X GauchoItalyAsiya Javayant NEGOTIATION
Deepesh F NestleGermanyAnna Fali PROPOSAL
Leja F WhobreyGermanyStephen Shaw NEGOTIATION
Silvio T NestleItalyIvan Magalhaes UNQUALIFIED
Ricardo P StensethCanadaAnna Fali RENEWAL
Nicolas A NestleAustraliaIoni Bowcher QUALIFIED
Leja L VenereCanadaBernardo Dominic NEW
Aruna K GauchoUnited KingdomIvan Magalhaes NEW
Jefferson L GlickItalyAnna Fali NEGOTIATION
Arvin O FlosiIndiaElwin Sharvill RENEWAL
Jones M FollerJapanBernardo Dominic UNQUALIFIED
Claire G StockhamArgentinaElwin Sharvill RENEWAL
Aruna T WhobreyCanadaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi U CaldareraGermanyAsiya Javayant QUALIFIED
Johnson K PerinItalyAnna Fali PROPOSAL
Isabel W SergiAustraliaXuxue Feng QUALIFIED
Kadeem A DarakjyBrazilIvan Magalhaes RENEWAL
Kaitlin E MacleadFranceXuxue Feng PROPOSAL
Stacey G FigeroaItalyAsiya Javayant QUALIFIED
Ricardo O DilliardGermanyStephen Shaw NEGOTIATION
Izzy F FigeroaArgentinaStephen Shaw RENEWAL
Stacey Y MacleadArgentinaOnyama Limba NEGOTIATION
Nicolas F MarrierBrazilStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire R TollnerJapan2025-04-13Rangoni Of Florence PROPOSAL37Ioni Bowcher
1001Murillo Y StensethGermany2025-04-23Feltz Printing Service QUALIFIED21Amy Elsner
1002Aditya P WaycottJapan2025-04-30Truhlar And Truhlar Attys QUALIFIED22Asiya Javayant
1003Maisha V ChuiJapan2025-04-15Chapman, Ross E Esq NEGOTIATION79Anna Fali
1004James F CaudyCanada2025-04-16Morlong Associates NEW43Elwin Sharvill
1005Antonio M RutaUnited Kingdom2025-04-29Rangoni Of Florence RENEWAL8Asiya Javayant
1006Francesco K GarufiFrance2025-04-01King, Christopher A Esq UNQUALIFIED57Ioni Bowcher
1007Alejandro B MaletUnited Kingdom2025-04-13King, Christopher A Esq NEW88Amy Elsner
1008Jeanfrancois E InouyeGermany2025-04-04Buckley Miller Wright RENEWAL0Onyama Limba
1009Arvin R NickaUnited Kingdom2025-04-17Feiner Bros UNQUALIFIED25Onyama Limba
1010Ashley P DoeIndia2025-04-30Truhlar And Truhlar Attys PROPOSAL97Stephen Shaw
1011Greenwood L NickaItaly2025-04-27Printing Dimensions NEW32Asiya Javayant
1012Cody Y KolmetzBrazil2025-04-15Truhlar And Truhlar Attys PROPOSAL68Ioni Bowcher
1013Ivar P SchemmerJapan2025-04-05Benton, John B Jr PROPOSAL34Amy Elsner
1014Aditya V GillianArgentina2025-04-23Commercial Press UNQUALIFIED9Xuxue Feng
1015Munro Y BowleyItaly2025-04-27Rangoni Of Florence QUALIFIED66Ioni Bowcher
1016Claire R SergiArgentina2025-04-18Chapman, Ross E Esq NEGOTIATION41Ioni Bowcher
1017Chavez C InouyeGermany2025-04-30Printing Dimensions RENEWAL87Amy Elsner
1018Silvio O AlbaresSpain2025-04-07Rangoni Of Florence RENEWAL79Elwin Sharvill
1019Cody M KuskoIndia2025-04-15Chapman, Ross E Esq PROPOSAL49Amy Elsner
1020Jeanfrancois E PerinArgentina2025-04-08Chanay, Jeffrey A Esq NEGOTIATION88Ivan Magalhaes
1021Antonio D PoquetteSpain2025-04-18Chemel, James L Cpa PROPOSAL62Amy Elsner
1022Clifford G OstroskyArgentina2025-04-07Morlong Associates RENEWAL88Stephen Shaw
1023Tony W OstroskyJapan2025-04-25Feiner Bros PROPOSAL69Elwin Sharvill
1024Kadeem E SergiItaly2025-04-19Feltz Printing Service RENEWAL44Asiya Javayant
1025Jennifer V InouyeIndia2025-04-03Morlong Associates QUALIFIED4Amy Elsner
1026Tony R WaycottSpain2025-04-27Feltz Printing Service QUALIFIED18Anna Fali
1027Morrow T StockhamUnited Kingdom2025-04-15Buckley Miller Wright UNQUALIFIED11Ivan Magalhaes
1028Arvin M ShinkoArgentina2025-04-13King, Christopher A Esq QUALIFIED86Onyama Limba
1029Alejandro V CampainRussia2025-04-28Chemel, James L Cpa NEW41Ioni Bowcher
1030Jennifer L IturbideAustralia2025-04-29Chemel, James L Cpa RENEWAL52Stephen Shaw
1031Rodrigues A AlbaresRussia2025-04-13Feiner Bros PROPOSAL25Elwin Sharvill
1032Jennifer F ButtCanada2025-04-14Morlong Associates PROPOSAL36Ivan Magalhaes
1033Darci M GlickAustralia2025-04-04Chanay, Jeffrey A Esq NEGOTIATION15Bernardo Dominic
1034Maisha B FerenczArgentina2025-04-04Chanay, Jeffrey A Esq UNQUALIFIED89Ivan Magalhaes
1035Nicolas M BologniaUnited Kingdom2025-04-11Dorl, James J Esq PROPOSAL57Ioni Bowcher
1036Tony W DoeIndia2025-04-24Morlong Associates PROPOSAL11Bernardo Dominic
1037Munro C OldroydBrazil2025-04-05Feiner Bros QUALIFIED61Xuxue Feng
1038Jones V PoquetteJapan2025-04-26Rousseaux, Michael Esq UNQUALIFIED58Ivan Magalhaes
1039Murillo P GillianItaly2025-04-04Feltz Printing Service NEGOTIATION55Xuxue Feng
1040Adams X KuskoAustralia2025-04-04Morlong Associates UNQUALIFIED6Amy Elsner
1041Mujtaba H VocelkaItaly2025-04-03Morlong Associates QUALIFIED5Xuxue Feng
1042Juan B ShinkoItaly2025-04-23Morlong Associates PROPOSAL66Anna Fali
1043Jennifer B BriddickSpain2025-04-03Feiner Bros UNQUALIFIED48Amy Elsner
1044Munro K GlickSpain2025-04-11Dorl, James J Esq QUALIFIED8Amy Elsner
1045Ashley W AmigonFrance2025-04-26Printing Dimensions UNQUALIFIED71Anna Fali
1046Aditya X MaletAustralia2025-04-25Dorl, James J Esq NEGOTIATION5Asiya Javayant
1047Mujtaba S PoquetteArgentina2025-04-01Printing Dimensions UNQUALIFIED14Asiya Javayant
1048Darci V PoquetteRussia2025-04-15Printing Dimensions QUALIFIED91Ivan Magalhaes
1049Isabel A RoysterCanada2025-04-17Commercial Press NEGOTIATION73Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody I GillianCanadaStephen Shaw NEW
Sinclair J PoquetteAustraliaOnyama Limba PROPOSAL
Leja T ShinkoFranceAmy Elsner RENEWAL
Kadeem U MaletItalyXuxue Feng PROPOSAL
Stacey K AmigonArgentinaAsiya Javayant NEW
Adams G RimUnited KingdomStephen Shaw RENEWAL
Aditya K RoysterItalyAmy Elsner UNQUALIFIED
Aruna B WaycottFranceAnna Fali NEW
Kadeem K StensethItalyAmy Elsner NEW
Aditya L MaletFranceIvan Magalhaes NEW
Jefferson C VocelkaSpainXuxue Feng NEGOTIATION
Antonio W KolmetzGermanyStephen Shaw QUALIFIED
Leja B ButtBrazilXuxue Feng NEW
Antonio Q GillianUnited KingdomElwin Sharvill PROPOSAL
Munro F PoquetteGermanyXuxue Feng PROPOSAL
David C PoquetteSpainAmy Elsner NEGOTIATION
Jeanfrancois S WieserGermanyAnna Fali RENEWAL
Ricardo J BologniaItalyIoni Bowcher NEW
Munro T SergiItalyStephen Shaw QUALIFIED
Nicolas E FollerBrazilOnyama Limba RENEWAL
Julie L NickaFranceBernardo Dominic PROPOSAL
Adams L CampainRussiaBernardo Dominic NEGOTIATION
Ivar P AlbaresRussiaIvan Magalhaes QUALIFIED
Costa H AlbaresAustraliaAmy Elsner NEW
Johnson A GlickGermanyIvan Magalhaes NEW
Kadeem M KolmetzSpainAmy Elsner UNQUALIFIED
Alejandro Z TollnerBrazilAnna Fali NEW
Sinclair U MorascaSpainIvan Magalhaes QUALIFIED
Ricardo B CaudyBrazilAmy Elsner NEGOTIATION
Sinclair Z StensethFranceIoni Bowcher RENEWAL
Kadeem I SergiGermanyBernardo Dominic QUALIFIED
Izzy Y SergiArgentinaIoni Bowcher NEGOTIATION
David Z MaletUnited KingdomIvan Magalhaes PROPOSAL
Cody X OstroskyJapanIvan Magalhaes NEW
Antonio W FerenczArgentinaXuxue Feng PROPOSAL
Faith K ShinkoIndiaStephen Shaw RENEWAL
Julie Q AmigonGermanyOnyama Limba PROPOSAL
Ricardo I CampainJapanIvan Magalhaes PROPOSAL
Jones J AlbaresArgentinaIoni Bowcher NEW
James B FigeroaIndiaXuxue Feng NEGOTIATION
Izzy Q GillianBrazilXuxue Feng NEW
Kadeem D DilliardGermanyOnyama Limba RENEWAL
Kadeem Q InouyeCanadaAnna Fali RENEWAL
Cody H ChuiArgentinaElwin Sharvill NEGOTIATION
Stacey E GlickCanadaBernardo Dominic QUALIFIED
Morrow P MacleadBrazilBernardo Dominic PROPOSAL
David B FerenczBrazilStephen Shaw NEW
Sinclair Y WieserBrazilAsiya Javayant NEGOTIATION
Claire M PerinAustraliaIoni Bowcher UNQUALIFIED
Johnson J PerinRussiaXuxue Feng QUALIFIED
Frozen Columns
Name
Kadeem P Garufi
Stacey O Inouye
Isabel P Bolognia
Jeanfrancois C Kusko
Arvin Q Wieser
Kadeem F Caudy
Maisha G Vocelka
Arvin V Tollner
Leja N Doe
Costa V Flosi
Darci L Bolognia
Sinclair A Tollner
Jeanfrancois F Gaucho
Ivar Y Iturbide
Juan U Saylors
Greenwood E Flosi
Octavia Y Rim
Claire I Nestle
Ricardo Y Shinko
James T Gaucho
Greenwood N Oldroyd
Jefferson E Albares
Kaitlin U Ostrosky
Costa P Nicka
Morrow D Campain
Maria P Doe
Juan P Stockham
Maisha J Amigon
Mayumi U Albares
Antonio D Nicka
Munro U Caldarera
Munro J Slusarski
Rodrigues F Ostrosky
Cody O Shinko
Ashley P Glick
Jefferson D Poquette
Tony B Kusko
Jeanfrancois Q Marrier
Deepesh D Dilliard
Mayumi O Stenseth
Morrow T Royster
Emily O Foller
Alejandro C Darakjy
Maria Q Caudy
Tony D Whobrey
Jones M Vocelka
Emily V Vocelka
Leja T Schemmer
Octavia W Slusarski
Mujtaba L Slusarski
IdCountryDate
1000Brazil2025-04-12
1001India2025-04-27
1002Japan2025-04-04
1003Australia2025-04-14
1004United Kingdom2025-04-03
1005Germany2025-04-27
1006Germany2025-04-19
1007India2025-04-24
1008Canada2025-04-02
1009Italy2025-04-14
1010Russia2025-04-14
1011Australia2025-04-27
1012United Kingdom2025-04-09
1013Argentina2025-04-12
1014Spain2025-04-15
1015Canada2025-04-29
1016Japan2025-04-02
1017France2025-04-10
1018United Kingdom2025-04-01
1019Brazil2025-04-05
1020Russia2025-04-16
1021Brazil2025-04-16
1022Germany2025-04-17
1023Australia2025-04-16
1024Germany2025-04-29
1025India2025-04-30
1026Japan2025-04-01
1027Italy2025-04-01
1028Canada2025-04-02
1029Germany2025-04-22
1030France2025-04-20
1031Italy2025-04-29
1032Spain2025-04-10
1033Australia2025-04-07
1034France2025-04-22
1035Argentina2025-04-19
1036Canada2025-04-25
1037Australia2025-04-27
1038Russia2025-04-21
1039Italy2025-04-14
1040India2025-04-11
1041Japan2025-04-16
1042Spain2025-04-05
1043Spain2025-04-08
1044United Kingdom2025-04-15
1045Brazil2025-04-03
1046France2025-04-27
1047France2025-04-15
1048India2025-04-19
1049Germany2025-04-08

On-Demand Data

NameIdCountryDate
Chavez J Campain1000France2025-04-11
Aruna E Foller1001Australia2025-04-13
Clifford E Malet1002United Kingdom2025-04-18
Clifford L Ruta1003Germany2025-04-09
Misaki L Kusko1004Japan2025-04-16
Costa G Tollner1005Germany2025-04-01
Maria X Schemmer1006Canada2025-04-30
Murillo Y Figeroa1007France2025-04-04
Antonio E Bowley1008United Kingdom2025-04-25
Mujtaba I Chui1009France2025-04-01
Ricardo K Perin1010Argentina2025-04-17
Octavia Z Oldroyd1011Spain2025-04-26
Misaki Y Maclead1012Germany2025-04-30
Jeanfrancois E Stockham1013United Kingdom2025-04-16
Murillo A Ferencz1014Italy2025-04-24
Ricardo N Maclead1015United Kingdom2025-04-29
Kadeem H Malet1016Russia2025-04-25
Mayumi S Maclead1017United Kingdom2025-04-25
Faith M Ferencz1018Spain2025-04-17
Cody F Morasca1019United Kingdom2025-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie E ShinkoJapanElwin Sharvill NEW
Sinclair H BowleyGermanyAmy Elsner QUALIFIED
Cody O SergiBrazilStephen Shaw PROPOSAL
Deepesh I FlosiCanadaAsiya Javayant PROPOSAL
Kadeem E WhobreyIndiaOnyama Limba QUALIFIED
Julie N ButtRussiaElwin Sharvill PROPOSAL
Arvin W GauchoUnited KingdomAmy Elsner UNQUALIFIED
Izzy Q SlusarskiGermanyAmy Elsner PROPOSAL
Ashley X FerenczBrazilElwin Sharvill NEGOTIATION
Mujtaba F BriddickBrazilAsiya Javayant NEW
Costa D CampainAustraliaElwin Sharvill RENEWAL
Alejandro J AlbaresBrazilAnna Fali UNQUALIFIED
Isabel E RulapaughIndiaAnna Fali QUALIFIED
James T FlosiJapanElwin Sharvill RENEWAL
Darci O FerenczArgentinaAmy Elsner RENEWAL
Kadeem E VocelkaFranceAmy Elsner RENEWAL
Rodrigues K GauchoArgentinaXuxue Feng QUALIFIED
Jeanfrancois O BowleyUnited KingdomIvan Magalhaes QUALIFIED
Antonio V SlusarskiFranceIvan Magalhaes PROPOSAL
James U CampainCanadaOnyama Limba NEW
Deepesh O VocelkaCanadaBernardo Dominic QUALIFIED
Alejandro J DarakjyCanadaIoni Bowcher PROPOSAL
Nicolas B NestleGermanyAmy Elsner UNQUALIFIED
Costa D SergiAustraliaAsiya Javayant QUALIFIED
Octavia A FigeroaJapanOnyama Limba NEGOTIATION
Smith Q FollerUnited KingdomElwin Sharvill QUALIFIED
Faith B CampainAustraliaElwin Sharvill UNQUALIFIED
Jennifer T WhobreyArgentinaIvan Magalhaes NEW
Isabel K PoquetteSpainXuxue Feng NEGOTIATION
Silvio Y IturbideUnited KingdomAmy Elsner QUALIFIED
Munro O StockhamCanadaAnna Fali QUALIFIED
Aika P WaycottAustraliaAsiya Javayant UNQUALIFIED
Costa K VenereItalyIvan Magalhaes PROPOSAL
Costa V AmigonJapanOnyama Limba NEW
Wickens G DoeIndiaOnyama Limba PROPOSAL
Chavez G ButtRussiaStephen Shaw NEW
Francesco E BriddickArgentinaAsiya Javayant NEGOTIATION
Mujtaba Q CaudyCanadaAsiya Javayant QUALIFIED
Francesco V SergiJapanAnna Fali PROPOSAL
Aruna Y WhobreyItalyStephen Shaw 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>