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
Greenwood G TollnerBrazilOnyama Limba UNQUALIFIED
Maisha H WhobreyArgentinaElwin Sharvill RENEWAL
Costa Z BologniaRussiaXuxue Feng NEW
Jeanfrancois G RutaItalyXuxue Feng NEW
Juan Y ChuiIndiaAnna Fali NEGOTIATION
Leon V CaudySpainBernardo Dominic NEGOTIATION
Isabel U AlbaresJapanAmy Elsner UNQUALIFIED
Darci C SergiJapanBernardo Dominic NEGOTIATION
Ricardo J RimItalyOnyama Limba PROPOSAL
James E SergiRussiaAsiya Javayant PROPOSAL
Mujtaba X SaylorsItalyAnna Fali RENEWAL
Leon A AmigonFranceBernardo Dominic RENEWAL
Nicolas U FlosiGermanyIvan Magalhaes PROPOSAL
Julie Q StockhamJapanIoni Bowcher UNQUALIFIED
Adams O FollerJapanOnyama Limba UNQUALIFIED
Wickens O StockhamJapanStephen Shaw PROPOSAL
Mujtaba M FigeroaItalyOnyama Limba NEGOTIATION
Emily L MacleadAustraliaBernardo Dominic RENEWAL
Izzy D KuskoFranceBernardo Dominic NEW
Deepesh D GlickGermanyAsiya Javayant NEW
Sinclair E BriddickJapanOnyama Limba UNQUALIFIED
Jefferson H KolmetzIndiaOnyama Limba NEGOTIATION
Sinclair P BologniaIndiaAnna Fali QUALIFIED
Costa Q FlosiCanadaOnyama Limba NEW
Izzy B GillianJapanAmy Elsner RENEWAL
Aditya O SergiArgentinaStephen Shaw QUALIFIED
Aditya W BowleyFranceBernardo Dominic UNQUALIFIED
Kaitlin V GillianUnited KingdomAnna Fali NEW
Clifford V DilliardIndiaElwin Sharvill UNQUALIFIED
Claire Q VocelkaUnited KingdomXuxue Feng PROPOSAL
Morrow L MacleadUnited KingdomAsiya Javayant NEW
Kaitlin H PerinFranceAsiya Javayant PROPOSAL
Jones E FlosiAustraliaAnna Fali UNQUALIFIED
Munro W GarufiRussiaElwin Sharvill NEW
Costa J KolmetzGermanyAmy Elsner RENEWAL
Jennifer Y OldroydCanadaAmy Elsner NEW
Silvio A CampainBrazilAmy Elsner UNQUALIFIED
Octavia D FollerBrazilStephen Shaw RENEWAL
Jefferson Z MaletJapanAsiya Javayant PROPOSAL
Deepesh F PaprockiSpainElwin Sharvill RENEWAL
Adams G RoysterFranceAmy Elsner QUALIFIED
Jones F KuskoIndiaOnyama Limba UNQUALIFIED
Alejandro K RimSpainAsiya Javayant NEW
Rodrigues E SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues H PerinGermanyElwin Sharvill PROPOSAL
Wickens U MorascaSpainElwin Sharvill NEGOTIATION
Rodrigues S VocelkaItalyIvan Magalhaes NEW
Tony W BologniaArgentinaAnna Fali UNQUALIFIED
Clifford V TollnerRussiaOnyama Limba NEGOTIATION
Mayumi E FollerItalyAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley A DoeSpainAsiya Javayant PROPOSAL
Claire G RoysterSpainIoni Bowcher RENEWAL
Wickens Z MaletBrazilAnna Fali UNQUALIFIED
Arvin P AmigonUnited KingdomIvan Magalhaes PROPOSAL
Julie L ChuiFranceIoni Bowcher QUALIFIED
Leja L StensethFranceAsiya Javayant NEW
Aruna H MaletArgentinaIvan Magalhaes UNQUALIFIED
Kadeem H AlbaresCanadaXuxue Feng PROPOSAL
Deepesh B DarakjyCanadaXuxue Feng RENEWAL
Smith C PaprockiFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson R MarrierCanada2026-06-28Chemel, James L Cpa QUALIFIED15Stephen Shaw
1001Nicolas O OstroskySpain2026-06-17Dorl, James J Esq NEGOTIATION81Asiya Javayant
1002Mujtaba Z MaletIndia2026-06-20Commercial Press QUALIFIED72Anna Fali
1003Jeanfrancois M StensethRussia2026-07-04Morlong Associates NEGOTIATION59Ivan Magalhaes
1004Salvatore C VenereSpain2026-07-03King, Christopher A Esq QUALIFIED31Anna Fali
1005Ivar L VenereRussia2026-06-23Dorl, James J Esq NEGOTIATION16Stephen Shaw
1006Jennifer U BowleyArgentina2026-06-18Morlong Associates PROPOSAL22Bernardo Dominic
1007Octavia V DarakjyFrance2026-06-21Chanay, Jeffrey A Esq QUALIFIED43Ivan Magalhaes
1008Ricardo J FigeroaAustralia2026-07-04Chanay, Jeffrey A Esq NEGOTIATION45Onyama Limba
1009Murillo K InouyeGermany2026-06-10Dorl, James J Esq NEGOTIATION20Xuxue Feng
1010Wickens T KuskoRussia2026-06-26Benton, John B Jr QUALIFIED21Onyama Limba
1011Emily L MorascaFrance2026-06-15Feltz Printing Service NEGOTIATION13Stephen Shaw
1012Alejandro H RulapaughArgentina2026-06-14Truhlar And Truhlar Attys PROPOSAL46Xuxue Feng
1013Mujtaba L SergiIndia2026-07-05Morlong Associates PROPOSAL70Asiya Javayant
1014Maisha Z IturbideFrance2026-06-15Rousseaux, Michael Esq QUALIFIED50Amy Elsner
1015Tony Y RulapaughGermany2026-06-30Feiner Bros UNQUALIFIED78Bernardo Dominic
1016Smith R SchemmerBrazil2026-06-22Rousseaux, Michael Esq QUALIFIED54Amy Elsner
1017Julie U ButtArgentina2026-06-23Rousseaux, Michael Esq QUALIFIED40Anna Fali
1018Morrow V DoeSpain2026-06-17Chapman, Ross E Esq UNQUALIFIED36Bernardo Dominic
1019Ashley Q MorascaGermany2026-06-13Buckley Miller Wright NEW28Asiya Javayant
1020Salvatore N OstroskyRussia2026-06-17Chemel, James L Cpa UNQUALIFIED36Xuxue Feng
1021Stacey A IturbideRussia2026-06-12King, Christopher A Esq QUALIFIED96Xuxue Feng
1022Kadeem J KolmetzAustralia2026-06-13King, Christopher A Esq UNQUALIFIED13Anna Fali
1023Maisha G IturbideGermany2026-06-11Benton, John B Jr UNQUALIFIED27Amy Elsner
1024Francesco N KolmetzGermany2026-07-04Feiner Bros QUALIFIED8Anna Fali
1025Octavia Q MarrierFrance2026-06-24Printing Dimensions NEW94Ioni Bowcher
1026Leja T PerinItaly2026-06-12Commercial Press NEW53Onyama Limba
1027Jones Y MarrierCanada2026-06-21Commercial Press NEW27Ioni Bowcher
1028Izzy Y KuskoRussia2026-06-23Chapman, Ross E Esq QUALIFIED38Amy Elsner
1029Maria C RutaItaly2026-07-03Rousseaux, Michael Esq UNQUALIFIED41Ivan Magalhaes
1030Izzy Y WhobreyBrazil2026-06-18Rangoni Of Florence PROPOSAL27Stephen Shaw
1031Arvin X ChuiJapan2026-06-11Feiner Bros PROPOSAL10Xuxue Feng
1032Jeanfrancois S ShinkoRussia2026-06-15King, Christopher A Esq NEGOTIATION41Xuxue Feng
1033Emily T DilliardGermany2026-06-28Rangoni Of Florence NEGOTIATION98Asiya Javayant
1034David N WieserFrance2026-06-27Benton, John B Jr RENEWAL93Ivan Magalhaes
1035Stacey A DoeArgentina2026-06-22Chanay, Jeffrey A Esq PROPOSAL93Bernardo Dominic
1036Aditya M MorascaCanada2026-06-11Chemel, James L Cpa QUALIFIED53Asiya Javayant
1037Smith C RulapaughRussia2026-06-12Dorl, James J Esq UNQUALIFIED15Xuxue Feng
1038Morrow M FerenczFrance2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED93Asiya Javayant
1039Faith W ShinkoFrance2026-06-18King, Christopher A Esq QUALIFIED87Anna Fali
1040Rodrigues B SlusarskiIndia2026-06-30Feiner Bros RENEWAL34Stephen Shaw
1041Stacey B RulapaughUnited Kingdom2026-06-18Benton, John B Jr QUALIFIED83Ioni Bowcher
1042Julie Q AmigonJapan2026-06-19Feiner Bros UNQUALIFIED31Anna Fali
1043Kaitlin G FigeroaFrance2026-07-05King, Christopher A Esq NEW88Amy Elsner
1044Faith G StensethFrance2026-06-24Benton, John B Jr NEGOTIATION6Stephen Shaw
1045Jones Z GillianAustralia2026-06-24Rousseaux, Michael Esq PROPOSAL26Onyama Limba
1046Jefferson N VocelkaIndia2026-06-20Feltz Printing Service UNQUALIFIED94Xuxue Feng
1047Izzy L KuskoBrazil2026-06-30Commercial Press RENEWAL26Xuxue Feng
1048Alejandro F MarrierUnited Kingdom2026-06-29Printing Dimensions UNQUALIFIED12Stephen Shaw
1049Leon V OstroskyGermany2026-06-24Commercial Press NEGOTIATION37Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois C PaprockiGermanyIvan Magalhaes QUALIFIED
Costa M CaudyGermanyAsiya Javayant NEW
Costa F StockhamJapanStephen Shaw NEW
Mayumi P PerinGermanyBernardo Dominic NEGOTIATION
Nicolas B RulapaughJapanStephen Shaw UNQUALIFIED
Ivar R SlusarskiFranceIoni Bowcher UNQUALIFIED
Jones A BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Jones A OldroydBrazilBernardo Dominic NEGOTIATION
Mujtaba W GarufiRussiaStephen Shaw UNQUALIFIED
Stacey N InouyeRussiaXuxue Feng UNQUALIFIED
Kadeem K VenereSpainXuxue Feng NEGOTIATION
Jennifer U WhobreyJapanAsiya Javayant UNQUALIFIED
Juan A CaldareraRussiaIvan Magalhaes NEGOTIATION
Faith E BowleyIndiaBernardo Dominic NEW
Ricardo T DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Darci A FollerFranceBernardo Dominic NEW
Leon E MarrierCanadaStephen Shaw QUALIFIED
Chavez R AmigonIndiaAsiya Javayant NEW
Alejandro W RutaArgentinaXuxue Feng NEW
Isabel W BowleyItalyXuxue Feng PROPOSAL
Emily S AlbaresAustraliaOnyama Limba NEW
Alejandro O GillianCanadaOnyama Limba NEW
Smith A RimJapanAmy Elsner RENEWAL
Adams V StensethAustraliaStephen Shaw NEGOTIATION
Octavia Z WhobreySpainOnyama Limba UNQUALIFIED
Jennifer Y MaletIndiaAsiya Javayant NEW
Clifford P BriddickRussiaOnyama Limba PROPOSAL
Mujtaba P BologniaJapanOnyama Limba UNQUALIFIED
Aika O StockhamSpainIvan Magalhaes NEW
Clifford S WhobreyBrazilBernardo Dominic NEGOTIATION
Claire P CaudySpainOnyama Limba NEGOTIATION
Ricardo E IturbideUnited KingdomElwin Sharvill NEW
Tony L NestleArgentinaStephen Shaw PROPOSAL
Mayumi M VocelkaItalyXuxue Feng QUALIFIED
Jones W KuskoBrazilIvan Magalhaes RENEWAL
Maisha X SchemmerArgentinaBernardo Dominic PROPOSAL
David R NestleAustraliaStephen Shaw NEW
Juan C ChuiUnited KingdomStephen Shaw NEGOTIATION
Wickens B MarrierBrazilStephen Shaw QUALIFIED
Aika N PaprockiIndiaXuxue Feng UNQUALIFIED
Octavia S AlbaresGermanyAmy Elsner QUALIFIED
Leja Q GlickUnited KingdomAmy Elsner UNQUALIFIED
Maria W AmigonItalyAmy Elsner QUALIFIED
Adams O TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Francesco A SaylorsSpainIvan Magalhaes NEW
Juan X StockhamUnited KingdomXuxue Feng PROPOSAL
Alejandro N FlosiJapanBernardo Dominic UNQUALIFIED
David Z OldroydRussiaBernardo Dominic RENEWAL
Aika B MarrierCanadaAmy Elsner QUALIFIED
Aruna V CaudySpainXuxue Feng RENEWAL
Frozen Columns
Name
Ricardo B Royster
Kadeem C Malet
Aditya N Malet
Claire Z Ruta
Misaki G Briddick
Morrow Q Schemmer
Munro U Malet
Mayumi O Figeroa
Deepesh G Nicka
Jefferson Y Perin
Smith I Ferencz
Mujtaba S Vocelka
Misaki Y Ruta
Clifford U Caldarera
Wickens N Gaucho
Aditya K Shinko
Ashley O Bolognia
Silvio J Bowley
Faith I Albares
Leon Y Bolognia
Murillo O Bolognia
Morrow W Gillian
Arvin F Nestle
Ashley N Amigon
Silvio G Nestle
Maisha E Malet
Munro D Flosi
Kadeem W Darakjy
Izzy S Stenseth
Deepesh H Marrier
Darci E Sergi
Maria V Campain
Costa M Bolognia
Maisha Z Gaucho
Morrow G Slusarski
Wickens M Bowley
Faith I Poquette
Smith F Perin
Jeanfrancois O Oldroyd
Morrow M Gillian
Aika M Poquette
Misaki R Paprocki
Costa P Bolognia
Julie V Vocelka
Ivar H Albares
Alejandro M Figeroa
Emily E Rim
Stacey F Shinko
Aika Q Glick
Smith G Iturbide
IdCountryDate
1000United Kingdom2026-07-04
1001Argentina2026-07-01
1002Japan2026-06-16
1003Australia2026-07-05
1004Spain2026-07-02
1005United Kingdom2026-06-17
1006India2026-06-10
1007Australia2026-06-11
1008France2026-07-01
1009Canada2026-07-06
1010Australia2026-06-27
1011France2026-07-03
1012Russia2026-07-06
1013Italy2026-06-27
1014Italy2026-06-16
1015Australia2026-06-20
1016Germany2026-06-27
1017India2026-06-27
1018Argentina2026-06-13
1019Australia2026-06-18
1020Germany2026-06-25
1021France2026-06-13
1022United Kingdom2026-06-19
1023Russia2026-06-14
1024Spain2026-07-03
1025France2026-06-14
1026France2026-06-18
1027Germany2026-06-15
1028Spain2026-07-03
1029Japan2026-06-30
1030Brazil2026-06-28
1031Russia2026-07-05
1032India2026-06-29
1033Japan2026-07-01
1034Spain2026-06-26
1035Argentina2026-06-08
1036Russia2026-06-26
1037Canada2026-06-08
1038Italy2026-07-01
1039Australia2026-07-03
1040Australia2026-07-05
1041United Kingdom2026-06-20
1042Canada2026-06-15
1043Germany2026-06-12
1044United Kingdom2026-06-14
1045India2026-07-05
1046Spain2026-06-21
1047Russia2026-07-01
1048Brazil2026-06-17
1049Germany2026-06-15

On-Demand Data

NameIdCountryDate
Clifford I Shinko1000Spain2026-06-23
Maria P Doe1001India2026-06-12
Ivar J Poquette1002Italy2026-06-24
Maisha N Morasca1003United Kingdom2026-06-30
Leon K Perin1004Australia2026-06-13
Silvio I Oldroyd1005Russia2026-06-22
Isabel R Figeroa1006United Kingdom2026-06-16
Mayumi E Briddick1007India2026-06-13
Juan Y Iturbide1008Brazil2026-06-18
Morrow K Paprocki1009Argentina2026-06-15
Claire V Perin1010India2026-06-20
Leon D Flosi1011United Kingdom2026-06-14
Kadeem P Darakjy1012India2026-06-07
Kaitlin U Malet1013India2026-07-01
Cody B Poquette1014Argentina2026-06-22
Izzy C Slusarski1015Brazil2026-06-12
Mujtaba H Amigon1016Argentina2026-06-12
Octavia C Figeroa1017Spain2026-06-10
Ricardo C Schemmer1018Canada2026-07-04
Greenwood O Bowley1019Brazil2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford X InouyeAustraliaIvan Magalhaes NEW
Aika D StockhamSpainXuxue Feng PROPOSAL
Tony I SergiUnited KingdomBernardo Dominic NEW
Arvin X WieserItalyAmy Elsner UNQUALIFIED
Izzy G NickaItalyAmy Elsner RENEWAL
Octavia T VocelkaIndiaElwin Sharvill RENEWAL
Silvio T VocelkaJapanIvan Magalhaes QUALIFIED
Salvatore A CaldareraFranceAmy Elsner PROPOSAL
Costa F BologniaBrazilElwin Sharvill RENEWAL
Emily Q WhobreyArgentinaAmy Elsner PROPOSAL
Octavia J VocelkaUnited KingdomBernardo Dominic RENEWAL
Stacey U MaletFranceOnyama Limba NEW
Deepesh F SergiAustraliaOnyama Limba NEGOTIATION
Octavia O CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Octavia B TollnerGermanyXuxue Feng RENEWAL
Silvio W GarufiGermanyOnyama Limba NEGOTIATION
Darci W DoeAustraliaAmy Elsner QUALIFIED
Maisha X MaletItalyAsiya Javayant UNQUALIFIED
Salvatore D SlusarskiSpainIvan Magalhaes QUALIFIED
Tony I BriddickFranceOnyama Limba RENEWAL
Aruna P RoysterUnited KingdomAnna Fali RENEWAL
James L ButtCanadaAsiya Javayant QUALIFIED
Deepesh U InouyeFranceAnna Fali UNQUALIFIED
Juan H WieserBrazilAnna Fali NEGOTIATION
Stacey F FerenczArgentinaElwin Sharvill NEGOTIATION
Nicolas M StensethUnited KingdomAsiya Javayant PROPOSAL
Ivar U RutaCanadaXuxue Feng NEGOTIATION
Silvio B StensethSpainElwin Sharvill RENEWAL
Smith R BowleyUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois Y DilliardCanadaBernardo Dominic NEW
Izzy B GarufiIndiaXuxue Feng NEW
Aruna Y WieserFranceAsiya Javayant RENEWAL
Jeanfrancois Z DarakjyUnited KingdomOnyama Limba NEGOTIATION
Jefferson M SergiItalyElwin Sharvill PROPOSAL
Munro O FollerJapanXuxue Feng QUALIFIED
James P TollnerGermanyAnna Fali QUALIFIED
Kaitlin J GarufiArgentinaIvan Magalhaes UNQUALIFIED
Izzy N MaletFranceElwin Sharvill RENEWAL
Claire Y PaprockiGermanyAnna Fali UNQUALIFIED
Jones Z RutaIndiaBernardo Dominic NEGOTIATION

<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>