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
Izzy U RulapaughFranceXuxue Feng NEW
Silvio Z ShinkoIndiaIvan Magalhaes RENEWAL
Johnson N SlusarskiItalyIvan Magalhaes NEW
Jefferson Y MarrierIndiaAnna Fali NEW
Greenwood G OldroydSpainIoni Bowcher QUALIFIED
Maria X FerenczCanadaStephen Shaw UNQUALIFIED
Deepesh T DarakjyIndiaBernardo Dominic NEGOTIATION
Tony Y KuskoJapanOnyama Limba NEW
Aika R AmigonJapanIoni Bowcher NEGOTIATION
Adams A PoquetteGermanyAsiya Javayant NEGOTIATION
Ivar F SchemmerJapanXuxue Feng NEW
Izzy I StensethArgentinaIoni Bowcher UNQUALIFIED
David P ChuiBrazilElwin Sharvill NEGOTIATION
Rodrigues A MorascaRussiaAmy Elsner QUALIFIED
Deepesh X KolmetzIndiaBernardo Dominic RENEWAL
Jennifer U SlusarskiFranceIoni Bowcher QUALIFIED
Maria J NestleItalyStephen Shaw NEGOTIATION
Leja Y WieserFranceElwin Sharvill NEW
Misaki D FollerFranceStephen Shaw RENEWAL
Jennifer C PaprockiFranceAnna Fali PROPOSAL
Alejandro V RoysterArgentinaElwin Sharvill QUALIFIED
Munro P GauchoCanadaIoni Bowcher UNQUALIFIED
Arvin Z OstroskyBrazilBernardo Dominic UNQUALIFIED
Aika Q MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Arvin G VocelkaIndiaStephen Shaw QUALIFIED
Mujtaba Z GillianUnited KingdomAsiya Javayant NEGOTIATION
Mayumi V VocelkaUnited KingdomStephen Shaw QUALIFIED
Claire U SlusarskiGermanyIvan Magalhaes RENEWAL
Emily O StensethJapanBernardo Dominic NEGOTIATION
Jefferson P SlusarskiBrazilIvan Magalhaes UNQUALIFIED
Ricardo R PaprockiAustraliaIoni Bowcher UNQUALIFIED
Jefferson R KolmetzItalyAnna Fali UNQUALIFIED
Ricardo N WieserJapanIoni Bowcher PROPOSAL
Faith E NickaCanadaAmy Elsner RENEWAL
David D PaprockiAustraliaAmy Elsner QUALIFIED
Adams O AlbaresUnited KingdomAnna Fali NEW
Maria Q FollerJapanXuxue Feng QUALIFIED
Rodrigues E SergiItalyBernardo Dominic QUALIFIED
Leon E KolmetzAustraliaBernardo Dominic QUALIFIED
Julie T SchemmerGermanyAmy Elsner RENEWAL
Leon C DarakjyCanadaIvan Magalhaes UNQUALIFIED
Salvatore G RimUnited KingdomAmy Elsner NEW
Ashley H WaycottIndiaElwin Sharvill UNQUALIFIED
Kadeem H RimJapanAnna Fali PROPOSAL
Ricardo O WaycottItalyElwin Sharvill NEGOTIATION
Mujtaba N WieserJapanIoni Bowcher QUALIFIED
Kaitlin C GarufiFranceAnna Fali QUALIFIED
Mayumi Z CampainRussiaAsiya Javayant PROPOSAL
Aditya K TollnerSpainAnna Fali RENEWAL
Leon T GauchoArgentinaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan Q SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
Cody D PaprockiFranceAmy Elsner RENEWAL
Chavez Y FerenczFranceStephen Shaw RENEWAL
Jefferson C KuskoGermanyAsiya Javayant PROPOSAL
Francesco L BologniaGermanyIoni Bowcher NEW
Aruna E NestleItalyOnyama Limba PROPOSAL
Wickens I DarakjyArgentinaStephen Shaw NEGOTIATION
Mayumi R MaletFranceOnyama Limba PROPOSAL
Leon X SchemmerItalyBernardo Dominic UNQUALIFIED
Francesco O DarakjyAustraliaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio A DarakjyBrazil2025-06-09Dorl, James J Esq NEW63Bernardo Dominic
1001Jennifer M DilliardIndia2025-05-25Morlong Associates PROPOSAL85Xuxue Feng
1002Greenwood M PoquetteGermany2025-05-16Chemel, James L Cpa PROPOSAL76Asiya Javayant
1003Jones H KolmetzUnited Kingdom2025-05-24Rousseaux, Michael Esq RENEWAL53Amy Elsner
1004Costa V IturbideArgentina2025-06-14Feiner Bros NEW43Stephen Shaw
1005Aika R KuskoFrance2025-05-30Buckley Miller Wright QUALIFIED87Anna Fali
1006Stacey C ChuiItaly2025-05-29Rousseaux, Michael Esq UNQUALIFIED74Bernardo Dominic
1007Kaitlin Y AlbaresBrazil2025-06-13Dorl, James J Esq NEGOTIATION1Amy Elsner
1008Chavez Z MaletGermany2025-05-22King, Christopher A Esq UNQUALIFIED21Amy Elsner
1009Costa G InouyeAustralia2025-06-01Dorl, James J Esq NEGOTIATION52Elwin Sharvill
1010Smith L MarrierRussia2025-06-14Chanay, Jeffrey A Esq RENEWAL36Ioni Bowcher
1011Arvin D RoysterJapan2025-06-06Printing Dimensions PROPOSAL99Xuxue Feng
1012Jefferson Q RutaGermany2025-05-28Rousseaux, Michael Esq RENEWAL1Anna Fali
1013Aika O TollnerCanada2025-05-31Chemel, James L Cpa RENEWAL58Ioni Bowcher
1014Jeanfrancois U ChuiIndia2025-05-17Printing Dimensions RENEWAL81Onyama Limba
1015Costa I MaletGermany2025-06-09Feltz Printing Service PROPOSAL23Onyama Limba
1016Isabel L FlosiUnited Kingdom2025-05-23Truhlar And Truhlar Attys UNQUALIFIED16Xuxue Feng
1017Murillo U PaprockiIndia2025-05-21Chemel, James L Cpa QUALIFIED86Elwin Sharvill
1018Alejandro D NestleItaly2025-05-20Morlong Associates QUALIFIED64Ivan Magalhaes
1019Emily Q OstroskyAustralia2025-05-26Commercial Press QUALIFIED43Elwin Sharvill
1020Morrow I RoysterUnited Kingdom2025-05-28Chanay, Jeffrey A Esq PROPOSAL20Xuxue Feng
1021Aditya U OstroskyFrance2025-05-27Buckley Miller Wright NEGOTIATION65Asiya Javayant
1022Izzy I FlosiFrance2025-05-29Truhlar And Truhlar Attys NEW19Amy Elsner
1023Jefferson N PerinArgentina2025-05-18Commercial Press NEGOTIATION20Bernardo Dominic
1024Jones H VocelkaRussia2025-06-13Printing Dimensions PROPOSAL25Ivan Magalhaes
1025Leja U PaprockiUnited Kingdom2025-05-30Chanay, Jeffrey A Esq NEGOTIATION91Amy Elsner
1026Mujtaba R PaprockiUnited Kingdom2025-06-09Morlong Associates QUALIFIED49Onyama Limba
1027Antonio T ShinkoGermany2025-06-03Morlong Associates NEGOTIATION56Anna Fali
1028Maisha F SlusarskiSpain2025-05-18Chapman, Ross E Esq NEW5Stephen Shaw
1029Clifford F MarrierRussia2025-05-30Dorl, James J Esq RENEWAL60Ivan Magalhaes
1030Kaitlin D ShinkoJapan2025-05-24Rousseaux, Michael Esq RENEWAL7Bernardo Dominic
1031Jennifer B DoeCanada2025-06-13Rousseaux, Michael Esq PROPOSAL60Stephen Shaw
1032Kaitlin Y MaletArgentina2025-05-28King, Christopher A Esq PROPOSAL2Bernardo Dominic
1033Stacey E StockhamGermany2025-06-03Chanay, Jeffrey A Esq NEGOTIATION91Asiya Javayant
1034Chavez H MaletIndia2025-05-22Truhlar And Truhlar Attys UNQUALIFIED94Ivan Magalhaes
1035Julie I GlickRussia2025-05-18Morlong Associates UNQUALIFIED66Onyama Limba
1036Tony A CaldareraUnited Kingdom2025-05-16Chapman, Ross E Esq NEW20Ioni Bowcher
1037Chavez V AlbaresItaly2025-05-25King, Christopher A Esq PROPOSAL81Elwin Sharvill
1038Faith D WhobreyJapan2025-06-02Chanay, Jeffrey A Esq QUALIFIED54Stephen Shaw
1039Sinclair G CaudyGermany2025-06-11Truhlar And Truhlar Attys RENEWAL76Ioni Bowcher
1040Ashley O BriddickIndia2025-05-28Rousseaux, Michael Esq RENEWAL91Ioni Bowcher
1041Clifford I OldroydRussia2025-06-03Truhlar And Truhlar Attys NEW7Elwin Sharvill
1042Mujtaba U FerenczArgentina2025-06-05Rangoni Of Florence QUALIFIED32Bernardo Dominic
1043Mujtaba N OstroskyUnited Kingdom2025-06-03Rangoni Of Florence PROPOSAL44Amy Elsner
1044Nicolas M FollerGermany2025-06-09Chanay, Jeffrey A Esq RENEWAL63Elwin Sharvill
1045Nicolas Y WhobreyBrazil2025-05-16Commercial Press NEGOTIATION63Ioni Bowcher
1046Aruna I MaletBrazil2025-06-02Feltz Printing Service NEGOTIATION79Bernardo Dominic
1047Morrow Q MacleadFrance2025-06-02Rangoni Of Florence QUALIFIED10Asiya Javayant
1048Claire B MaletGermany2025-06-02Chemel, James L Cpa NEW90Bernardo Dominic
1049Jennifer D WhobreySpain2025-06-08Morlong Associates UNQUALIFIED70Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Izzy W GillianBrazilAsiya Javayant NEGOTIATION
Izzy L CaudyUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin D GarufiGermanyStephen Shaw NEGOTIATION
Maisha Y StensethJapanAsiya Javayant NEGOTIATION
Tony Z RoysterUnited KingdomStephen Shaw NEW
Cody Y FigeroaRussiaAmy Elsner UNQUALIFIED
Emily K SergiRussiaAnna Fali RENEWAL
Leja K FigeroaCanadaAnna Fali QUALIFIED
Ashley X ShinkoRussiaAnna Fali UNQUALIFIED
Smith V GarufiItalyAnna Fali QUALIFIED
Nicolas W StockhamUnited KingdomAmy Elsner NEW
Jennifer E SlusarskiFranceBernardo Dominic NEW
Emily Q GlickJapanStephen Shaw PROPOSAL
Ashley K FerenczBrazilOnyama Limba RENEWAL
Emily H WhobreyItalyIoni Bowcher PROPOSAL
Aruna N GarufiFranceOnyama Limba RENEWAL
Silvio H RutaCanadaIoni Bowcher NEGOTIATION
Ricardo H WhobreyAustraliaStephen Shaw NEGOTIATION
Izzy U PerinArgentinaElwin Sharvill PROPOSAL
Faith O FlosiSpainBernardo Dominic UNQUALIFIED
Ashley R StockhamJapanAsiya Javayant RENEWAL
David Y ShinkoJapanIvan Magalhaes NEW
Francesco I GlickRussiaAsiya Javayant NEGOTIATION
Antonio G SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Kadeem P OstroskyCanadaIoni Bowcher NEW
Mayumi L DilliardUnited KingdomXuxue Feng RENEWAL
Johnson H FollerCanadaAmy Elsner RENEWAL
Alejandro Q RoysterIndiaBernardo Dominic UNQUALIFIED
Kadeem U FigeroaAustraliaAmy Elsner QUALIFIED
Izzy T BriddickRussiaBernardo Dominic PROPOSAL
Aika T CampainRussiaAnna Fali UNQUALIFIED
Wickens H KuskoItalyXuxue Feng QUALIFIED
Rodrigues H IturbideItalyAmy Elsner PROPOSAL
Jeanfrancois N WaycottUnited KingdomAmy Elsner QUALIFIED
Jones O MacleadIndiaAsiya Javayant QUALIFIED
Maria S VenereCanadaBernardo Dominic UNQUALIFIED
Ashley I GlickCanadaXuxue Feng UNQUALIFIED
Jefferson H NestleUnited KingdomBernardo Dominic PROPOSAL
Aruna F OldroydRussiaAmy Elsner NEGOTIATION
Cody N NestleIndiaAnna Fali NEW
Wickens O DoeJapanBernardo Dominic RENEWAL
Tony N SaylorsArgentinaIvan Magalhaes NEGOTIATION
Jones Z NestleSpainStephen Shaw NEW
Cody X MaletArgentinaIoni Bowcher NEGOTIATION
Munro I DoeIndiaBernardo Dominic RENEWAL
Aditya M NestleRussiaAsiya Javayant UNQUALIFIED
Smith P SergiUnited KingdomStephen Shaw QUALIFIED
James D GauchoFranceOnyama Limba UNQUALIFIED
Antonio B TollnerRussiaAmy Elsner QUALIFIED
Morrow M WaycottItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Mujtaba O Foller
Aika T Schemmer
Silvio W Morasca
Octavia F Figeroa
Darci A Flosi
Jones P Wieser
Julie P Marrier
Morrow V Paprocki
Kadeem L Inouye
Leon L Slusarski
Greenwood Z Sergi
Murillo T Albares
Smith F Gillian
Antonio S Venere
Chavez K Caldarera
Salvatore F Schemmer
Antonio K Campain
Munro I Ostrosky
Sinclair V Iturbide
Misaki A Doe
Ricardo J Shinko
Ashley Q Wieser
Misaki L Glick
Misaki A Saylors
Julie F Chui
Claire B Doe
Faith D Kolmetz
Jones F Bolognia
Munro B Ruta
Kaitlin C Glick
James H Butt
Alejandro D Bolognia
Tony N Campain
Cody P Ferencz
Murillo Z Albares
Ashley D Sergi
Munro E Butt
Smith C Foller
Munro O Albares
Adams M Sergi
Jennifer W Albares
Faith C Stockham
Misaki V Bolognia
Sinclair S Foller
Aika F Ostrosky
Mujtaba C Albares
Antonio O Marrier
Aika C Oldroyd
Aditya J Oldroyd
Johnson S Oldroyd
IdCountryDate
1000Australia2025-06-11
1001Japan2025-05-27
1002India2025-05-16
1003Italy2025-05-25
1004Brazil2025-06-14
1005Germany2025-05-17
1006Italy2025-05-27
1007Germany2025-06-04
1008Argentina2025-05-21
1009Germany2025-06-08
1010Argentina2025-05-24
1011Brazil2025-06-06
1012Spain2025-06-06
1013France2025-06-07
1014United Kingdom2025-06-12
1015United Kingdom2025-06-03
1016Spain2025-05-24
1017Italy2025-06-05
1018Canada2025-06-01
1019Spain2025-05-22
1020Germany2025-05-17
1021Argentina2025-06-05
1022Spain2025-06-07
1023Spain2025-05-26
1024Argentina2025-05-24
1025Spain2025-05-27
1026Italy2025-05-16
1027Germany2025-06-13
1028Russia2025-05-24
1029India2025-05-17
1030Australia2025-05-25
1031Italy2025-06-11
1032India2025-06-13
1033Argentina2025-06-04
1034Japan2025-06-07
1035Russia2025-06-14
1036Germany2025-05-30
1037Argentina2025-05-29
1038Spain2025-06-13
1039France2025-06-02
1040Germany2025-06-03
1041Japan2025-06-07
1042Japan2025-06-13
1043Italy2025-05-16
1044Japan2025-05-23
1045Germany2025-06-03
1046India2025-06-13
1047Japan2025-05-22
1048Japan2025-06-04
1049Canada2025-05-25

On-Demand Data

NameIdCountryDate
Johnson U Butt1000Germany2025-06-12
Silvio J Stockham1001Italy2025-06-14
Ricardo U Butt1002United Kingdom2025-05-22
Aditya D Stockham1003Spain2025-05-22
Darci M Maclead1004Argentina2025-05-30
Darci Z Nicka1005Canada2025-05-29
Salvatore Z Foller1006Brazil2025-06-13
Antonio V Tollner1007India2025-05-20
Aditya D Gillian1008Brazil2025-05-25
Deepesh G Amigon1009Japan2025-06-10
Tony M Perin1010Brazil2025-05-21
Arvin H Gaucho1011Australia2025-06-12
Jeanfrancois Q Saylors1012India2025-06-02
Isabel R Slusarski1013France2025-06-04
Leja A Whobrey1014United Kingdom2025-05-24
Greenwood J Wieser1015Argentina2025-06-09
Costa L Shinko1016United Kingdom2025-05-30
James I Bowley1017Canada2025-06-03
Maisha E Royster1018India2025-06-06
Salvatore V Maclead1019Argentina2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin E MacleadBrazilStephen Shaw PROPOSAL
Ricardo Q ChuiBrazilAnna Fali RENEWAL
Mayumi H OstroskyUnited KingdomAnna Fali NEW
Sinclair Q ChuiFranceAmy Elsner RENEWAL
Stacey X AlbaresJapanStephen Shaw UNQUALIFIED
Munro O FerenczCanadaStephen Shaw UNQUALIFIED
Tony Q MaletCanadaElwin Sharvill RENEWAL
Kaitlin X MorascaGermanyIvan Magalhaes QUALIFIED
Chavez M SchemmerAustraliaStephen Shaw UNQUALIFIED
Deepesh X ButtUnited KingdomIvan Magalhaes PROPOSAL
Aruna Y VenereGermanyElwin Sharvill UNQUALIFIED
Rodrigues C CampainJapanElwin Sharvill NEGOTIATION
Faith D ShinkoItalyAnna Fali PROPOSAL
Aditya P GillianRussiaBernardo Dominic NEW
Faith Y MaletItalyIoni Bowcher PROPOSAL
Mayumi H GarufiIndiaAmy Elsner UNQUALIFIED
Greenwood G SaylorsIndiaAnna Fali NEW
Maisha D BriddickFranceAmy Elsner PROPOSAL
Ivar I VocelkaGermanyIvan Magalhaes RENEWAL
Sinclair A SaylorsSpainAnna Fali NEW
Nicolas L BriddickAustraliaIoni Bowcher UNQUALIFIED
Juan H FlosiItalyElwin Sharvill UNQUALIFIED
Kaitlin P ButtSpainAmy Elsner RENEWAL
Arvin L StensethBrazilAsiya Javayant NEGOTIATION
Sinclair Z GarufiSpainBernardo Dominic RENEWAL
Chavez H DilliardRussiaStephen Shaw RENEWAL
Cody O RulapaughRussiaBernardo Dominic NEGOTIATION
Maria E AmigonBrazilAsiya Javayant UNQUALIFIED
Arvin Y ChuiIndiaBernardo Dominic RENEWAL
Julie B ShinkoCanadaIoni Bowcher UNQUALIFIED
Aditya T SaylorsRussiaAsiya Javayant RENEWAL
Isabel P BologniaRussiaIvan Magalhaes QUALIFIED
Maria O SergiAustraliaIoni Bowcher QUALIFIED
Nicolas V CampainJapanBernardo Dominic PROPOSAL
Misaki Y VocelkaCanadaAnna Fali UNQUALIFIED
Kaitlin G MaletGermanyBernardo Dominic NEGOTIATION
Aruna W CaudyGermanyAsiya Javayant NEW
Kaitlin M RoysterArgentinaIoni Bowcher RENEWAL
Jeanfrancois T MaletIndiaAmy Elsner NEW
Jeanfrancois A WhobreyIndiaIoni Bowcher RENEWAL

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