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
Maria B ShinkoArgentinaBernardo Dominic QUALIFIED
Ricardo I MaletFranceAmy Elsner QUALIFIED
Leon B SaylorsGermanyBernardo Dominic PROPOSAL
Mujtaba I MorascaAustraliaElwin Sharvill PROPOSAL
Maisha P RoysterCanadaStephen Shaw NEW
Aruna M RulapaughArgentinaXuxue Feng QUALIFIED
Leja Y BowleyItalyElwin Sharvill RENEWAL
David A SchemmerSpainAnna Fali NEGOTIATION
Munro U FlosiUnited KingdomOnyama Limba PROPOSAL
Claire X BriddickAustraliaBernardo Dominic NEGOTIATION
Misaki T FigeroaAustraliaAsiya Javayant QUALIFIED
Sinclair W DarakjyIndiaAsiya Javayant RENEWAL
Aika U MarrierGermanyAsiya Javayant PROPOSAL
Arvin F GlickSpainIoni Bowcher UNQUALIFIED
Darci M DoeBrazilOnyama Limba NEGOTIATION
Greenwood P ChuiRussiaElwin Sharvill RENEWAL
Aruna U TollnerGermanyXuxue Feng RENEWAL
Faith D MacleadAustraliaIoni Bowcher NEGOTIATION
Antonio T AlbaresRussiaAmy Elsner NEW
Emily F DoeRussiaAmy Elsner RENEWAL
Chavez L NestleFranceIvan Magalhaes NEW
Chavez A WhobreyRussiaStephen Shaw RENEWAL
Izzy Z SlusarskiIndiaXuxue Feng NEGOTIATION
Nicolas R IturbideSpainElwin Sharvill NEW
Morrow T MaletGermanyAnna Fali NEGOTIATION
Johnson Y WhobreyJapanStephen Shaw QUALIFIED
Munro Z OstroskyGermanyAsiya Javayant NEGOTIATION
Munro H VocelkaCanadaElwin Sharvill NEGOTIATION
Ashley L OstroskyJapanElwin Sharvill RENEWAL
Ashley E DoeFranceAmy Elsner QUALIFIED
Adams W CampainFranceAmy Elsner NEW
Antonio V TollnerSpainAnna Fali RENEWAL
James G PerinIndiaElwin Sharvill NEW
Clifford X FollerFranceIoni Bowcher RENEWAL
Leon G StockhamCanadaAnna Fali UNQUALIFIED
Jones H RulapaughGermanyIvan Magalhaes QUALIFIED
James D AmigonCanadaStephen Shaw NEW
Kadeem K VenereArgentinaIvan Magalhaes RENEWAL
Silvio D SchemmerGermanyIvan Magalhaes QUALIFIED
Munro F PaprockiItalyAnna Fali NEGOTIATION
Octavia L WaycottBrazilAsiya Javayant UNQUALIFIED
Leon X CaudyRussiaXuxue Feng RENEWAL
Stacey H StensethRussiaOnyama Limba QUALIFIED
Maisha R StockhamFranceXuxue Feng UNQUALIFIED
Juan G PoquetteCanadaAsiya Javayant RENEWAL
Arvin Z WhobreyBrazilElwin Sharvill QUALIFIED
Francesco T IturbideCanadaAnna Fali RENEWAL
Leja U PoquetteArgentinaBernardo Dominic UNQUALIFIED
Tony A GlickBrazilAmy Elsner QUALIFIED
James G GlickArgentinaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar B IturbideUnited KingdomElwin Sharvill NEGOTIATION
Leon W GarufiFranceIvan Magalhaes UNQUALIFIED
Emily J SchemmerUnited KingdomXuxue Feng NEGOTIATION
Faith L FerenczIndiaElwin Sharvill PROPOSAL
Cody H RoysterGermanyIvan Magalhaes NEW
Darci W PerinSpainStephen Shaw PROPOSAL
Faith U CaudyUnited KingdomXuxue Feng UNQUALIFIED
Alejandro K TollnerUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba K PaprockiItalyOnyama Limba UNQUALIFIED
Costa V IturbideCanadaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith V NickaItaly2026-08-05Rangoni Of Florence RENEWAL5Asiya Javayant
1001Leon D FollerRussia2026-08-15Truhlar And Truhlar Attys RENEWAL4Stephen Shaw
1002Arvin O CampainIndia2026-07-31Chemel, James L Cpa PROPOSAL73Onyama Limba
1003Maisha F FlosiIndia2026-07-28Feiner Bros QUALIFIED33Ioni Bowcher
1004Aditya X PoquetteJapan2026-08-18Rangoni Of Florence UNQUALIFIED92Elwin Sharvill
1005Faith E KuskoJapan2026-07-29Rangoni Of Florence RENEWAL85Xuxue Feng
1006David G DarakjyBrazil2026-08-05Benton, John B Jr PROPOSAL27Ioni Bowcher
1007Salvatore F NestleItaly2026-08-06Dorl, James J Esq PROPOSAL33Stephen Shaw
1008Ricardo R SchemmerBrazil2026-08-20Benton, John B Jr PROPOSAL98Xuxue Feng
1009Aruna Q PoquetteUnited Kingdom2026-08-19Morlong Associates NEGOTIATION41Asiya Javayant
1010Jefferson P DoeJapan2026-07-31Feiner Bros PROPOSAL31Bernardo Dominic
1011Juan D GarufiArgentina2026-08-08Benton, John B Jr NEW59Ioni Bowcher
1012Murillo I CaldareraSpain2026-07-27Chemel, James L Cpa PROPOSAL87Onyama Limba
1013Nicolas W GauchoGermany2026-08-14Chanay, Jeffrey A Esq UNQUALIFIED78Xuxue Feng
1014Cody W FigeroaUnited Kingdom2026-08-13Morlong Associates PROPOSAL93Asiya Javayant
1015Deepesh V GarufiItaly2026-07-26Morlong Associates NEGOTIATION65Ivan Magalhaes
1016Murillo R GauchoIndia2026-08-03King, Christopher A Esq NEGOTIATION78Elwin Sharvill
1017Greenwood F RoysterBrazil2026-08-03King, Christopher A Esq NEW13Stephen Shaw
1018Izzy G StockhamSpain2026-08-04Chanay, Jeffrey A Esq NEGOTIATION76Onyama Limba
1019Jefferson Z BowleyAustralia2026-08-11Truhlar And Truhlar Attys NEW57Onyama Limba
1020Stacey Q MarrierFrance2026-08-09Chapman, Ross E Esq NEW7Amy Elsner
1021Maisha R RimItaly2026-07-29Feiner Bros QUALIFIED71Bernardo Dominic
1022Emily K PoquetteItaly2026-07-23Truhlar And Truhlar Attys PROPOSAL97Stephen Shaw
1023Munro Y GillianSpain2026-08-12Rangoni Of Florence NEW87Xuxue Feng
1024Ivar J GillianUnited Kingdom2026-07-22Benton, John B Jr NEW39Bernardo Dominic
1025Aruna F PoquetteArgentina2026-08-13Feltz Printing Service QUALIFIED25Asiya Javayant
1026Arvin S BologniaUnited Kingdom2026-08-20Truhlar And Truhlar Attys NEGOTIATION71Anna Fali
1027Rodrigues D StockhamAustralia2026-08-07King, Christopher A Esq NEGOTIATION83Anna Fali
1028Kaitlin H KolmetzCanada2026-08-12Chanay, Jeffrey A Esq NEGOTIATION14Amy Elsner
1029Leon H NickaJapan2026-08-12Feltz Printing Service RENEWAL35Bernardo Dominic
1030Maria P PoquetteCanada2026-07-27Chanay, Jeffrey A Esq NEGOTIATION42Stephen Shaw
1031Isabel U RulapaughSpain2026-07-24Chemel, James L Cpa NEW95Amy Elsner
1032Emily J SergiGermany2026-08-14Morlong Associates UNQUALIFIED70Bernardo Dominic
1033Jefferson F FigeroaUnited Kingdom2026-07-22Benton, John B Jr RENEWAL31Asiya Javayant
1034Deepesh J InouyeGermany2026-08-02Chemel, James L Cpa RENEWAL13Ioni Bowcher
1035Clifford H MarrierGermany2026-07-31Morlong Associates QUALIFIED80Bernardo Dominic
1036Tony O FollerBrazil2026-07-24Truhlar And Truhlar Attys UNQUALIFIED5Onyama Limba
1037Francesco P MaletJapan2026-08-06Chanay, Jeffrey A Esq RENEWAL75Bernardo Dominic
1038Morrow K CaldareraFrance2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED15Xuxue Feng
1039Claire K SaylorsAustralia2026-08-18Dorl, James J Esq NEGOTIATION84Ioni Bowcher
1040Cody R FerenczGermany2026-07-24Benton, John B Jr RENEWAL77Asiya Javayant
1041Juan S PerinGermany2026-08-10King, Christopher A Esq NEW48Elwin Sharvill
1042Izzy R MacleadGermany2026-07-28Chemel, James L Cpa PROPOSAL34Asiya Javayant
1043Francesco L ButtGermany2026-07-28Dorl, James J Esq PROPOSAL15Asiya Javayant
1044Antonio W FigeroaBrazil2026-07-29Buckley Miller Wright RENEWAL73Ivan Magalhaes
1045Julie H NickaRussia2026-07-23Chanay, Jeffrey A Esq NEGOTIATION8Amy Elsner
1046Francesco U ButtRussia2026-08-13Chemel, James L Cpa PROPOSAL74Asiya Javayant
1047David C BriddickFrance2026-08-11Feltz Printing Service NEW15Onyama Limba
1048Adams X OstroskyBrazil2026-08-02Commercial Press QUALIFIED85Bernardo Dominic
1049Darci L RimUnited Kingdom2026-07-31Buckley Miller Wright RENEWAL85Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Silvio J GillianBrazilElwin Sharvill RENEWAL
Kaitlin G OldroydBrazilStephen Shaw RENEWAL
Chavez O FollerSpainIvan Magalhaes RENEWAL
Izzy X WhobreyIndiaIoni Bowcher PROPOSAL
Kaitlin A AlbaresUnited KingdomElwin Sharvill PROPOSAL
Smith M DilliardRussiaIoni Bowcher UNQUALIFIED
Octavia C GillianUnited KingdomXuxue Feng UNQUALIFIED
Ivar L SchemmerRussiaIoni Bowcher UNQUALIFIED
Johnson G StensethIndiaAmy Elsner QUALIFIED
Leja E IturbideAustraliaStephen Shaw PROPOSAL
Isabel Q BriddickSpainOnyama Limba RENEWAL
Mujtaba N NickaItalyStephen Shaw PROPOSAL
Ashley I GillianAustraliaOnyama Limba PROPOSAL
Salvatore P MarrierBrazilAsiya Javayant RENEWAL
Octavia Q KuskoGermanyElwin Sharvill NEGOTIATION
Costa S ChuiArgentinaIoni Bowcher NEW
Ashley M KolmetzSpainIvan Magalhaes UNQUALIFIED
Arvin K MorascaCanadaElwin Sharvill NEW
Jones N WhobreyJapanXuxue Feng UNQUALIFIED
Jennifer N CaudyJapanAmy Elsner NEGOTIATION
Chavez B WieserCanadaIvan Magalhaes PROPOSAL
Aruna Q RulapaughCanadaIvan Magalhaes NEGOTIATION
Adams A VenereItalyAmy Elsner UNQUALIFIED
Alejandro O StockhamBrazilStephen Shaw NEGOTIATION
Izzy E PoquetteIndiaXuxue Feng QUALIFIED
Clifford B VocelkaGermanyStephen Shaw NEGOTIATION
Greenwood D FlosiAustraliaAsiya Javayant NEGOTIATION
Smith I FollerAustraliaAnna Fali RENEWAL
Jones S SchemmerAustraliaAsiya Javayant UNQUALIFIED
David O FerenczCanadaBernardo Dominic PROPOSAL
Cody G SchemmerIndiaIvan Magalhaes QUALIFIED
Maria G RulapaughIndiaElwin Sharvill NEGOTIATION
Jeanfrancois X DilliardIndiaBernardo Dominic NEW
Maria Z CaudyJapanBernardo Dominic QUALIFIED
Costa A AlbaresItalyOnyama Limba PROPOSAL
Faith R KolmetzFranceIoni Bowcher QUALIFIED
Munro R OldroydRussiaStephen Shaw NEW
Wickens J BologniaGermanyOnyama Limba NEGOTIATION
Maisha T FollerItalyAnna Fali PROPOSAL
Alejandro W CaldareraSpainAnna Fali UNQUALIFIED
Tony F MarrierUnited KingdomOnyama Limba NEGOTIATION
Julie L SlusarskiRussiaXuxue Feng RENEWAL
Julie N GillianUnited KingdomOnyama Limba RENEWAL
Cody K GlickIndiaIoni Bowcher UNQUALIFIED
Jennifer E AmigonAustraliaAnna Fali PROPOSAL
Costa L PerinItalyElwin Sharvill RENEWAL
Adams L RutaAustraliaXuxue Feng UNQUALIFIED
Kadeem O RimFranceElwin Sharvill RENEWAL
Juan P VocelkaBrazilIvan Magalhaes NEGOTIATION
Silvio M InouyeJapanStephen Shaw NEGOTIATION
Frozen Columns
Name
Leon N Schemmer
Deepesh Z Kolmetz
Antonio S Venere
Morrow T Campain
Ivar Q Caudy
Arvin S Stenseth
Clifford R Garufi
Misaki J Paprocki
Ivar E Doe
Jeanfrancois B Briddick
Octavia O Doe
Izzy Q Malet
Jones V Glick
Tony B Waycott
Salvatore H Waycott
Aruna N Vocelka
Smith O Glick
Chavez S Ferencz
Mujtaba D Briddick
Nicolas Z Tollner
Maria F Royster
Clifford Q Venere
Morrow X Chui
Darci O Whobrey
Faith V Nicka
Rodrigues J Vocelka
Tony C Flosi
Maisha D Kusko
Kaitlin O Nestle
Silvio I Schemmer
Claire D Sergi
Francesco O Garufi
Kadeem P Iturbide
Murillo I Caldarera
Kaitlin I Caudy
Deepesh T Chui
Francesco P Royster
Johnson L Venere
Ricardo S Stockham
Silvio U Amigon
Claire X Royster
Ivar F Stockham
Leja Y Waycott
Munro I Gaucho
Smith I Inouye
Darci X Royster
Chavez R Nicka
Jones J Briddick
Emily P Vocelka
Chavez B Oldroyd
IdCountryDate
1000Brazil2026-08-17
1001Argentina2026-07-30
1002Spain2026-08-16
1003Brazil2026-08-17
1004Spain2026-07-26
1005Argentina2026-08-15
1006Brazil2026-07-28
1007Germany2026-08-09
1008Japan2026-08-15
1009Russia2026-08-05
1010Canada2026-07-24
1011Japan2026-08-12
1012United Kingdom2026-07-24
1013Germany2026-08-02
1014Japan2026-07-28
1015Italy2026-08-05
1016Germany2026-08-20
1017France2026-08-20
1018India2026-08-16
1019France2026-08-11
1020Canada2026-08-20
1021Argentina2026-08-12
1022Germany2026-08-08
1023Germany2026-08-04
1024France2026-07-22
1025India2026-07-30
1026Brazil2026-08-20
1027France2026-07-30
1028Brazil2026-07-23
1029Canada2026-08-05
1030Italy2026-08-17
1031Canada2026-08-12
1032France2026-07-26
1033Germany2026-07-29
1034Argentina2026-08-13
1035Argentina2026-08-13
1036Italy2026-08-06
1037United Kingdom2026-08-06
1038Australia2026-08-16
1039France2026-07-24
1040France2026-08-12
1041India2026-08-11
1042Spain2026-07-30
1043Japan2026-08-14
1044Japan2026-07-30
1045Germany2026-07-28
1046India2026-08-11
1047Brazil2026-08-20
1048Brazil2026-08-15
1049Germany2026-07-25

On-Demand Data

NameIdCountryDate
Greenwood E Chui1000France2026-08-20
Julie Y Vocelka1001France2026-07-26
Jefferson V Sergi1002Canada2026-08-02
Nicolas Q Rulapaugh1003Japan2026-07-30
Smith U Albares1004Germany2026-07-24
Arvin V Iturbide1005Italy2026-07-25
Aruna M Campain1006Australia2026-07-28
Octavia M Butt1007Australia2026-07-24
Rodrigues O Bolognia1008Germany2026-07-22
Maisha S Darakjy1009India2026-07-23
Rodrigues H Nicka1010Russia2026-08-01
Leja R Stenseth1011Japan2026-08-07
Clifford Q Ruta1012India2026-07-30
Deepesh N Oldroyd1013Japan2026-07-30
Rodrigues G Darakjy1014Spain2026-08-03
Nicolas G Tollner1015India2026-07-24
Aika S Briddick1016Argentina2026-08-20
Stacey F Schemmer1017Italy2026-07-26
Murillo M Royster1018France2026-07-28
Jeanfrancois E Slusarski1019Russia2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo H RoysterUnited KingdomAsiya Javayant PROPOSAL
Rodrigues X RoysterFranceIoni Bowcher PROPOSAL
Francesco G InouyeFranceStephen Shaw PROPOSAL
Alejandro O ButtJapanElwin Sharvill RENEWAL
Adams R WaycottUnited KingdomAsiya Javayant NEGOTIATION
Leon L RulapaughCanadaAmy Elsner PROPOSAL
Smith D WaycottIndiaAnna Fali NEW
Salvatore P CampainArgentinaElwin Sharvill NEW
Costa T SaylorsGermanyOnyama Limba NEGOTIATION
Jeanfrancois S RoysterItalyAsiya Javayant QUALIFIED
Cody I DarakjyJapanIoni Bowcher PROPOSAL
Mayumi F ButtSpainIoni Bowcher PROPOSAL
Maisha F FigeroaCanadaBernardo Dominic QUALIFIED
Costa M ChuiJapanAsiya Javayant PROPOSAL
Francesco R SchemmerRussiaIvan Magalhaes RENEWAL
David F FerenczFranceStephen Shaw NEW
James M NestleItalyXuxue Feng PROPOSAL
Sinclair S DarakjyIndiaAsiya Javayant NEGOTIATION
Costa F GauchoGermanyIoni Bowcher NEW
Ashley F CaudyUnited KingdomElwin Sharvill QUALIFIED
Misaki B KolmetzArgentinaElwin Sharvill NEGOTIATION
Chavez K RimItalyOnyama Limba RENEWAL
Morrow L WhobreyAustraliaAsiya Javayant UNQUALIFIED
Ricardo B FerenczBrazilOnyama Limba RENEWAL
Rodrigues J GillianItalyAnna Fali NEGOTIATION
Aruna O CaudySpainAmy Elsner QUALIFIED
Ricardo Z MarrierFranceIoni Bowcher PROPOSAL
Leon B SlusarskiJapanStephen Shaw QUALIFIED
Salvatore W SergiAustraliaOnyama Limba RENEWAL
David D GlickSpainBernardo Dominic NEGOTIATION
Emily T ButtArgentinaAnna Fali QUALIFIED
Ivar T MorascaCanadaAnna Fali RENEWAL
Adams A RutaJapanIvan Magalhaes QUALIFIED
Mayumi K IturbideJapanStephen Shaw NEW
Leja Q ButtArgentinaOnyama Limba UNQUALIFIED
Julie E StensethBrazilElwin Sharvill NEGOTIATION
Juan H WaycottAustraliaXuxue Feng UNQUALIFIED
Nicolas Y BriddickBrazilElwin Sharvill RENEWAL
Alejandro A ChuiJapanBernardo Dominic RENEWAL
Francesco H FerenczArgentinaAsiya Javayant PROPOSAL

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