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 T OldroydIndiaXuxue Feng PROPOSAL
Kadeem Q MarrierSpainElwin Sharvill QUALIFIED
Aika V BologniaIndiaIvan Magalhaes UNQUALIFIED
Antonio T NestleIndiaBernardo Dominic PROPOSAL
Sinclair Q WieserRussiaOnyama Limba RENEWAL
Mayumi P CampainFranceIvan Magalhaes UNQUALIFIED
Morrow T RulapaughArgentinaAmy Elsner NEGOTIATION
Maisha S MaletGermanyAnna Fali PROPOSAL
Kadeem W GarufiRussiaAsiya Javayant QUALIFIED
Sinclair P MaletRussiaXuxue Feng NEW
Maria R NickaCanadaIoni Bowcher NEW
Sinclair N VenereSpainStephen Shaw QUALIFIED
Ivar Z SergiUnited KingdomIoni Bowcher NEGOTIATION
Deepesh W MaletBrazilStephen Shaw NEGOTIATION
Morrow X AlbaresGermanyXuxue Feng NEW
Arvin S StockhamIndiaOnyama Limba QUALIFIED
David U WieserRussiaAmy Elsner RENEWAL
Johnson I FerenczIndiaAnna Fali NEW
Clifford K SergiAustraliaIvan Magalhaes RENEWAL
Costa Z ButtGermanyAsiya Javayant UNQUALIFIED
Misaki W StockhamAustraliaOnyama Limba UNQUALIFIED
Kaitlin L CampainRussiaElwin Sharvill NEW
Greenwood Q WaycottIndiaXuxue Feng NEW
Aika Y VocelkaArgentinaXuxue Feng PROPOSAL
Leja B AlbaresAustraliaIoni Bowcher RENEWAL
Nicolas B OstroskyCanadaBernardo Dominic QUALIFIED
Claire Y IturbideCanadaBernardo Dominic UNQUALIFIED
Smith W KuskoJapanStephen Shaw PROPOSAL
David M KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Aika M StockhamJapanIvan Magalhaes QUALIFIED
Claire W PaprockiFranceIvan Magalhaes PROPOSAL
Ricardo M PerinItalyAsiya Javayant NEGOTIATION
Smith A WieserBrazilIoni Bowcher PROPOSAL
Tony N SchemmerArgentinaAnna Fali PROPOSAL
Antonio F PerinAustraliaStephen Shaw UNQUALIFIED
Ivar L SaylorsCanadaAmy Elsner RENEWAL
Ivar V ShinkoBrazilElwin Sharvill QUALIFIED
Faith C BologniaGermanyStephen Shaw UNQUALIFIED
Aditya W FlosiRussiaXuxue Feng NEW
Maisha D BowleyJapanStephen Shaw UNQUALIFIED
Francesco N BologniaCanadaElwin Sharvill UNQUALIFIED
Maisha T SlusarskiJapanOnyama Limba QUALIFIED
Mayumi O WieserAustraliaIoni Bowcher NEW
Leon B BriddickFranceStephen Shaw NEGOTIATION
Mayumi T GarufiJapanOnyama Limba NEGOTIATION
Aditya S RulapaughRussiaAmy Elsner UNQUALIFIED
Antonio Z PerinRussiaElwin Sharvill NEGOTIATION
Mujtaba Z StensethArgentinaAsiya Javayant NEW
Julie T MaletFranceElwin Sharvill PROPOSAL
Emily U FigeroaUnited KingdomXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
David P ShinkoBrazilStephen Shaw RENEWAL
Aditya N CampainArgentinaAmy Elsner PROPOSAL
Leja L FigeroaCanadaXuxue Feng UNQUALIFIED
James G GauchoJapanIoni Bowcher NEW
Smith V AlbaresFranceElwin Sharvill UNQUALIFIED
Jeanfrancois O BologniaGermanyXuxue Feng QUALIFIED
Francesco H WieserArgentinaAsiya Javayant RENEWAL
Silvio C CaldareraAustraliaOnyama Limba QUALIFIED
Antonio D BriddickBrazilIoni Bowcher NEGOTIATION
Faith S BologniaGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Z RimJapan2026-06-18Feltz Printing Service RENEWAL25Anna Fali
1001Greenwood G AmigonBrazil2026-06-19Buckley Miller Wright UNQUALIFIED58Elwin Sharvill
1002Tony Y CaudyGermany2026-06-12Dorl, James J Esq PROPOSAL69Amy Elsner
1003Jones Y BriddickSpain2026-06-29Truhlar And Truhlar Attys NEW19Stephen Shaw
1004Kadeem X AmigonItaly2026-06-10Chapman, Ross E Esq UNQUALIFIED78Xuxue Feng
1005Munro U FigeroaUnited Kingdom2026-06-10Feltz Printing Service RENEWAL8Ivan Magalhaes
1006Francesco D InouyeGermany2026-06-12Chanay, Jeffrey A Esq PROPOSAL83Asiya Javayant
1007Julie H GillianArgentina2026-06-16Rangoni Of Florence RENEWAL36Onyama Limba
1008Costa N DilliardRussia2026-06-14King, Christopher A Esq UNQUALIFIED68Elwin Sharvill
1009Ricardo V MarrierArgentina2026-07-01Truhlar And Truhlar Attys NEW58Onyama Limba
1010Juan W FollerRussia2026-06-30Benton, John B Jr NEW0Stephen Shaw
1011Claire S GlickCanada2026-06-18Commercial Press NEW30Ivan Magalhaes
1012Greenwood Q DoeJapan2026-06-27Chanay, Jeffrey A Esq RENEWAL67Ivan Magalhaes
1013Clifford C ButtRussia2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED8Stephen Shaw
1014Wickens S SergiGermany2026-06-24Truhlar And Truhlar Attys UNQUALIFIED71Onyama Limba
1015Nicolas J DoeBrazil2026-06-21Truhlar And Truhlar Attys UNQUALIFIED34Onyama Limba
1016Izzy K SlusarskiItaly2026-07-03Chanay, Jeffrey A Esq RENEWAL26Asiya Javayant
1017James A VocelkaUnited Kingdom2026-06-30Benton, John B Jr RENEWAL22Ioni Bowcher
1018Aditya M DilliardJapan2026-06-08Rangoni Of Florence UNQUALIFIED95Bernardo Dominic
1019Aruna E ShinkoSpain2026-06-28Benton, John B Jr PROPOSAL21Onyama Limba
1020Julie M StockhamFrance2026-06-12Feiner Bros NEW56Bernardo Dominic
1021Salvatore D FlosiJapan2026-06-28King, Christopher A Esq PROPOSAL71Ivan Magalhaes
1022Stacey M ChuiUnited Kingdom2026-06-09Dorl, James J Esq QUALIFIED32Ivan Magalhaes
1023Munro G SchemmerGermany2026-06-11Truhlar And Truhlar Attys UNQUALIFIED11Elwin Sharvill
1024Ivar R GlickCanada2026-06-20Rangoni Of Florence UNQUALIFIED85Ioni Bowcher
1025Alejandro M DoeCanada2026-06-07Rousseaux, Michael Esq RENEWAL3Amy Elsner
1026Octavia G MaletSpain2026-06-08Commercial Press NEGOTIATION54Elwin Sharvill
1027Francesco T WieserArgentina2026-06-26Benton, John B Jr NEGOTIATION2Onyama Limba
1028Wickens P RutaRussia2026-06-14Benton, John B Jr PROPOSAL98Xuxue Feng
1029Chavez Y GauchoJapan2026-06-21Morlong Associates PROPOSAL67Ivan Magalhaes
1030Jefferson G FollerSpain2026-06-05Rangoni Of Florence QUALIFIED24Bernardo Dominic
1031Sinclair N MacleadArgentina2026-06-08Rousseaux, Michael Esq NEGOTIATION70Onyama Limba
1032Maria E AmigonIndia2026-06-06Printing Dimensions UNQUALIFIED3Elwin Sharvill
1033David I DilliardFrance2026-06-29Chapman, Ross E Esq NEW92Elwin Sharvill
1034Kaitlin T FlosiCanada2026-06-24Chemel, James L Cpa NEGOTIATION17Xuxue Feng
1035Jefferson W VocelkaFrance2026-06-21Morlong Associates NEGOTIATION25Elwin Sharvill
1036Murillo N NickaRussia2026-06-12Truhlar And Truhlar Attys NEW52Asiya Javayant
1037Nicolas I NestleBrazil2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED66Bernardo Dominic
1038Silvio Q RutaJapan2026-06-14Dorl, James J Esq NEGOTIATION72Elwin Sharvill
1039Greenwood U RulapaughBrazil2026-06-05Commercial Press NEGOTIATION81Asiya Javayant
1040Jefferson J SchemmerUnited Kingdom2026-07-01Morlong Associates PROPOSAL25Stephen Shaw
1041Ricardo E MacleadRussia2026-06-10Morlong Associates RENEWAL36Ivan Magalhaes
1042Jennifer F AlbaresRussia2026-06-12Chemel, James L Cpa RENEWAL89Stephen Shaw
1043Nicolas J RoysterGermany2026-06-24Chemel, James L Cpa RENEWAL60Asiya Javayant
1044Salvatore N GarufiSpain2026-06-18Rangoni Of Florence PROPOSAL29Elwin Sharvill
1045Aika S CampainItaly2026-06-12Buckley Miller Wright UNQUALIFIED13Ioni Bowcher
1046Johnson P MaletBrazil2026-06-05Rangoni Of Florence QUALIFIED65Elwin Sharvill
1047Ashley I RimIndia2026-06-28King, Christopher A Esq NEGOTIATION67Ivan Magalhaes
1048Jefferson R WaycottBrazil2026-06-11Commercial Press NEGOTIATION59Amy Elsner
1049Salvatore G WaycottUnited Kingdom2026-06-29Chanay, Jeffrey A Esq QUALIFIED16Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maisha C PaprockiIndiaIvan Magalhaes UNQUALIFIED
Rodrigues G PerinGermanyAmy Elsner RENEWAL
Clifford A StockhamItalyOnyama Limba RENEWAL
Emily G RulapaughGermanyIoni Bowcher QUALIFIED
Maisha M OldroydBrazilAsiya Javayant NEGOTIATION
Murillo G DarakjyGermanyAnna Fali NEGOTIATION
Nicolas X KuskoJapanOnyama Limba NEW
Chavez K ChuiGermanyStephen Shaw QUALIFIED
Faith X WaycottRussiaOnyama Limba RENEWAL
Octavia O MacleadIndiaStephen Shaw QUALIFIED
Kadeem K NestleCanadaAnna Fali NEGOTIATION
Aruna I CampainItalyAsiya Javayant PROPOSAL
Murillo O BowleyItalyAsiya Javayant QUALIFIED
Emily Y MacleadFranceOnyama Limba RENEWAL
Misaki Z RutaArgentinaIvan Magalhaes UNQUALIFIED
Antonio Y WieserCanadaBernardo Dominic NEGOTIATION
Misaki K CaudySpainOnyama Limba RENEWAL
Wickens G RoysterSpainXuxue Feng NEGOTIATION
Nicolas D GillianAustraliaAsiya Javayant PROPOSAL
Sinclair L FerenczUnited KingdomStephen Shaw RENEWAL
Aditya Q MarrierCanadaAmy Elsner PROPOSAL
Costa Q FerenczAustraliaAnna Fali QUALIFIED
Mayumi S RoysterBrazilOnyama Limba QUALIFIED
James T ButtIndiaIvan Magalhaes UNQUALIFIED
Salvatore W CaldareraUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois F AmigonSpainXuxue Feng NEGOTIATION
Adams Z NestleCanadaIoni Bowcher QUALIFIED
Maisha L MarrierUnited KingdomElwin Sharvill QUALIFIED
Wickens P DoeArgentinaAmy Elsner QUALIFIED
Sinclair B CampainArgentinaIoni Bowcher NEGOTIATION
Aika Z NestleBrazilIoni Bowcher RENEWAL
Leja R IturbideBrazilElwin Sharvill RENEWAL
Silvio L GlickGermanyElwin Sharvill UNQUALIFIED
Isabel K StockhamCanadaIoni Bowcher NEGOTIATION
Kaitlin Q FerenczCanadaAnna Fali QUALIFIED
Rodrigues G GauchoCanadaXuxue Feng PROPOSAL
Johnson M CampainUnited KingdomAsiya Javayant NEW
Misaki E FlosiCanadaIoni Bowcher NEGOTIATION
Izzy C ChuiCanadaXuxue Feng PROPOSAL
Francesco W FollerUnited KingdomAnna Fali NEGOTIATION
Jefferson C GlickRussiaAnna Fali PROPOSAL
Arvin R AlbaresSpainStephen Shaw UNQUALIFIED
Aditya A VenereGermanyAsiya Javayant QUALIFIED
Arvin S FigeroaGermanyOnyama Limba NEW
Julie O KolmetzJapanIvan Magalhaes UNQUALIFIED
Mujtaba W AmigonFranceIoni Bowcher NEGOTIATION
Claire S DoeBrazilAsiya Javayant QUALIFIED
Aditya S MarrierJapanAnna Fali PROPOSAL
Salvatore U VenereJapanStephen Shaw NEGOTIATION
Costa L VocelkaCanadaAsiya Javayant PROPOSAL
Frozen Columns
Name
Maria L Flosi
Tony O Gillian
Jennifer H Tollner
Wickens N Paprocki
Jennifer W Stockham
Antonio Y Waycott
Aditya M Oldroyd
James Y Schemmer
Greenwood I Oldroyd
Maria D Venere
Kaitlin G Nicka
Isabel Q Ferencz
Clifford A Gillian
Stacey P Wieser
Sinclair Q Wieser
Costa J Ferencz
Arvin L Bolognia
Alejandro L Doe
Mujtaba R Amigon
Isabel R Venere
Smith T Kolmetz
Wickens J Albares
Ivar P Iturbide
Smith Q Slusarski
Stacey N Bolognia
Costa R Sergi
Aditya P Ostrosky
Costa E Marrier
Cody M Inouye
Silvio C Marrier
Ivar Z Figeroa
Morrow J Kusko
Arvin X Bowley
Mujtaba W Shinko
Antonio M Briddick
Maria Q Marrier
Tony V Foller
Mayumi I Malet
Aditya J Caudy
James X Stockham
Cody A Waycott
Jeanfrancois S Poquette
Morrow M Malet
Aditya A Maclead
Mayumi L Doe
Murillo J Shinko
Mayumi V Sergi
Francesco A Wieser
Izzy M Sergi
Francesco O Vocelka
IdCountryDate
1000United Kingdom2026-06-27
1001Australia2026-06-30
1002India2026-06-29
1003Italy2026-06-07
1004Spain2026-06-08
1005Spain2026-06-11
1006United Kingdom2026-06-15
1007Spain2026-06-08
1008Argentina2026-06-17
1009Canada2026-06-09
1010United Kingdom2026-06-13
1011Argentina2026-06-14
1012Australia2026-06-17
1013Brazil2026-07-01
1014Australia2026-06-12
1015United Kingdom2026-06-15
1016Italy2026-06-27
1017United Kingdom2026-06-09
1018India2026-06-30
1019United Kingdom2026-06-13
1020Brazil2026-06-20
1021Japan2026-06-07
1022Argentina2026-07-03
1023Japan2026-06-25
1024Spain2026-06-28
1025Brazil2026-06-30
1026Russia2026-06-20
1027United Kingdom2026-06-10
1028Spain2026-06-09
1029Brazil2026-06-08
1030France2026-06-15
1031Spain2026-06-09
1032Japan2026-06-29
1033Argentina2026-06-17
1034United Kingdom2026-06-17
1035Spain2026-06-30
1036Australia2026-07-01
1037Germany2026-06-24
1038Germany2026-06-30
1039France2026-06-19
1040Russia2026-06-08
1041Australia2026-06-17
1042United Kingdom2026-06-15
1043United Kingdom2026-06-07
1044Italy2026-06-14
1045Spain2026-06-29
1046Canada2026-06-15
1047United Kingdom2026-06-27
1048Japan2026-06-20
1049Japan2026-06-12

On-Demand Data

NameIdCountryDate
Francesco P Ostrosky1000India2026-06-25
Smith N Foller1001Australia2026-06-28
Ricardo S Figeroa1002Spain2026-06-27
Jones V Sergi1003Australia2026-06-07
Chavez N Dilliard1004Japan2026-06-09
Munro J Shinko1005Russia2026-06-18
Aruna V Venere1006Russia2026-06-16
Deepesh L Marrier1007Argentina2026-06-22
Salvatore R Morasca1008Canada2026-06-17
Ashley G Iturbide1009France2026-06-06
Juan J Doe1010Germany2026-07-04
Maisha F Waycott1011Italy2026-06-12
Misaki S Malet1012Italy2026-06-25
Antonio E Shinko1013Italy2026-06-10
Isabel A Wieser1014Argentina2026-06-06
Chavez W Garufi1015France2026-06-24
Kaitlin D Ferencz1016France2026-06-26
Smith I Doe1017Spain2026-06-20
Alejandro M Royster1018United Kingdom2026-06-11
Antonio J Doe1019Argentina2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha Z ChuiArgentinaAmy Elsner RENEWAL
Julie A StensethGermanyAnna Fali UNQUALIFIED
Cody N RulapaughUnited KingdomBernardo Dominic RENEWAL
Munro V FigeroaBrazilIoni Bowcher RENEWAL
Greenwood D DoeJapanIoni Bowcher PROPOSAL
Silvio T DarakjyItalyIvan Magalhaes NEW
Mayumi T DilliardSpainStephen Shaw PROPOSAL
Costa B IturbideCanadaIoni Bowcher NEGOTIATION
Wickens G RutaJapanXuxue Feng RENEWAL
Ashley C KuskoUnited KingdomBernardo Dominic QUALIFIED
Faith Q CaldareraJapanXuxue Feng NEW
Chavez D WaycottCanadaStephen Shaw NEW
Costa E CaudyFranceXuxue Feng PROPOSAL
Francesco H StensethCanadaAmy Elsner NEW
Adams I PerinCanadaXuxue Feng UNQUALIFIED
Kaitlin C SchemmerSpainElwin Sharvill PROPOSAL
Chavez D SchemmerJapanAsiya Javayant PROPOSAL
Clifford H CaldareraBrazilXuxue Feng NEGOTIATION
Emily P GillianGermanyAsiya Javayant PROPOSAL
Jeanfrancois V BowleyUnited KingdomElwin Sharvill NEW
Octavia M GlickIndiaIvan Magalhaes UNQUALIFIED
Tony C PoquetteBrazilAsiya Javayant RENEWAL
Murillo G CampainJapanOnyama Limba PROPOSAL
Mujtaba Q NestleFranceElwin Sharvill RENEWAL
Darci K MaletArgentinaIvan Magalhaes NEGOTIATION
Munro H TollnerItalyAnna Fali QUALIFIED
Maria K GlickJapanIvan Magalhaes NEGOTIATION
Claire K NestleRussiaAnna Fali NEW
Silvio G RimIndiaAsiya Javayant QUALIFIED
Octavia Q StensethArgentinaXuxue Feng QUALIFIED
Isabel Y KuskoRussiaIvan Magalhaes RENEWAL
Faith E BriddickUnited KingdomIoni Bowcher QUALIFIED
Johnson B InouyeJapanElwin Sharvill PROPOSAL
Isabel B SlusarskiIndiaIvan Magalhaes QUALIFIED
Aika H WhobreyIndiaIvan Magalhaes RENEWAL
Wickens I IturbideBrazilOnyama Limba NEW
Arvin O GarufiAustraliaStephen Shaw QUALIFIED
Mujtaba K GarufiSpainXuxue Feng RENEWAL
Francesco U DilliardAustraliaStephen Shaw QUALIFIED
Arvin A ChuiFranceAmy Elsner NEW

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