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
Rodrigues H WieserCanadaStephen Shaw NEW
Isabel K RulapaughGermanyIvan Magalhaes PROPOSAL
Jefferson Z PerinSpainBernardo Dominic RENEWAL
Ricardo S PoquetteBrazilIvan Magalhaes RENEWAL
Smith R KuskoItalyAnna Fali RENEWAL
Stacey Z StockhamFranceElwin Sharvill NEW
Maisha T WieserIndiaStephen Shaw PROPOSAL
Maria T CaldareraCanadaAsiya Javayant UNQUALIFIED
Chavez R MacleadGermanyIvan Magalhaes UNQUALIFIED
Darci N FlosiRussiaStephen Shaw QUALIFIED
Wickens X FigeroaArgentinaAmy Elsner RENEWAL
Cody N BowleyArgentinaAsiya Javayant UNQUALIFIED
Arvin I DoeAustraliaAmy Elsner PROPOSAL
Morrow Y CaldareraFranceBernardo Dominic UNQUALIFIED
Sinclair C IturbideIndiaOnyama Limba RENEWAL
Isabel Q AlbaresItalyBernardo Dominic NEW
Misaki C SchemmerCanadaXuxue Feng NEGOTIATION
Leja Y WhobreyGermanyOnyama Limba UNQUALIFIED
Antonio O CampainBrazilAnna Fali UNQUALIFIED
Arvin K PoquetteSpainAnna Fali PROPOSAL
Aruna H InouyeIndiaIvan Magalhaes UNQUALIFIED
Darci A RimGermanyStephen Shaw NEGOTIATION
Murillo X FlosiCanadaOnyama Limba UNQUALIFIED
Kadeem N NestleAustraliaStephen Shaw RENEWAL
David Y SlusarskiArgentinaIoni Bowcher PROPOSAL
Nicolas O SergiUnited KingdomXuxue Feng PROPOSAL
Arvin X GauchoFranceIvan Magalhaes NEGOTIATION
Costa R MacleadFranceIoni Bowcher QUALIFIED
Emily X MacleadJapanAnna Fali QUALIFIED
Leon O CaldareraUnited KingdomIoni Bowcher NEW
Murillo P PoquetteIndiaXuxue Feng NEW
Aika Z CaudyArgentinaBernardo Dominic QUALIFIED
Adams V MorascaFranceElwin Sharvill UNQUALIFIED
Juan V BriddickItalyBernardo Dominic QUALIFIED
Francesco N SergiGermanyStephen Shaw RENEWAL
Izzy Y ChuiSpainElwin Sharvill NEGOTIATION
Tony Q FerenczBrazilAnna Fali UNQUALIFIED
Maisha J MaletCanadaElwin Sharvill UNQUALIFIED
Smith V GillianRussiaAmy Elsner RENEWAL
Aika W NickaArgentinaAnna Fali UNQUALIFIED
Francesco Y GlickAustraliaIvan Magalhaes PROPOSAL
Adams W RoysterBrazilIoni Bowcher NEGOTIATION
Maria P DilliardArgentinaAsiya Javayant NEW
Chavez Z FlosiIndiaOnyama Limba NEW
Jennifer W GillianJapanIvan Magalhaes RENEWAL
Silvio B MarrierCanadaBernardo Dominic PROPOSAL
Faith B TollnerItalyAnna Fali QUALIFIED
Tony L WhobreyUnited KingdomStephen Shaw NEW
Deepesh V FollerRussiaAsiya Javayant RENEWAL
Costa F WaycottSpainBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Silvio P PerinGermanyAnna Fali RENEWAL
Greenwood W WaycottFranceAmy Elsner PROPOSAL
Murillo U FerenczUnited KingdomOnyama Limba NEW
Greenwood G FigeroaJapanIvan Magalhaes QUALIFIED
Smith U VocelkaJapanElwin Sharvill QUALIFIED
Juan H AlbaresRussiaAsiya Javayant QUALIFIED
Alejandro B MorascaFranceAmy Elsner RENEWAL
Cody K PaprockiFranceIoni Bowcher NEGOTIATION
Costa R GauchoSpainAnna Fali NEW
Tony E GillianAustraliaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha S PerinIndia2026-08-07Chanay, Jeffrey A Esq RENEWAL58Asiya Javayant
1001Rodrigues Q ShinkoGermany2026-08-25Dorl, James J Esq NEW61Xuxue Feng
1002Alejandro O AlbaresIndia2026-08-07Printing Dimensions QUALIFIED88Onyama Limba
1003Salvatore U VocelkaUnited Kingdom2026-08-10Buckley Miller Wright NEGOTIATION21Asiya Javayant
1004Jeanfrancois A MorascaFrance2026-08-28Dorl, James J Esq NEW53Xuxue Feng
1005Izzy M WieserIndia2026-08-23Dorl, James J Esq RENEWAL36Anna Fali
1006Tony S IturbideAustralia2026-08-06Rangoni Of Florence NEGOTIATION1Asiya Javayant
1007Murillo J TollnerAustralia2026-08-20Rangoni Of Florence PROPOSAL39Elwin Sharvill
1008Jones P BriddickSpain2026-08-21Chanay, Jeffrey A Esq NEW84Amy Elsner
1009Adams X AlbaresUnited Kingdom2026-08-25Benton, John B Jr NEGOTIATION19Stephen Shaw
1010Leja G DilliardGermany2026-08-14Dorl, James J Esq UNQUALIFIED59Onyama Limba
1011Salvatore X DoeCanada2026-08-10Truhlar And Truhlar Attys UNQUALIFIED5Amy Elsner
1012Alejandro Y RulapaughBrazil2026-08-25Benton, John B Jr QUALIFIED16Xuxue Feng
1013Salvatore G FerenczBrazil2026-08-12Morlong Associates PROPOSAL4Xuxue Feng
1014James K WieserItaly2026-08-05Chanay, Jeffrey A Esq RENEWAL9Bernardo Dominic
1015Leja I BowleyItaly2026-08-16Printing Dimensions UNQUALIFIED88Stephen Shaw
1016Salvatore Z FigeroaBrazil2026-08-16Buckley Miller Wright UNQUALIFIED97Onyama Limba
1017Kadeem F FerenczFrance2026-08-30Rousseaux, Michael Esq RENEWAL83Asiya Javayant
1018Ricardo V InouyeGermany2026-08-08Chemel, James L Cpa QUALIFIED23Asiya Javayant
1019Jefferson S PaprockiBrazil2026-08-26Buckley Miller Wright QUALIFIED0Ivan Magalhaes
1020Ivar U VocelkaIndia2026-08-12Morlong Associates UNQUALIFIED2Ivan Magalhaes
1021Faith N KolmetzUnited Kingdom2026-08-07Feiner Bros PROPOSAL52Onyama Limba
1022Francesco V SchemmerRussia2026-08-15Feiner Bros PROPOSAL84Elwin Sharvill
1023Isabel U DoeItaly2026-08-20Dorl, James J Esq PROPOSAL15Anna Fali
1024Wickens I KolmetzCanada2026-08-13Chanay, Jeffrey A Esq NEW69Bernardo Dominic
1025Jones S StensethJapan2026-08-10Commercial Press UNQUALIFIED80Ioni Bowcher
1026Octavia O BowleyArgentina2026-08-14Buckley Miller Wright UNQUALIFIED48Ioni Bowcher
1027Jeanfrancois Z PoquetteSpain2026-08-27Dorl, James J Esq UNQUALIFIED40Asiya Javayant
1028Munro F SaylorsSpain2026-08-23Feltz Printing Service NEW65Stephen Shaw
1029Emily E VenereRussia2026-08-17Truhlar And Truhlar Attys UNQUALIFIED85Anna Fali
1030Stacey G OstroskyUnited Kingdom2026-08-26Commercial Press PROPOSAL35Xuxue Feng
1031Morrow X SaylorsCanada2026-08-28Printing Dimensions RENEWAL24Onyama Limba
1032Sinclair Y WieserBrazil2026-08-23Rangoni Of Florence PROPOSAL23Stephen Shaw
1033Darci E PoquetteIndia2026-08-31Commercial Press NEW76Bernardo Dominic
1034Ricardo O BologniaJapan2026-08-21Chemel, James L Cpa NEGOTIATION49Amy Elsner
1035Izzy R NestleUnited Kingdom2026-08-28Chemel, James L Cpa UNQUALIFIED82Anna Fali
1036Isabel A NickaRussia2026-08-09Commercial Press RENEWAL25Asiya Javayant
1037Costa K GauchoIndia2026-08-19Rangoni Of Florence RENEWAL39Anna Fali
1038Leon V DarakjyItaly2026-08-10King, Christopher A Esq RENEWAL91Elwin Sharvill
1039Nicolas C ChuiRussia2026-09-01Benton, John B Jr UNQUALIFIED61Anna Fali
1040Izzy S StockhamUnited Kingdom2026-08-26Chapman, Ross E Esq RENEWAL5Ioni Bowcher
1041Tony Y IturbideBrazil2026-08-09Rousseaux, Michael Esq NEW42Ioni Bowcher
1042Salvatore O GarufiUnited Kingdom2026-08-21Rangoni Of Florence NEW7Stephen Shaw
1043Morrow C WaycottSpain2026-08-16Chapman, Ross E Esq NEGOTIATION73Bernardo Dominic
1044Adams T SlusarskiGermany2026-08-18Printing Dimensions NEGOTIATION35Amy Elsner
1045Mujtaba I KolmetzBrazil2026-08-26Chemel, James L Cpa QUALIFIED43Amy Elsner
1046Ricardo E DilliardAustralia2026-08-28Printing Dimensions RENEWAL0Asiya Javayant
1047Emily F CaldareraAustralia2026-09-01Buckley Miller Wright NEGOTIATION84Ioni Bowcher
1048Munro R CampainRussia2026-08-08Feltz Printing Service PROPOSAL26Ioni Bowcher
1049Julie U DoeBrazil2026-08-07Dorl, James J Esq PROPOSAL99Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Deepesh V FollerRussiaOnyama Limba QUALIFIED
Kaitlin W RimGermanyAnna Fali QUALIFIED
Emily K SchemmerArgentinaIoni Bowcher RENEWAL
James N InouyeCanadaStephen Shaw RENEWAL
Arvin R AlbaresSpainElwin Sharvill NEW
Faith D NickaJapanStephen Shaw RENEWAL
Greenwood U OldroydItalyAmy Elsner RENEWAL
Greenwood K MaletCanadaXuxue Feng UNQUALIFIED
Izzy O OldroydRussiaAsiya Javayant NEW
Mayumi G ButtItalyIoni Bowcher NEGOTIATION
Octavia U ButtCanadaOnyama Limba UNQUALIFIED
Kaitlin C FigeroaJapanOnyama Limba QUALIFIED
Julie C BowleyArgentinaBernardo Dominic RENEWAL
Ivar G ButtArgentinaAsiya Javayant NEGOTIATION
Emily A PaprockiAustraliaAsiya Javayant QUALIFIED
Adams R ChuiUnited KingdomBernardo Dominic PROPOSAL
Octavia Z RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Julie I RimItalyOnyama Limba UNQUALIFIED
Adams A PoquetteArgentinaStephen Shaw UNQUALIFIED
Deepesh L DoeArgentinaOnyama Limba UNQUALIFIED
Arvin O RutaAustraliaAnna Fali NEGOTIATION
Nicolas N CaudyItalyBernardo Dominic RENEWAL
Julie E WaycottJapanElwin Sharvill NEGOTIATION
Emily L WieserFranceAsiya Javayant RENEWAL
Murillo R PaprockiItalyBernardo Dominic NEGOTIATION
Kadeem W BologniaSpainStephen Shaw NEW
James U ShinkoUnited KingdomIoni Bowcher PROPOSAL
Juan V SchemmerSpainAnna Fali NEW
Leja Z RulapaughAustraliaElwin Sharvill UNQUALIFIED
Juan H RulapaughBrazilBernardo Dominic NEGOTIATION
Emily R StensethItalyOnyama Limba QUALIFIED
Arvin Z CaudyRussiaIvan Magalhaes PROPOSAL
Octavia F WaycottFranceIvan Magalhaes UNQUALIFIED
Isabel M FlosiJapanBernardo Dominic NEW
James U FlosiSpainAmy Elsner RENEWAL
Costa A OstroskyJapanXuxue Feng NEW
Chavez F AlbaresJapanIoni Bowcher UNQUALIFIED
Salvatore W RutaFranceAnna Fali PROPOSAL
Jeanfrancois P DilliardGermanyOnyama Limba NEGOTIATION
Aika G ButtItalyAsiya Javayant PROPOSAL
Leon A WaycottBrazilAnna Fali NEGOTIATION
Munro H GlickIndiaAsiya Javayant QUALIFIED
David F SlusarskiIndiaAmy Elsner NEGOTIATION
Ivar X GlickFranceStephen Shaw NEW
Julie B GillianFranceStephen Shaw RENEWAL
Mayumi O AmigonUnited KingdomAsiya Javayant NEGOTIATION
Johnson D CaudyAustraliaIvan Magalhaes RENEWAL
Wickens Z ChuiSpainAnna Fali RENEWAL
Greenwood L IturbideJapanElwin Sharvill UNQUALIFIED
Ivar J GillianItalyElwin Sharvill NEW
Frozen Columns
Name
Leja M Chui
Chavez W Stenseth
Misaki P Perin
Aruna I Rulapaugh
Darci B Schemmer
Deepesh E Foller
Smith Z Rim
Chavez R Saylors
Jeanfrancois X Wieser
Alejandro G Caudy
Isabel T Perin
Isabel P Amigon
Kaitlin U Bolognia
Nicolas D Paprocki
Leja J Malet
Emily S Malet
Isabel V Rim
Greenwood J Briddick
Silvio O Waycott
Antonio Q Schemmer
Faith L Tollner
Alejandro C Figeroa
Mujtaba P Gillian
Claire S Ruta
Greenwood E Dilliard
Munro G Gaucho
Isabel I Venere
Sinclair Z Iturbide
Silvio G Bowley
Aruna P Doe
Jennifer I Oldroyd
Jeanfrancois M Gillian
Izzy Z Chui
Jeanfrancois M Inouye
Rodrigues V Wieser
David V Vocelka
Jennifer X Garufi
Leja I Wieser
Octavia R Vocelka
Francesco L Briddick
Adams I Saylors
Nicolas W Stockham
Silvio X Darakjy
Jones K Malet
Julie J Bowley
Clifford I Maclead
Ivar N Malet
Ashley A Darakjy
Jefferson S Rim
Ivar G Kusko
IdCountryDate
1000Australia2026-08-09
1001Germany2026-08-06
1002Spain2026-08-26
1003Argentina2026-08-04
1004Japan2026-08-19
1005Germany2026-08-05
1006France2026-08-26
1007United Kingdom2026-08-31
1008Argentina2026-08-16
1009Argentina2026-08-28
1010Germany2026-08-26
1011United Kingdom2026-08-15
1012Germany2026-08-27
1013Canada2026-08-31
1014Spain2026-08-25
1015Italy2026-08-15
1016India2026-09-02
1017Spain2026-08-21
1018Australia2026-08-12
1019Argentina2026-08-21
1020Russia2026-08-06
1021India2026-08-22
1022Spain2026-08-09
1023Argentina2026-08-22
1024Italy2026-08-17
1025Argentina2026-08-26
1026India2026-08-05
1027France2026-08-16
1028Spain2026-08-07
1029France2026-08-25
1030United Kingdom2026-08-06
1031Australia2026-08-10
1032France2026-08-13
1033Canada2026-08-31
1034Italy2026-08-06
1035United Kingdom2026-08-16
1036Argentina2026-08-18
1037Brazil2026-08-11
1038Australia2026-08-18
1039Argentina2026-08-22
1040Spain2026-08-06
1041India2026-08-08
1042Russia2026-08-31
1043Canada2026-08-31
1044Italy2026-08-15
1045Japan2026-08-19
1046United Kingdom2026-08-16
1047Italy2026-08-06
1048India2026-08-20
1049Spain2026-08-25

On-Demand Data

NameIdCountryDate
Tony G Iturbide1000Argentina2026-08-09
Cody U Paprocki1001India2026-08-25
Mayumi E Slusarski1002Italy2026-08-10
Maria D Schemmer1003Canada2026-08-31
Aika R Inouye1004Italy2026-08-16
Izzy R Butt1005Canada2026-08-24
Munro V Garufi1006United Kingdom2026-08-16
Murillo T Bowley1007United Kingdom2026-08-25
Nicolas Y Schemmer1008Russia2026-09-02
Deepesh T Briddick1009Italy2026-08-13
Smith N Nicka1010Spain2026-08-09
Isabel M Malet1011Germany2026-08-05
Maria Y Shinko1012Spain2026-08-30
Jeanfrancois P Glick1013India2026-08-21
Aika H Venere1014Australia2026-09-01
Clifford I Shinko1015Japan2026-08-12
Izzy W Ruta1016Argentina2026-08-24
Salvatore K Iturbide1017Russia2026-08-09
Adams B Ruta1018India2026-08-04
Rodrigues A Flosi1019India2026-09-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Q VocelkaItalyElwin Sharvill QUALIFIED
Nicolas L StockhamSpainStephen Shaw PROPOSAL
Aruna Q ChuiItalyAsiya Javayant PROPOSAL
Johnson C GlickRussiaElwin Sharvill NEW
Juan B IturbideGermanyStephen Shaw RENEWAL
Johnson T OstroskyItalyStephen Shaw QUALIFIED
Clifford V DilliardAustraliaBernardo Dominic QUALIFIED
Ashley J WaycottItalyStephen Shaw NEGOTIATION
Ivar L RoysterGermanyAnna Fali NEW
Antonio D StockhamFranceAmy Elsner QUALIFIED
Mayumi L StockhamCanadaBernardo Dominic UNQUALIFIED
Arvin I SlusarskiSpainIoni Bowcher RENEWAL
Octavia Z CaudyJapanIvan Magalhaes QUALIFIED
Jones S WieserAustraliaXuxue Feng RENEWAL
Kaitlin O AlbaresSpainIvan Magalhaes NEW
Darci U AmigonFranceAsiya Javayant NEW
Murillo I DilliardFranceOnyama Limba UNQUALIFIED
Greenwood O WhobreyIndiaAnna Fali NEGOTIATION
Faith G BriddickArgentinaBernardo Dominic UNQUALIFIED
Maisha A FlosiGermanyAsiya Javayant RENEWAL
Darci U GauchoArgentinaAsiya Javayant RENEWAL
Clifford V SchemmerFranceXuxue Feng PROPOSAL
Ivar A SaylorsIndiaXuxue Feng PROPOSAL
Julie Z CaudyUnited KingdomAmy Elsner NEW
Darci A RulapaughJapanOnyama Limba NEW
Izzy F ChuiSpainXuxue Feng QUALIFIED
Sinclair T CampainItalyOnyama Limba UNQUALIFIED
Ivar T FigeroaCanadaStephen Shaw RENEWAL
Silvio I IturbideCanadaOnyama Limba RENEWAL
Munro L FollerArgentinaXuxue Feng NEGOTIATION
Clifford X TollnerRussiaBernardo Dominic UNQUALIFIED
Arvin B RoysterGermanyIoni Bowcher NEW
Aditya E BologniaItalyAnna Fali NEW
Adams E PaprockiItalyAnna Fali NEGOTIATION
Ivar X DoeUnited KingdomOnyama Limba NEGOTIATION
Adams S MorascaArgentinaAnna Fali RENEWAL
Tony Z FlosiCanadaAsiya Javayant NEGOTIATION
Jefferson Q OldroydUnited KingdomXuxue Feng NEGOTIATION
Leja T RutaIndiaBernardo Dominic PROPOSAL
Adams S AlbaresFranceXuxue Feng UNQUALIFIED

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