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
Emily H GauchoBrazilAnna Fali UNQUALIFIED
Wickens W FerenczArgentinaAnna Fali NEW
Arvin W CaldareraCanadaStephen Shaw PROPOSAL
Aika S KolmetzFranceIoni Bowcher PROPOSAL
Deepesh N FigeroaItalyAsiya Javayant UNQUALIFIED
Leja A FollerFranceIoni Bowcher NEGOTIATION
Kaitlin K StockhamItalyXuxue Feng UNQUALIFIED
Maria O MaletJapanOnyama Limba NEW
Tony R BowleyItalyAmy Elsner QUALIFIED
Tony L RoysterSpainAsiya Javayant NEW
Nicolas J KolmetzAustraliaStephen Shaw NEW
Salvatore H GlickIndiaXuxue Feng NEGOTIATION
Claire Q FlosiRussiaBernardo Dominic NEGOTIATION
Stacey T RutaRussiaAsiya Javayant NEW
Claire D VocelkaCanadaElwin Sharvill PROPOSAL
Adams B InouyeItalyAmy Elsner NEW
Greenwood T ButtJapanOnyama Limba PROPOSAL
Mujtaba S BriddickFranceStephen Shaw NEW
Antonio O TollnerSpainXuxue Feng PROPOSAL
Leon F SchemmerFranceAnna Fali RENEWAL
Kadeem A MorascaRussiaBernardo Dominic QUALIFIED
Nicolas V ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Julie W PaprockiGermanyAnna Fali NEW
Maisha R PoquetteGermanyAnna Fali NEW
Antonio Z SergiItalyBernardo Dominic PROPOSAL
Mujtaba M AmigonCanadaBernardo Dominic QUALIFIED
Mayumi N GauchoJapanIoni Bowcher NEGOTIATION
Arvin H KolmetzCanadaAsiya Javayant NEGOTIATION
Emily R MarrierSpainIvan Magalhaes UNQUALIFIED
Wickens G WaycottFranceIoni Bowcher RENEWAL
Ashley L AlbaresJapanOnyama Limba NEGOTIATION
Francesco R RimAustraliaOnyama Limba NEGOTIATION
Adams I MarrierItalyBernardo Dominic NEW
Maria W FerenczUnited KingdomAnna Fali QUALIFIED
Aika J PaprockiSpainOnyama Limba PROPOSAL
David H MaletIndiaStephen Shaw NEW
Aruna B StockhamSpainElwin Sharvill RENEWAL
Jefferson E RimIndiaOnyama Limba PROPOSAL
Stacey S AlbaresUnited KingdomStephen Shaw QUALIFIED
Cody Q CaudyBrazilAsiya Javayant UNQUALIFIED
Munro D PerinItalyIvan Magalhaes RENEWAL
Jeanfrancois J BologniaBrazilAmy Elsner RENEWAL
Stacey W FlosiUnited KingdomAnna Fali NEW
Francesco P RimSpainAmy Elsner NEW
Octavia N BologniaGermanyIoni Bowcher RENEWAL
Mujtaba N MorascaRussiaIvan Magalhaes NEW
Leon L NestleCanadaIvan Magalhaes PROPOSAL
Francesco K FerenczJapanXuxue Feng UNQUALIFIED
Munro T PaprockiCanadaXuxue Feng RENEWAL
Leja C WieserGermanyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo P VocelkaBrazilXuxue Feng PROPOSAL
Leja Y WieserJapanOnyama Limba NEW
Salvatore L CaudyRussiaBernardo Dominic NEW
Nicolas O TollnerSpainElwin Sharvill QUALIFIED
Clifford F BologniaIndiaAsiya Javayant RENEWAL
James G KuskoAustraliaElwin Sharvill RENEWAL
Kadeem O RoysterCanadaXuxue Feng RENEWAL
Kaitlin E SergiIndiaAnna Fali NEGOTIATION
Jennifer K StensethSpainAmy Elsner RENEWAL
Aruna U MaletSpainIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar M VenereFrance2026-08-11Buckley Miller Wright PROPOSAL28Amy Elsner
1001Nicolas I GarufiItaly2026-07-21Morlong Associates NEGOTIATION56Ioni Bowcher
1002Greenwood Y StockhamArgentina2026-07-25Commercial Press PROPOSAL90Ivan Magalhaes
1003Francesco I BriddickAustralia2026-07-19Printing Dimensions PROPOSAL67Ivan Magalhaes
1004Greenwood M InouyeRussia2026-07-27Feltz Printing Service RENEWAL86Asiya Javayant
1005Misaki K BologniaItaly2026-08-07Feltz Printing Service NEW46Ivan Magalhaes
1006Darci K PerinJapan2026-07-26Feltz Printing Service NEW62Elwin Sharvill
1007David F MacleadSpain2026-07-18Buckley Miller Wright PROPOSAL48Ivan Magalhaes
1008Ivar L DarakjyCanada2026-08-11Rousseaux, Michael Esq NEW39Onyama Limba
1009Francesco P NickaGermany2026-07-26King, Christopher A Esq PROPOSAL20Onyama Limba
1010Cody S SlusarskiRussia2026-08-07Rousseaux, Michael Esq QUALIFIED5Stephen Shaw
1011Kadeem N NickaRussia2026-08-10Chapman, Ross E Esq QUALIFIED44Stephen Shaw
1012Aruna N GarufiJapan2026-08-04Rangoni Of Florence PROPOSAL82Stephen Shaw
1013Tony U DarakjyRussia2026-08-08Buckley Miller Wright RENEWAL62Onyama Limba
1014Darci Z StockhamRussia2026-08-13Rousseaux, Michael Esq NEW1Ioni Bowcher
1015Darci P AlbaresGermany2026-08-12Buckley Miller Wright QUALIFIED4Elwin Sharvill
1016Morrow R PaprockiIndia2026-08-02Feiner Bros NEGOTIATION45Onyama Limba
1017Julie Z KuskoGermany2026-08-06Rangoni Of Florence NEGOTIATION67Bernardo Dominic
1018Wickens F SlusarskiSpain2026-08-12Chemel, James L Cpa UNQUALIFIED63Elwin Sharvill
1019Silvio J GillianJapan2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED43Stephen Shaw
1020Ivar X GarufiJapan2026-07-19Morlong Associates NEGOTIATION44Xuxue Feng
1021Sinclair S OldroydIndia2026-08-04Buckley Miller Wright QUALIFIED12Bernardo Dominic
1022Ricardo O WhobreyItaly2026-07-24Feiner Bros UNQUALIFIED41Elwin Sharvill
1023Clifford R FlosiItaly2026-08-07Rangoni Of Florence NEW63Bernardo Dominic
1024Mujtaba C RoysterBrazil2026-07-22Chemel, James L Cpa PROPOSAL4Bernardo Dominic
1025Nicolas R SlusarskiFrance2026-07-29Printing Dimensions NEGOTIATION71Onyama Limba
1026Jefferson U WieserFrance2026-08-11Benton, John B Jr NEGOTIATION13Ivan Magalhaes
1027Leja X DoeArgentina2026-08-02Chanay, Jeffrey A Esq PROPOSAL67Ioni Bowcher
1028Emily J KolmetzRussia2026-07-21Chemel, James L Cpa NEW95Onyama Limba
1029Jennifer I AmigonBrazil2026-08-11Feiner Bros PROPOSAL81Bernardo Dominic
1030Kadeem X VocelkaRussia2026-08-02Chanay, Jeffrey A Esq RENEWAL64Elwin Sharvill
1031Sinclair X RimFrance2026-07-24King, Christopher A Esq QUALIFIED5Bernardo Dominic
1032Alejandro I MaletGermany2026-08-05Rangoni Of Florence NEGOTIATION24Stephen Shaw
1033Clifford X PoquetteBrazil2026-07-31Dorl, James J Esq NEGOTIATION12Ivan Magalhaes
1034Murillo W FigeroaSpain2026-08-05Truhlar And Truhlar Attys UNQUALIFIED12Asiya Javayant
1035Chavez V ChuiArgentina2026-08-04Rousseaux, Michael Esq NEW91Stephen Shaw
1036Clifford A GarufiCanada2026-08-02Feltz Printing Service QUALIFIED93Xuxue Feng
1037Jeanfrancois R MorascaCanada2026-07-26Chanay, Jeffrey A Esq NEGOTIATION23Ioni Bowcher
1038Claire F RutaCanada2026-07-30Rangoni Of Florence QUALIFIED35Asiya Javayant
1039Arvin G AmigonSpain2026-08-09Rousseaux, Michael Esq RENEWAL77Ioni Bowcher
1040Juan O OldroydBrazil2026-08-05Feiner Bros RENEWAL4Bernardo Dominic
1041Jennifer Z ButtJapan2026-08-04Chapman, Ross E Esq UNQUALIFIED87Amy Elsner
1042James H TollnerRussia2026-08-04Feltz Printing Service RENEWAL98Ivan Magalhaes
1043Arvin D DoeCanada2026-08-04Rangoni Of Florence QUALIFIED69Ioni Bowcher
1044Francesco U BowleyBrazil2026-08-11Chanay, Jeffrey A Esq QUALIFIED84Ivan Magalhaes
1045Salvatore I CaldareraIndia2026-08-04Feltz Printing Service QUALIFIED88Onyama Limba
1046Silvio E MaletRussia2026-07-17King, Christopher A Esq NEGOTIATION3Anna Fali
1047Silvio I CaldareraFrance2026-07-21King, Christopher A Esq UNQUALIFIED46Ioni Bowcher
1048Adams A GarufiFrance2026-07-25Printing Dimensions RENEWAL15Bernardo Dominic
1049Mujtaba G ChuiGermany2026-07-22Rousseaux, Michael Esq RENEWAL8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Juan K StockhamFranceAnna Fali NEGOTIATION
Wickens E StockhamRussiaIvan Magalhaes UNQUALIFIED
Mujtaba Q BowleyGermanyAsiya Javayant RENEWAL
Greenwood F BologniaJapanOnyama Limba NEW
Rodrigues V KolmetzAustraliaElwin Sharvill QUALIFIED
Stacey L CaudyItalyOnyama Limba UNQUALIFIED
Octavia Y SergiAustraliaBernardo Dominic RENEWAL
Nicolas E WieserIndiaAsiya Javayant NEGOTIATION
Jennifer W SchemmerFranceStephen Shaw QUALIFIED
Faith I ShinkoUnited KingdomAnna Fali RENEWAL
Alejandro O GarufiIndiaOnyama Limba NEGOTIATION
Cody Y PaprockiFranceIvan Magalhaes PROPOSAL
Smith T FlosiAustraliaAmy Elsner NEW
Salvatore S RutaItalyIvan Magalhaes RENEWAL
Misaki L PerinAustraliaIoni Bowcher UNQUALIFIED
Wickens L WhobreySpainXuxue Feng PROPOSAL
Leja O VenereJapanAsiya Javayant QUALIFIED
Greenwood M DilliardItalyElwin Sharvill PROPOSAL
Morrow W VenereJapanXuxue Feng NEW
Adams A CaudyRussiaOnyama Limba NEGOTIATION
Cody Q WaycottGermanyStephen Shaw RENEWAL
Isabel B AlbaresItalyIvan Magalhaes QUALIFIED
Leja X ButtGermanyAnna Fali NEGOTIATION
Isabel A PoquetteBrazilXuxue Feng NEW
Maisha M CampainBrazilAsiya Javayant UNQUALIFIED
Mujtaba W WhobreyBrazilAnna Fali RENEWAL
David I KuskoUnited KingdomIoni Bowcher NEGOTIATION
Darci P MacleadBrazilOnyama Limba NEW
Greenwood B WieserSpainAnna Fali PROPOSAL
Morrow O WieserBrazilXuxue Feng NEW
Alejandro C GillianUnited KingdomAnna Fali QUALIFIED
Jeanfrancois P SergiIndiaAsiya Javayant NEGOTIATION
Faith T OldroydIndiaAnna Fali PROPOSAL
Jones E PaprockiIndiaAsiya Javayant PROPOSAL
Ricardo N GlickBrazilXuxue Feng NEGOTIATION
Rodrigues S VocelkaIndiaAmy Elsner RENEWAL
Deepesh M WaycottCanadaAmy Elsner RENEWAL
Costa N KolmetzJapanBernardo Dominic RENEWAL
Stacey U BowleyUnited KingdomAmy Elsner QUALIFIED
James K WieserCanadaAsiya Javayant UNQUALIFIED
James O CaudyJapanAmy Elsner QUALIFIED
Leon C KuskoIndiaIoni Bowcher QUALIFIED
Clifford N ButtCanadaAsiya Javayant QUALIFIED
Arvin A ButtFranceIvan Magalhaes QUALIFIED
Clifford U GauchoSpainIoni Bowcher PROPOSAL
David T SaylorsUnited KingdomBernardo Dominic QUALIFIED
Salvatore U RoysterSpainStephen Shaw RENEWAL
David C RoysterUnited KingdomStephen Shaw NEGOTIATION
Arvin X DilliardCanadaAmy Elsner PROPOSAL
Smith O PerinIndiaStephen Shaw QUALIFIED
Frozen Columns
Name
Ashley Q Butt
Aruna E Paprocki
Emily H Albares
Francesco B Gaucho
Deepesh I Schemmer
Juan O Briddick
Costa N Slusarski
Johnson F Poquette
Murillo T Garufi
Kadeem B Whobrey
Maisha Z Garufi
Julie F Paprocki
Antonio F Figeroa
Jefferson U Campain
Octavia I Briddick
Faith A Iturbide
Antonio N Garufi
Juan B Iturbide
Ricardo Y Malet
Morrow J Bolognia
Darci X Shinko
Stacey S Venere
Morrow V Dilliard
Arvin H Ferencz
Kadeem Y Bowley
Mujtaba R Malet
Aditya X Royster
Greenwood L Bowley
Stacey Z Stockham
Izzy P Butt
Greenwood A Bolognia
Stacey J Foller
Mujtaba G Perin
David V Kusko
Leja U Figeroa
Aditya G Malet
Stacey U Kolmetz
Aruna T Wieser
Clifford Z Maclead
Emily H Venere
Mayumi R Schemmer
Jeanfrancois N Paprocki
Aika R Caldarera
Misaki F Dilliard
Stacey M Dilliard
Mujtaba G Albares
Aika F Gaucho
Munro P Royster
Wickens N Dilliard
Jeanfrancois E Ostrosky
IdCountryDate
1000Italy2026-08-11
1001Canada2026-08-05
1002Italy2026-07-30
1003Brazil2026-07-17
1004India2026-08-12
1005Argentina2026-07-29
1006Argentina2026-07-23
1007United Kingdom2026-08-01
1008Spain2026-07-24
1009Spain2026-07-22
1010Spain2026-07-28
1011Italy2026-07-25
1012Spain2026-07-23
1013Spain2026-08-06
1014Brazil2026-07-27
1015Italy2026-07-22
1016Germany2026-08-10
1017Russia2026-08-13
1018Canada2026-08-04
1019Germany2026-07-27
1020Australia2026-08-11
1021Germany2026-08-03
1022Canada2026-07-19
1023Australia2026-07-25
1024Russia2026-07-28
1025Australia2026-08-03
1026Japan2026-08-06
1027Japan2026-07-24
1028Italy2026-07-29
1029Russia2026-08-08
1030Australia2026-07-30
1031Japan2026-07-25
1032Germany2026-07-21
1033Germany2026-07-20
1034Canada2026-08-07
1035India2026-08-13
1036Russia2026-07-28
1037Spain2026-07-24
1038India2026-08-12
1039Brazil2026-07-17
1040Italy2026-07-30
1041Germany2026-07-22
1042France2026-08-07
1043Spain2026-07-29
1044United Kingdom2026-07-22
1045Spain2026-07-19
1046Spain2026-07-30
1047Japan2026-07-20
1048Italy2026-08-13
1049Brazil2026-08-06

On-Demand Data

NameIdCountryDate
Salvatore K Darakjy1000United Kingdom2026-08-09
Mujtaba W Caldarera1001Canada2026-08-09
Jones W Wieser1002Canada2026-08-12
Jefferson W Chui1003Spain2026-07-24
Aika P Figeroa1004Brazil2026-08-12
Claire S Whobrey1005Spain2026-08-08
Wickens X Figeroa1006Germany2026-08-14
Murillo X Nicka1007Brazil2026-07-26
Arvin R Malet1008Japan2026-07-28
Munro Y Gaucho1009France2026-08-05
Emily Q Paprocki1010Japan2026-08-09
Juan X Kolmetz1011Russia2026-07-19
Greenwood O Stockham1012Italy2026-08-15
Murillo L Albares1013Canada2026-08-15
Munro F Kusko1014France2026-07-25
Salvatore S Saylors1015Canada2026-07-25
Arvin M Maclead1016Russia2026-08-13
Johnson K Stockham1017France2026-07-26
Munro W Caudy1018Spain2026-07-26
Leon Q Campain1019Russia2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar D AlbaresFranceXuxue Feng PROPOSAL
Munro G PaprockiSpainIvan Magalhaes PROPOSAL
Arvin A MaletJapanAnna Fali UNQUALIFIED
Smith O BowleyCanadaIvan Magalhaes NEW
Chavez D RutaCanadaIoni Bowcher UNQUALIFIED
Clifford O BologniaJapanIvan Magalhaes NEW
Octavia E OstroskyJapanElwin Sharvill QUALIFIED
Aruna O WhobreyItalyBernardo Dominic NEW
James X FerenczItalyElwin Sharvill QUALIFIED
David J DarakjyJapanAsiya Javayant RENEWAL
Smith P FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Costa F MarrierCanadaIvan Magalhaes UNQUALIFIED
Octavia N StensethUnited KingdomAsiya Javayant UNQUALIFIED
Wickens S GauchoIndiaElwin Sharvill RENEWAL
Tony P FigeroaSpainIvan Magalhaes NEW
Sinclair Y OstroskyIndiaStephen Shaw QUALIFIED
Faith Q OldroydRussiaAsiya Javayant PROPOSAL
Kaitlin G CampainItalyIvan Magalhaes RENEWAL
Wickens F ChuiArgentinaXuxue Feng QUALIFIED
Maisha C CaudyFranceStephen Shaw UNQUALIFIED
Murillo I ShinkoItalyIvan Magalhaes QUALIFIED
Maria W SchemmerCanadaBernardo Dominic UNQUALIFIED
Wickens A ButtIndiaIoni Bowcher QUALIFIED
Jefferson N RutaCanadaIoni Bowcher NEGOTIATION
Octavia X FerenczBrazilIvan Magalhaes UNQUALIFIED
Julie D SchemmerItalyAnna Fali UNQUALIFIED
Sinclair D OldroydSpainElwin Sharvill NEW
Chavez E BologniaUnited KingdomBernardo Dominic NEGOTIATION
David R WieserGermanyIvan Magalhaes PROPOSAL
Misaki R MarrierBrazilXuxue Feng RENEWAL
Munro D MaletIndiaXuxue Feng NEGOTIATION
Jennifer B RulapaughArgentinaStephen Shaw PROPOSAL
Costa Q NestleCanadaStephen Shaw RENEWAL
Munro T MacleadIndiaOnyama Limba PROPOSAL
Chavez G DilliardIndiaOnyama Limba UNQUALIFIED
Salvatore B PoquetteCanadaAsiya Javayant RENEWAL
Antonio P FigeroaRussiaXuxue Feng UNQUALIFIED
Isabel A SchemmerRussiaAsiya Javayant UNQUALIFIED
Ricardo Z DarakjyJapanXuxue Feng NEW
Tony M CaudyUnited KingdomIvan Magalhaes 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>