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
Octavia H DoeRussiaOnyama Limba UNQUALIFIED
Salvatore G NickaGermanyStephen Shaw QUALIFIED
David F RimItalyIvan Magalhaes PROPOSAL
James C MaletFranceBernardo Dominic NEW
Isabel O PerinSpainIoni Bowcher NEW
Ivar W PerinBrazilElwin Sharvill NEGOTIATION
Ivar C FollerFranceIoni Bowcher PROPOSAL
James G RoysterSpainStephen Shaw RENEWAL
Ricardo R PaprockiItalyAsiya Javayant NEW
Antonio F IturbideCanadaElwin Sharvill NEGOTIATION
Deepesh H NickaAustraliaAnna Fali RENEWAL
Antonio T MacleadCanadaOnyama Limba NEGOTIATION
Faith F WaycottRussiaXuxue Feng PROPOSAL
Ashley E FerenczRussiaAsiya Javayant UNQUALIFIED
Jennifer X SaylorsUnited KingdomStephen Shaw QUALIFIED
Clifford Q VenereItalyIvan Magalhaes PROPOSAL
Ashley T FollerUnited KingdomBernardo Dominic UNQUALIFIED
James A PoquetteIndiaStephen Shaw UNQUALIFIED
Mujtaba T RoysterIndiaAsiya Javayant NEGOTIATION
Morrow P VocelkaIndiaAnna Fali RENEWAL
Darci C SergiItalyBernardo Dominic RENEWAL
James Q CampainJapanIoni Bowcher UNQUALIFIED
Deepesh E StensethUnited KingdomIvan Magalhaes PROPOSAL
Antonio S CaldareraArgentinaStephen Shaw PROPOSAL
Aditya U TollnerBrazilOnyama Limba NEW
Arvin X BriddickSpainAsiya Javayant QUALIFIED
Isabel V CampainGermanyAnna Fali PROPOSAL
Aditya K SchemmerGermanyIvan Magalhaes NEW
Alejandro H PoquetteAustraliaElwin Sharvill UNQUALIFIED
Darci T RoysterUnited KingdomAsiya Javayant PROPOSAL
Darci V ButtItalyElwin Sharvill RENEWAL
Jennifer R MacleadAustraliaXuxue Feng NEW
Aditya E BriddickIndiaAnna Fali PROPOSAL
Aika I SlusarskiRussiaOnyama Limba NEW
Claire Y OldroydSpainBernardo Dominic PROPOSAL
Murillo W IturbideUnited KingdomStephen Shaw UNQUALIFIED
Nicolas J StensethAustraliaOnyama Limba NEGOTIATION
Stacey B MacleadUnited KingdomOnyama Limba UNQUALIFIED
Johnson Q StensethAustraliaAnna Fali QUALIFIED
Cody F WieserRussiaAnna Fali NEW
Ivar G IturbideSpainAmy Elsner NEW
Aika R MaletUnited KingdomIoni Bowcher NEGOTIATION
Kadeem D GauchoCanadaElwin Sharvill PROPOSAL
Tony F WaycottSpainIoni Bowcher NEW
Antonio U SaylorsIndiaIvan Magalhaes QUALIFIED
Silvio L BowleyIndiaXuxue Feng NEGOTIATION
Emily F ShinkoIndiaAmy Elsner RENEWAL
Alejandro D WhobreyGermanyStephen Shaw RENEWAL
Cody Y PaprockiIndiaBernardo Dominic QUALIFIED
Faith H VocelkaIndiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas I GauchoItalyIvan Magalhaes QUALIFIED
Leon Y OldroydAustraliaOnyama Limba PROPOSAL
Wickens S AmigonIndiaIvan Magalhaes RENEWAL
Izzy T RutaAustraliaIoni Bowcher NEW
Aruna C GlickItalyIvan Magalhaes QUALIFIED
Kadeem E PoquetteIndiaAmy Elsner NEGOTIATION
Arvin S InouyeFranceIoni Bowcher QUALIFIED
Silvio S BowleyCanadaIvan Magalhaes NEGOTIATION
Johnson L KolmetzCanadaXuxue Feng QUALIFIED
Aika E DoeIndiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams N AmigonJapan2026-08-06Buckley Miller Wright NEW19Anna Fali
1001Izzy X NickaAustralia2026-08-30Rangoni Of Florence RENEWAL85Anna Fali
1002Mujtaba D CampainBrazil2026-08-19Feiner Bros UNQUALIFIED39Ivan Magalhaes
1003Isabel L DilliardJapan2026-08-17Chapman, Ross E Esq PROPOSAL65Stephen Shaw
1004Johnson S StockhamItaly2026-08-06Chemel, James L Cpa RENEWAL55Stephen Shaw
1005Johnson X SlusarskiBrazil2026-08-04Feltz Printing Service NEGOTIATION64Ivan Magalhaes
1006Misaki F DoeCanada2026-08-09Feltz Printing Service QUALIFIED39Onyama Limba
1007Mujtaba J CampainAustralia2026-08-20Benton, John B Jr PROPOSAL24Onyama Limba
1008Nicolas F FollerCanada2026-08-09Morlong Associates PROPOSAL59Onyama Limba
1009Kadeem J KuskoJapan2026-08-11Printing Dimensions RENEWAL41Onyama Limba
1010Stacey O RoysterBrazil2026-08-01Morlong Associates PROPOSAL29Ioni Bowcher
1011Jones Z OldroydGermany2026-08-22Rangoni Of Florence UNQUALIFIED46Amy Elsner
1012Jeanfrancois I AmigonItaly2026-08-09Dorl, James J Esq NEGOTIATION24Ivan Magalhaes
1013Alejandro F NestleFrance2026-08-15Morlong Associates RENEWAL29Ioni Bowcher
1014Arvin U VenereItaly2026-08-08Feltz Printing Service PROPOSAL73Anna Fali
1015Aika G FigeroaRussia2026-08-06Feltz Printing Service UNQUALIFIED52Asiya Javayant
1016Jones G DoeFrance2026-08-30Feiner Bros PROPOSAL35Ioni Bowcher
1017Munro O MacleadSpain2026-08-22Benton, John B Jr QUALIFIED78Ioni Bowcher
1018Arvin F OldroydFrance2026-08-01Printing Dimensions PROPOSAL12Onyama Limba
1019Smith X AlbaresIndia2026-08-16Rangoni Of Florence UNQUALIFIED47Xuxue Feng
1020Francesco Y CampainArgentina2026-08-18Rousseaux, Michael Esq QUALIFIED76Amy Elsner
1021Adams P StensethFrance2026-08-28Benton, John B Jr NEW8Asiya Javayant
1022Jennifer M RimGermany2026-08-07King, Christopher A Esq QUALIFIED63Bernardo Dominic
1023Leon L SaylorsItaly2026-08-23Chemel, James L Cpa UNQUALIFIED68Onyama Limba
1024Clifford B ShinkoJapan2026-08-19Feiner Bros RENEWAL52Asiya Javayant
1025Costa G SchemmerRussia2026-08-27Dorl, James J Esq PROPOSAL9Ioni Bowcher
1026Ashley S CampainCanada2026-08-14Dorl, James J Esq UNQUALIFIED80Asiya Javayant
1027Misaki O InouyeArgentina2026-08-26Feiner Bros NEW93Elwin Sharvill
1028David V RulapaughRussia2026-08-15Commercial Press RENEWAL89Stephen Shaw
1029Sinclair U FollerRussia2026-08-17Rangoni Of Florence UNQUALIFIED70Ivan Magalhaes
1030Greenwood S PerinSpain2026-08-04Rangoni Of Florence PROPOSAL48Onyama Limba
1031Claire R WaycottGermany2026-08-07Rangoni Of Florence NEGOTIATION49Onyama Limba
1032Sinclair P VenereItaly2026-08-29Feltz Printing Service RENEWAL41Ivan Magalhaes
1033Nicolas F ShinkoIndia2026-08-04Morlong Associates QUALIFIED12Elwin Sharvill
1034Smith T RutaSpain2026-08-02Rangoni Of Florence NEGOTIATION59Amy Elsner
1035Clifford V BologniaGermany2026-08-25Dorl, James J Esq NEW34Asiya Javayant
1036Cody F BologniaSpain2026-08-12Truhlar And Truhlar Attys NEW24Asiya Javayant
1037Kaitlin D MarrierArgentina2026-08-28Chapman, Ross E Esq NEW51Onyama Limba
1038Faith D WieserGermany2026-08-19Feltz Printing Service NEGOTIATION21Ivan Magalhaes
1039Ashley D GauchoFrance2026-08-08Rousseaux, Michael Esq UNQUALIFIED2Onyama Limba
1040Silvio Z TollnerSpain2026-08-04Morlong Associates NEW1Elwin Sharvill
1041Salvatore N MorascaGermany2026-08-04Benton, John B Jr RENEWAL46Onyama Limba
1042Julie Z SergiUnited Kingdom2026-08-21Truhlar And Truhlar Attys RENEWAL54Bernardo Dominic
1043Ashley K StensethIndia2026-08-06Commercial Press QUALIFIED76Xuxue Feng
1044Smith Q WaycottIndia2026-08-05King, Christopher A Esq QUALIFIED18Xuxue Feng
1045Johnson L NestleCanada2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED0Onyama Limba
1046Tony U RutaAustralia2026-08-10Buckley Miller Wright NEW97Ivan Magalhaes
1047Arvin U AlbaresFrance2026-08-29Buckley Miller Wright QUALIFIED80Elwin Sharvill
1048Rodrigues D BologniaItaly2026-08-08Chanay, Jeffrey A Esq PROPOSAL21Bernardo Dominic
1049Sinclair T WaycottSpain2026-08-11Chapman, Ross E Esq NEGOTIATION52Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ricardo B NestleCanadaAmy Elsner UNQUALIFIED
Smith H ButtAustraliaXuxue Feng PROPOSAL
Octavia F SergiBrazilXuxue Feng NEGOTIATION
Greenwood Z FlosiArgentinaAmy Elsner PROPOSAL
Stacey N BologniaAustraliaAmy Elsner RENEWAL
Morrow D IturbideIndiaXuxue Feng PROPOSAL
Deepesh Y NickaGermanyAsiya Javayant UNQUALIFIED
Sinclair R WhobreyUnited KingdomAnna Fali PROPOSAL
Aditya M BologniaGermanyStephen Shaw UNQUALIFIED
Mujtaba I SchemmerSpainIvan Magalhaes RENEWAL
Aditya H KuskoIndiaAnna Fali NEGOTIATION
Maisha U CampainJapanElwin Sharvill RENEWAL
Chavez Q ButtUnited KingdomAsiya Javayant UNQUALIFIED
James F NestleIndiaAsiya Javayant NEGOTIATION
Munro A GarufiIndiaAnna Fali NEW
Kaitlin K GlickAustraliaOnyama Limba NEW
Faith J AmigonAustraliaBernardo Dominic NEW
Jeanfrancois X InouyeRussiaAmy Elsner UNQUALIFIED
Mujtaba H MorascaGermanyStephen Shaw PROPOSAL
Cody F PaprockiCanadaAnna Fali QUALIFIED
Costa R RutaIndiaXuxue Feng NEW
Izzy U GauchoBrazilAmy Elsner NEW
Leja B MaletJapanIvan Magalhaes RENEWAL
Alejandro R VenereItalyAmy Elsner NEW
Nicolas M DilliardGermanyOnyama Limba RENEWAL
Clifford U BowleyRussiaBernardo Dominic PROPOSAL
Chavez Q MaletIndiaElwin Sharvill PROPOSAL
Silvio S PerinJapanAmy Elsner NEGOTIATION
Rodrigues T ShinkoUnited KingdomIoni Bowcher QUALIFIED
Jefferson F PerinIndiaAmy Elsner PROPOSAL
Mujtaba G CaldareraSpainIoni Bowcher NEW
Smith Q TollnerFranceAnna Fali PROPOSAL
Silvio R FigeroaRussiaAnna Fali NEGOTIATION
Claire Z VenereGermanyXuxue Feng PROPOSAL
Chavez J GauchoUnited KingdomBernardo Dominic NEGOTIATION
Kadeem H AlbaresUnited KingdomBernardo Dominic NEGOTIATION
Darci H RimItalyIoni Bowcher PROPOSAL
Ricardo M BriddickRussiaAmy Elsner RENEWAL
Alejandro Z GlickJapanStephen Shaw NEW
Emily K NestleSpainBernardo Dominic NEGOTIATION
Julie S IturbideFranceStephen Shaw QUALIFIED
Leon W VenereAustraliaElwin Sharvill QUALIFIED
Costa K AlbaresIndiaOnyama Limba NEGOTIATION
Costa H SchemmerCanadaOnyama Limba NEW
Nicolas L BriddickSpainOnyama Limba UNQUALIFIED
Tony B SchemmerCanadaAsiya Javayant PROPOSAL
Mayumi R PaprockiRussiaElwin Sharvill PROPOSAL
Munro W StockhamFranceAsiya Javayant QUALIFIED
Darci L AmigonItalyXuxue Feng NEGOTIATION
Arvin E NestleCanadaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Juan Z Butt
Misaki G Stenseth
Claire I Venere
Deepesh W Ostrosky
Maria B Shinko
Mujtaba W Maclead
Faith T Amigon
Stacey A Waycott
Munro I Gaucho
Juan T Bolognia
Kaitlin U Oldroyd
Deepesh E Caldarera
Claire I Slusarski
Jennifer U Amigon
Adams L Stockham
Deepesh R Bowley
Deepesh Q Marrier
Antonio H Kolmetz
Wickens Q Marrier
Rodrigues M Slusarski
Mayumi B Slusarski
Kaitlin Q Briddick
Cody A Morasca
Munro A Tollner
Stacey Q Paprocki
Adams H Bolognia
Murillo M Marrier
Aika U Poquette
Sinclair G Oldroyd
James O Garufi
Darci V Saylors
Cody L Oldroyd
Izzy K Glick
Faith S Wieser
Ashley T Campain
Munro G Ferencz
Leja Q Gaucho
Alejandro L Glick
Adams R Waycott
Leja W Garufi
Adams R Vocelka
Aika B Stockham
Misaki X Schemmer
Claire K Gillian
Tony W Vocelka
Tony M Briddick
Mayumi P Bowley
Maisha I Poquette
Mujtaba M Caudy
Alejandro Z Nicka
IdCountryDate
1000Japan2026-08-06
1001Brazil2026-08-26
1002Japan2026-08-02
1003Italy2026-08-24
1004Australia2026-08-18
1005Brazil2026-08-03
1006Russia2026-08-25
1007Italy2026-08-18
1008United Kingdom2026-08-26
1009Russia2026-08-24
1010Japan2026-08-07
1011Canada2026-08-25
1012Italy2026-08-04
1013Argentina2026-08-21
1014Australia2026-08-23
1015Brazil2026-08-20
1016Canada2026-08-01
1017Russia2026-08-19
1018Spain2026-08-18
1019Australia2026-08-13
1020Brazil2026-08-13
1021Japan2026-08-11
1022Germany2026-08-29
1023France2026-08-03
1024Italy2026-08-03
1025Japan2026-08-20
1026Japan2026-08-27
1027Spain2026-08-23
1028Canada2026-08-03
1029Italy2026-08-05
1030Spain2026-08-11
1031Germany2026-08-22
1032Germany2026-08-08
1033Australia2026-08-13
1034Japan2026-08-11
1035Canada2026-08-30
1036Spain2026-08-01
1037France2026-08-12
1038Argentina2026-08-05
1039India2026-08-24
1040India2026-08-11
1041Russia2026-08-17
1042Italy2026-08-23
1043Brazil2026-08-01
1044United Kingdom2026-08-25
1045India2026-08-17
1046Italy2026-08-28
1047Japan2026-08-09
1048Brazil2026-08-12
1049Australia2026-08-16

On-Demand Data

NameIdCountryDate
Claire S Kusko1000Brazil2026-08-29
Francesco H Briddick1001Brazil2026-08-01
Munro G Nestle1002Argentina2026-08-30
Arvin I Glick1003Brazil2026-08-14
Juan V Briddick1004Germany2026-08-21
Alejandro V Darakjy1005Canada2026-08-12
Julie X Doe1006Italy2026-08-16
Octavia V Whobrey1007Germany2026-08-04
Aruna X Garufi1008Russia2026-08-04
Stacey P Waycott1009Spain2026-08-30
Silvio S Oldroyd1010Germany2026-08-20
Nicolas X Stenseth1011Argentina2026-08-18
Wickens B Waycott1012France2026-08-01
Rodrigues L Oldroyd1013Russia2026-08-11
Rodrigues E Kusko1014Spain2026-08-22
Munro Y Gaucho1015Spain2026-08-22
Faith L Butt1016Australia2026-08-08
Chavez J Stockham1017Japan2026-08-01
Emily E Bowley1018India2026-08-09
Deepesh M Garufi1019United Kingdom2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin N AmigonJapanStephen Shaw RENEWAL
Leja N MaletIndiaElwin Sharvill UNQUALIFIED
Mayumi A DoeJapanIoni Bowcher UNQUALIFIED
Claire I SergiJapanIvan Magalhaes NEW
Octavia A NickaUnited KingdomBernardo Dominic NEW
Stacey Q SaylorsBrazilStephen Shaw RENEWAL
Juan E InouyeGermanyIoni Bowcher NEGOTIATION
Silvio F FerenczAustraliaIoni Bowcher RENEWAL
Johnson U PerinRussiaOnyama Limba PROPOSAL
Tony L SaylorsAustraliaXuxue Feng UNQUALIFIED
David G KolmetzItalyIoni Bowcher PROPOSAL
David C FollerIndiaOnyama Limba PROPOSAL
Clifford O RutaGermanyXuxue Feng NEGOTIATION
Adams K DarakjyItalyBernardo Dominic UNQUALIFIED
Morrow B MacleadArgentinaXuxue Feng PROPOSAL
Nicolas K MarrierFranceIvan Magalhaes RENEWAL
Aditya Z OstroskyCanadaAsiya Javayant NEGOTIATION
Arvin K WhobreyCanadaIoni Bowcher UNQUALIFIED
David O GauchoRussiaAsiya Javayant QUALIFIED
Maisha M SergiFranceXuxue Feng QUALIFIED
Claire N WaycottGermanyIoni Bowcher PROPOSAL
Nicolas D SaylorsJapanXuxue Feng RENEWAL
Maisha M MorascaIndiaIvan Magalhaes NEGOTIATION
Smith I RimIndiaIvan Magalhaes NEW
Adams N PaprockiJapanAsiya Javayant NEW
Arvin V MorascaJapanIoni Bowcher RENEWAL
Leon W SaylorsJapanBernardo Dominic NEGOTIATION
Salvatore C SlusarskiAustraliaAsiya Javayant NEGOTIATION
Smith J RimSpainStephen Shaw PROPOSAL
Maisha W BowleyBrazilAnna Fali UNQUALIFIED
Faith W WaycottRussiaAsiya Javayant NEW
Cody B OldroydRussiaIvan Magalhaes RENEWAL
Isabel A StensethGermanyAnna Fali QUALIFIED
Aruna O RoysterArgentinaXuxue Feng NEW
Jefferson H SlusarskiBrazilAnna Fali UNQUALIFIED
Murillo M MarrierGermanyAnna Fali NEW
Jefferson E FigeroaItalyStephen Shaw RENEWAL
Jennifer J CaudyRussiaElwin Sharvill PROPOSAL
Sinclair X FerenczIndiaAmy Elsner RENEWAL
Johnson I CaldareraSpainXuxue Feng NEGOTIATION

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