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
Cody A KuskoItalyXuxue Feng NEGOTIATION
James J OldroydSpainElwin Sharvill RENEWAL
Ivar L PoquetteArgentinaElwin Sharvill NEW
Aruna F FlosiUnited KingdomAmy Elsner NEGOTIATION
Morrow W InouyeBrazilBernardo Dominic UNQUALIFIED
Rodrigues U StockhamJapanBernardo Dominic NEGOTIATION
Munro X OldroydAustraliaAnna Fali QUALIFIED
Costa H CaudyUnited KingdomAmy Elsner NEW
Cody O NestleUnited KingdomAnna Fali PROPOSAL
Leon E BriddickIndiaAsiya Javayant UNQUALIFIED
Claire X FigeroaArgentinaIoni Bowcher NEW
Leja N BologniaGermanyBernardo Dominic NEW
Maisha U SaylorsGermanyAsiya Javayant NEW
Costa T GillianFranceBernardo Dominic NEGOTIATION
Morrow T FlosiCanadaOnyama Limba UNQUALIFIED
Alejandro R DilliardGermanyOnyama Limba PROPOSAL
Kadeem S IturbideUnited KingdomAnna Fali PROPOSAL
Ivar Z PoquetteCanadaStephen Shaw PROPOSAL
Mujtaba G SlusarskiSpainOnyama Limba NEGOTIATION
Clifford R InouyeRussiaXuxue Feng NEGOTIATION
Faith V WaycottFranceXuxue Feng NEGOTIATION
Smith L WhobreyCanadaXuxue Feng NEW
Greenwood E KuskoSpainAsiya Javayant NEGOTIATION
Darci F CaldareraArgentinaXuxue Feng PROPOSAL
Mujtaba D KolmetzItalyOnyama Limba QUALIFIED
Kadeem G DarakjyRussiaIvan Magalhaes QUALIFIED
Sinclair O MaletAustraliaIvan Magalhaes QUALIFIED
Emily K BowleyCanadaAnna Fali PROPOSAL
Juan J FollerRussiaStephen Shaw QUALIFIED
Francesco J RoysterFranceElwin Sharvill UNQUALIFIED
Ashley A ButtArgentinaAmy Elsner NEW
Mayumi F StensethJapanIoni Bowcher UNQUALIFIED
Leja J MarrierGermanyIoni Bowcher NEW
Murillo K VocelkaBrazilAsiya Javayant RENEWAL
Aditya D IturbideJapanIvan Magalhaes NEGOTIATION
Johnson X GillianBrazilAmy Elsner RENEWAL
Claire L OstroskyJapanIvan Magalhaes QUALIFIED
Aika I AlbaresJapanOnyama Limba NEW
Francesco E ButtRussiaIvan Magalhaes PROPOSAL
Tony Y RoysterGermanyAsiya Javayant UNQUALIFIED
Misaki W FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Aditya N GarufiBrazilAnna Fali PROPOSAL
Jennifer Y MarrierIndiaAmy Elsner RENEWAL
Munro S ChuiUnited KingdomIoni Bowcher RENEWAL
Octavia O VocelkaCanadaAnna Fali QUALIFIED
Julie F FollerItalyAnna Fali QUALIFIED
Faith R NickaCanadaElwin Sharvill NEW
Smith M MacleadFranceIvan Magalhaes RENEWAL
Ricardo Z InouyeFranceXuxue Feng PROPOSAL
Mayumi P MaletUnited KingdomAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams V AmigonCanadaBernardo Dominic NEW
Jones G PerinAustraliaXuxue Feng UNQUALIFIED
Cody A ShinkoItalyIvan Magalhaes NEGOTIATION
Francesco E CaldareraAustraliaOnyama Limba NEW
Misaki W SlusarskiSpainAmy Elsner NEW
Ivar J DarakjyBrazilBernardo Dominic RENEWAL
Alejandro K GarufiCanadaXuxue Feng RENEWAL
Ricardo W KolmetzJapanBernardo Dominic NEGOTIATION
Arvin V KuskoItalyIvan Magalhaes NEGOTIATION
Rodrigues D DarakjyRussiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon M DarakjyUnited Kingdom2025-06-02Morlong Associates QUALIFIED48Xuxue Feng
1001Alejandro O BriddickRussia2025-06-09Benton, John B Jr UNQUALIFIED9Bernardo Dominic
1002Nicolas Q InouyeSpain2025-05-29Rangoni Of Florence NEGOTIATION82Amy Elsner
1003Salvatore M DoeFrance2025-05-21King, Christopher A Esq UNQUALIFIED60Amy Elsner
1004Leja Q RoysterItaly2025-06-14Dorl, James J Esq PROPOSAL29Onyama Limba
1005Emily B MacleadBrazil2025-06-15Morlong Associates NEGOTIATION82Stephen Shaw
1006Adams K NickaArgentina2025-06-15Printing Dimensions UNQUALIFIED71Amy Elsner
1007Aditya L NickaAustralia2025-05-24Dorl, James J Esq PROPOSAL88Xuxue Feng
1008Tony H OstroskyBrazil2025-05-26Feiner Bros UNQUALIFIED15Ivan Magalhaes
1009Aika K DarakjyAustralia2025-05-20Printing Dimensions UNQUALIFIED97Onyama Limba
1010Aditya R MarrierBrazil2025-05-19Truhlar And Truhlar Attys NEGOTIATION39Ivan Magalhaes
1011Jeanfrancois N SergiFrance2025-05-26Rousseaux, Michael Esq UNQUALIFIED99Asiya Javayant
1012Jeanfrancois J VocelkaRussia2025-05-24Buckley Miller Wright NEW87Stephen Shaw
1013Misaki O KolmetzUnited Kingdom2025-05-22Feiner Bros NEW63Bernardo Dominic
1014Octavia C RulapaughSpain2025-05-29Dorl, James J Esq NEGOTIATION46Asiya Javayant
1015Darci K WhobreyRussia2025-06-11Truhlar And Truhlar Attys PROPOSAL31Ivan Magalhaes
1016Claire Q KuskoCanada2025-06-05Commercial Press UNQUALIFIED75Ivan Magalhaes
1017Chavez Q FlosiArgentina2025-05-17Printing Dimensions NEGOTIATION74Ivan Magalhaes
1018Jefferson C IturbideFrance2025-06-03Rangoni Of Florence PROPOSAL77Stephen Shaw
1019Murillo S AlbaresArgentina2025-06-12Chanay, Jeffrey A Esq UNQUALIFIED63Ioni Bowcher
1020Jeanfrancois L MorascaJapan2025-06-15Morlong Associates NEW0Amy Elsner
1021Sinclair X StensethCanada2025-06-09Buckley Miller Wright QUALIFIED75Ioni Bowcher
1022Nicolas R StockhamUnited Kingdom2025-05-30Benton, John B Jr PROPOSAL39Amy Elsner
1023Aika I FigeroaIndia2025-05-20Commercial Press PROPOSAL23Xuxue Feng
1024Mujtaba H ButtItaly2025-06-12Feiner Bros NEW24Asiya Javayant
1025Greenwood Q FigeroaJapan2025-05-31Rangoni Of Florence PROPOSAL62Amy Elsner
1026Julie I WaycottSpain2025-06-14Printing Dimensions RENEWAL12Ivan Magalhaes
1027Mayumi D InouyeFrance2025-06-09Buckley Miller Wright QUALIFIED17Asiya Javayant
1028Aditya R DilliardIndia2025-06-10Morlong Associates UNQUALIFIED59Stephen Shaw
1029Costa B PaprockiBrazil2025-05-29Truhlar And Truhlar Attys PROPOSAL97Stephen Shaw
1030Arvin R PoquetteAustralia2025-06-07Feltz Printing Service PROPOSAL24Elwin Sharvill
1031Ricardo V VocelkaUnited Kingdom2025-06-12Morlong Associates NEGOTIATION38Asiya Javayant
1032Tony W AlbaresItaly2025-05-17Commercial Press NEW20Amy Elsner
1033Leja A BriddickCanada2025-05-21Morlong Associates QUALIFIED15Xuxue Feng
1034Mayumi N MaletGermany2025-05-23Chapman, Ross E Esq UNQUALIFIED76Stephen Shaw
1035Alejandro F MaletJapan2025-05-31Benton, John B Jr PROPOSAL84Bernardo Dominic
1036Smith P InouyeUnited Kingdom2025-06-05Morlong Associates NEGOTIATION64Anna Fali
1037Emily U WieserSpain2025-05-19Morlong Associates NEW56Amy Elsner
1038Chavez E AlbaresFrance2025-05-26Rousseaux, Michael Esq QUALIFIED36Elwin Sharvill
1039Stacey X MorascaItaly2025-06-09Buckley Miller Wright UNQUALIFIED57Elwin Sharvill
1040Francesco F GillianJapan2025-05-24Chanay, Jeffrey A Esq RENEWAL92Xuxue Feng
1041Aika U GauchoFrance2025-06-11Printing Dimensions QUALIFIED34Anna Fali
1042Mujtaba C MarrierFrance2025-05-29Feiner Bros NEGOTIATION95Anna Fali
1043Juan C WieserSpain2025-05-28Chemel, James L Cpa UNQUALIFIED96Elwin Sharvill
1044Jones Q ChuiJapan2025-06-13Truhlar And Truhlar Attys QUALIFIED15Onyama Limba
1045Aditya K RulapaughCanada2025-06-03Chemel, James L Cpa PROPOSAL19Anna Fali
1046Nicolas H ChuiIndia2025-05-30Rangoni Of Florence PROPOSAL93Elwin Sharvill
1047Maria A MarrierAustralia2025-06-06Chapman, Ross E Esq PROPOSAL18Amy Elsner
1048Misaki J SchemmerJapan2025-06-12King, Christopher A Esq RENEWAL81Amy Elsner
1049Munro C RulapaughIndia2025-06-14Benton, John B Jr RENEWAL36Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki F RutaBrazilBernardo Dominic UNQUALIFIED
Arvin M StockhamItalyAsiya Javayant RENEWAL
Leon L GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro H GarufiCanadaStephen Shaw NEW
Wickens K BowleyGermanyIvan Magalhaes PROPOSAL
Antonio P InouyeUnited KingdomIoni Bowcher RENEWAL
Izzy E OldroydUnited KingdomAnna Fali RENEWAL
Kadeem B DarakjyRussiaStephen Shaw QUALIFIED
Stacey L KuskoIndiaAsiya Javayant NEW
Greenwood F ButtCanadaAmy Elsner QUALIFIED
Julie H FollerJapanIvan Magalhaes RENEWAL
Clifford Y ChuiJapanAnna Fali RENEWAL
Octavia U PerinSpainStephen Shaw UNQUALIFIED
Smith M MarrierArgentinaAnna Fali NEGOTIATION
Johnson A KolmetzIndiaAmy Elsner NEGOTIATION
Mayumi R SchemmerCanadaIoni Bowcher QUALIFIED
Izzy B PaprockiGermanyBernardo Dominic UNQUALIFIED
Johnson V StockhamSpainXuxue Feng UNQUALIFIED
Chavez F DarakjyItalyAmy Elsner QUALIFIED
Leja P MaletBrazilBernardo Dominic QUALIFIED
Wickens L ButtGermanyIoni Bowcher NEGOTIATION
Kaitlin H MaletUnited KingdomAnna Fali NEGOTIATION
Julie S NickaSpainStephen Shaw PROPOSAL
Johnson I KolmetzCanadaBernardo Dominic NEGOTIATION
Ashley Q NickaBrazilStephen Shaw NEGOTIATION
Salvatore R SlusarskiSpainIoni Bowcher NEW
Isabel H RulapaughCanadaStephen Shaw QUALIFIED
Salvatore J SlusarskiAustraliaIvan Magalhaes RENEWAL
Maisha H AmigonCanadaElwin Sharvill UNQUALIFIED
Antonio R FollerBrazilElwin Sharvill QUALIFIED
Clifford G ShinkoJapanIoni Bowcher PROPOSAL
Johnson W CampainSpainElwin Sharvill NEGOTIATION
Jefferson M RutaUnited KingdomAmy Elsner NEGOTIATION
Wickens M CampainSpainOnyama Limba NEGOTIATION
Faith A AmigonFranceOnyama Limba UNQUALIFIED
Chavez A DilliardAustraliaAmy Elsner NEGOTIATION
Jeanfrancois Z AlbaresGermanyStephen Shaw NEGOTIATION
Kaitlin S SchemmerJapanAnna Fali NEW
Kadeem J FerenczRussiaElwin Sharvill PROPOSAL
Octavia Y RulapaughSpainAsiya Javayant UNQUALIFIED
Jennifer R NestleCanadaAmy Elsner UNQUALIFIED
David C SaylorsArgentinaBernardo Dominic NEGOTIATION
Salvatore X WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Costa W TollnerArgentinaOnyama Limba RENEWAL
Antonio U CaudyRussiaElwin Sharvill UNQUALIFIED
Claire M BologniaFranceIvan Magalhaes PROPOSAL
Isabel R FlosiRussiaIoni Bowcher RENEWAL
Jones A WaycottIndiaStephen Shaw QUALIFIED
Antonio W WaycottArgentinaAsiya Javayant PROPOSAL
Salvatore E InouyeFranceAnna Fali RENEWAL
Frozen Columns
Name
Morrow O Ruta
Leja R Saylors
Cody U Tollner
Silvio U Iturbide
Jones M Shinko
Claire V Caudy
Jeanfrancois M Amigon
Jennifer Q Waycott
Jefferson O Royster
Jones B Bowley
Adams F Tollner
Izzy J Ostrosky
Jones V Poquette
Jennifer W Campain
Isabel V Nestle
Salvatore A Slusarski
Costa D Poquette
Johnson R Perin
Julie B Ferencz
Sinclair K Rim
Leja Y Doe
Rodrigues U Stockham
Antonio J Ostrosky
Ashley R Poquette
Jeanfrancois T Waycott
Jones B Amigon
Cody O Ostrosky
Leon Z Dilliard
Emily F Caudy
Jennifer I Rim
Alejandro X Flosi
Rodrigues H Gaucho
Kaitlin Q Rim
Juan Z Stenseth
Kaitlin P Paprocki
Mujtaba J Inouye
Isabel H Oldroyd
Sinclair R Oldroyd
Johnson T Ruta
Leja G Sergi
Aruna H Schemmer
David E Nicka
Morrow M Dilliard
Antonio T Nestle
Greenwood O Tollner
Francesco Z Inouye
Emily W Nestle
Maria L Slusarski
Aika Y Tollner
Johnson N Waycott
IdCountryDate
1000Italy2025-06-11
1001India2025-05-26
1002France2025-06-06
1003Australia2025-05-21
1004United Kingdom2025-05-20
1005Canada2025-05-24
1006Japan2025-06-03
1007Australia2025-05-20
1008France2025-05-29
1009Germany2025-05-24
1010Russia2025-05-19
1011Italy2025-05-30
1012Argentina2025-05-31
1013United Kingdom2025-06-14
1014Australia2025-05-27
1015Canada2025-05-19
1016Argentina2025-05-22
1017Spain2025-06-02
1018Brazil2025-05-17
1019Argentina2025-06-11
1020Argentina2025-06-07
1021Spain2025-05-19
1022Italy2025-06-03
1023United Kingdom2025-05-17
1024Russia2025-05-23
1025Russia2025-05-20
1026Spain2025-05-20
1027Argentina2025-06-11
1028United Kingdom2025-05-25
1029Spain2025-05-25
1030France2025-06-09
1031Brazil2025-05-26
1032Argentina2025-06-04
1033Japan2025-05-21
1034Canada2025-06-03
1035India2025-05-21
1036Argentina2025-06-11
1037India2025-06-13
1038Russia2025-06-10
1039India2025-06-01
1040Canada2025-06-07
1041Argentina2025-05-28
1042Spain2025-06-03
1043United Kingdom2025-05-18
1044Italy2025-06-10
1045United Kingdom2025-06-07
1046Canada2025-05-28
1047Japan2025-05-30
1048India2025-05-25
1049France2025-05-22

On-Demand Data

NameIdCountryDate
Kaitlin B Nicka1000Canada2025-06-09
Aditya S Vocelka1001Australia2025-05-24
Alejandro O Inouye1002France2025-06-04
Aruna W Whobrey1003Germany2025-06-15
Kaitlin W Rulapaugh1004Brazil2025-06-03
Smith J Royster1005Japan2025-05-28
Leja X Marrier1006Canada2025-05-23
Stacey V Whobrey1007Brazil2025-06-13
Wickens O Schemmer1008United Kingdom2025-05-26
Salvatore W Iturbide1009Germany2025-05-26
Silvio T Iturbide1010United Kingdom2025-06-15
Kadeem W Rulapaugh1011Canada2025-06-14
Chavez Z Wieser1012Australia2025-05-22
Morrow I Kolmetz1013Japan2025-05-21
Darci T Marrier1014Italy2025-06-15
Julie U Campain1015Brazil2025-06-02
Aditya W Malet1016India2025-06-15
Rodrigues Q Caldarera1017France2025-06-07
Cody O Waycott1018India2025-05-20
Izzy Z Amigon1019France2025-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones T KolmetzIndiaIoni Bowcher NEW
Jones X CaudyGermanyXuxue Feng QUALIFIED
Alejandro C VenereArgentinaElwin Sharvill NEGOTIATION
Mayumi U NestleSpainAnna Fali UNQUALIFIED
Aika L GauchoJapanElwin Sharvill RENEWAL
Smith A SaylorsRussiaBernardo Dominic PROPOSAL
Tony Z RimIndiaAnna Fali NEGOTIATION
Morrow Y ChuiCanadaAmy Elsner UNQUALIFIED
Faith U MaletUnited KingdomOnyama Limba NEGOTIATION
Munro Z CaudyArgentinaOnyama Limba NEW
Sinclair Z SergiFranceXuxue Feng UNQUALIFIED
Aditya Q IturbideCanadaIoni Bowcher NEW
Smith M MarrierBrazilIvan Magalhaes RENEWAL
David W GarufiUnited KingdomAmy Elsner NEGOTIATION
David D AmigonFranceAmy Elsner UNQUALIFIED
Stacey Q IturbideAustraliaAmy Elsner NEGOTIATION
Misaki W TollnerGermanyElwin Sharvill PROPOSAL
Johnson R FigeroaFranceBernardo Dominic PROPOSAL
Murillo T ChuiIndiaXuxue Feng NEW
Clifford W MorascaIndiaOnyama Limba RENEWAL
Jones Z GauchoSpainXuxue Feng QUALIFIED
Stacey L OldroydFranceIvan Magalhaes QUALIFIED
Smith O FigeroaCanadaIvan Magalhaes UNQUALIFIED
Kadeem U GarufiBrazilIvan Magalhaes UNQUALIFIED
Rodrigues G KuskoGermanyXuxue Feng UNQUALIFIED
Ivar H BowleySpainBernardo Dominic NEW
Costa R RulapaughAustraliaBernardo Dominic NEW
Julie S RoysterFranceAmy Elsner RENEWAL
Izzy X RimUnited KingdomIvan Magalhaes NEW
Silvio X RoysterGermanyElwin Sharvill NEGOTIATION
Jeanfrancois Z ShinkoAustraliaAsiya Javayant PROPOSAL
Misaki W FlosiCanadaOnyama Limba QUALIFIED
Julie Z GauchoIndiaAsiya Javayant UNQUALIFIED
Nicolas E RoysterCanadaAsiya Javayant UNQUALIFIED
Nicolas R MarrierRussiaIoni Bowcher NEW
Leon L ChuiFranceElwin Sharvill QUALIFIED
Kadeem H NickaGermanyBernardo Dominic PROPOSAL
Tony Q FigeroaItalyAnna Fali PROPOSAL
Maisha J GarufiUnited KingdomIoni Bowcher NEGOTIATION
Tony I VocelkaGermanyAsiya Javayant 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>