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
Faith U MaletSpainStephen Shaw UNQUALIFIED
Aruna O RulapaughIndiaIoni Bowcher NEGOTIATION
Juan A CaldareraUnited KingdomOnyama Limba QUALIFIED
Jefferson W KuskoCanadaIvan Magalhaes QUALIFIED
Deepesh J BologniaAustraliaAmy Elsner PROPOSAL
Adams Y InouyeCanadaBernardo Dominic RENEWAL
Jones Q KolmetzArgentinaOnyama Limba RENEWAL
Costa P MorascaGermanyElwin Sharvill PROPOSAL
Isabel V MarrierIndiaStephen Shaw UNQUALIFIED
Leja M RoysterIndiaBernardo Dominic PROPOSAL
Maisha F SergiSpainElwin Sharvill PROPOSAL
Salvatore L WaycottGermanyIvan Magalhaes QUALIFIED
Darci M GarufiArgentinaAmy Elsner NEW
Jefferson X PaprockiGermanyAmy Elsner UNQUALIFIED
Silvio G SergiItalyOnyama Limba RENEWAL
Aika D MaletFranceAmy Elsner NEGOTIATION
Mayumi V AlbaresGermanyOnyama Limba NEGOTIATION
James U CampainFranceAnna Fali RENEWAL
Johnson U SlusarskiItalyXuxue Feng UNQUALIFIED
Jones K ChuiFranceAmy Elsner RENEWAL
Aika S FerenczIndiaBernardo Dominic QUALIFIED
Claire U CaudyBrazilBernardo Dominic PROPOSAL
Octavia A CaudyRussiaStephen Shaw UNQUALIFIED
Ricardo X VenereItalyElwin Sharvill NEW
Ashley Z SlusarskiUnited KingdomXuxue Feng QUALIFIED
Julie G CampainRussiaOnyama Limba RENEWAL
Aruna H CaudyItalyBernardo Dominic NEGOTIATION
Izzy E SchemmerBrazilOnyama Limba NEW
Ricardo W MarrierUnited KingdomStephen Shaw RENEWAL
Clifford E MarrierJapanAsiya Javayant NEGOTIATION
Juan Q CaudyGermanyAnna Fali UNQUALIFIED
Munro L StensethRussiaIvan Magalhaes PROPOSAL
Salvatore D RutaFranceAmy Elsner UNQUALIFIED
Mayumi J KolmetzItalyOnyama Limba NEW
James X OstroskyRussiaAsiya Javayant RENEWAL
Munro E BologniaAustraliaAsiya Javayant QUALIFIED
Ricardo K FollerGermanyStephen Shaw NEW
Leon N TollnerBrazilXuxue Feng PROPOSAL
Antonio M CaudyCanadaXuxue Feng PROPOSAL
Salvatore Q MacleadAustraliaElwin Sharvill UNQUALIFIED
Ricardo R GillianJapanAmy Elsner PROPOSAL
Tony P MacleadSpainOnyama Limba NEW
Mujtaba R MaletCanadaBernardo Dominic NEW
Alejandro K RoysterFranceIvan Magalhaes RENEWAL
David X StockhamJapanStephen Shaw NEW
Juan A AlbaresUnited KingdomStephen Shaw RENEWAL
Jeanfrancois M FlosiArgentinaElwin Sharvill QUALIFIED
Rodrigues B TollnerBrazilAsiya Javayant PROPOSAL
Stacey Y ShinkoFranceIvan Magalhaes QUALIFIED
Ricardo Y AlbaresCanadaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro F RutaAustraliaOnyama Limba QUALIFIED
Costa W RulapaughItalyStephen Shaw QUALIFIED
Tony F IturbideFranceIoni Bowcher PROPOSAL
Morrow D VenereGermanyIvan Magalhaes PROPOSAL
Ricardo Y NestleJapanBernardo Dominic RENEWAL
Alejandro X TollnerFranceIvan Magalhaes NEW
Alejandro R BologniaBrazilElwin Sharvill RENEWAL
Mayumi I DilliardItalyAnna Fali PROPOSAL
Smith L OldroydArgentinaStephen Shaw NEW
Mayumi Q WaycottJapanOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Y BologniaAustralia2026-06-01Printing Dimensions NEW74Stephen Shaw
1001Stacey B RulapaughRussia2026-06-07Commercial Press NEW60Stephen Shaw
1002David Q VocelkaRussia2026-06-20Rousseaux, Michael Esq NEW9Bernardo Dominic
1003Izzy U AmigonFrance2026-06-21Rangoni Of Florence NEGOTIATION68Stephen Shaw
1004Jefferson F SchemmerFrance2026-06-05King, Christopher A Esq QUALIFIED59Xuxue Feng
1005Claire F OstroskyJapan2026-06-22Chemel, James L Cpa NEW44Bernardo Dominic
1006Clifford U BologniaRussia2026-06-10Chemel, James L Cpa UNQUALIFIED31Xuxue Feng
1007Aruna R IturbideAustralia2026-06-13Chemel, James L Cpa PROPOSAL94Anna Fali
1008Deepesh U WhobreySpain2026-06-29Feltz Printing Service NEGOTIATION14Ioni Bowcher
1009Leja I InouyeBrazil2026-06-22Benton, John B Jr UNQUALIFIED44Anna Fali
1010Misaki P OstroskyIndia2026-06-04Benton, John B Jr PROPOSAL73Anna Fali
1011Salvatore C BologniaUnited Kingdom2026-06-15Chemel, James L Cpa RENEWAL26Ioni Bowcher
1012Aruna Y DoeJapan2026-06-11Feiner Bros PROPOSAL78Ioni Bowcher
1013Greenwood K RimJapan2026-06-03Printing Dimensions QUALIFIED33Amy Elsner
1014Leja J AlbaresArgentina2026-06-21Commercial Press NEGOTIATION58Ivan Magalhaes
1015Ivar O CampainAustralia2026-06-27Benton, John B Jr RENEWAL15Elwin Sharvill
1016David V ChuiCanada2026-06-25Buckley Miller Wright NEW85Amy Elsner
1017Francesco G VocelkaUnited Kingdom2026-06-30Chapman, Ross E Esq NEGOTIATION66Anna Fali
1018Murillo H SlusarskiRussia2026-06-24King, Christopher A Esq NEGOTIATION90Amy Elsner
1019Misaki U GillianGermany2026-06-25Feiner Bros NEW74Amy Elsner
1020Kadeem M RoysterGermany2026-06-30Rousseaux, Michael Esq UNQUALIFIED62Ivan Magalhaes
1021Silvio Z RoysterCanada2026-06-29Buckley Miller Wright NEGOTIATION38Stephen Shaw
1022Arvin P FerenczJapan2026-06-24Morlong Associates RENEWAL17Onyama Limba
1023Deepesh R MarrierGermany2026-06-23Chanay, Jeffrey A Esq NEW54Amy Elsner
1024Tony A DarakjyIndia2026-06-16Buckley Miller Wright UNQUALIFIED14Xuxue Feng
1025Clifford I WieserFrance2026-06-15Buckley Miller Wright PROPOSAL51Ioni Bowcher
1026Smith G AmigonAustralia2026-06-16Morlong Associates UNQUALIFIED84Onyama Limba
1027Smith T MarrierUnited Kingdom2026-06-29Morlong Associates PROPOSAL51Ivan Magalhaes
1028Munro K SergiArgentina2026-06-04King, Christopher A Esq UNQUALIFIED84Stephen Shaw
1029Salvatore B AmigonUnited Kingdom2026-06-23Chanay, Jeffrey A Esq NEGOTIATION98Ivan Magalhaes
1030Stacey K SergiArgentina2026-06-25Morlong Associates NEGOTIATION4Elwin Sharvill
1031Alejandro K PerinJapan2026-06-05Rangoni Of Florence QUALIFIED3Anna Fali
1032Francesco H ButtCanada2026-06-18Buckley Miller Wright RENEWAL92Ioni Bowcher
1033Stacey V GlickAustralia2026-06-13Rangoni Of Florence UNQUALIFIED89Ioni Bowcher
1034Claire I MorascaAustralia2026-06-13Buckley Miller Wright UNQUALIFIED22Onyama Limba
1035Salvatore U FigeroaSpain2026-06-30Printing Dimensions NEGOTIATION19Onyama Limba
1036Jennifer W GauchoIndia2026-06-11Benton, John B Jr RENEWAL68Amy Elsner
1037Julie F BriddickItaly2026-06-23Rousseaux, Michael Esq NEW70Elwin Sharvill
1038Deepesh X ChuiArgentina2026-06-29Buckley Miller Wright QUALIFIED44Amy Elsner
1039Aditya F IturbideRussia2026-06-15Chapman, Ross E Esq QUALIFIED34Ivan Magalhaes
1040Costa K FigeroaGermany2026-06-11Chapman, Ross E Esq UNQUALIFIED81Stephen Shaw
1041Stacey E DilliardBrazil2026-06-28Rangoni Of Florence UNQUALIFIED33Xuxue Feng
1042Kadeem U FollerJapan2026-06-14Rousseaux, Michael Esq RENEWAL0Stephen Shaw
1043Octavia Z FigeroaBrazil2026-06-28Truhlar And Truhlar Attys UNQUALIFIED38Amy Elsner
1044Emily K IturbideGermany2026-06-09Buckley Miller Wright NEGOTIATION2Ioni Bowcher
1045Jefferson W MacleadFrance2026-06-17Feltz Printing Service UNQUALIFIED93Xuxue Feng
1046Greenwood U BologniaUnited Kingdom2026-06-29Chemel, James L Cpa NEGOTIATION26Xuxue Feng
1047Greenwood Z SergiSpain2026-06-18Dorl, James J Esq PROPOSAL49Anna Fali
1048Cody Z SlusarskiAustralia2026-06-06Buckley Miller Wright NEGOTIATION14Stephen Shaw
1049Tony O CaldareraGermany2026-06-30Feiner Bros UNQUALIFIED24Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois P GlickRussiaXuxue Feng QUALIFIED
Antonio T DarakjyJapanStephen Shaw RENEWAL
Tony E DarakjySpainAnna Fali RENEWAL
Jennifer W GillianFranceElwin Sharvill UNQUALIFIED
Maisha X AmigonItalyOnyama Limba RENEWAL
Maisha Z PoquetteBrazilAmy Elsner PROPOSAL
Juan C FlosiBrazilElwin Sharvill NEGOTIATION
Aika D SergiRussiaElwin Sharvill UNQUALIFIED
Tony S GauchoIndiaAmy Elsner QUALIFIED
Leon H MaletItalyBernardo Dominic NEW
Isabel L AmigonIndiaIvan Magalhaes NEGOTIATION
Aruna H WaycottItalyAmy Elsner RENEWAL
Izzy M RulapaughItalyIvan Magalhaes PROPOSAL
Wickens Z MorascaFranceXuxue Feng UNQUALIFIED
Alejandro P FlosiArgentinaStephen Shaw QUALIFIED
Nicolas D KuskoCanadaAsiya Javayant UNQUALIFIED
Munro B MaletAustraliaIoni Bowcher NEW
Arvin Q GarufiAustraliaAsiya Javayant PROPOSAL
Jeanfrancois M RutaIndiaStephen Shaw RENEWAL
Juan N BowleyCanadaAmy Elsner RENEWAL
Jeanfrancois E NickaArgentinaAnna Fali QUALIFIED
Greenwood D KuskoRussiaElwin Sharvill PROPOSAL
Silvio Y MorascaIndiaAnna Fali NEGOTIATION
Munro U KuskoJapanIvan Magalhaes NEGOTIATION
Ivar P CaudyFranceAsiya Javayant RENEWAL
Francesco U OldroydAustraliaElwin Sharvill NEGOTIATION
Ivar S InouyeBrazilStephen Shaw PROPOSAL
Deepesh Y WieserCanadaIoni Bowcher RENEWAL
James U DarakjyJapanOnyama Limba QUALIFIED
Faith A SergiCanadaOnyama Limba UNQUALIFIED
Stacey M StockhamAustraliaOnyama Limba RENEWAL
James P ChuiBrazilIvan Magalhaes UNQUALIFIED
Ricardo E PoquetteRussiaXuxue Feng NEGOTIATION
Kadeem X IturbideJapanBernardo Dominic UNQUALIFIED
Julie T KolmetzFranceStephen Shaw QUALIFIED
Isabel U IturbideItalyIoni Bowcher QUALIFIED
Mayumi D PerinBrazilAmy Elsner UNQUALIFIED
Arvin H BowleyUnited KingdomAmy Elsner NEW
Murillo F SergiGermanyIoni Bowcher NEGOTIATION
Aruna L SlusarskiArgentinaAnna Fali PROPOSAL
Faith U GarufiSpainIvan Magalhaes NEW
Adams V CaldareraIndiaOnyama Limba PROPOSAL
Jeanfrancois L WieserBrazilAmy Elsner QUALIFIED
Leon R WaycottArgentinaXuxue Feng UNQUALIFIED
Leja H ButtGermanyIoni Bowcher PROPOSAL
Aruna Z SaylorsGermanyOnyama Limba PROPOSAL
Jennifer H SlusarskiItalyOnyama Limba NEGOTIATION
Ricardo Q DarakjyGermanyElwin Sharvill RENEWAL
Antonio N WieserGermanyElwin Sharvill NEW
Maria K InouyeBrazilIvan Magalhaes RENEWAL
Frozen Columns
Name
Octavia T Bowley
Aditya Z Whobrey
Johnson F Rim
Julie J Whobrey
Antonio Y Campain
Sinclair L Malet
Smith I Venere
Ricardo I Chui
Jones B Schemmer
Juan L Morasca
Jennifer J Dilliard
Costa P Bowley
Mayumi U Rim
Wickens Y Poquette
Johnson Z Stenseth
Wickens F Albares
Aruna S Marrier
Mujtaba P Gillian
Wickens G Bowley
Jones X Paprocki
Wickens Y Waycott
Salvatore F Malet
Munro J Flosi
Izzy I Doe
Greenwood W Paprocki
Juan F Vocelka
Ricardo J Perin
Greenwood S Bolognia
Jefferson W Royster
Ashley K Royster
Ricardo G Morasca
Emily X Saylors
Chavez A Campain
Ashley V Campain
James J Caudy
Nicolas G Morasca
Kaitlin R Stenseth
Ashley D Gillian
Mayumi T Amigon
Arvin M Foller
Claire B Gaucho
Mayumi H Waycott
David E Vocelka
Darci U Slusarski
Costa E Kolmetz
Darci R Wieser
Kadeem S Iturbide
Jefferson K Iturbide
Aika H Chui
Munro V Gillian
IdCountryDate
1000France2026-06-22
1001Australia2026-06-01
1002Argentina2026-06-30
1003Italy2026-06-16
1004Germany2026-06-14
1005India2026-06-26
1006Australia2026-06-18
1007Argentina2026-06-27
1008Canada2026-06-02
1009Brazil2026-06-09
1010Japan2026-06-16
1011Australia2026-06-10
1012Australia2026-06-07
1013Australia2026-06-22
1014India2026-06-03
1015United Kingdom2026-06-01
1016Argentina2026-06-08
1017Russia2026-06-28
1018United Kingdom2026-06-16
1019Spain2026-06-21
1020Australia2026-06-12
1021Japan2026-06-08
1022Argentina2026-06-11
1023United Kingdom2026-06-21
1024Germany2026-06-22
1025Australia2026-06-29
1026Spain2026-06-07
1027India2026-06-26
1028Japan2026-06-09
1029Russia2026-06-20
1030Brazil2026-06-11
1031Italy2026-06-07
1032Brazil2026-06-13
1033Russia2026-06-25
1034Italy2026-06-12
1035Germany2026-06-12
1036United Kingdom2026-06-25
1037Germany2026-06-09
1038Australia2026-06-15
1039India2026-06-22
1040Italy2026-06-27
1041United Kingdom2026-06-05
1042Russia2026-06-14
1043France2026-06-23
1044Argentina2026-06-14
1045Spain2026-06-30
1046Germany2026-06-05
1047France2026-06-18
1048Italy2026-06-08
1049Brazil2026-06-02

On-Demand Data

NameIdCountryDate
Johnson W Bowley1000Argentina2026-06-13
Costa N Chui1001Brazil2026-06-19
Leja N Stenseth1002France2026-06-26
Murillo O Saylors1003France2026-06-01
Isabel Z Perin1004United Kingdom2026-06-01
Costa D Kusko1005India2026-06-12
Greenwood T Glick1006Spain2026-06-07
Maisha B Rulapaugh1007Argentina2026-06-21
Antonio J Nicka1008Brazil2026-06-25
Leon N Vocelka1009Argentina2026-06-16
Mayumi A Garufi1010Brazil2026-06-18
Morrow S Ostrosky1011Germany2026-06-21
Kaitlin A Figeroa1012United Kingdom2026-06-18
Aditya S Maclead1013Germany2026-06-03
Octavia W Royster1014Australia2026-06-03
Jeanfrancois Q Doe1015Spain2026-06-25
Kaitlin L Gillian1016Argentina2026-06-18
Kaitlin D Nestle1017Australia2026-06-27
Rodrigues Q Iturbide1018Germany2026-06-05
Juan S Bowley1019Brazil2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika D FollerAustraliaBernardo Dominic NEW
Leja S PaprockiCanadaElwin Sharvill PROPOSAL
Kaitlin E OldroydArgentinaBernardo Dominic NEW
Mujtaba D RulapaughAustraliaIvan Magalhaes NEGOTIATION
Ricardo G SergiGermanyElwin Sharvill NEW
Munro L ShinkoSpainAnna Fali PROPOSAL
Wickens T AmigonAustraliaIvan Magalhaes PROPOSAL
Rodrigues S StensethFranceBernardo Dominic NEW
Murillo D VocelkaArgentinaBernardo Dominic PROPOSAL
Aika T GillianRussiaAmy Elsner PROPOSAL
Izzy N PoquetteArgentinaIoni Bowcher PROPOSAL
Deepesh U WieserItalyAsiya Javayant UNQUALIFIED
Claire B GauchoFranceOnyama Limba NEW
Alejandro P GauchoSpainElwin Sharvill QUALIFIED
Francesco F WieserItalyBernardo Dominic NEGOTIATION
Leon J GlickGermanyAnna Fali UNQUALIFIED
Arvin Q NestleUnited KingdomOnyama Limba PROPOSAL
Claire D DilliardSpainBernardo Dominic PROPOSAL
Costa U WaycottIndiaStephen Shaw RENEWAL
Mujtaba P DoeGermanyElwin Sharvill UNQUALIFIED
Ashley Q SlusarskiRussiaElwin Sharvill PROPOSAL
Jefferson H GauchoGermanyElwin Sharvill UNQUALIFIED
Mayumi G AlbaresJapanOnyama Limba PROPOSAL
Munro T VenereIndiaAmy Elsner RENEWAL
Nicolas P BriddickSpainAsiya Javayant UNQUALIFIED
Silvio A RimCanadaAmy Elsner PROPOSAL
Leja K AmigonSpainElwin Sharvill NEW
Aika J BriddickRussiaBernardo Dominic NEW
Aditya P MaletJapanStephen Shaw UNQUALIFIED
Maria P SlusarskiUnited KingdomOnyama Limba QUALIFIED
Wickens W CaudyCanadaBernardo Dominic NEGOTIATION
Chavez K CaudyArgentinaAnna Fali QUALIFIED
Costa F CampainArgentinaAsiya Javayant NEW
Tony K RimSpainIoni Bowcher UNQUALIFIED
Arvin I DoeJapanAmy Elsner UNQUALIFIED
Maisha G FigeroaGermanyAsiya Javayant QUALIFIED
James J AlbaresBrazilAsiya Javayant QUALIFIED
James W RimRussiaAsiya Javayant PROPOSAL
Jeanfrancois C PaprockiBrazilXuxue Feng UNQUALIFIED
Jefferson D ShinkoBrazilAsiya Javayant 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>