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
Munro Z AlbaresBrazilStephen Shaw QUALIFIED
Mujtaba C RoysterAustraliaBernardo Dominic NEW
Kaitlin Z KolmetzItalyElwin Sharvill NEGOTIATION
Jennifer P VenereFranceStephen Shaw UNQUALIFIED
Jeanfrancois P StockhamAustraliaAmy Elsner QUALIFIED
David U ChuiGermanyBernardo Dominic UNQUALIFIED
Tony T MaletSpainXuxue Feng NEW
Kaitlin J AmigonIndiaAsiya Javayant PROPOSAL
Jefferson G FlosiBrazilAmy Elsner PROPOSAL
Francesco O KolmetzCanadaIvan Magalhaes UNQUALIFIED
Darci I SlusarskiItalyBernardo Dominic NEGOTIATION
Arvin T MorascaBrazilStephen Shaw QUALIFIED
James T SergiItalyIoni Bowcher RENEWAL
Clifford E PerinRussiaAsiya Javayant UNQUALIFIED
Jones D VenereAustraliaBernardo Dominic PROPOSAL
Jefferson Q MacleadCanadaIvan Magalhaes RENEWAL
Alejandro T DarakjyUnited KingdomAsiya Javayant PROPOSAL
Johnson E CaldareraJapanXuxue Feng NEW
Nicolas V VenereJapanElwin Sharvill PROPOSAL
Izzy T OldroydSpainAsiya Javayant UNQUALIFIED
Sinclair N AlbaresSpainAnna Fali PROPOSAL
Leon J NickaGermanyStephen Shaw PROPOSAL
Kaitlin T StockhamFranceOnyama Limba NEW
Mayumi C KuskoGermanyAmy Elsner NEGOTIATION
Faith V StockhamIndiaIvan Magalhaes QUALIFIED
Aruna J AmigonGermanyAnna Fali QUALIFIED
Morrow F FerenczJapanXuxue Feng NEW
Adams W PaprockiBrazilAmy Elsner QUALIFIED
Aruna A BologniaFranceAmy Elsner RENEWAL
Greenwood A RutaIndiaOnyama Limba QUALIFIED
Mayumi U WhobreyGermanyIvan Magalhaes QUALIFIED
Munro V GarufiArgentinaAmy Elsner PROPOSAL
Salvatore P MaletRussiaIvan Magalhaes UNQUALIFIED
Kadeem D MaletIndiaAsiya Javayant NEGOTIATION
Ricardo D DilliardIndiaIoni Bowcher NEGOTIATION
Greenwood D KuskoFranceBernardo Dominic PROPOSAL
Alejandro G OstroskyAustraliaIoni Bowcher PROPOSAL
Darci U BologniaAustraliaOnyama Limba PROPOSAL
Sinclair O PoquetteIndiaElwin Sharvill NEGOTIATION
Isabel N SchemmerJapanElwin Sharvill PROPOSAL
Arvin O IturbideUnited KingdomOnyama Limba RENEWAL
Antonio N WaycottItalyIvan Magalhaes NEGOTIATION
David Y KolmetzRussiaBernardo Dominic QUALIFIED
Arvin R MorascaBrazilAnna Fali NEGOTIATION
Wickens E OldroydRussiaIoni Bowcher PROPOSAL
Izzy N AlbaresSpainElwin Sharvill NEW
Munro P AlbaresBrazilAnna Fali UNQUALIFIED
Ashley K WaycottRussiaIvan Magalhaes NEGOTIATION
Julie R MaletAustraliaIoni Bowcher QUALIFIED
Misaki R OstroskyGermanyOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro I FigeroaSpainElwin Sharvill RENEWAL
Kaitlin R IturbideFranceElwin Sharvill NEGOTIATION
Maria E ShinkoArgentinaAnna Fali UNQUALIFIED
Francesco I SchemmerBrazilElwin Sharvill NEW
Aditya V StockhamRussiaOnyama Limba NEW
Aruna C DoeGermanyOnyama Limba UNQUALIFIED
Sinclair T RulapaughJapanElwin Sharvill NEGOTIATION
Nicolas X GarufiArgentinaBernardo Dominic PROPOSAL
Salvatore S MaletIndiaAsiya Javayant NEW
Morrow D FigeroaArgentinaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa K BowleyCanada2026-06-26Buckley Miller Wright UNQUALIFIED5Elwin Sharvill
1001Stacey B AlbaresRussia2026-06-23Printing Dimensions NEW91Amy Elsner
1002Nicolas E GauchoJapan2026-06-25Dorl, James J Esq QUALIFIED65Ioni Bowcher
1003Ivar G FigeroaBrazil2026-06-21Printing Dimensions QUALIFIED92Elwin Sharvill
1004Aditya U NickaJapan2026-06-15Dorl, James J Esq UNQUALIFIED25Ioni Bowcher
1005Stacey V MorascaCanada2026-06-17Benton, John B Jr RENEWAL45Ioni Bowcher
1006Aika X AlbaresAustralia2026-06-30King, Christopher A Esq RENEWAL9Ivan Magalhaes
1007Jones S TollnerGermany2026-07-07Truhlar And Truhlar Attys NEW30Ivan Magalhaes
1008Jennifer Q RoysterCanada2026-06-18Benton, John B Jr RENEWAL41Elwin Sharvill
1009Jones R InouyeJapan2026-06-26Feltz Printing Service NEW34Ioni Bowcher
1010Johnson J WaycottGermany2026-06-20Chemel, James L Cpa QUALIFIED12Anna Fali
1011Smith R SchemmerBrazil2026-07-05Benton, John B Jr UNQUALIFIED82Elwin Sharvill
1012Deepesh I RutaRussia2026-06-29Commercial Press NEW92Ioni Bowcher
1013Smith E FollerFrance2026-06-18Commercial Press RENEWAL44Stephen Shaw
1014Murillo E StensethRussia2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED89Ivan Magalhaes
1015Cody R CaldareraFrance2026-07-02Feltz Printing Service PROPOSAL33Anna Fali
1016Aika B MarrierSpain2026-07-03King, Christopher A Esq NEW22Onyama Limba
1017Emily U VocelkaJapan2026-07-07Buckley Miller Wright NEW29Asiya Javayant
1018Sinclair U CampainCanada2026-06-24Benton, John B Jr PROPOSAL20Ioni Bowcher
1019Jennifer J BriddickSpain2026-06-26Feiner Bros RENEWAL20Asiya Javayant
1020James D KuskoCanada2026-06-18Morlong Associates QUALIFIED82Anna Fali
1021Costa C WaycottUnited Kingdom2026-06-16Chapman, Ross E Esq NEGOTIATION91Onyama Limba
1022Cody F NickaUnited Kingdom2026-06-09Feltz Printing Service QUALIFIED63Anna Fali
1023Jennifer O TollnerSpain2026-06-18Truhlar And Truhlar Attys NEW4Anna Fali
1024Costa P KuskoJapan2026-06-12Chapman, Ross E Esq PROPOSAL40Asiya Javayant
1025Claire A OstroskySpain2026-06-30Feiner Bros RENEWAL28Xuxue Feng
1026Nicolas Z DoeArgentina2026-07-05Feiner Bros PROPOSAL98Onyama Limba
1027Wickens S RulapaughCanada2026-07-05Chapman, Ross E Esq PROPOSAL16Onyama Limba
1028Cody G GlickGermany2026-07-02Truhlar And Truhlar Attys UNQUALIFIED63Ioni Bowcher
1029Sinclair Q DarakjyBrazil2026-06-18Rousseaux, Michael Esq RENEWAL97Asiya Javayant
1030Isabel G WaycottGermany2026-07-01Commercial Press NEW85Xuxue Feng
1031Izzy L KolmetzJapan2026-06-22Chemel, James L Cpa QUALIFIED44Ivan Magalhaes
1032Chavez W RoysterFrance2026-06-19Rangoni Of Florence QUALIFIED52Anna Fali
1033Maisha D KolmetzRussia2026-06-27Morlong Associates UNQUALIFIED8Amy Elsner
1034Costa L WaycottArgentina2026-06-30Benton, John B Jr RENEWAL8Onyama Limba
1035Claire P GarufiGermany2026-06-17Chanay, Jeffrey A Esq RENEWAL81Elwin Sharvill
1036Mujtaba J PoquetteIndia2026-06-10Truhlar And Truhlar Attys NEW55Stephen Shaw
1037Rodrigues Q NickaSpain2026-06-17Commercial Press RENEWAL99Elwin Sharvill
1038Cody U AmigonItaly2026-06-14King, Christopher A Esq NEGOTIATION61Amy Elsner
1039Ashley U BriddickItaly2026-06-16Rangoni Of Florence NEGOTIATION7Stephen Shaw
1040Kadeem I FollerItaly2026-06-23Rangoni Of Florence RENEWAL44Xuxue Feng
1041Ivar I AmigonUnited Kingdom2026-06-27Chanay, Jeffrey A Esq NEW71Xuxue Feng
1042Mujtaba Z CaudyBrazil2026-06-28Feiner Bros RENEWAL98Onyama Limba
1043Izzy D ChuiArgentina2026-06-23Chemel, James L Cpa RENEWAL13Elwin Sharvill
1044Silvio T RutaUnited Kingdom2026-06-15Commercial Press UNQUALIFIED4Ivan Magalhaes
1045Silvio Y ChuiItaly2026-06-22Morlong Associates UNQUALIFIED27Ioni Bowcher
1046Cody K NestleUnited Kingdom2026-06-13Rangoni Of Florence NEGOTIATION19Ivan Magalhaes
1047Isabel R PaprockiJapan2026-06-10Chanay, Jeffrey A Esq RENEWAL6Anna Fali
1048Mayumi N IturbideSpain2026-06-23Dorl, James J Esq RENEWAL77Onyama Limba
1049Rodrigues R GauchoItaly2026-06-14Buckley Miller Wright UNQUALIFIED56Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Clifford W GlickSpainElwin Sharvill UNQUALIFIED
Alejandro E DarakjyJapanXuxue Feng QUALIFIED
Adams B ButtSpainIvan Magalhaes NEW
Munro S BologniaItalyAsiya Javayant PROPOSAL
Octavia A FigeroaBrazilAmy Elsner QUALIFIED
Isabel O MaletCanadaAsiya Javayant QUALIFIED
Aruna U BriddickSpainXuxue Feng QUALIFIED
Adams A DarakjyArgentinaAmy Elsner NEGOTIATION
Emily L KuskoJapanAsiya Javayant PROPOSAL
Francesco X ShinkoSpainBernardo Dominic NEGOTIATION
Ricardo S SergiRussiaXuxue Feng UNQUALIFIED
Octavia I NickaJapanAnna Fali NEW
Jones V MacleadRussiaElwin Sharvill PROPOSAL
Jeanfrancois M RimFranceElwin Sharvill NEGOTIATION
Sinclair Z KolmetzIndiaIoni Bowcher PROPOSAL
Emily T PerinJapanAsiya Javayant NEW
Aditya I VenereBrazilAsiya Javayant UNQUALIFIED
Johnson U MaletAustraliaIoni Bowcher UNQUALIFIED
Isabel S MacleadArgentinaElwin Sharvill QUALIFIED
Emily U SlusarskiRussiaIoni Bowcher UNQUALIFIED
Chavez A IturbideArgentinaIoni Bowcher QUALIFIED
Isabel U IturbideGermanyOnyama Limba PROPOSAL
Claire O VocelkaGermanyBernardo Dominic NEW
Jones U WieserRussiaAmy Elsner RENEWAL
Adams I BriddickItalyIoni Bowcher PROPOSAL
Juan L MarrierArgentinaAmy Elsner PROPOSAL
Ricardo G PerinJapanElwin Sharvill QUALIFIED
Isabel C CaldareraGermanyIoni Bowcher UNQUALIFIED
Leon A AmigonRussiaAsiya Javayant UNQUALIFIED
Deepesh H DilliardBrazilAmy Elsner NEGOTIATION
Stacey F SlusarskiBrazilIoni Bowcher NEW
Mujtaba I FigeroaItalyAsiya Javayant QUALIFIED
Cody O WieserBrazilStephen Shaw RENEWAL
Greenwood R OstroskyFranceStephen Shaw NEW
Cody T IturbideCanadaAmy Elsner NEGOTIATION
Salvatore R RulapaughItalyIoni Bowcher NEW
Morrow S GlickIndiaBernardo Dominic NEW
Morrow Y SchemmerBrazilElwin Sharvill QUALIFIED
Greenwood B FollerUnited KingdomXuxue Feng QUALIFIED
Faith Z GauchoRussiaBernardo Dominic PROPOSAL
Arvin B FerenczItalyXuxue Feng NEGOTIATION
Jeanfrancois D GarufiArgentinaElwin Sharvill RENEWAL
Izzy Q NestleFranceIvan Magalhaes UNQUALIFIED
Jennifer C FigeroaCanadaIvan Magalhaes NEW
Octavia X IturbideCanadaBernardo Dominic PROPOSAL
Antonio V AmigonItalyAmy Elsner UNQUALIFIED
Smith U MaletSpainXuxue Feng UNQUALIFIED
Costa N GlickItalyXuxue Feng PROPOSAL
Octavia G StockhamBrazilIoni Bowcher RENEWAL
Cody Q RulapaughJapanIoni Bowcher PROPOSAL
Frozen Columns
Name
Maisha V Gillian
Claire J Morasca
Stacey N Shinko
Cody Q Nestle
Deepesh Z Ferencz
Deepesh S Flosi
Kadeem A Ostrosky
Silvio A Garufi
Costa S Nestle
Juan Z Foller
Ivar E Wieser
Francesco M Bowley
Julie A Foller
Mujtaba Q Stockham
Johnson W Foller
Costa L Bowley
Emily Y Royster
Aditya F Perin
Mujtaba X Ostrosky
Jeanfrancois O Wieser
Aika W Tollner
Chavez D Nicka
Ashley U Perin
Tony X Sergi
Isabel V Caldarera
Aruna P Venere
Greenwood Z Figeroa
Wickens Y Perin
James L Shinko
Izzy Q Marrier
Darci L Maclead
Jeanfrancois S Inouye
Silvio X Paprocki
Chavez M Perin
Emily T Malet
Cody W Gillian
Jefferson G Doe
Ricardo N Poquette
Francesco A Doe
Adams S Caldarera
Costa W Marrier
Chavez N Rulapaugh
Arvin K Maclead
Izzy W Malet
Aruna K Iturbide
Costa H Foller
Mujtaba Y Schemmer
Costa Y Ferencz
Maisha J Bowley
Maisha Q Caldarera
IdCountryDate
1000Canada2026-06-19
1001Germany2026-06-08
1002Brazil2026-06-17
1003Germany2026-06-23
1004Canada2026-06-19
1005Brazil2026-06-29
1006Spain2026-06-12
1007Spain2026-06-14
1008Canada2026-07-01
1009Australia2026-07-04
1010Australia2026-07-06
1011France2026-06-08
1012India2026-06-12
1013Canada2026-07-02
1014Russia2026-07-07
1015Canada2026-06-17
1016Australia2026-06-19
1017Australia2026-07-06
1018Argentina2026-06-20
1019Russia2026-06-27
1020Canada2026-06-16
1021France2026-06-25
1022Japan2026-06-18
1023India2026-06-19
1024India2026-07-03
1025Japan2026-06-18
1026Germany2026-06-14
1027Germany2026-06-21
1028India2026-06-30
1029Canada2026-06-26
1030Japan2026-06-29
1031United Kingdom2026-07-02
1032Spain2026-06-12
1033Russia2026-06-17
1034United Kingdom2026-06-19
1035United Kingdom2026-06-16
1036United Kingdom2026-06-19
1037Brazil2026-06-18
1038Japan2026-06-12
1039Canada2026-06-14
1040Russia2026-06-20
1041Germany2026-06-13
1042Italy2026-06-22
1043France2026-07-05
1044Italy2026-06-10
1045Argentina2026-07-01
1046United Kingdom2026-06-21
1047Canada2026-07-03
1048France2026-06-23
1049Russia2026-06-24

On-Demand Data

NameIdCountryDate
Deepesh D Marrier1000Brazil2026-07-04
Jefferson E Saylors1001Spain2026-06-13
Jones T Perin1002Australia2026-06-26
Juan N Amigon1003United Kingdom2026-06-17
Jennifer R Sergi1004India2026-06-15
Emily L Ostrosky1005Spain2026-06-29
Aika U Darakjy1006Canada2026-06-28
Smith P Figeroa1007Canada2026-06-16
James R Chui1008Japan2026-06-15
Faith D Flosi1009Canada2026-06-22
Stacey L Malet1010United Kingdom2026-06-16
Ivar F Figeroa1011Brazil2026-06-20
Tony M Dilliard1012Argentina2026-06-15
Maisha M Garufi1013France2026-06-18
Emily C Paprocki1014Brazil2026-06-19
Francesco O Stenseth1015Spain2026-06-25
Sinclair O Caldarera1016Italy2026-07-06
Morrow Q Oldroyd1017Canada2026-06-13
Wickens B Gillian1018India2026-06-15
Tony D Marrier1019Japan2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia V DilliardFranceIoni Bowcher QUALIFIED
Aika V KuskoFranceXuxue Feng RENEWAL
Leon M MarrierIndiaStephen Shaw QUALIFIED
Isabel X WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin Q CampainArgentinaBernardo Dominic NEGOTIATION
Kaitlin X WhobreyJapanBernardo Dominic UNQUALIFIED
Octavia K WieserFranceAsiya Javayant NEGOTIATION
Sinclair E VocelkaSpainElwin Sharvill UNQUALIFIED
Jeanfrancois T GauchoJapanXuxue Feng NEGOTIATION
Leon Q GauchoCanadaIoni Bowcher NEW
Kaitlin R GillianRussiaXuxue Feng NEW
David M PerinUnited KingdomStephen Shaw RENEWAL
Sinclair B ChuiRussiaAnna Fali PROPOSAL
Arvin R KolmetzRussiaBernardo Dominic NEGOTIATION
Morrow C AlbaresFranceStephen Shaw PROPOSAL
Arvin H FollerIndiaIvan Magalhaes NEGOTIATION
Alejandro H CampainCanadaAmy Elsner NEW
Izzy G NickaItalyBernardo Dominic UNQUALIFIED
Silvio X StockhamIndiaIoni Bowcher PROPOSAL
Adams R DoeFranceBernardo Dominic NEGOTIATION
James A WieserItalyIvan Magalhaes NEW
Darci V BriddickCanadaAnna Fali QUALIFIED
Mujtaba G CaldareraBrazilStephen Shaw RENEWAL
Aruna H BologniaJapanIvan Magalhaes NEGOTIATION
Aika U RulapaughIndiaAnna Fali NEW
Salvatore L WieserGermanyBernardo Dominic QUALIFIED
Isabel G BriddickIndiaAnna Fali RENEWAL
Rodrigues E OldroydGermanyBernardo Dominic NEW
Mayumi I PaprockiJapanIvan Magalhaes NEW
Nicolas E KolmetzJapanBernardo Dominic NEGOTIATION
Clifford S GarufiArgentinaIoni Bowcher QUALIFIED
Rodrigues X ButtGermanyXuxue Feng QUALIFIED
Adams C NestleFranceIvan Magalhaes RENEWAL
Munro H InouyeItalyOnyama Limba NEW
Mayumi X ButtIndiaStephen Shaw NEW
Leon K WhobreyCanadaXuxue Feng PROPOSAL
Maria A GauchoArgentinaElwin Sharvill RENEWAL
Alejandro Z RoysterAustraliaAnna Fali UNQUALIFIED
Morrow Y GauchoBrazilAsiya Javayant RENEWAL
Murillo S FlosiJapanIoni Bowcher QUALIFIED

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