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
Stacey E PaprockiBrazilOnyama Limba NEGOTIATION
Misaki Y FigeroaGermanyStephen Shaw QUALIFIED
Stacey I BologniaSpainIvan Magalhaes NEW
Sinclair X MorascaSpainElwin Sharvill UNQUALIFIED
Claire A BowleyCanadaIoni Bowcher PROPOSAL
Murillo T FigeroaFranceAsiya Javayant NEGOTIATION
Misaki D KolmetzJapanXuxue Feng NEGOTIATION
Izzy X VenereSpainOnyama Limba NEGOTIATION
Maisha M ButtUnited KingdomAnna Fali UNQUALIFIED
James W RoysterArgentinaOnyama Limba QUALIFIED
Ashley Y FlosiArgentinaAmy Elsner NEGOTIATION
Mayumi F FerenczJapanIvan Magalhaes QUALIFIED
James Q NestleAustraliaElwin Sharvill QUALIFIED
Izzy L NickaBrazilStephen Shaw NEGOTIATION
Arvin A WieserSpainOnyama Limba PROPOSAL
Misaki S DilliardSpainAsiya Javayant RENEWAL
Mujtaba J PerinRussiaBernardo Dominic RENEWAL
Octavia P MacleadIndiaIoni Bowcher UNQUALIFIED
Jones N CaudyItalyBernardo Dominic NEW
Ashley Y ButtCanadaAsiya Javayant QUALIFIED
Mujtaba G AmigonFranceAnna Fali QUALIFIED
Ashley M WieserIndiaXuxue Feng NEGOTIATION
Jefferson G RutaArgentinaAsiya Javayant RENEWAL
Ivar G PoquetteItalyAsiya Javayant NEW
Jennifer K RutaRussiaOnyama Limba UNQUALIFIED
Murillo V RoysterArgentinaStephen Shaw QUALIFIED
Kaitlin X TollnerSpainAsiya Javayant NEW
Ivar I NestleIndiaIvan Magalhaes QUALIFIED
Julie W OstroskyUnited KingdomAmy Elsner NEW
Mayumi U PoquetteSpainAmy Elsner PROPOSAL
Leja K ChuiIndiaAnna Fali QUALIFIED
Ricardo A FollerBrazilElwin Sharvill PROPOSAL
Kadeem S KuskoAustraliaIoni Bowcher NEGOTIATION
Deepesh E MaletFranceElwin Sharvill RENEWAL
Juan C PerinGermanyIoni Bowcher PROPOSAL
Stacey T PoquetteArgentinaIvan Magalhaes PROPOSAL
Octavia G SergiGermanyAmy Elsner NEGOTIATION
Morrow W CaldareraArgentinaIoni Bowcher UNQUALIFIED
Deepesh R CaldareraCanadaElwin Sharvill PROPOSAL
Sinclair R KolmetzItalyElwin Sharvill PROPOSAL
Isabel R SaylorsGermanyStephen Shaw NEGOTIATION
Smith R VenereArgentinaXuxue Feng UNQUALIFIED
Jennifer A MaletRussiaIvan Magalhaes NEGOTIATION
Wickens N StensethAustraliaIoni Bowcher RENEWAL
Murillo I PoquetteItalyElwin Sharvill QUALIFIED
James A IturbideIndiaIoni Bowcher UNQUALIFIED
James I CampainJapanXuxue Feng PROPOSAL
Misaki Z FollerRussiaAmy Elsner UNQUALIFIED
Aruna C MacleadJapanAnna Fali PROPOSAL
Emily Q RutaJapanXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones M GauchoRussiaElwin Sharvill RENEWAL
Antonio C FigeroaCanadaStephen Shaw NEW
Aika D VenereAustraliaAsiya Javayant QUALIFIED
Mayumi Z SaylorsJapanBernardo Dominic NEW
Deepesh V WhobreyFranceIoni Bowcher PROPOSAL
Isabel R AmigonUnited KingdomElwin Sharvill QUALIFIED
Arvin C StensethGermanyBernardo Dominic QUALIFIED
Stacey M GlickIndiaBernardo Dominic RENEWAL
Johnson I StockhamIndiaIvan Magalhaes NEGOTIATION
Antonio H BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki U SlusarskiBrazil2024-06-15Rousseaux, Michael Esq UNQUALIFIED37Asiya Javayant
1001Silvio Y RimUnited Kingdom2024-06-17Buckley Miller Wright NEW8Xuxue Feng
1002Kadeem K RulapaughUnited Kingdom2024-05-29Feiner Bros QUALIFIED22Amy Elsner
1003Izzy P MaletJapan2024-06-11King, Christopher A Esq QUALIFIED78Bernardo Dominic
1004Ashley P BriddickUnited Kingdom2024-06-12Printing Dimensions UNQUALIFIED27Bernardo Dominic
1005Kadeem L ShinkoJapan2024-06-09Commercial Press PROPOSAL62Onyama Limba
1006Stacey U GlickRussia2024-06-07Printing Dimensions NEW5Amy Elsner
1007Tony P FigeroaIndia2024-06-09Rousseaux, Michael Esq NEW90Amy Elsner
1008Deepesh L SlusarskiIndia2024-05-26Printing Dimensions PROPOSAL59Asiya Javayant
1009Julie X FollerGermany2024-06-08Buckley Miller Wright UNQUALIFIED57Ivan Magalhaes
1010Salvatore Z GlickRussia2024-05-30Benton, John B Jr PROPOSAL28Ioni Bowcher
1011Darci P StensethGermany2024-06-20Morlong Associates UNQUALIFIED98Ioni Bowcher
1012Kaitlin G CaldareraCanada2024-06-03Rousseaux, Michael Esq NEGOTIATION44Ivan Magalhaes
1013Juan J ChuiCanada2024-06-10Benton, John B Jr PROPOSAL63Ivan Magalhaes
1014Jefferson L MaletUnited Kingdom2024-06-04Feltz Printing Service UNQUALIFIED12Onyama Limba
1015Aika F AlbaresRussia2024-06-07Feltz Printing Service NEW66Stephen Shaw
1016Mujtaba F ShinkoBrazil2024-06-15Truhlar And Truhlar Attys PROPOSAL10Bernardo Dominic
1017Ashley A WaycottBrazil2024-06-11Printing Dimensions UNQUALIFIED54Onyama Limba
1018Smith D RimSpain2024-06-17Rangoni Of Florence NEW15Xuxue Feng
1019Silvio G VenereRussia2024-06-01Benton, John B Jr QUALIFIED29Amy Elsner
1020Ricardo O WhobreyRussia2024-06-18Feiner Bros NEW64Anna Fali
1021Jones B DilliardRussia2024-06-16Rangoni Of Florence NEW80Ioni Bowcher
1022Mayumi F GillianCanada2024-06-13Benton, John B Jr RENEWAL66Asiya Javayant
1023Wickens F CampainArgentina2024-06-13Chanay, Jeffrey A Esq NEGOTIATION75Ioni Bowcher
1024Clifford F OldroydUnited Kingdom2024-06-03Benton, John B Jr NEW60Ioni Bowcher
1025Julie H WieserCanada2024-06-02King, Christopher A Esq PROPOSAL75Elwin Sharvill
1026Sinclair K ButtGermany2024-06-21Rangoni Of Florence PROPOSAL58Ioni Bowcher
1027Julie K IturbideAustralia2024-06-10Feiner Bros QUALIFIED50Xuxue Feng
1028Clifford P PoquetteUnited Kingdom2024-06-05Printing Dimensions NEGOTIATION78Asiya Javayant
1029Ivar U StensethBrazil2024-06-04Feltz Printing Service QUALIFIED45Xuxue Feng
1030Kaitlin D DilliardUnited Kingdom2024-05-29Commercial Press UNQUALIFIED61Anna Fali
1031Munro F IturbideFrance2024-06-07King, Christopher A Esq NEGOTIATION11Onyama Limba
1032Isabel G CaudyRussia2024-06-13Benton, John B Jr UNQUALIFIED64Xuxue Feng
1033Claire X StensethIndia2024-05-27Chemel, James L Cpa UNQUALIFIED82Stephen Shaw
1034Clifford Q NickaJapan2024-05-28Truhlar And Truhlar Attys UNQUALIFIED62Elwin Sharvill
1035Arvin F FerenczUnited Kingdom2024-06-13Morlong Associates QUALIFIED26Bernardo Dominic
1036Adams P PaprockiSpain2024-06-05Chanay, Jeffrey A Esq RENEWAL30Xuxue Feng
1037Deepesh X PaprockiArgentina2024-06-09King, Christopher A Esq RENEWAL65Elwin Sharvill
1038Darci Y ShinkoRussia2024-06-06Truhlar And Truhlar Attys PROPOSAL56Onyama Limba
1039Maria G StockhamRussia2024-06-10Commercial Press QUALIFIED10Bernardo Dominic
1040Leon H BowleyBrazil2024-06-05Commercial Press PROPOSAL47Onyama Limba
1041Cody U WaycottUnited Kingdom2024-06-14Commercial Press PROPOSAL56Anna Fali
1042Aika B CaldareraSpain2024-06-10Feiner Bros NEGOTIATION82Xuxue Feng
1043Maisha S KuskoUnited Kingdom2024-06-17Rousseaux, Michael Esq QUALIFIED63Amy Elsner
1044James F GarufiItaly2024-06-08Truhlar And Truhlar Attys NEGOTIATION11Onyama Limba
1045Faith G InouyeArgentina2024-06-12Chapman, Ross E Esq PROPOSAL37Bernardo Dominic
1046Antonio J PerinUnited Kingdom2024-06-22Rousseaux, Michael Esq NEW3Onyama Limba
1047Ricardo X RutaIndia2024-05-29Chanay, Jeffrey A Esq NEGOTIATION52Amy Elsner
1048Cody N CaldareraUnited Kingdom2024-05-27Printing Dimensions QUALIFIED3Xuxue Feng
1049David W ChuiBrazil2024-05-30Chapman, Ross E Esq NEGOTIATION64Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Izzy N RoysterSpainXuxue Feng NEGOTIATION
Ashley M WhobreyUnited KingdomAmy Elsner PROPOSAL
Maria F NickaRussiaIoni Bowcher UNQUALIFIED
Morrow E WieserCanadaAmy Elsner UNQUALIFIED
Tony D VenereIndiaBernardo Dominic QUALIFIED
Juan M GarufiIndiaAnna Fali NEW
Darci Z GarufiCanadaAmy Elsner UNQUALIFIED
Johnson H SchemmerGermanyStephen Shaw PROPOSAL
Kaitlin P CaudyCanadaAnna Fali QUALIFIED
Salvatore P ShinkoAustraliaStephen Shaw PROPOSAL
Aika V PerinItalyStephen Shaw PROPOSAL
Emily Y WaycottBrazilAmy Elsner NEW
Deepesh V DilliardFranceStephen Shaw UNQUALIFIED
Isabel K SlusarskiArgentinaAnna Fali NEGOTIATION
Tony N ShinkoArgentinaAmy Elsner NEW
Salvatore T StockhamSpainBernardo Dominic UNQUALIFIED
Ricardo K TollnerRussiaBernardo Dominic NEW
Mujtaba L FerenczJapanBernardo Dominic RENEWAL
Octavia N InouyeCanadaIoni Bowcher QUALIFIED
Clifford W RulapaughBrazilOnyama Limba NEW
Salvatore I MorascaSpainAnna Fali NEGOTIATION
Ashley C InouyeRussiaBernardo Dominic NEW
Darci B RoysterSpainAmy Elsner QUALIFIED
Aruna O FollerCanadaElwin Sharvill QUALIFIED
Adams K DarakjyCanadaIoni Bowcher RENEWAL
Antonio B PerinArgentinaIvan Magalhaes RENEWAL
Kadeem P RoysterItalyIvan Magalhaes UNQUALIFIED
Izzy A TollnerBrazilAsiya Javayant RENEWAL
Jennifer Q FollerCanadaStephen Shaw PROPOSAL
Emily A GlickBrazilAnna Fali QUALIFIED
Tony X DarakjyArgentinaIoni Bowcher RENEWAL
Aditya F KuskoBrazilAmy Elsner RENEWAL
Leja F CaldareraAustraliaOnyama Limba UNQUALIFIED
Leja N PaprockiCanadaIoni Bowcher PROPOSAL
Izzy D VocelkaCanadaIvan Magalhaes NEW
Kadeem D InouyeFranceOnyama Limba NEW
Mujtaba U GarufiItalyAmy Elsner QUALIFIED
Francesco V NestleGermanyIvan Magalhaes NEGOTIATION
Aditya W KuskoRussiaBernardo Dominic NEGOTIATION
Smith A WieserJapanAmy Elsner NEGOTIATION
Johnson B ButtJapanAsiya Javayant NEGOTIATION
Munro U MarrierRussiaAmy Elsner RENEWAL
Tony G GarufiSpainAnna Fali NEGOTIATION
Mayumi U AmigonRussiaAnna Fali UNQUALIFIED
Smith O DilliardIndiaIvan Magalhaes NEW
Smith R SaylorsFranceOnyama Limba PROPOSAL
Silvio H DarakjyUnited KingdomOnyama Limba NEGOTIATION
James H VenereJapanBernardo Dominic PROPOSAL
Antonio X RoysterUnited KingdomIoni Bowcher QUALIFIED
Jefferson K CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Antonio Q Royster
Murillo T Caudy
Leon O Ruta
Nicolas P Wieser
Julie P Tollner
Wickens E Marrier
Nicolas V Amigon
Octavia L Butt
Kaitlin R Shinko
Ashley O Schemmer
Arvin L Amigon
Arvin H Nestle
Juan G Briddick
Chavez A Paprocki
Mujtaba S Inouye
Kaitlin M Vocelka
Wickens I Amigon
Adams C Gillian
Tony N Whobrey
Wickens O Darakjy
Munro U Perin
Smith G Oldroyd
Ricardo E Albares
Chavez O Foller
Juan W Slusarski
Jones Q Bolognia
Mujtaba Q Shinko
Kadeem Z Waycott
Faith U Bolognia
Ivar H Kolmetz
Johnson R Doe
Greenwood G Amigon
Leja W Garufi
Aditya H Royster
Munro Q Vocelka
Wickens N Stockham
Munro I Garufi
Jeanfrancois D Marrier
Mujtaba Y Nicka
Jefferson P Marrier
Greenwood S Saylors
Izzy N Iturbide
Izzy Z Malet
Emily C Chui
Octavia G Nestle
Jones F Stenseth
Ivar W Chui
Aruna D Campain
Leon R Inouye
David S Ferencz
IdCountryDate
1000Italy2024-06-14
1001India2024-06-10
1002Argentina2024-06-03
1003Argentina2024-06-16
1004India2024-05-26
1005France2024-06-08
1006Germany2024-06-09
1007Russia2024-06-19
1008Russia2024-05-30
1009Canada2024-06-16
1010Germany2024-06-11
1011Spain2024-05-31
1012India2024-06-17
1013Argentina2024-06-21
1014United Kingdom2024-06-13
1015France2024-06-14
1016Brazil2024-06-16
1017India2024-05-26
1018India2024-05-30
1019Brazil2024-06-02
1020Germany2024-06-23
1021United Kingdom2024-06-04
1022Canada2024-05-29
1023Canada2024-06-04
1024Russia2024-06-15
1025United Kingdom2024-05-29
1026Japan2024-06-20
1027Germany2024-05-29
1028Russia2024-06-23
1029India2024-05-26
1030Russia2024-05-30
1031Canada2024-06-05
1032Argentina2024-06-17
1033India2024-06-18
1034Spain2024-06-06
1035Italy2024-06-07
1036Russia2024-06-05
1037Japan2024-06-02
1038India2024-06-22
1039India2024-06-03
1040Canada2024-05-31
1041Russia2024-05-27
1042Canada2024-06-07
1043United Kingdom2024-06-22
1044Japan2024-06-21
1045Argentina2024-06-05
1046Spain2024-05-28
1047Canada2024-06-15
1048Argentina2024-06-20
1049France2024-06-11

On-Demand Data

NameIdCountryDate
Smith P Campain1000United Kingdom2024-06-06
Greenwood Y Doe1001United Kingdom2024-06-17
Julie T Perin1002Australia2024-06-11
Maisha A Darakjy1003India2024-06-20
Tony M Ruta1004United Kingdom2024-06-12
Leon I Figeroa1005Argentina2024-05-30
Mayumi O Gillian1006France2024-05-29
Deepesh U Nicka1007Argentina2024-06-09
Aika V Inouye1008Canada2024-05-26
Mayumi R Gillian1009Japan2024-05-31
Emily M Rim1010Brazil2024-06-15
Smith F Morasca1011Argentina2024-06-03
Munro Y Wieser1012Australia2024-06-05
Faith B Perin1013Argentina2024-06-17
Deepesh C Venere1014United Kingdom2024-05-31
Juan J Kusko1015Italy2024-06-24
Aruna V Bolognia1016Russia2024-06-01
Maisha N Whobrey1017Brazil2024-06-22
Ashley F Malet1018Spain2024-06-17
Ivar V Ferencz1019Italy2024-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio B SchemmerCanadaOnyama Limba NEGOTIATION
Cody G StockhamArgentinaAnna Fali NEGOTIATION
James G RutaAustraliaOnyama Limba PROPOSAL
Chavez L InouyeArgentinaAmy Elsner NEGOTIATION
Jefferson L DilliardArgentinaIvan Magalhaes QUALIFIED
Mujtaba Z CaudyGermanyIvan Magalhaes NEGOTIATION
Adams Q AlbaresArgentinaOnyama Limba NEGOTIATION
James C MaletItalyOnyama Limba PROPOSAL
Adams C NestleAustraliaOnyama Limba PROPOSAL
Leja L BologniaRussiaOnyama Limba RENEWAL
Julie N WieserJapanXuxue Feng NEGOTIATION
Emily A PaprockiRussiaOnyama Limba NEW
Aika L GlickGermanyAsiya Javayant UNQUALIFIED
David T WaycottIndiaOnyama Limba PROPOSAL
Mujtaba L CaudyArgentinaElwin Sharvill NEW
Greenwood M WaycottRussiaIoni Bowcher UNQUALIFIED
Leon S SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Maria H KuskoUnited KingdomIoni Bowcher RENEWAL
Faith H RimGermanyStephen Shaw NEGOTIATION
Maisha I CampainGermanyBernardo Dominic RENEWAL
Aika K InouyeRussiaXuxue Feng NEW
Wickens S OldroydIndiaOnyama Limba NEW
Ashley P PoquetteRussiaAsiya Javayant NEGOTIATION
Alejandro T CampainJapanIvan Magalhaes RENEWAL
Chavez C OstroskyRussiaXuxue Feng RENEWAL
Ivar C MaletGermanyOnyama Limba NEGOTIATION
Mayumi Q AmigonCanadaAnna Fali QUALIFIED
Greenwood V RulapaughRussiaOnyama Limba NEGOTIATION
Mujtaba D ButtBrazilBernardo Dominic QUALIFIED
Julie K GarufiItalyStephen Shaw UNQUALIFIED
Octavia V RimGermanyIvan Magalhaes QUALIFIED
Nicolas R RulapaughItalyXuxue Feng RENEWAL
Maria X CaudyGermanyOnyama Limba NEW
Sinclair C OldroydItalyAnna Fali RENEWAL
Clifford P FigeroaBrazilAsiya Javayant NEW
Arvin O InouyeRussiaStephen Shaw NEW
James U BriddickRussiaXuxue Feng UNQUALIFIED
Stacey C PoquetteArgentinaAnna Fali UNQUALIFIED
Jones O WieserJapanElwin Sharvill NEGOTIATION
Mujtaba Q ShinkoJapanAnna Fali 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>