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
Francesco Z ShinkoSpainStephen Shaw QUALIFIED
Salvatore R ChuiJapanIoni Bowcher NEW
Morrow C VocelkaArgentinaOnyama Limba QUALIFIED
Aika I FollerIndiaIvan Magalhaes QUALIFIED
Jeanfrancois D KuskoArgentinaXuxue Feng QUALIFIED
Clifford U ButtIndiaAsiya Javayant QUALIFIED
Jones B ChuiCanadaAnna Fali UNQUALIFIED
Cody Z PoquetteItalyStephen Shaw PROPOSAL
Kadeem Z ButtFranceAsiya Javayant PROPOSAL
Costa M BriddickBrazilAsiya Javayant NEGOTIATION
Cody S WhobreyGermanyBernardo Dominic NEW
Cody O GlickUnited KingdomAmy Elsner UNQUALIFIED
Arvin I CaudyJapanIoni Bowcher QUALIFIED
Murillo W WhobreyBrazilXuxue Feng QUALIFIED
Sinclair Q GlickJapanIvan Magalhaes NEGOTIATION
Jefferson N DarakjyAustraliaXuxue Feng NEW
Wickens K BowleyBrazilAmy Elsner NEGOTIATION
Jones S TollnerBrazilAmy Elsner NEGOTIATION
James F StockhamArgentinaBernardo Dominic QUALIFIED
Morrow Z FerenczBrazilIvan Magalhaes RENEWAL
Greenwood U RulapaughCanadaBernardo Dominic QUALIFIED
Cody M InouyeBrazilAsiya Javayant NEW
Rodrigues T CampainUnited KingdomIvan Magalhaes QUALIFIED
Wickens F FerenczSpainIoni Bowcher PROPOSAL
Rodrigues C VocelkaAustraliaIvan Magalhaes QUALIFIED
Misaki O CampainArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois C KuskoFranceAmy Elsner NEGOTIATION
Maria J CaudyRussiaIoni Bowcher RENEWAL
Darci S MaletCanadaAnna Fali NEGOTIATION
Francesco A BologniaJapanBernardo Dominic QUALIFIED
Francesco Z BowleyBrazilAmy Elsner PROPOSAL
Aika P RoysterIndiaXuxue Feng NEGOTIATION
Maria J WieserRussiaAsiya Javayant PROPOSAL
Maisha W FlosiArgentinaStephen Shaw QUALIFIED
Aika H BologniaFranceOnyama Limba RENEWAL
Costa H FigeroaCanadaOnyama Limba UNQUALIFIED
Jefferson Z WaycottGermanyStephen Shaw RENEWAL
Emily S CaldareraAustraliaStephen Shaw NEGOTIATION
James P PoquetteItalyElwin Sharvill QUALIFIED
Smith E SchemmerRussiaIvan Magalhaes QUALIFIED
Octavia O BriddickIndiaXuxue Feng NEGOTIATION
Isabel R WhobreyJapanAnna Fali PROPOSAL
Morrow S RoysterSpainIoni Bowcher QUALIFIED
Aika L GlickFranceAsiya Javayant NEW
Kadeem J OstroskyCanadaIoni Bowcher UNQUALIFIED
Aika B VenereFranceIoni Bowcher UNQUALIFIED
Julie T StockhamArgentinaIvan Magalhaes NEGOTIATION
Darci A ChuiCanadaIvan Magalhaes PROPOSAL
Ashley H ShinkoIndiaXuxue Feng QUALIFIED
Octavia Q ChuiRussiaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey M DarakjyRussiaAmy Elsner NEGOTIATION
Misaki J FerenczAustraliaIoni Bowcher RENEWAL
Munro I FlosiFranceElwin Sharvill NEW
Kadeem T NestleIndiaIoni Bowcher QUALIFIED
Leja X SlusarskiItalyAmy Elsner UNQUALIFIED
Leon Q StensethArgentinaOnyama Limba NEW
Faith P RutaRussiaStephen Shaw PROPOSAL
Jennifer X MarrierCanadaAsiya Javayant QUALIFIED
Izzy Q SergiIndiaIoni Bowcher NEGOTIATION
Wickens D DoeArgentinaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem O NestleItaly2026-08-08Commercial Press QUALIFIED73Ioni Bowcher
1001Isabel G RimJapan2026-08-25Chanay, Jeffrey A Esq QUALIFIED37Ivan Magalhaes
1002Antonio Z BowleyArgentina2026-07-31Printing Dimensions PROPOSAL3Anna Fali
1003Emily C TollnerIndia2026-08-07Chanay, Jeffrey A Esq PROPOSAL93Bernardo Dominic
1004Silvio S WaycottIndia2026-08-15Morlong Associates QUALIFIED76Onyama Limba
1005Costa U MorascaBrazil2026-08-12Buckley Miller Wright QUALIFIED93Xuxue Feng
1006Ivar V RulapaughCanada2026-08-02Chapman, Ross E Esq UNQUALIFIED50Asiya Javayant
1007Juan X GlickItaly2026-08-18Rangoni Of Florence NEW67Anna Fali
1008Cody X MaletItaly2026-08-22Commercial Press NEGOTIATION27Ivan Magalhaes
1009Misaki H FerenczJapan2026-08-13Buckley Miller Wright QUALIFIED17Bernardo Dominic
1010Maria P NickaBrazil2026-08-01Chapman, Ross E Esq PROPOSAL25Stephen Shaw
1011Arvin Q AlbaresAustralia2026-08-26Chanay, Jeffrey A Esq UNQUALIFIED59Elwin Sharvill
1012Nicolas G VenereIndia2026-08-26Rangoni Of Florence NEW95Asiya Javayant
1013Smith N CaldareraFrance2026-08-02Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1014Isabel L RutaJapan2026-08-21Chemel, James L Cpa UNQUALIFIED41Bernardo Dominic
1015Claire L BriddickItaly2026-08-13King, Christopher A Esq NEW87Elwin Sharvill
1016Arvin G WaycottItaly2026-08-22Rousseaux, Michael Esq QUALIFIED7Asiya Javayant
1017Darci W RoysterSpain2026-08-17Rangoni Of Florence RENEWAL85Elwin Sharvill
1018Sinclair G ChuiIndia2026-08-07Chanay, Jeffrey A Esq PROPOSAL89Bernardo Dominic
1019Sinclair P RoysterCanada2026-08-16Commercial Press NEW41Elwin Sharvill
1020Mujtaba P PerinBrazil2026-08-02Morlong Associates PROPOSAL85Xuxue Feng
1021Ricardo V GarufiFrance2026-08-05Feiner Bros RENEWAL15Ivan Magalhaes
1022Faith D GauchoFrance2026-08-13Truhlar And Truhlar Attys NEGOTIATION84Bernardo Dominic
1023Adams B RoysterRussia2026-08-06Rangoni Of Florence NEGOTIATION31Elwin Sharvill
1024Leon U GarufiBrazil2026-08-21Buckley Miller Wright RENEWAL18Elwin Sharvill
1025Greenwood R MorascaBrazil2026-08-13Feiner Bros NEW68Stephen Shaw
1026Arvin R SaylorsAustralia2026-08-27Printing Dimensions NEW13Onyama Limba
1027Octavia E OstroskyUnited Kingdom2026-07-29Feiner Bros NEW1Onyama Limba
1028Stacey K RulapaughCanada2026-08-10Rousseaux, Michael Esq RENEWAL96Ioni Bowcher
1029Deepesh G OldroydArgentina2026-08-08Rousseaux, Michael Esq NEGOTIATION23Elwin Sharvill
1030Jefferson N ShinkoFrance2026-08-13Feltz Printing Service NEW36Xuxue Feng
1031Tony O DoeCanada2026-07-31Feiner Bros UNQUALIFIED17Asiya Javayant
1032Juan W ChuiRussia2026-08-10Truhlar And Truhlar Attys NEW2Xuxue Feng
1033Jeanfrancois I MaletBrazil2026-08-07King, Christopher A Esq PROPOSAL54Elwin Sharvill
1034Tony A ShinkoArgentina2026-08-04Rousseaux, Michael Esq QUALIFIED39Ivan Magalhaes
1035Munro P DarakjyItaly2026-08-08Buckley Miller Wright UNQUALIFIED32Asiya Javayant
1036Tony W StockhamRussia2026-08-25Chapman, Ross E Esq QUALIFIED57Amy Elsner
1037Alejandro J KuskoSpain2026-07-29Rousseaux, Michael Esq PROPOSAL86Bernardo Dominic
1038Alejandro R MarrierCanada2026-08-17Truhlar And Truhlar Attys RENEWAL3Ioni Bowcher
1039Morrow Q NestleIndia2026-07-29King, Christopher A Esq PROPOSAL33Xuxue Feng
1040Jeanfrancois J FollerGermany2026-08-22Rangoni Of Florence QUALIFIED79Amy Elsner
1041Misaki T CaudyUnited Kingdom2026-08-23Feltz Printing Service NEW80Xuxue Feng
1042Kaitlin R OldroydBrazil2026-08-27Rousseaux, Michael Esq NEGOTIATION53Ivan Magalhaes
1043Maisha O OldroydAustralia2026-08-07Chapman, Ross E Esq PROPOSAL28Stephen Shaw
1044Ricardo E StensethAustralia2026-08-04Rousseaux, Michael Esq NEW98Asiya Javayant
1045Nicolas O MorascaRussia2026-08-24Chanay, Jeffrey A Esq QUALIFIED57Xuxue Feng
1046Maria K MaletJapan2026-08-15Dorl, James J Esq UNQUALIFIED50Anna Fali
1047Faith A StockhamFrance2026-08-14Morlong Associates QUALIFIED88Amy Elsner
1048Greenwood P ChuiBrazil2026-08-26Dorl, James J Esq NEW27Bernardo Dominic
1049Mayumi V WaycottRussia2026-08-19Dorl, James J Esq NEGOTIATION81Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois R SlusarskiItalyOnyama Limba UNQUALIFIED
Aditya N WaycottRussiaXuxue Feng NEW
Rodrigues W GauchoUnited KingdomStephen Shaw RENEWAL
Kadeem J MaletFranceAsiya Javayant PROPOSAL
Octavia R DilliardCanadaStephen Shaw UNQUALIFIED
Claire F AmigonBrazilAnna Fali NEW
Kadeem P CaudyAustraliaAsiya Javayant PROPOSAL
Clifford V MarrierJapanBernardo Dominic RENEWAL
Maria B FigeroaIndiaXuxue Feng UNQUALIFIED
James N ChuiIndiaBernardo Dominic UNQUALIFIED
Clifford G IturbideJapanOnyama Limba PROPOSAL
Leon N FigeroaFranceElwin Sharvill PROPOSAL
Kaitlin W VocelkaArgentinaAnna Fali PROPOSAL
Juan O PerinItalyBernardo Dominic NEW
Emily V BologniaFranceElwin Sharvill NEW
Darci D MarrierFranceIoni Bowcher NEGOTIATION
Aika S FerenczJapanAnna Fali UNQUALIFIED
Francesco H ShinkoSpainXuxue Feng NEGOTIATION
Aika F SergiCanadaXuxue Feng UNQUALIFIED
Nicolas R VenereArgentinaStephen Shaw NEGOTIATION
Salvatore R KolmetzSpainXuxue Feng UNQUALIFIED
Clifford C ButtItalyBernardo Dominic QUALIFIED
Alejandro H InouyeBrazilOnyama Limba RENEWAL
Maisha C RimUnited KingdomXuxue Feng NEW
Cody H WieserJapanIvan Magalhaes QUALIFIED
Jones Z FerenczUnited KingdomStephen Shaw RENEWAL
Julie M GillianAustraliaBernardo Dominic UNQUALIFIED
Chavez X WhobreyIndiaBernardo Dominic QUALIFIED
Costa L TollnerIndiaAmy Elsner NEW
Isabel T AmigonFranceBernardo Dominic RENEWAL
Murillo N FlosiJapanElwin Sharvill UNQUALIFIED
Leon J WieserIndiaOnyama Limba RENEWAL
Faith Y MorascaSpainAmy Elsner PROPOSAL
Costa U RimFranceAmy Elsner NEW
David E MorascaRussiaIoni Bowcher NEW
Kaitlin C InouyeSpainAnna Fali RENEWAL
Smith X SchemmerAustraliaElwin Sharvill UNQUALIFIED
Emily C GillianSpainElwin Sharvill NEGOTIATION
Smith C DarakjyAustraliaAmy Elsner NEW
Julie K WhobreyAustraliaAmy Elsner QUALIFIED
Alejandro O VocelkaSpainAsiya Javayant PROPOSAL
Alejandro K FollerRussiaStephen Shaw NEGOTIATION
James L VocelkaCanadaIvan Magalhaes NEGOTIATION
Emily H ShinkoFranceElwin Sharvill QUALIFIED
Antonio Q WieserSpainBernardo Dominic PROPOSAL
Smith W RimUnited KingdomOnyama Limba QUALIFIED
Kaitlin W RutaFranceElwin Sharvill PROPOSAL
Greenwood E OstroskyFranceAsiya Javayant PROPOSAL
Smith F WieserItalyAmy Elsner NEGOTIATION
Ashley Y MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Kaitlin C Kusko
Clifford U Shinko
Deepesh Q Glick
Stacey E Nestle
Deepesh A Malet
Johnson R Stockham
Jones N Perin
Aditya K Stockham
Smith Z Caudy
Aika E Glick
Darci V Inouye
Ivar Q Morasca
Leon N Glick
Antonio X Vocelka
Arvin E Rim
Stacey K Royster
Darci L Sergi
Ashley X Slusarski
Emily V Rulapaugh
Darci M Figeroa
Greenwood H Poquette
Jones F Campain
Smith I Saylors
Salvatore L Venere
Costa F Shinko
Stacey S Amigon
Johnson U Campain
Mujtaba W Foller
Smith J Stenseth
Aditya W Shinko
Ashley C Foller
David E Foller
Chavez K Doe
Morrow Y Ruta
Aruna M Gaucho
Greenwood S Iturbide
Ashley R Briddick
Octavia Q Dilliard
Ricardo K Inouye
Misaki J Figeroa
Misaki H Figeroa
Mayumi I Oldroyd
Deepesh W Dilliard
Adams W Ostrosky
Francesco V Gillian
Ricardo Q Bowley
Deepesh H Rim
Julie C Caldarera
Costa A Slusarski
Maisha D Flosi
IdCountryDate
1000India2026-08-26
1001Australia2026-08-09
1002France2026-08-17
1003Germany2026-07-30
1004Italy2026-08-24
1005Germany2026-08-25
1006Canada2026-08-10
1007Spain2026-08-01
1008Australia2026-08-18
1009Russia2026-07-30
1010France2026-08-03
1011Canada2026-08-07
1012Russia2026-08-19
1013Canada2026-08-14
1014Spain2026-08-21
1015Spain2026-08-19
1016France2026-08-03
1017India2026-08-26
1018Australia2026-08-23
1019India2026-08-18
1020Spain2026-08-19
1021Russia2026-08-16
1022Spain2026-08-14
1023Russia2026-08-22
1024Spain2026-08-05
1025Canada2026-08-19
1026Italy2026-08-05
1027France2026-08-18
1028Brazil2026-08-16
1029Spain2026-08-25
1030Argentina2026-08-05
1031Canada2026-08-23
1032Italy2026-08-22
1033Canada2026-07-31
1034France2026-08-26
1035Spain2026-08-07
1036Canada2026-08-15
1037Germany2026-08-09
1038India2026-07-29
1039Brazil2026-08-12
1040Argentina2026-08-15
1041Argentina2026-08-11
1042Germany2026-08-01
1043France2026-07-31
1044Russia2026-08-12
1045Germany2026-08-01
1046Spain2026-07-29
1047Canada2026-08-08
1048Italy2026-08-19
1049Argentina2026-08-03

On-Demand Data

NameIdCountryDate
Arvin P Royster1000France2026-08-09
Emily O Maclead1001Argentina2026-08-13
Cody D Kusko1002Australia2026-08-17
Juan O Saylors1003Italy2026-08-07
Kaitlin N Saylors1004India2026-08-20
Emily Z Kusko1005Italy2026-08-07
Tony L Sergi1006Brazil2026-08-23
Tony N Briddick1007India2026-08-15
Juan Q Stenseth1008Canada2026-08-09
Julie F Caldarera1009Spain2026-08-13
Alejandro V Venere1010Canada2026-08-07
Deepesh G Darakjy1011Argentina2026-08-09
Ashley R Bowley1012Australia2026-08-25
Adams V Bowley1013Russia2026-07-30
Rodrigues T Flosi1014Spain2026-08-08
Kadeem C Ruta1015Canada2026-08-09
Sinclair I Malet1016United Kingdom2026-08-18
Julie T Whobrey1017Canada2026-08-03
Sinclair N Garufi1018Brazil2026-08-24
Julie K Bowley1019Russia2026-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley P GlickItalyElwin Sharvill PROPOSAL
Smith N NestleGermanyIoni Bowcher NEW
Julie G NestleCanadaStephen Shaw NEW
Alejandro W OstroskyJapanIoni Bowcher NEGOTIATION
Silvio C RoysterUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois E BologniaArgentinaStephen Shaw PROPOSAL
Jefferson U VocelkaIndiaAmy Elsner NEW
Antonio V DoeFranceBernardo Dominic QUALIFIED
David U WhobreyItalyAmy Elsner UNQUALIFIED
Ricardo B MacleadUnited KingdomOnyama Limba QUALIFIED
Costa H MacleadGermanyOnyama Limba NEGOTIATION
Costa M InouyeAustraliaAnna Fali RENEWAL
Claire K FollerRussiaAnna Fali RENEWAL
Maisha P CaldareraCanadaOnyama Limba PROPOSAL
Francesco D BowleyArgentinaIoni Bowcher QUALIFIED
Isabel O OstroskyJapanAnna Fali NEW
Mujtaba W SchemmerArgentinaAmy Elsner RENEWAL
Johnson R CaldareraFranceIvan Magalhaes NEW
Tony Q SergiIndiaAsiya Javayant NEW
Sinclair M FollerBrazilAsiya Javayant UNQUALIFIED
Silvio R VocelkaRussiaAmy Elsner NEGOTIATION
Octavia X FigeroaRussiaAmy Elsner NEW
Misaki Z WieserAustraliaAmy Elsner NEGOTIATION
Jennifer R DoeRussiaStephen Shaw RENEWAL
Tony J AlbaresArgentinaBernardo Dominic PROPOSAL
Smith O MarrierGermanyIoni Bowcher NEW
Tony H CaudyIndiaElwin Sharvill UNQUALIFIED
Emily F ShinkoBrazilOnyama Limba NEW
Kadeem J SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Claire Y SaylorsArgentinaAnna Fali UNQUALIFIED
Rodrigues R DarakjyRussiaBernardo Dominic NEGOTIATION
Deepesh A OstroskyFranceAmy Elsner NEW
Sinclair E NestleJapanAsiya Javayant PROPOSAL
Smith D CaudyIndiaOnyama Limba UNQUALIFIED
James I AlbaresJapanAmy Elsner NEW
Jefferson Y KolmetzSpainElwin Sharvill PROPOSAL
Emily I PaprockiItalyOnyama Limba RENEWAL
Mujtaba W CampainAustraliaIvan Magalhaes QUALIFIED
Munro E ButtGermanyOnyama Limba PROPOSAL
Aika H SaylorsUnited KingdomIvan Magalhaes 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>