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
Wickens M FollerSpainIvan Magalhaes UNQUALIFIED
Juan D CaudyArgentinaXuxue Feng QUALIFIED
Leja X CampainItalyIvan Magalhaes PROPOSAL
Mujtaba U SaylorsFranceBernardo Dominic PROPOSAL
Adams F KuskoRussiaIoni Bowcher PROPOSAL
James F GlickBrazilXuxue Feng UNQUALIFIED
Darci Z KuskoAustraliaIoni Bowcher PROPOSAL
Maria A SaylorsArgentinaOnyama Limba QUALIFIED
Juan U AmigonCanadaXuxue Feng QUALIFIED
Jennifer E BriddickItalyAsiya Javayant RENEWAL
Wickens J AlbaresRussiaIoni Bowcher NEW
Jefferson P IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Clifford Z FlosiRussiaIoni Bowcher PROPOSAL
Julie B MaletSpainXuxue Feng NEW
Chavez D KuskoRussiaIvan Magalhaes NEW
Mayumi S GlickSpainStephen Shaw QUALIFIED
Chavez U RimUnited KingdomAnna Fali NEGOTIATION
Murillo S PaprockiIndiaBernardo Dominic QUALIFIED
Alejandro K FigeroaArgentinaElwin Sharvill QUALIFIED
Wickens P DilliardAustraliaIvan Magalhaes UNQUALIFIED
Maria Y VocelkaAustraliaBernardo Dominic NEGOTIATION
Munro D WieserUnited KingdomElwin Sharvill UNQUALIFIED
Ashley X SergiCanadaAnna Fali PROPOSAL
Claire R RulapaughFranceBernardo Dominic QUALIFIED
Claire I GarufiIndiaIvan Magalhaes RENEWAL
Johnson S ButtFranceOnyama Limba UNQUALIFIED
Octavia A RoysterBrazilBernardo Dominic UNQUALIFIED
Jennifer R DoeItalyXuxue Feng NEGOTIATION
Jeanfrancois K BologniaItalyXuxue Feng PROPOSAL
Munro K FigeroaJapanOnyama Limba NEW
Jefferson Z WieserGermanyBernardo Dominic NEW
Julie V GauchoIndiaBernardo Dominic PROPOSAL
Ricardo N BowleyIndiaBernardo Dominic PROPOSAL
Wickens C BowleyItalyElwin Sharvill QUALIFIED
Sinclair A ButtBrazilAmy Elsner PROPOSAL
Kaitlin V PerinRussiaAsiya Javayant NEGOTIATION
Mujtaba V DoeRussiaXuxue Feng PROPOSAL
Chavez M SaylorsItalyOnyama Limba NEGOTIATION
Emily B GarufiAustraliaOnyama Limba RENEWAL
Ricardo Y BowleyAustraliaAsiya Javayant PROPOSAL
Leon I PerinBrazilIvan Magalhaes NEGOTIATION
Kaitlin E StensethUnited KingdomAnna Fali NEW
Mujtaba R FigeroaRussiaIoni Bowcher PROPOSAL
Morrow N VocelkaCanadaStephen Shaw NEW
Aika W FollerAustraliaAsiya Javayant NEW
Aruna Y NestleSpainXuxue Feng UNQUALIFIED
Ashley G PerinFranceBernardo Dominic NEW
James A OldroydItalyIoni Bowcher PROPOSAL
David F FerenczFranceIvan Magalhaes NEW
Costa U BowleyRussiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki X RimArgentinaXuxue Feng NEGOTIATION
Jefferson B MarrierCanadaBernardo Dominic PROPOSAL
Darci S ButtItalyStephen Shaw NEGOTIATION
Stacey X IturbideBrazilXuxue Feng PROPOSAL
Faith N FerenczRussiaIvan Magalhaes NEGOTIATION
Kaitlin J GillianIndiaStephen Shaw NEGOTIATION
Aika Z RimUnited KingdomAnna Fali PROPOSAL
Johnson Q ShinkoIndiaIvan Magalhaes QUALIFIED
Ricardo C ButtBrazilIoni Bowcher QUALIFIED
Costa L IturbideGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa C OldroydArgentina2025-04-28Chemel, James L Cpa NEW78Amy Elsner
1001Julie S InouyeBrazil2025-04-07Dorl, James J Esq RENEWAL17Onyama Limba
1002Ivar M FerenczAustralia2025-04-05Truhlar And Truhlar Attys QUALIFIED82Asiya Javayant
1003Faith U CaudyIndia2025-04-05Benton, John B Jr NEGOTIATION53Elwin Sharvill
1004Smith Q CaldareraIndia2025-04-27Truhlar And Truhlar Attys UNQUALIFIED40Xuxue Feng
1005Maisha A VocelkaGermany2025-04-07Truhlar And Truhlar Attys NEGOTIATION79Asiya Javayant
1006Octavia A FollerSpain2025-04-10Commercial Press QUALIFIED98Elwin Sharvill
1007Kaitlin P CaldareraGermany2025-04-17Chapman, Ross E Esq UNQUALIFIED27Ioni Bowcher
1008Claire H RoysterBrazil2025-04-02Chapman, Ross E Esq PROPOSAL99Xuxue Feng
1009Emily O AlbaresBrazil2025-04-04Dorl, James J Esq NEGOTIATION32Ioni Bowcher
1010Stacey V GauchoBrazil2025-04-13Rousseaux, Michael Esq QUALIFIED68Ioni Bowcher
1011Antonio I RimCanada2025-04-03Feltz Printing Service UNQUALIFIED32Elwin Sharvill
1012Jones P MorascaIndia2025-04-22Rangoni Of Florence UNQUALIFIED41Anna Fali
1013Jefferson D WieserItaly2025-04-28Chapman, Ross E Esq NEGOTIATION53Elwin Sharvill
1014Tony Q ShinkoCanada2025-04-23Rangoni Of Florence UNQUALIFIED48Onyama Limba
1015Isabel U GlickUnited Kingdom2025-04-19Rousseaux, Michael Esq UNQUALIFIED81Ivan Magalhaes
1016Silvio N RutaGermany2025-04-27Commercial Press NEGOTIATION95Ivan Magalhaes
1017Stacey F WaycottFrance2025-04-10Truhlar And Truhlar Attys PROPOSAL95Xuxue Feng
1018Jones V IturbideJapan2025-04-10King, Christopher A Esq PROPOSAL97Xuxue Feng
1019Ivar N WaycottArgentina2025-04-26Chapman, Ross E Esq PROPOSAL71Anna Fali
1020Morrow Z StockhamRussia2025-04-29Dorl, James J Esq NEGOTIATION61Asiya Javayant
1021Aika J PerinUnited Kingdom2025-04-24Rangoni Of Florence NEGOTIATION64Elwin Sharvill
1022Juan H AmigonSpain2025-04-20Rousseaux, Michael Esq UNQUALIFIED71Amy Elsner
1023Julie G FigeroaAustralia2025-04-12Benton, John B Jr QUALIFIED71Asiya Javayant
1024Mujtaba C ShinkoJapan2025-04-22Commercial Press UNQUALIFIED5Bernardo Dominic
1025Chavez X CampainIndia2025-04-23Commercial Press NEGOTIATION51Amy Elsner
1026Alejandro C PaprockiRussia2025-04-13Feiner Bros UNQUALIFIED7Anna Fali
1027Arvin R CampainArgentina2025-04-17Commercial Press NEW12Asiya Javayant
1028Jennifer P VenereUnited Kingdom2025-04-05Chapman, Ross E Esq QUALIFIED91Amy Elsner
1029Rodrigues Z PaprockiJapan2025-04-13Commercial Press QUALIFIED78Onyama Limba
1030Izzy T CaudyItaly2025-04-19Rangoni Of Florence RENEWAL34Bernardo Dominic
1031Wickens R IturbideBrazil2025-04-17Dorl, James J Esq NEGOTIATION32Stephen Shaw
1032Jeanfrancois N RutaAustralia2025-04-03Feiner Bros PROPOSAL48Ioni Bowcher
1033Maisha C StensethUnited Kingdom2025-04-28Printing Dimensions PROPOSAL28Asiya Javayant
1034Juan B GauchoArgentina2025-04-20Rangoni Of Florence UNQUALIFIED30Xuxue Feng
1035Ashley L BriddickFrance2025-04-26Printing Dimensions NEW51Anna Fali
1036Adams B SlusarskiCanada2025-04-18Chanay, Jeffrey A Esq NEGOTIATION79Elwin Sharvill
1037Ashley A GillianIndia2025-04-14Benton, John B Jr UNQUALIFIED78Ivan Magalhaes
1038Sinclair A VocelkaSpain2025-04-26Commercial Press UNQUALIFIED59Onyama Limba
1039Cody Q ChuiFrance2025-04-27Printing Dimensions UNQUALIFIED90Xuxue Feng
1040Rodrigues I BologniaGermany2025-04-02Feiner Bros NEGOTIATION75Ivan Magalhaes
1041Aditya U BriddickRussia2025-04-23Chapman, Ross E Esq QUALIFIED60Amy Elsner
1042Morrow K GarufiFrance2025-04-09Rangoni Of Florence NEW7Amy Elsner
1043Leja X BowleyRussia2025-04-07Rangoni Of Florence NEW71Onyama Limba
1044Aditya Z GlickItaly2025-04-01Feiner Bros PROPOSAL64Ioni Bowcher
1045Octavia F OldroydArgentina2025-04-08Chapman, Ross E Esq UNQUALIFIED29Stephen Shaw
1046Arvin E PerinAustralia2025-04-12Buckley Miller Wright QUALIFIED11Elwin Sharvill
1047Aika I DarakjyItaly2025-04-26Dorl, James J Esq NEGOTIATION91Amy Elsner
1048Deepesh C DoeItaly2025-04-23Commercial Press RENEWAL85Stephen Shaw
1049James R ChuiUnited Kingdom2025-04-16King, Christopher A Esq PROPOSAL4Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Alejandro R MaletUnited KingdomBernardo Dominic QUALIFIED
Greenwood O RoysterBrazilStephen Shaw UNQUALIFIED
Tony W AlbaresIndiaIvan Magalhaes QUALIFIED
Claire G MacleadJapanOnyama Limba QUALIFIED
Aika J ButtGermanyXuxue Feng UNQUALIFIED
Antonio Y CampainAustraliaBernardo Dominic NEGOTIATION
James E MarrierGermanyElwin Sharvill UNQUALIFIED
Greenwood D SchemmerAustraliaIoni Bowcher PROPOSAL
Ivar R RutaFranceElwin Sharvill NEGOTIATION
Leja O WhobreyBrazilStephen Shaw UNQUALIFIED
Mujtaba X FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Julie C CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Adams O CaldareraCanadaBernardo Dominic PROPOSAL
Jones C RoysterBrazilBernardo Dominic PROPOSAL
Darci H FigeroaCanadaOnyama Limba UNQUALIFIED
Rodrigues I SergiBrazilAnna Fali RENEWAL
Cody Q MaletIndiaBernardo Dominic QUALIFIED
Francesco P BriddickGermanyAsiya Javayant RENEWAL
Jeanfrancois X KuskoRussiaElwin Sharvill QUALIFIED
Deepesh X PerinFranceIoni Bowcher UNQUALIFIED
Jeanfrancois A FerenczCanadaAnna Fali NEW
Alejandro C PoquetteRussiaElwin Sharvill NEW
Cody P MaletUnited KingdomXuxue Feng NEGOTIATION
Misaki W StockhamUnited KingdomStephen Shaw UNQUALIFIED
Cody A OstroskyIndiaIvan Magalhaes QUALIFIED
Rodrigues G ChuiBrazilAmy Elsner PROPOSAL
Aika M AlbaresCanadaElwin Sharvill PROPOSAL
Darci H RimItalyAsiya Javayant NEW
Aika Y RoysterBrazilAsiya Javayant PROPOSAL
Ashley Z RutaJapanXuxue Feng RENEWAL
Salvatore X NestleGermanyXuxue Feng NEW
Jeanfrancois G WhobreyArgentinaIoni Bowcher QUALIFIED
Mayumi H GillianBrazilAsiya Javayant PROPOSAL
Kadeem T ShinkoArgentinaStephen Shaw NEGOTIATION
Ivar I GauchoAustraliaAnna Fali PROPOSAL
Isabel L CaldareraBrazilXuxue Feng UNQUALIFIED
Leon A CaldareraBrazilIoni Bowcher RENEWAL
Mujtaba W StockhamGermanyXuxue Feng NEW
Jeanfrancois P ChuiRussiaAnna Fali RENEWAL
Aika T FlosiUnited KingdomBernardo Dominic RENEWAL
Octavia Q CaldareraArgentinaAsiya Javayant RENEWAL
Mayumi Z GlickCanadaOnyama Limba RENEWAL
Rodrigues Z BologniaIndiaIvan Magalhaes NEW
Clifford Q IturbideArgentinaStephen Shaw PROPOSAL
Kaitlin W GarufiGermanyIvan Magalhaes QUALIFIED
Mayumi C MaletAustraliaAsiya Javayant NEGOTIATION
Johnson N TollnerGermanyAmy Elsner PROPOSAL
Smith Y InouyeIndiaStephen Shaw NEW
Kaitlin K OstroskySpainStephen Shaw UNQUALIFIED
Misaki B DarakjyAustraliaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Salvatore S Dilliard
Costa M Iturbide
Clifford A Poquette
Smith N Dilliard
Maisha N Ferencz
Deepesh V Marrier
Jefferson R Rim
Mujtaba W Maclead
Octavia E Royster
Sinclair V Gillian
Kadeem O Stenseth
Costa A Campain
Mujtaba G Marrier
Clifford Y Albares
Maisha X Waycott
Jones E Caldarera
Ashley X Stenseth
Emily H Caldarera
James M Gaucho
Jeanfrancois R Nestle
David Y Oldroyd
Kadeem M Foller
Darci B Malet
Julie M Sergi
Rodrigues N Vocelka
Greenwood Q Amigon
Alejandro Q Malet
Alejandro C Malet
Murillo Q Rulapaugh
Antonio Z Iturbide
Sinclair S Tollner
Isabel W Nicka
Johnson B Campain
Jefferson G Morasca
Deepesh B Kolmetz
Faith Q Ostrosky
Silvio X Bolognia
Sinclair V Dilliard
Aditya H Darakjy
Aruna D Oldroyd
Kaitlin X Amigon
Antonio K Caudy
Kaitlin Y Venere
Antonio N Shinko
Chavez U Morasca
Izzy M Inouye
Kaitlin C Dilliard
Nicolas M Stockham
Darci Z Gaucho
Juan S Saylors
IdCountryDate
1000France2025-04-24
1001Spain2025-04-28
1002Italy2025-04-25
1003Italy2025-04-21
1004Argentina2025-04-28
1005Japan2025-04-20
1006Brazil2025-04-21
1007Russia2025-04-20
1008Japan2025-04-07
1009United Kingdom2025-04-25
1010Canada2025-04-08
1011Brazil2025-04-03
1012Japan2025-04-15
1013India2025-04-30
1014Brazil2025-04-14
1015United Kingdom2025-04-15
1016Russia2025-04-03
1017India2025-04-04
1018France2025-04-05
1019United Kingdom2025-04-06
1020Russia2025-04-24
1021France2025-04-30
1022Brazil2025-04-26
1023India2025-04-10
1024United Kingdom2025-04-16
1025France2025-04-11
1026Spain2025-04-14
1027France2025-04-04
1028Brazil2025-04-17
1029Australia2025-04-25
1030Brazil2025-04-18
1031Australia2025-04-27
1032France2025-04-08
1033Australia2025-04-27
1034United Kingdom2025-04-08
1035Japan2025-04-07
1036India2025-04-22
1037Japan2025-04-17
1038Australia2025-04-26
1039Canada2025-04-13
1040Germany2025-04-12
1041Brazil2025-04-24
1042Australia2025-04-11
1043Italy2025-04-06
1044France2025-04-26
1045Australia2025-04-06
1046France2025-04-29
1047Australia2025-04-06
1048India2025-04-07
1049Brazil2025-04-03

On-Demand Data

NameIdCountryDate
Claire F Sergi1000Canada2025-04-04
Cody Y Schemmer1001Italy2025-04-13
Izzy U Flosi1002Russia2025-04-21
Octavia E Paprocki1003Spain2025-04-11
James V Perin1004India2025-04-13
Rodrigues M Bowley1005France2025-04-15
Aditya R Albares1006Argentina2025-04-29
Clifford R Inouye1007Canada2025-04-13
Antonio F Ostrosky1008Brazil2025-04-24
David A Dilliard1009Australia2025-04-04
Juan R Ruta1010France2025-04-18
Faith A Bowley1011Argentina2025-04-29
Emily K Oldroyd1012France2025-04-27
Nicolas K Ruta1013Brazil2025-04-25
Aditya H Gillian1014Russia2025-04-30
Juan B Tollner1015Australia2025-04-12
Kadeem E Ferencz1016United Kingdom2025-04-02
Kaitlin S Iturbide1017France2025-04-23
Rodrigues A Perin1018India2025-04-29
Maisha M Kolmetz1019Canada2025-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith I ShinkoFranceIvan Magalhaes RENEWAL
Sinclair M GauchoGermanyAsiya Javayant NEGOTIATION
Chavez M WhobreyBrazilIvan Magalhaes RENEWAL
Francesco N SlusarskiGermanyOnyama Limba NEW
Jennifer Y ChuiFranceAnna Fali UNQUALIFIED
Antonio T FerenczGermanyStephen Shaw QUALIFIED
Aika K GlickBrazilAsiya Javayant PROPOSAL
Francesco O StockhamArgentinaXuxue Feng RENEWAL
Misaki C RulapaughArgentinaOnyama Limba RENEWAL
Emily N MacleadIndiaBernardo Dominic PROPOSAL
Jennifer W BologniaSpainAnna Fali RENEWAL
Chavez O SlusarskiJapanOnyama Limba NEW
Ivar W RulapaughFranceIvan Magalhaes NEGOTIATION
Aika C NickaJapanAsiya Javayant QUALIFIED
Aditya Y IturbideGermanyAmy Elsner UNQUALIFIED
Ricardo R ShinkoArgentinaBernardo Dominic NEGOTIATION
Sinclair P GlickArgentinaXuxue Feng RENEWAL
Greenwood T SaylorsUnited KingdomStephen Shaw RENEWAL
Adams J RimCanadaOnyama Limba UNQUALIFIED
Emily E MarrierGermanyStephen Shaw NEGOTIATION
Adams K WhobreyItalyXuxue Feng NEW
Ashley F SchemmerCanadaBernardo Dominic NEGOTIATION
Jones E NestleArgentinaOnyama Limba NEW
David U FollerFranceAmy Elsner UNQUALIFIED
Jefferson D PerinUnited KingdomIvan Magalhaes QUALIFIED
Smith K SlusarskiGermanyIoni Bowcher NEW
Nicolas G DilliardJapanAmy Elsner NEW
Ricardo N ShinkoItalyIvan Magalhaes PROPOSAL
Faith J VenereCanadaAnna Fali NEW
Ivar M MacleadAustraliaOnyama Limba UNQUALIFIED
Adams A StockhamUnited KingdomElwin Sharvill UNQUALIFIED
James J StensethRussiaElwin Sharvill NEGOTIATION
Faith Z RimSpainAmy Elsner RENEWAL
Aruna A MorascaGermanyIvan Magalhaes UNQUALIFIED
Ricardo Z FigeroaBrazilElwin Sharvill QUALIFIED
Deepesh O RimItalyAsiya Javayant QUALIFIED
Adams U PaprockiJapanIvan Magalhaes UNQUALIFIED
Jefferson L AmigonUnited KingdomElwin Sharvill RENEWAL
Chavez P DoeRussiaStephen Shaw NEGOTIATION
Ashley V GarufiCanadaStephen Shaw 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>