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
Jones U RimFranceAnna Fali UNQUALIFIED
Tony V RimUnited KingdomIoni Bowcher NEGOTIATION
Jefferson W RulapaughGermanyIvan Magalhaes NEW
Clifford X BriddickAustraliaIoni Bowcher NEGOTIATION
Deepesh Y VocelkaGermanyOnyama Limba NEGOTIATION
Jeanfrancois O KuskoIndiaAnna Fali PROPOSAL
Salvatore V ChuiItalyXuxue Feng NEW
Clifford F DoeRussiaAsiya Javayant PROPOSAL
Maisha C DarakjyAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois T VocelkaFranceXuxue Feng PROPOSAL
Leon C MaletBrazilIvan Magalhaes PROPOSAL
Jones R BowleyItalyIvan Magalhaes UNQUALIFIED
Juan L DarakjyJapanAmy Elsner RENEWAL
Maisha A NestleArgentinaStephen Shaw UNQUALIFIED
Kaitlin D CaudyArgentinaXuxue Feng UNQUALIFIED
Cody C MacleadFranceIvan Magalhaes PROPOSAL
Octavia B SergiJapanAnna Fali RENEWAL
David W GarufiCanadaIoni Bowcher PROPOSAL
Greenwood U GillianBrazilAnna Fali PROPOSAL
Jennifer J FollerCanadaXuxue Feng RENEWAL
Alejandro H MorascaBrazilAnna Fali RENEWAL
Greenwood U FigeroaFranceOnyama Limba PROPOSAL
Leja F FerenczJapanAnna Fali NEGOTIATION
Jones B SchemmerRussiaIoni Bowcher QUALIFIED
Greenwood L BologniaSpainAsiya Javayant UNQUALIFIED
Morrow D CaldareraItalyAnna Fali NEGOTIATION
Maria B RutaSpainOnyama Limba PROPOSAL
Stacey J MacleadCanadaAnna Fali NEGOTIATION
Darci Z MorascaSpainOnyama Limba NEW
Chavez E SlusarskiSpainStephen Shaw PROPOSAL
Maisha G OstroskyBrazilStephen Shaw NEGOTIATION
Stacey I WieserRussiaOnyama Limba RENEWAL
Aditya B DarakjyItalyAsiya Javayant QUALIFIED
Arvin X SergiRussiaAnna Fali NEGOTIATION
Jefferson Z WieserItalyStephen Shaw QUALIFIED
Antonio V GarufiFranceIoni Bowcher UNQUALIFIED
Izzy E VocelkaBrazilStephen Shaw PROPOSAL
Alejandro R MaletSpainBernardo Dominic RENEWAL
Alejandro S StensethBrazilIvan Magalhaes PROPOSAL
Deepesh F SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Costa E AlbaresArgentinaAmy Elsner UNQUALIFIED
Aruna G KuskoSpainAmy Elsner RENEWAL
Morrow W BologniaItalyBernardo Dominic NEGOTIATION
Antonio Z RoysterItalyStephen Shaw PROPOSAL
Salvatore N SchemmerGermanyAnna Fali NEGOTIATION
Emily Z MaletRussiaAsiya Javayant PROPOSAL
James O RutaSpainBernardo Dominic NEGOTIATION
Arvin X AmigonBrazilIoni Bowcher PROPOSAL
Stacey K TollnerAustraliaAsiya Javayant UNQUALIFIED
Stacey U ChuiRussiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin E PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas G StockhamUnited KingdomBernardo Dominic QUALIFIED
Chavez E ShinkoBrazilXuxue Feng RENEWAL
Salvatore R TollnerIndiaOnyama Limba PROPOSAL
Claire E RoysterSpainIvan Magalhaes NEGOTIATION
Murillo S CaldareraItalyXuxue Feng RENEWAL
Tony Q GauchoArgentinaStephen Shaw UNQUALIFIED
Izzy U MaletFranceBernardo Dominic NEW
Isabel O MarrierUnited KingdomStephen Shaw RENEWAL
Ricardo W StockhamAustraliaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford D SaylorsGermany2026-07-01Chanay, Jeffrey A Esq PROPOSAL26Bernardo Dominic
1001Izzy J FigeroaCanada2026-06-25Buckley Miller Wright QUALIFIED14Onyama Limba
1002Darci O KuskoArgentina2026-07-05King, Christopher A Esq QUALIFIED28Stephen Shaw
1003Faith A IturbideArgentina2026-06-24Rangoni Of Florence RENEWAL94Xuxue Feng
1004Jennifer A VenereJapan2026-07-08Commercial Press RENEWAL73Ioni Bowcher
1005Arvin G GauchoRussia2026-07-07Feltz Printing Service UNQUALIFIED56Amy Elsner
1006Alejandro N BowleyCanada2026-06-20Dorl, James J Esq QUALIFIED76Anna Fali
1007Wickens K MaletAustralia2026-07-07Commercial Press PROPOSAL43Stephen Shaw
1008Julie L FlosiIndia2026-06-12Buckley Miller Wright NEGOTIATION78Bernardo Dominic
1009Francesco T DoeItaly2026-06-15Rousseaux, Michael Esq NEW79Ioni Bowcher
1010Juan A AmigonRussia2026-06-11Buckley Miller Wright PROPOSAL48Asiya Javayant
1011Ricardo S ChuiArgentina2026-07-06Rousseaux, Michael Esq QUALIFIED56Asiya Javayant
1012Mayumi U CaudyBrazil2026-06-17King, Christopher A Esq UNQUALIFIED78Elwin Sharvill
1013Isabel S CampainCanada2026-06-29Feiner Bros UNQUALIFIED37Stephen Shaw
1014Jeanfrancois S FerenczBrazil2026-07-07Benton, John B Jr NEGOTIATION62Onyama Limba
1015Munro T FigeroaArgentina2026-06-15Printing Dimensions NEW21Onyama Limba
1016Mujtaba R MorascaJapan2026-06-10Printing Dimensions UNQUALIFIED23Amy Elsner
1017Tony Y MorascaFrance2026-06-16Morlong Associates NEGOTIATION28Asiya Javayant
1018Faith R VenereUnited Kingdom2026-07-08Feltz Printing Service UNQUALIFIED16Ivan Magalhaes
1019Munro Q NickaUnited Kingdom2026-07-05Feltz Printing Service NEGOTIATION28Stephen Shaw
1020Salvatore S FlosiItaly2026-06-19Morlong Associates UNQUALIFIED51Asiya Javayant
1021Nicolas A SergiRussia2026-07-07Benton, John B Jr PROPOSAL72Bernardo Dominic
1022Wickens T InouyeUnited Kingdom2026-06-22Rousseaux, Michael Esq RENEWAL46Xuxue Feng
1023Kaitlin X BologniaAustralia2026-06-23Buckley Miller Wright QUALIFIED20Ioni Bowcher
1024Stacey F OldroydJapan2026-06-26Benton, John B Jr NEW88Elwin Sharvill
1025Maria R MaletCanada2026-06-24Chapman, Ross E Esq NEGOTIATION31Elwin Sharvill
1026Clifford G StensethFrance2026-06-15Rangoni Of Florence NEW58Bernardo Dominic
1027Rodrigues Q MorascaGermany2026-07-06Chapman, Ross E Esq QUALIFIED20Anna Fali
1028Isabel Z SaylorsBrazil2026-06-25Printing Dimensions RENEWAL60Xuxue Feng
1029Claire E OldroydGermany2026-06-15King, Christopher A Esq QUALIFIED96Elwin Sharvill
1030Faith T WhobreyArgentina2026-07-04Truhlar And Truhlar Attys NEGOTIATION71Anna Fali
1031Mayumi U IturbideJapan2026-07-07Feiner Bros NEGOTIATION43Xuxue Feng
1032Costa L MarrierUnited Kingdom2026-06-30Truhlar And Truhlar Attys QUALIFIED65Ioni Bowcher
1033Wickens S KuskoBrazil2026-06-26Buckley Miller Wright PROPOSAL92Asiya Javayant
1034Smith U GarufiArgentina2026-06-19Chapman, Ross E Esq NEW16Anna Fali
1035Sinclair R OstroskyAustralia2026-06-16Commercial Press UNQUALIFIED99Xuxue Feng
1036Maisha M MorascaGermany2026-07-02Feiner Bros RENEWAL76Anna Fali
1037Deepesh M SergiJapan2026-07-05King, Christopher A Esq RENEWAL38Amy Elsner
1038Jeanfrancois S SchemmerCanada2026-06-15Feiner Bros UNQUALIFIED27Ivan Magalhaes
1039Morrow J DilliardUnited Kingdom2026-07-04King, Christopher A Esq RENEWAL9Amy Elsner
1040Silvio E FigeroaSpain2026-06-24Feltz Printing Service PROPOSAL15Asiya Javayant
1041Maisha V VocelkaFrance2026-07-03Buckley Miller Wright NEW80Asiya Javayant
1042Izzy M NestleFrance2026-06-29Morlong Associates UNQUALIFIED95Xuxue Feng
1043Aika J WaycottIndia2026-07-03Feiner Bros NEGOTIATION39Onyama Limba
1044Maria A VocelkaItaly2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED55Amy Elsner
1045Ivar K ButtGermany2026-06-26Truhlar And Truhlar Attys NEW55Xuxue Feng
1046Aruna V StensethItaly2026-07-03Rangoni Of Florence NEGOTIATION72Ioni Bowcher
1047Darci J OldroydSpain2026-06-15Morlong Associates NEW85Ioni Bowcher
1048Mujtaba A MaletJapan2026-06-29Chemel, James L Cpa NEW56Asiya Javayant
1049Juan E CampainArgentina2026-06-29Feltz Printing Service NEGOTIATION20Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Smith Y WhobreyUnited KingdomAnna Fali NEW
Jeanfrancois O ButtCanadaStephen Shaw UNQUALIFIED
Octavia S AmigonBrazilAsiya Javayant RENEWAL
Mayumi S GauchoRussiaAnna Fali UNQUALIFIED
Munro S OstroskyRussiaStephen Shaw PROPOSAL
Ivar B TollnerJapanIoni Bowcher RENEWAL
Jeanfrancois F ShinkoBrazilXuxue Feng RENEWAL
Maisha J BologniaAustraliaAsiya Javayant RENEWAL
Kaitlin A DarakjyItalyElwin Sharvill NEW
Jeanfrancois D PaprockiFranceAnna Fali NEGOTIATION
Claire F AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel H SchemmerRussiaAnna Fali NEW
Rodrigues N ButtUnited KingdomIoni Bowcher UNQUALIFIED
Darci B MarrierIndiaAsiya Javayant NEGOTIATION
Silvio D PerinItalyElwin Sharvill NEGOTIATION
Tony C DoeItalyAsiya Javayant NEW
Ashley X VenereGermanyIvan Magalhaes UNQUALIFIED
Jones D GillianJapanBernardo Dominic RENEWAL
Jefferson C RulapaughAustraliaAsiya Javayant NEW
Cody R WaycottSpainBernardo Dominic RENEWAL
Isabel G KolmetzJapanElwin Sharvill NEW
Stacey K PaprockiArgentinaXuxue Feng NEGOTIATION
Maria O DilliardIndiaIoni Bowcher RENEWAL
Nicolas X RulapaughUnited KingdomOnyama Limba PROPOSAL
Julie Y GlickAustraliaAnna Fali PROPOSAL
Emily G AmigonAustraliaIvan Magalhaes NEW
Ricardo N VenereFranceAmy Elsner PROPOSAL
Aditya Y WieserUnited KingdomOnyama Limba UNQUALIFIED
Francesco R AlbaresGermanyIoni Bowcher NEGOTIATION
Aika L DoeBrazilAsiya Javayant UNQUALIFIED
Silvio K MaletAustraliaOnyama Limba PROPOSAL
Antonio Q FollerFranceIoni Bowcher NEGOTIATION
Clifford D NickaArgentinaIvan Magalhaes QUALIFIED
Adams V IturbideFranceXuxue Feng NEGOTIATION
James I DilliardCanadaStephen Shaw PROPOSAL
Izzy W GauchoGermanyBernardo Dominic RENEWAL
Ashley U TollnerIndiaIvan Magalhaes RENEWAL
Mayumi R OstroskyIndiaBernardo Dominic RENEWAL
Aditya T NickaRussiaAnna Fali NEGOTIATION
Jeanfrancois I WaycottIndiaBernardo Dominic NEW
Misaki Q KuskoFranceBernardo Dominic UNQUALIFIED
Aruna A GillianRussiaXuxue Feng NEGOTIATION
Nicolas H WaycottBrazilAmy Elsner QUALIFIED
Leja A GlickJapanAsiya Javayant NEGOTIATION
Maria Q MacleadCanadaAnna Fali NEGOTIATION
Maria Q FollerUnited KingdomIvan Magalhaes NEW
Silvio Z FerenczSpainAmy Elsner RENEWAL
Nicolas I GillianSpainIoni Bowcher RENEWAL
Jefferson F OstroskyFranceIoni Bowcher PROPOSAL
Mayumi F TollnerGermanyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Stacey W Slusarski
Leon S Marrier
Leon G Rim
Deepesh N Oldroyd
Aditya Q Wieser
Octavia X Flosi
Ricardo R Ostrosky
Aruna T Inouye
Kaitlin X Vocelka
Ivar X Flosi
Maria R Stockham
Leon C Amigon
Antonio E Saylors
Leon A Bolognia
Jennifer C Flosi
Leon Y Nestle
Aditya B Marrier
Mayumi S Paprocki
Maria B Malet
Izzy Q Poquette
Morrow S Perin
Francesco G Schemmer
Mujtaba R Whobrey
David T Ostrosky
James X Nicka
Clifford X Perin
Stacey K Albares
Clifford E Dilliard
Mayumi P Inouye
Aika S Whobrey
Mayumi O Garufi
Munro L Stenseth
Ivar I Figeroa
Jeanfrancois J Caldarera
Jones Q Figeroa
Ricardo P Waycott
Alejandro J Kusko
Stacey U Malet
Aruna S Vocelka
Ivar R Foller
Kadeem V Nicka
Mayumi I Ostrosky
Jeanfrancois I Butt
Juan T Kolmetz
Kadeem Q Sergi
Isabel H Albares
Nicolas Q Kolmetz
Maisha T Waycott
Mayumi V Nestle
Jefferson R Ostrosky
IdCountryDate
1000India2026-06-09
1001Brazil2026-07-07
1002Japan2026-07-03
1003Brazil2026-06-10
1004Italy2026-06-19
1005Italy2026-06-18
1006France2026-07-04
1007India2026-07-04
1008United Kingdom2026-06-20
1009Japan2026-07-03
1010Germany2026-07-07
1011Italy2026-06-29
1012Canada2026-06-20
1013Russia2026-06-26
1014Italy2026-06-30
1015Canada2026-07-05
1016United Kingdom2026-06-22
1017India2026-07-01
1018Spain2026-06-22
1019Japan2026-06-14
1020Spain2026-06-17
1021Germany2026-07-06
1022Spain2026-06-18
1023Argentina2026-06-17
1024Germany2026-06-30
1025France2026-06-21
1026Russia2026-06-22
1027Japan2026-06-26
1028Australia2026-07-03
1029Brazil2026-06-18
1030Spain2026-07-04
1031United Kingdom2026-06-12
1032France2026-07-03
1033Spain2026-06-20
1034United Kingdom2026-06-17
1035France2026-06-14
1036Argentina2026-07-05
1037Australia2026-07-02
1038Italy2026-06-28
1039Germany2026-06-19
1040Canada2026-07-07
1041Brazil2026-07-01
1042Russia2026-07-01
1043Brazil2026-07-08
1044Russia2026-06-21
1045United Kingdom2026-06-18
1046Italy2026-06-28
1047Argentina2026-07-08
1048India2026-06-11
1049Australia2026-06-11

On-Demand Data

NameIdCountryDate
Izzy L Ostrosky1000Brazil2026-06-11
James R Butt1001Germany2026-07-07
Kaitlin Y Saylors1002Spain2026-06-21
Tony O Malet1003Germany2026-06-10
Kaitlin P Bolognia1004Japan2026-06-12
Juan Y Paprocki1005Argentina2026-06-22
Chavez H Rim1006Japan2026-06-25
James F Flosi1007Italy2026-07-07
Isabel I Ostrosky1008Australia2026-06-22
Johnson L Marrier1009Italy2026-06-28
Clifford Q Figeroa1010France2026-06-15
Leja C Glick1011Spain2026-06-22
Kadeem E Malet1012France2026-07-06
Emily X Dilliard1013Italy2026-06-28
Greenwood H Poquette1014Germany2026-06-19
Jennifer H Dilliard1015Argentina2026-06-21
Arvin C Flosi1016India2026-07-08
Cody E Venere1017Russia2026-06-24
Leon U Malet1018India2026-06-24
Stacey E Glick1019India2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas H SaylorsUnited KingdomOnyama Limba QUALIFIED
Tony W AlbaresItalyStephen Shaw UNQUALIFIED
Morrow J VocelkaItalyOnyama Limba UNQUALIFIED
Greenwood J CampainCanadaIvan Magalhaes NEGOTIATION
Mayumi V GauchoItalyIoni Bowcher PROPOSAL
Kaitlin N ButtArgentinaXuxue Feng NEW
Ricardo D CampainSpainOnyama Limba RENEWAL
Johnson R CampainJapanAmy Elsner NEGOTIATION
Tony Q StockhamIndiaOnyama Limba QUALIFIED
Murillo O ButtItalyIvan Magalhaes UNQUALIFIED
Salvatore B WhobreyGermanyAmy Elsner NEGOTIATION
Cody V MaletRussiaAsiya Javayant QUALIFIED
Jeanfrancois Z PaprockiSpainIoni Bowcher NEW
Smith A OstroskyGermanyXuxue Feng QUALIFIED
Ricardo J CaldareraItalyIoni Bowcher NEW
Clifford I BriddickCanadaAnna Fali NEW
Jeanfrancois H KolmetzAustraliaElwin Sharvill NEW
Jefferson O StensethUnited KingdomStephen Shaw PROPOSAL
James V VocelkaBrazilAnna Fali RENEWAL
Deepesh E RoysterGermanyIoni Bowcher RENEWAL
Alejandro N StockhamJapanIoni Bowcher QUALIFIED
Maisha E DilliardJapanBernardo Dominic QUALIFIED
James F FerenczJapanOnyama Limba RENEWAL
Emily M OstroskyBrazilIoni Bowcher QUALIFIED
Silvio D SergiAustraliaElwin Sharvill UNQUALIFIED
Munro T OldroydItalyAmy Elsner UNQUALIFIED
Arvin W MacleadFranceIoni Bowcher PROPOSAL
Salvatore R SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Leja P VocelkaUnited KingdomBernardo Dominic RENEWAL
Leja V OstroskyArgentinaAmy Elsner PROPOSAL
Francesco G NickaBrazilAsiya Javayant PROPOSAL
Greenwood N AlbaresAustraliaAnna Fali QUALIFIED
Salvatore U WhobreyJapanAsiya Javayant PROPOSAL
Leja C MaletIndiaStephen Shaw QUALIFIED
Smith T SlusarskiSpainOnyama Limba RENEWAL
Cody G PoquetteAustraliaAnna Fali QUALIFIED
Aditya W MaletSpainOnyama Limba QUALIFIED
Silvio H PaprockiIndiaAnna Fali PROPOSAL
Sinclair S WieserAustraliaOnyama Limba RENEWAL
Kaitlin D MorascaAustraliaIoni Bowcher 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>