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 B AmigonGermanyIvan Magalhaes UNQUALIFIED
Faith P FollerAustraliaAmy Elsner NEGOTIATION
Munro R FlosiFranceAnna Fali QUALIFIED
Ricardo Y SergiUnited KingdomStephen Shaw RENEWAL
Munro K StensethBrazilOnyama Limba QUALIFIED
Johnson X MaletJapanOnyama Limba PROPOSAL
Chavez C KuskoIndiaAsiya Javayant NEW
Greenwood B MaletJapanIvan Magalhaes RENEWAL
Faith G SchemmerRussiaAmy Elsner NEGOTIATION
Chavez E BologniaArgentinaXuxue Feng PROPOSAL
Jefferson A KolmetzArgentinaIoni Bowcher RENEWAL
Leja R TollnerSpainIvan Magalhaes QUALIFIED
Adams M MaletCanadaXuxue Feng RENEWAL
Sinclair L AmigonUnited KingdomElwin Sharvill RENEWAL
Francesco Y MaletItalyStephen Shaw NEW
Claire F MaletRussiaAsiya Javayant NEW
David G WhobreyGermanyAmy Elsner NEW
Greenwood I GauchoRussiaAnna Fali QUALIFIED
Antonio K PaprockiSpainIoni Bowcher QUALIFIED
Claire B StockhamIndiaElwin Sharvill UNQUALIFIED
Deepesh B RoysterArgentinaXuxue Feng NEW
Alejandro L PaprockiSpainStephen Shaw NEW
Munro H CaldareraAustraliaIoni Bowcher UNQUALIFIED
Mujtaba I FigeroaCanadaAsiya Javayant RENEWAL
Aruna R VocelkaBrazilOnyama Limba QUALIFIED
Smith C MorascaSpainIvan Magalhaes NEGOTIATION
Ashley A KuskoArgentinaIvan Magalhaes RENEWAL
Izzy E WaycottSpainIoni Bowcher QUALIFIED
Misaki U PerinBrazilIoni Bowcher QUALIFIED
Cody Q RulapaughArgentinaElwin Sharvill RENEWAL
Darci R RutaFranceStephen Shaw UNQUALIFIED
Juan O BowleyArgentinaIvan Magalhaes RENEWAL
Jeanfrancois B WhobreyUnited KingdomIvan Magalhaes NEW
Maria X BologniaJapanBernardo Dominic UNQUALIFIED
Jeanfrancois K CaldareraItalyAnna Fali QUALIFIED
Leja R BologniaCanadaXuxue Feng PROPOSAL
Smith A TollnerAustraliaIvan Magalhaes NEGOTIATION
Isabel Z MacleadJapanIvan Magalhaes PROPOSAL
Johnson C FerenczAustraliaIvan Magalhaes UNQUALIFIED
Leja V FollerJapanAsiya Javayant NEW
Emily O NickaFranceBernardo Dominic QUALIFIED
Morrow F MorascaGermanyXuxue Feng PROPOSAL
Jennifer E VocelkaSpainIoni Bowcher PROPOSAL
Wickens J InouyeItalyAmy Elsner RENEWAL
Salvatore W WieserItalyAnna Fali PROPOSAL
Wickens R CaudySpainIvan Magalhaes UNQUALIFIED
Antonio Z FlosiGermanyIoni Bowcher UNQUALIFIED
Octavia F RutaGermanyAsiya Javayant NEW
Rodrigues P FlosiCanadaIvan Magalhaes NEW
Juan T FerenczCanadaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Deepesh A RimUnited KingdomAnna Fali RENEWAL
Arvin M WieserJapanAmy Elsner PROPOSAL
Jones E GauchoJapanXuxue Feng RENEWAL
Alejandro Q AlbaresUnited KingdomIoni Bowcher PROPOSAL
Jennifer Q ButtGermanyAsiya Javayant RENEWAL
Aika R FigeroaArgentinaXuxue Feng QUALIFIED
Kaitlin R PerinFranceAmy Elsner NEW
Isabel J CaudyUnited KingdomAmy Elsner UNQUALIFIED
Aruna U WaycottAustraliaXuxue Feng RENEWAL
Tony I StensethIndiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey U GarufiCanada2026-08-17Chapman, Ross E Esq UNQUALIFIED19Ivan Magalhaes
1001David F DarakjyArgentina2026-08-15Rangoni Of Florence QUALIFIED64Asiya Javayant
1002Emily L OldroydBrazil2026-08-02King, Christopher A Esq NEGOTIATION41Stephen Shaw
1003Jennifer Z VocelkaSpain2026-08-24Rangoni Of Florence NEGOTIATION70Onyama Limba
1004Sinclair H TollnerGermany2026-08-19Feltz Printing Service QUALIFIED77Onyama Limba
1005Maisha E IturbideJapan2026-08-07Feltz Printing Service NEW36Bernardo Dominic
1006Aika X CampainArgentina2026-08-15Benton, John B Jr PROPOSAL57Ioni Bowcher
1007Claire E FollerJapan2026-08-05Chanay, Jeffrey A Esq NEGOTIATION75Ivan Magalhaes
1008Kaitlin M GillianAustralia2026-08-06Truhlar And Truhlar Attys PROPOSAL91Elwin Sharvill
1009Stacey Z MaletBrazil2026-08-27Rangoni Of Florence NEW97Bernardo Dominic
1010Aruna X WaycottGermany2026-08-27Truhlar And Truhlar Attys PROPOSAL65Amy Elsner
1011Alejandro G BologniaIndia2026-08-19Chemel, James L Cpa NEGOTIATION92Ioni Bowcher
1012Ivar E InouyeRussia2026-08-28Truhlar And Truhlar Attys RENEWAL35Amy Elsner
1013Darci G SchemmerCanada2026-08-19Printing Dimensions RENEWAL36Stephen Shaw
1014Costa S DilliardArgentina2026-08-16Feiner Bros NEW1Xuxue Feng
1015Aditya L SlusarskiGermany2026-08-25Buckley Miller Wright NEGOTIATION34Ioni Bowcher
1016Nicolas Z ButtSpain2026-08-09Feltz Printing Service NEGOTIATION88Stephen Shaw
1017Antonio T IturbideJapan2026-08-21Rangoni Of Florence NEGOTIATION9Stephen Shaw
1018Morrow A WaycottRussia2026-08-25Buckley Miller Wright QUALIFIED93Onyama Limba
1019Julie N SergiAustralia2026-08-08Printing Dimensions PROPOSAL97Elwin Sharvill
1020Claire X CampainBrazil2026-08-30Feltz Printing Service QUALIFIED72Onyama Limba
1021Darci B DoeIndia2026-08-28Buckley Miller Wright QUALIFIED98Onyama Limba
1022Emily O StensethItaly2026-08-01Chapman, Ross E Esq UNQUALIFIED28Stephen Shaw
1023Aika E PerinRussia2026-08-08Truhlar And Truhlar Attys QUALIFIED27Amy Elsner
1024Misaki W GauchoCanada2026-08-20Rousseaux, Michael Esq NEGOTIATION99Ivan Magalhaes
1025Adams U PoquetteJapan2026-08-10Buckley Miller Wright QUALIFIED62Bernardo Dominic
1026Leja E NickaArgentina2026-08-03Dorl, James J Esq QUALIFIED25Bernardo Dominic
1027Octavia Z BowleyJapan2026-08-04Feiner Bros PROPOSAL2Onyama Limba
1028Wickens X DoeSpain2026-08-26Rousseaux, Michael Esq QUALIFIED58Ivan Magalhaes
1029Kaitlin I SchemmerJapan2026-08-25Morlong Associates NEGOTIATION55Bernardo Dominic
1030Aruna L ChuiIndia2026-08-15Benton, John B Jr UNQUALIFIED12Anna Fali
1031Jones H VenereRussia2026-08-06Buckley Miller Wright PROPOSAL50Amy Elsner
1032Leon R DilliardFrance2026-08-03Morlong Associates QUALIFIED58Ivan Magalhaes
1033Wickens C RimGermany2026-08-06Printing Dimensions NEW73Ioni Bowcher
1034Clifford L BologniaArgentina2026-08-13Chanay, Jeffrey A Esq QUALIFIED37Elwin Sharvill
1035Wickens A FigeroaUnited Kingdom2026-08-30Buckley Miller Wright UNQUALIFIED96Ioni Bowcher
1036Jones K FerenczJapan2026-08-15Commercial Press NEGOTIATION24Xuxue Feng
1037Costa O MarrierRussia2026-08-04Rangoni Of Florence RENEWAL71Onyama Limba
1038Aika G FlosiSpain2026-08-18Dorl, James J Esq NEGOTIATION76Onyama Limba
1039Leon O FollerGermany2026-08-30Chapman, Ross E Esq NEGOTIATION82Ioni Bowcher
1040Isabel Z NestleRussia2026-08-18Rousseaux, Michael Esq NEW73Ioni Bowcher
1041Munro U AlbaresJapan2026-08-09King, Christopher A Esq NEGOTIATION8Amy Elsner
1042Ashley J GlickItaly2026-08-07Chapman, Ross E Esq UNQUALIFIED7Onyama Limba
1043Darci H RulapaughGermany2026-08-11Chemel, James L Cpa QUALIFIED23Asiya Javayant
1044Ivar Y MorascaUnited Kingdom2026-08-05Chapman, Ross E Esq QUALIFIED6Xuxue Feng
1045Jefferson E AmigonFrance2026-08-09Chapman, Ross E Esq UNQUALIFIED67Bernardo Dominic
1046Jennifer R NickaJapan2026-08-18King, Christopher A Esq NEW26Amy Elsner
1047Juan P MaletItaly2026-08-25Commercial Press RENEWAL27Xuxue Feng
1048Deepesh V VenereGermany2026-08-10Truhlar And Truhlar Attys NEW16Stephen Shaw
1049Maria A FollerFrance2026-08-23Chapman, Ross E Esq UNQUALIFIED89Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jones P IturbideCanadaAmy Elsner RENEWAL
Aruna U OstroskyJapanAnna Fali NEW
Mayumi Y MacleadGermanyStephen Shaw QUALIFIED
Alejandro T MaletArgentinaAmy Elsner QUALIFIED
Clifford Q FollerAustraliaStephen Shaw NEGOTIATION
Rodrigues L RimFranceXuxue Feng QUALIFIED
Aditya L BowleyFranceIoni Bowcher UNQUALIFIED
Aruna T WhobreyUnited KingdomXuxue Feng PROPOSAL
Silvio U CampainGermanyAsiya Javayant QUALIFIED
Francesco M KuskoUnited KingdomOnyama Limba NEGOTIATION
Antonio M VenereFranceAsiya Javayant NEGOTIATION
Jefferson K BowleyGermanyAsiya Javayant NEGOTIATION
Alejandro C MaletBrazilStephen Shaw NEGOTIATION
Clifford Q VocelkaIndiaAsiya Javayant NEGOTIATION
Alejandro K GauchoItalyAnna Fali QUALIFIED
Salvatore M FerenczBrazilAmy Elsner PROPOSAL
Johnson D DarakjyAustraliaStephen Shaw UNQUALIFIED
Stacey S SlusarskiSpainIvan Magalhaes PROPOSAL
Leja K RutaCanadaXuxue Feng PROPOSAL
Ricardo P GillianArgentinaAmy Elsner RENEWAL
Rodrigues P BriddickSpainOnyama Limba RENEWAL
Nicolas V KolmetzSpainStephen Shaw PROPOSAL
Nicolas Q FlosiJapanIoni Bowcher NEGOTIATION
Aika G RutaItalyAmy Elsner NEGOTIATION
Aika N VenereGermanyAsiya Javayant QUALIFIED
Octavia D FigeroaCanadaXuxue Feng NEW
Rodrigues W WaycottArgentinaOnyama Limba PROPOSAL
David Z SergiJapanIvan Magalhaes NEGOTIATION
Rodrigues S MaletSpainStephen Shaw PROPOSAL
Chavez M StockhamSpainAmy Elsner RENEWAL
Octavia W WaycottIndiaStephen Shaw RENEWAL
Tony A BologniaItalyIoni Bowcher RENEWAL
Wickens B OldroydCanadaXuxue Feng RENEWAL
Wickens R FollerCanadaStephen Shaw QUALIFIED
Leja Z NestleAustraliaOnyama Limba QUALIFIED
Aditya S WaycottCanadaElwin Sharvill RENEWAL
Wickens D WaycottArgentinaIoni Bowcher QUALIFIED
Ricardo K GauchoFranceIoni Bowcher UNQUALIFIED
Faith X MaletArgentinaStephen Shaw NEGOTIATION
Cody B BowleyJapanStephen Shaw UNQUALIFIED
Silvio B PerinBrazilElwin Sharvill UNQUALIFIED
Wickens X RimFranceElwin Sharvill QUALIFIED
Murillo O VenereFranceAnna Fali PROPOSAL
Tony Z RulapaughIndiaBernardo Dominic UNQUALIFIED
Kadeem G FollerUnited KingdomOnyama Limba RENEWAL
Silvio O TollnerJapanXuxue Feng PROPOSAL
Smith K DoeUnited KingdomBernardo Dominic NEW
Rodrigues N MaletBrazilStephen Shaw PROPOSAL
Ivar J InouyeSpainBernardo Dominic RENEWAL
Darci T FerenczArgentinaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Mujtaba C Stockham
Emily C Schemmer
Cody E Stenseth
Misaki A Nestle
Emily H Briddick
Aruna W Darakjy
Aruna U Poquette
Adams G Briddick
Aika B Garufi
Kadeem B Venere
Faith E Saylors
James L Paprocki
Sinclair E Gaucho
Salvatore J Kusko
Greenwood E Royster
Wickens X Poquette
Kadeem R Tollner
Francesco F Kusko
Octavia X Flosi
Antonio P Slusarski
Stacey H Butt
Francesco W Caudy
Clifford S Glick
Jeanfrancois M Venere
Aditya X Stenseth
Leon R Gaucho
Jefferson Z Venere
Clifford N Flosi
Sinclair H Kusko
Adams L Kolmetz
Mujtaba C Iturbide
Costa Z Poquette
Arvin K Briddick
Julie P Caldarera
Clifford Q Marrier
Adams F Tollner
Francesco C Tollner
Antonio G Albares
Smith M Dilliard
Faith V Whobrey
Ricardo K Nicka
Munro S Bolognia
Maisha R Schemmer
Kaitlin S Vocelka
Maisha Q Shinko
Julie R Flosi
Ivar L Kolmetz
Morrow U Albares
Maisha R Paprocki
Jennifer H Malet
IdCountryDate
1000France2026-08-16
1001United Kingdom2026-08-19
1002Russia2026-08-22
1003Spain2026-08-25
1004Argentina2026-08-28
1005Spain2026-08-09
1006Argentina2026-08-23
1007Russia2026-08-20
1008Spain2026-08-05
1009Germany2026-08-06
1010Australia2026-08-30
1011United Kingdom2026-08-28
1012India2026-08-24
1013United Kingdom2026-08-26
1014Germany2026-08-28
1015Germany2026-08-12
1016United Kingdom2026-08-06
1017Canada2026-08-27
1018United Kingdom2026-08-04
1019Germany2026-08-09
1020Russia2026-08-13
1021Spain2026-08-29
1022Germany2026-08-01
1023Australia2026-08-20
1024United Kingdom2026-08-17
1025Russia2026-08-01
1026Argentina2026-08-23
1027Japan2026-08-03
1028India2026-08-15
1029India2026-08-11
1030Germany2026-08-10
1031Argentina2026-08-19
1032Brazil2026-08-04
1033Russia2026-08-14
1034Spain2026-08-02
1035Brazil2026-08-07
1036Canada2026-08-25
1037Brazil2026-08-01
1038Brazil2026-08-20
1039Argentina2026-08-01
1040Italy2026-08-10
1041Canada2026-08-16
1042Spain2026-08-21
1043Russia2026-08-19
1044France2026-08-16
1045Canada2026-08-06
1046Japan2026-08-19
1047India2026-08-14
1048Australia2026-08-24
1049Germany2026-08-01

On-Demand Data

NameIdCountryDate
James R Vocelka1000Australia2026-08-25
Kadeem R Dilliard1001Japan2026-08-10
Kaitlin G Poquette1002India2026-08-20
Salvatore E Gillian1003Germany2026-08-04
Stacey E Gaucho1004Brazil2026-08-13
Deepesh U Gaucho1005India2026-08-01
Aditya C Darakjy1006India2026-08-27
Aditya A Malet1007France2026-08-23
Aruna D Bowley1008Japan2026-08-11
Darci V Caldarera1009Italy2026-08-27
Cody L Kolmetz1010Russia2026-08-20
David I Paprocki1011Japan2026-08-29
Jefferson V Sergi1012Germany2026-08-12
Juan K Whobrey1013United Kingdom2026-08-30
James L Doe1014Brazil2026-08-03
Ashley N Rim1015Germany2026-08-26
Julie H Nestle1016Australia2026-08-27
Jeanfrancois K Darakjy1017Japan2026-08-05
Deepesh R Malet1018Brazil2026-08-25
Johnson E Briddick1019Argentina2026-08-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey W MaletFranceAnna Fali NEW
Greenwood O CaldareraItalyAsiya Javayant NEGOTIATION
Greenwood G MaletUnited KingdomAsiya Javayant QUALIFIED
Maisha B BowleyItalyIvan Magalhaes RENEWAL
Smith I ChuiBrazilBernardo Dominic UNQUALIFIED
Ashley O ButtIndiaXuxue Feng NEW
Ricardo A BriddickBrazilXuxue Feng PROPOSAL
Ashley U WaycottGermanyAsiya Javayant NEW
Johnson E GillianSpainStephen Shaw PROPOSAL
Smith O VocelkaSpainIoni Bowcher PROPOSAL
Mujtaba D MorascaAustraliaIoni Bowcher NEGOTIATION
Francesco G AmigonItalyElwin Sharvill QUALIFIED
Isabel E AmigonIndiaStephen Shaw QUALIFIED
Francesco V MarrierArgentinaXuxue Feng QUALIFIED
Tony X RutaAustraliaAsiya Javayant NEGOTIATION
Octavia P StensethFranceStephen Shaw QUALIFIED
Johnson U ShinkoIndiaOnyama Limba UNQUALIFIED
Salvatore U PerinJapanXuxue Feng RENEWAL
Sinclair Y SlusarskiFranceOnyama Limba QUALIFIED
Ivar Q RulapaughUnited KingdomXuxue Feng NEW
Johnson X DarakjyUnited KingdomOnyama Limba UNQUALIFIED
Aika L SergiGermanyElwin Sharvill QUALIFIED
Nicolas G CaudyGermanyBernardo Dominic RENEWAL
Leon M PaprockiSpainElwin Sharvill UNQUALIFIED
Ricardo E AlbaresRussiaIoni Bowcher RENEWAL
Izzy N GauchoCanadaBernardo Dominic UNQUALIFIED
Tony F MaletBrazilIoni Bowcher NEGOTIATION
Arvin V FollerSpainOnyama Limba QUALIFIED
Jefferson H KolmetzJapanAnna Fali NEGOTIATION
Ivar R WhobreyUnited KingdomElwin Sharvill PROPOSAL
Ricardo S CampainFranceOnyama Limba PROPOSAL
Jennifer I SchemmerBrazilAsiya Javayant RENEWAL
Darci Y GarufiGermanyAmy Elsner PROPOSAL
Greenwood G StensethSpainAnna Fali UNQUALIFIED
Alejandro T FerenczJapanElwin Sharvill UNQUALIFIED
Costa U RoysterFranceAsiya Javayant QUALIFIED
Wickens F BologniaArgentinaAnna Fali QUALIFIED
Sinclair C FlosiSpainIvan Magalhaes RENEWAL
Deepesh S ShinkoFranceAmy Elsner QUALIFIED
Faith P InouyeArgentinaAmy Elsner 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>