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
Alejandro H DoeAustraliaStephen Shaw UNQUALIFIED
Tony F OstroskyCanadaElwin Sharvill PROPOSAL
Kadeem J TollnerAustraliaXuxue Feng QUALIFIED
Greenwood C RulapaughIndiaStephen Shaw RENEWAL
Julie D WhobreyAustraliaStephen Shaw PROPOSAL
Jennifer G ChuiAustraliaElwin Sharvill RENEWAL
Alejandro O AmigonRussiaAsiya Javayant UNQUALIFIED
Ricardo T AmigonJapanIvan Magalhaes QUALIFIED
Leja S FerenczItalyIoni Bowcher QUALIFIED
Aruna Z AlbaresJapanXuxue Feng NEGOTIATION
Mayumi G RutaSpainStephen Shaw NEW
Aditya C FlosiSpainXuxue Feng QUALIFIED
Tony U PerinUnited KingdomIvan Magalhaes PROPOSAL
Adams X PaprockiIndiaAnna Fali NEW
Maria V RutaFranceElwin Sharvill RENEWAL
Claire M ChuiBrazilAmy Elsner NEW
Costa W PaprockiArgentinaBernardo Dominic PROPOSAL
Julie Y BriddickItalyBernardo Dominic NEW
Isabel S ChuiSpainStephen Shaw NEW
Clifford T ButtSpainIoni Bowcher RENEWAL
Sinclair L GillianGermanyAmy Elsner QUALIFIED
Kadeem P InouyeAustraliaStephen Shaw QUALIFIED
Francesco K WieserJapanOnyama Limba UNQUALIFIED
Claire X BowleyAustraliaAsiya Javayant RENEWAL
Ivar Z GarufiGermanyXuxue Feng QUALIFIED
Ashley I CaudyAustraliaIvan Magalhaes RENEWAL
Ricardo E MaletUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore N ButtRussiaAsiya Javayant QUALIFIED
Smith Z MarrierIndiaAsiya Javayant RENEWAL
Ivar S MaletGermanyIoni Bowcher QUALIFIED
Octavia H GauchoRussiaIoni Bowcher NEGOTIATION
Misaki U GarufiItalyBernardo Dominic NEW
Faith D OstroskyArgentinaXuxue Feng RENEWAL
Antonio Q BowleyCanadaBernardo Dominic RENEWAL
Clifford W SergiJapanStephen Shaw NEW
Mayumi R StensethBrazilAsiya Javayant UNQUALIFIED
Chavez D GauchoCanadaOnyama Limba NEW
James T BowleyJapanAmy Elsner NEGOTIATION
Octavia A NickaSpainAmy Elsner QUALIFIED
Ivar R NestleBrazilStephen Shaw NEW
Ricardo Q FigeroaRussiaIoni Bowcher NEW
Deepesh Q FigeroaArgentinaIoni Bowcher QUALIFIED
James V KolmetzCanadaOnyama Limba NEW
Ashley H CaldareraBrazilBernardo Dominic QUALIFIED
Julie O SlusarskiIndiaStephen Shaw NEW
Alejandro W WaycottArgentinaElwin Sharvill PROPOSAL
Aika A DilliardFranceBernardo Dominic PROPOSAL
Smith E CaldareraJapanAnna Fali PROPOSAL
Greenwood N AlbaresJapanOnyama Limba UNQUALIFIED
Munro T GillianBrazilStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja T OstroskySpainBernardo Dominic NEW
Aika N RimBrazilAsiya Javayant RENEWAL
Arvin A MarrierRussiaOnyama Limba NEGOTIATION
Izzy U SergiFranceAsiya Javayant UNQUALIFIED
Deepesh C BowleyArgentinaElwin Sharvill UNQUALIFIED
Johnson F OldroydCanadaAnna Fali NEGOTIATION
Rodrigues W MaletBrazilIoni Bowcher PROPOSAL
Smith E ChuiUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba M PerinIndiaOnyama Limba NEGOTIATION
Ivar M SergiArgentinaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody X WhobreyCanada2026-08-13Feiner Bros QUALIFIED38Ioni Bowcher
1001Jeanfrancois U MaletGermany2026-08-22Commercial Press UNQUALIFIED43Amy Elsner
1002Stacey V SchemmerItaly2026-08-06Feltz Printing Service PROPOSAL72Onyama Limba
1003Morrow T SlusarskiIndia2026-07-30Chemel, James L Cpa PROPOSAL20Stephen Shaw
1004David H RimSpain2026-08-06Chanay, Jeffrey A Esq RENEWAL91Asiya Javayant
1005Darci K ShinkoFrance2026-08-23Truhlar And Truhlar Attys RENEWAL49Bernardo Dominic
1006Murillo V KuskoUnited Kingdom2026-08-06Truhlar And Truhlar Attys NEW38Anna Fali
1007Rodrigues J RutaRussia2026-08-07King, Christopher A Esq QUALIFIED13Ivan Magalhaes
1008Juan N GlickCanada2026-08-01Buckley Miller Wright PROPOSAL99Ivan Magalhaes
1009James C MarrierCanada2026-08-16Feiner Bros NEGOTIATION46Elwin Sharvill
1010Murillo J MacleadUnited Kingdom2026-08-25Rousseaux, Michael Esq QUALIFIED1Bernardo Dominic
1011Izzy T FigeroaArgentina2026-08-13Morlong Associates NEW74Asiya Javayant
1012Adams T RulapaughRussia2026-08-23Morlong Associates NEW3Onyama Limba
1013Clifford I FigeroaRussia2026-08-23Commercial Press NEGOTIATION61Xuxue Feng
1014Leja L StockhamSpain2026-08-22Chapman, Ross E Esq NEGOTIATION62Stephen Shaw
1015Deepesh G ShinkoSpain2026-08-12Rangoni Of Florence QUALIFIED42Bernardo Dominic
1016Adams C CampainJapan2026-08-20Rangoni Of Florence RENEWAL69Amy Elsner
1017Kaitlin S WaycottRussia2026-08-18Dorl, James J Esq QUALIFIED30Ioni Bowcher
1018Salvatore Q BriddickAustralia2026-08-09Chemel, James L Cpa NEW8Amy Elsner
1019Nicolas G MorascaAustralia2026-08-25Commercial Press UNQUALIFIED11Elwin Sharvill
1020Nicolas Q FollerFrance2026-08-23Buckley Miller Wright UNQUALIFIED77Xuxue Feng
1021Tony P MaletJapan2026-08-24Rangoni Of Florence PROPOSAL9Xuxue Feng
1022Leon J FlosiItaly2026-08-22King, Christopher A Esq RENEWAL68Ioni Bowcher
1023Ivar M VocelkaRussia2026-08-12Rousseaux, Michael Esq RENEWAL62Bernardo Dominic
1024Alejandro V FerenczIndia2026-07-31Chapman, Ross E Esq NEW57Ivan Magalhaes
1025Stacey O PerinJapan2026-08-17Rangoni Of Florence RENEWAL59Onyama Limba
1026Sinclair Z ShinkoFrance2026-08-19Buckley Miller Wright QUALIFIED16Onyama Limba
1027Ricardo D DilliardFrance2026-08-21Chapman, Ross E Esq QUALIFIED6Asiya Javayant
1028Leon I KuskoBrazil2026-08-15Buckley Miller Wright NEW54Asiya Javayant
1029Clifford L PaprockiItaly2026-08-06Benton, John B Jr QUALIFIED33Anna Fali
1030Jennifer E DilliardIndia2026-08-11Commercial Press RENEWAL46Asiya Javayant
1031Juan L TollnerItaly2026-08-24Truhlar And Truhlar Attys QUALIFIED4Bernardo Dominic
1032Munro M AlbaresGermany2026-08-27Printing Dimensions NEGOTIATION64Onyama Limba
1033Ricardo R WhobreySpain2026-08-01Chanay, Jeffrey A Esq NEW68Ivan Magalhaes
1034Tony Y SaylorsJapan2026-08-04Morlong Associates RENEWAL61Anna Fali
1035Clifford S GlickJapan2026-08-21Commercial Press UNQUALIFIED5Anna Fali
1036Clifford D ButtArgentina2026-08-23Chapman, Ross E Esq PROPOSAL29Bernardo Dominic
1037Sinclair X StockhamRussia2026-08-19Truhlar And Truhlar Attys NEGOTIATION11Asiya Javayant
1038Leon G BowleyUnited Kingdom2026-08-04Chapman, Ross E Esq UNQUALIFIED19Stephen Shaw
1039Juan D ShinkoGermany2026-08-03Feltz Printing Service UNQUALIFIED32Stephen Shaw
1040Jefferson R NickaBrazil2026-08-26Chanay, Jeffrey A Esq PROPOSAL24Amy Elsner
1041Ashley H RutaGermany2026-08-02King, Christopher A Esq QUALIFIED56Asiya Javayant
1042Clifford I DoeCanada2026-08-27Buckley Miller Wright QUALIFIED9Onyama Limba
1043Octavia U DoeIndia2026-07-29Rousseaux, Michael Esq UNQUALIFIED48Ioni Bowcher
1044Smith N FollerJapan2026-07-30Morlong Associates UNQUALIFIED97Elwin Sharvill
1045Johnson S WieserItaly2026-07-30Benton, John B Jr NEGOTIATION57Asiya Javayant
1046Aditya L MacleadBrazil2026-08-24Morlong Associates QUALIFIED34Bernardo Dominic
1047Jefferson X PaprockiUnited Kingdom2026-08-22Buckley Miller Wright NEGOTIATION4Ioni Bowcher
1048Kadeem L MorascaRussia2026-08-18Rousseaux, Michael Esq QUALIFIED30Ioni Bowcher
1049Juan W VocelkaCanada2026-08-07Chapman, Ross E Esq NEGOTIATION66Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Isabel E PoquetteSpainIvan Magalhaes NEW
Leja I GlickUnited KingdomBernardo Dominic PROPOSAL
Aruna K MaletFranceIoni Bowcher RENEWAL
Mujtaba R DilliardItalyXuxue Feng UNQUALIFIED
Tony O MaletFranceIoni Bowcher RENEWAL
Chavez A PerinIndiaIvan Magalhaes NEW
Misaki A FlosiSpainIvan Magalhaes NEW
Morrow P IturbideItalyOnyama Limba RENEWAL
Smith H IturbideFranceXuxue Feng NEW
Maria G RimBrazilAsiya Javayant PROPOSAL
Cody M WieserRussiaAsiya Javayant UNQUALIFIED
Leja B StockhamFranceAmy Elsner NEW
Greenwood X MaletCanadaAsiya Javayant NEGOTIATION
Darci K CampainFranceStephen Shaw PROPOSAL
Jeanfrancois N BriddickUnited KingdomAnna Fali RENEWAL
Leon R MaletUnited KingdomAnna Fali NEGOTIATION
Rodrigues W FollerGermanyXuxue Feng NEW
Mayumi A MorascaJapanAmy Elsner UNQUALIFIED
Julie L DarakjyUnited KingdomAsiya Javayant RENEWAL
Juan S CampainIndiaIvan Magalhaes UNQUALIFIED
James J BriddickFranceIoni Bowcher PROPOSAL
Leon E DoeSpainIvan Magalhaes UNQUALIFIED
Greenwood X DoeArgentinaAmy Elsner RENEWAL
Costa Q AlbaresAustraliaAsiya Javayant NEW
Ivar R GarufiFranceXuxue Feng QUALIFIED
Smith B FigeroaGermanyAsiya Javayant UNQUALIFIED
Silvio A CaudyIndiaBernardo Dominic PROPOSAL
Darci G DilliardAustraliaIvan Magalhaes QUALIFIED
Munro E DarakjyRussiaAsiya Javayant QUALIFIED
Aruna K CaudyCanadaOnyama Limba RENEWAL
Ricardo U RoysterUnited KingdomIoni Bowcher NEW
Leon A SlusarskiSpainOnyama Limba UNQUALIFIED
Stacey Z MaletArgentinaIoni Bowcher UNQUALIFIED
Wickens E IturbideCanadaAnna Fali QUALIFIED
Jefferson H CaldareraRussiaAsiya Javayant QUALIFIED
Isabel G RimAustraliaIvan Magalhaes NEGOTIATION
James Z OstroskyCanadaIvan Magalhaes NEGOTIATION
Clifford H BowleyFranceIoni Bowcher RENEWAL
Misaki Z BologniaAustraliaOnyama Limba UNQUALIFIED
Maria S CampainJapanAnna Fali NEGOTIATION
Maisha K PerinBrazilAsiya Javayant NEW
Jones G GillianItalyStephen Shaw UNQUALIFIED
Faith L PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Rodrigues O MarrierAustraliaXuxue Feng RENEWAL
Wickens G PaprockiGermanyAsiya Javayant NEGOTIATION
Kaitlin W GauchoBrazilOnyama Limba NEGOTIATION
Juan O CampainAustraliaOnyama Limba RENEWAL
Alejandro M OldroydItalyBernardo Dominic NEGOTIATION
Misaki W NickaAustraliaStephen Shaw NEGOTIATION
Maisha Y AmigonIndiaOnyama Limba RENEWAL
Frozen Columns
Name
Clifford C Oldroyd
Faith E Doe
Stacey Y Inouye
Octavia M Albares
Isabel B Malet
Murillo P Albares
Aditya B Inouye
Munro Z Oldroyd
Chavez F Tollner
Smith V Stockham
Wickens Z Bowley
Jeanfrancois S Dilliard
Jeanfrancois H Glick
Aika W Oldroyd
Silvio H Malet
Morrow Q Marrier
Nicolas V Foller
David O Poquette
Aika B Foller
Arvin Y Iturbide
Leja C Albares
Aditya O Inouye
Darci U Inouye
Kaitlin L Ferencz
Emily Q Saylors
David T Tollner
Maisha W Whobrey
Leja F Nestle
Chavez A Glick
Silvio H Tollner
Cody H Malet
Leon T Waycott
James Y Shinko
Jennifer X Darakjy
Jones J Darakjy
Aditya R Whobrey
Greenwood F Oldroyd
Silvio N Butt
Sinclair I Ostrosky
James K Royster
Mujtaba S Gaucho
Aditya X Rulapaugh
Misaki N Gaucho
Isabel Z Iturbide
Stacey A Caldarera
Claire V Whobrey
Alejandro K Nicka
Mujtaba I Flosi
Jeanfrancois R Nicka
Clifford C Vocelka
IdCountryDate
1000Brazil2026-08-19
1001France2026-08-09
1002Australia2026-08-06
1003India2026-07-31
1004Argentina2026-08-09
1005France2026-08-18
1006Italy2026-08-16
1007Italy2026-08-23
1008France2026-08-22
1009United Kingdom2026-08-24
1010United Kingdom2026-08-19
1011Germany2026-08-26
1012Italy2026-08-12
1013Russia2026-08-04
1014United Kingdom2026-08-13
1015United Kingdom2026-08-03
1016Italy2026-08-04
1017Brazil2026-08-14
1018Russia2026-08-26
1019Russia2026-08-06
1020Spain2026-07-31
1021Germany2026-07-31
1022Spain2026-08-15
1023Brazil2026-08-01
1024Argentina2026-08-04
1025United Kingdom2026-08-20
1026India2026-08-09
1027India2026-08-11
1028France2026-08-03
1029France2026-08-16
1030Australia2026-07-30
1031Argentina2026-08-04
1032Germany2026-08-14
1033France2026-08-02
1034India2026-08-21
1035Japan2026-08-21
1036United Kingdom2026-08-09
1037India2026-08-17
1038Spain2026-08-05
1039Canada2026-08-06
1040France2026-08-19
1041Italy2026-08-07
1042Brazil2026-08-05
1043Japan2026-08-14
1044Australia2026-08-15
1045Russia2026-08-02
1046India2026-08-03
1047Australia2026-08-08
1048Italy2026-08-20
1049Argentina2026-08-09

On-Demand Data

NameIdCountryDate
Antonio L Dilliard1000Canada2026-08-05
Ashley G Oldroyd1001Germany2026-08-18
Darci J Rulapaugh1002Germany2026-07-30
Aruna E Stenseth1003Australia2026-08-12
Emily H Morasca1004Japan2026-08-15
Maisha T Rulapaugh1005India2026-08-24
Ashley D Flosi1006Italy2026-08-26
Aditya Z Ostrosky1007Russia2026-07-30
Costa T Caldarera1008Canada2026-08-24
Arvin S Malet1009Germany2026-08-16
Chavez E Caudy1010Japan2026-08-19
David E Butt1011India2026-08-01
Morrow Q Ostrosky1012Argentina2026-08-18
Rodrigues M Tollner1013Russia2026-08-23
Aditya B Bolognia1014Germany2026-08-25
Morrow N Amigon1015Italy2026-08-11
Alejandro X Iturbide1016India2026-08-13
Ashley F Gaucho1017United Kingdom2026-07-30
Francesco Q Ferencz1018Canada2026-08-03
Maisha O Briddick1019India2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo J WaycottJapanXuxue Feng NEW
Alejandro I MaletIndiaAnna Fali PROPOSAL
Wickens G FollerRussiaStephen Shaw PROPOSAL
Sinclair T ShinkoIndiaIoni Bowcher NEGOTIATION
Deepesh O SchemmerFranceAnna Fali QUALIFIED
Cody X WaycottRussiaBernardo Dominic QUALIFIED
Cody W DoeGermanyIvan Magalhaes RENEWAL
Aditya L ButtCanadaAmy Elsner PROPOSAL
Maisha P FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Isabel J OstroskyIndiaAmy Elsner RENEWAL
David M RoysterArgentinaBernardo Dominic UNQUALIFIED
Nicolas L ShinkoIndiaIoni Bowcher RENEWAL
Silvio Z PaprockiGermanyXuxue Feng QUALIFIED
Leon Y WhobreyBrazilStephen Shaw UNQUALIFIED
Clifford V IturbideAustraliaIoni Bowcher NEW
Jefferson Q BriddickArgentinaIvan Magalhaes PROPOSAL
Alejandro R PaprockiJapanStephen Shaw NEGOTIATION
Mujtaba M VocelkaBrazilElwin Sharvill NEW
Nicolas P RutaBrazilBernardo Dominic RENEWAL
Adams I BologniaRussiaElwin Sharvill PROPOSAL
Cody C NestleUnited KingdomOnyama Limba UNQUALIFIED
James G DarakjyBrazilIoni Bowcher PROPOSAL
Johnson U VocelkaCanadaIoni Bowcher PROPOSAL
Wickens Z ChuiIndiaAsiya Javayant RENEWAL
Silvio U BologniaUnited KingdomAnna Fali PROPOSAL
Nicolas D WhobreyBrazilAmy Elsner PROPOSAL
Smith M CaldareraJapanXuxue Feng UNQUALIFIED
David Y SchemmerJapanBernardo Dominic UNQUALIFIED
Deepesh Y MacleadCanadaIoni Bowcher NEGOTIATION
Munro P OstroskySpainAsiya Javayant RENEWAL
Francesco Z KuskoRussiaAmy Elsner UNQUALIFIED
Wickens S FlosiGermanyXuxue Feng UNQUALIFIED
Kaitlin L StockhamGermanyOnyama Limba NEW
Munro B NickaIndiaIvan Magalhaes NEW
Ricardo K NestleRussiaIoni Bowcher PROPOSAL
Leon R MacleadRussiaIvan Magalhaes RENEWAL
Aika G RimJapanIoni Bowcher PROPOSAL
Clifford G MacleadArgentinaOnyama Limba QUALIFIED
Octavia E KolmetzArgentinaIoni Bowcher PROPOSAL
Misaki Q CaldareraBrazilBernardo Dominic 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>