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
Rodrigues X CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro T BologniaJapanAnna Fali UNQUALIFIED
Johnson C KuskoBrazilElwin Sharvill NEW
Leja A CaudyGermanyAsiya Javayant UNQUALIFIED
Murillo J WhobreyIndiaStephen Shaw UNQUALIFIED
Munro T BowleyIndiaStephen Shaw PROPOSAL
Morrow H FigeroaIndiaElwin Sharvill NEGOTIATION
Maisha P SchemmerAustraliaElwin Sharvill NEW
Kaitlin D InouyeUnited KingdomIoni Bowcher PROPOSAL
Faith U PaprockiUnited KingdomOnyama Limba QUALIFIED
Antonio V MaletIndiaElwin Sharvill PROPOSAL
Jones D PaprockiArgentinaIoni Bowcher NEGOTIATION
Chavez Z RutaItalyAsiya Javayant NEGOTIATION
Johnson G MorascaGermanyBernardo Dominic UNQUALIFIED
Mujtaba C WieserSpainIoni Bowcher RENEWAL
Aika M PoquetteCanadaAsiya Javayant NEGOTIATION
Leja F StockhamBrazilBernardo Dominic QUALIFIED
Munro U MaletBrazilAnna Fali UNQUALIFIED
Arvin A BriddickFranceAnna Fali PROPOSAL
Leja Z GarufiFranceElwin Sharvill PROPOSAL
Aruna T RutaIndiaElwin Sharvill UNQUALIFIED
Jennifer O SergiAustraliaIvan Magalhaes NEGOTIATION
Mayumi U KolmetzCanadaAsiya Javayant PROPOSAL
Rodrigues O NestleGermanyAmy Elsner NEW
Jones M ButtCanadaAmy Elsner NEGOTIATION
Misaki A AlbaresSpainBernardo Dominic NEGOTIATION
Maria O DoeUnited KingdomIvan Magalhaes NEGOTIATION
Kaitlin E BriddickSpainOnyama Limba NEGOTIATION
Octavia Y NestleSpainElwin Sharvill UNQUALIFIED
Ivar X PaprockiItalyStephen Shaw NEGOTIATION
Mujtaba S OstroskySpainOnyama Limba PROPOSAL
Greenwood P CaldareraGermanyXuxue Feng QUALIFIED
Alejandro W MacleadAustraliaIoni Bowcher PROPOSAL
Ricardo A AmigonAustraliaElwin Sharvill PROPOSAL
Emily D RulapaughAustraliaStephen Shaw RENEWAL
Jennifer M PerinIndiaAsiya Javayant RENEWAL
Salvatore R FigeroaArgentinaIoni Bowcher QUALIFIED
Rodrigues I PoquetteItalyOnyama Limba RENEWAL
Kadeem R BologniaArgentinaIvan Magalhaes RENEWAL
Claire O SergiRussiaStephen Shaw NEGOTIATION
Juan M GarufiIndiaBernardo Dominic NEGOTIATION
Sinclair R ChuiItalyBernardo Dominic UNQUALIFIED
Julie V InouyeItalyIvan Magalhaes NEW
Maisha R GillianFranceOnyama Limba QUALIFIED
Cody B ChuiJapanIvan Magalhaes PROPOSAL
Smith X DarakjyCanadaElwin Sharvill NEW
Ivar X GarufiAustraliaOnyama Limba UNQUALIFIED
Deepesh A WaycottSpainOnyama Limba NEW
Francesco Q DarakjyIndiaIvan Magalhaes NEGOTIATION
Kadeem K FlosiRussiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore L BologniaUnited KingdomIoni Bowcher RENEWAL
Izzy K FerenczIndiaAmy Elsner NEW
Faith X MarrierItalyBernardo Dominic RENEWAL
Silvio X RutaRussiaStephen Shaw PROPOSAL
Octavia C SchemmerCanadaXuxue Feng PROPOSAL
Clifford K NestleRussiaAnna Fali PROPOSAL
Stacey J DilliardBrazilBernardo Dominic UNQUALIFIED
Alejandro X MaletUnited KingdomAnna Fali NEW
Nicolas I PerinArgentinaAsiya Javayant QUALIFIED
Mayumi E GauchoSpainIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin H MarrierArgentina2026-07-20Benton, John B Jr UNQUALIFIED71Onyama Limba
1001Ricardo A DarakjyAustralia2026-07-07Commercial Press RENEWAL7Bernardo Dominic
1002Aditya J PaprockiItaly2026-06-26Buckley Miller Wright NEW88Amy Elsner
1003Morrow L TollnerRussia2026-07-20Feltz Printing Service NEGOTIATION75Ivan Magalhaes
1004Morrow J KolmetzArgentina2026-07-01Benton, John B Jr NEGOTIATION7Elwin Sharvill
1005Chavez U OldroydUnited Kingdom2026-07-09Rousseaux, Michael Esq UNQUALIFIED87Elwin Sharvill
1006Francesco M PoquetteSpain2026-07-15Truhlar And Truhlar Attys RENEWAL48Ioni Bowcher
1007Ivar E SlusarskiRussia2026-07-01King, Christopher A Esq NEGOTIATION37Ioni Bowcher
1008Nicolas R MaletIndia2026-07-17Buckley Miller Wright NEW89Elwin Sharvill
1009Wickens Z FollerSpain2026-07-07Chanay, Jeffrey A Esq NEW3Stephen Shaw
1010Emily N ChuiFrance2026-07-02King, Christopher A Esq PROPOSAL55Stephen Shaw
1011Maisha X NickaCanada2026-07-10Chemel, James L Cpa RENEWAL70Amy Elsner
1012Mujtaba H GlickSpain2026-07-24Rousseaux, Michael Esq PROPOSAL55Asiya Javayant
1013Leon V FigeroaBrazil2026-07-25Dorl, James J Esq UNQUALIFIED14Asiya Javayant
1014Juan N FlosiCanada2026-06-27Feiner Bros RENEWAL18Asiya Javayant
1015Wickens C GlickUnited Kingdom2026-07-25Chapman, Ross E Esq PROPOSAL79Stephen Shaw
1016Francesco V SaylorsGermany2026-07-04Feiner Bros UNQUALIFIED52Ivan Magalhaes
1017Izzy M MarrierSpain2026-06-30Rousseaux, Michael Esq NEW3Xuxue Feng
1018Kaitlin W KuskoFrance2026-07-10Buckley Miller Wright RENEWAL54Anna Fali
1019Smith B RoysterRussia2026-07-22Buckley Miller Wright UNQUALIFIED18Bernardo Dominic
1020Johnson Z GarufiCanada2026-07-17Commercial Press RENEWAL2Xuxue Feng
1021Juan Z FigeroaRussia2026-06-27Rousseaux, Michael Esq RENEWAL93Amy Elsner
1022Wickens I CaudyJapan2026-06-26Printing Dimensions UNQUALIFIED36Stephen Shaw
1023Maisha D RutaArgentina2026-07-22Dorl, James J Esq NEGOTIATION37Bernardo Dominic
1024Leja H VocelkaGermany2026-07-24Rousseaux, Michael Esq NEW7Xuxue Feng
1025Misaki P OldroydJapan2026-07-06Benton, John B Jr RENEWAL43Stephen Shaw
1026James A MaletIndia2026-07-11Commercial Press UNQUALIFIED68Anna Fali
1027David L BologniaRussia2026-07-04Commercial Press NEGOTIATION29Xuxue Feng
1028Kadeem X DilliardArgentina2026-07-16Rousseaux, Michael Esq UNQUALIFIED5Xuxue Feng
1029Isabel Q OldroydAustralia2026-06-28King, Christopher A Esq UNQUALIFIED58Elwin Sharvill
1030Jefferson N MorascaArgentina2026-07-05Feltz Printing Service PROPOSAL56Bernardo Dominic
1031Francesco F StockhamSpain2026-07-08Buckley Miller Wright QUALIFIED73Asiya Javayant
1032Stacey K SlusarskiAustralia2026-07-11Feiner Bros NEW47Anna Fali
1033Adams B SchemmerIndia2026-07-02Chapman, Ross E Esq NEW89Xuxue Feng
1034Adams E AlbaresRussia2026-07-16King, Christopher A Esq UNQUALIFIED73Xuxue Feng
1035Costa X GauchoBrazil2026-07-09Commercial Press PROPOSAL2Ivan Magalhaes
1036Adams L OstroskyUnited Kingdom2026-07-18Commercial Press NEW98Elwin Sharvill
1037Tony E BriddickArgentina2026-06-30Feltz Printing Service PROPOSAL56Stephen Shaw
1038Salvatore K InouyeJapan2026-07-19Rangoni Of Florence QUALIFIED44Xuxue Feng
1039Murillo G FlosiGermany2026-07-25Feiner Bros NEW43Xuxue Feng
1040Stacey D SchemmerBrazil2026-07-03Feiner Bros QUALIFIED71Elwin Sharvill
1041Alejandro O BowleyCanada2026-07-12Feiner Bros RENEWAL6Xuxue Feng
1042Aika U TollnerIndia2026-07-07Rousseaux, Michael Esq PROPOSAL79Ivan Magalhaes
1043Misaki V WaycottItaly2026-07-19Benton, John B Jr NEGOTIATION59Anna Fali
1044Mayumi V OldroydRussia2026-07-24Benton, John B Jr NEW61Amy Elsner
1045Aruna H GillianCanada2026-06-26Truhlar And Truhlar Attys NEW51Onyama Limba
1046Munro T AlbaresIndia2026-07-22Rousseaux, Michael Esq PROPOSAL98Onyama Limba
1047Emily M PaprockiSpain2026-07-10Dorl, James J Esq NEGOTIATION58Xuxue Feng
1048Salvatore G DilliardIndia2026-07-09Chanay, Jeffrey A Esq NEW8Asiya Javayant
1049Rodrigues A CampainJapan2026-07-17Commercial Press NEGOTIATION93Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin Y OstroskyRussiaXuxue Feng UNQUALIFIED
Aditya O NickaItalyStephen Shaw UNQUALIFIED
Sinclair Z SaylorsBrazilIoni Bowcher RENEWAL
Faith H BologniaIndiaBernardo Dominic PROPOSAL
Ricardo S WaycottCanadaXuxue Feng PROPOSAL
Aruna K MaletBrazilAnna Fali RENEWAL
Stacey N GlickRussiaIoni Bowcher RENEWAL
Mayumi A ButtAustraliaIoni Bowcher QUALIFIED
Arvin O DarakjyUnited KingdomIoni Bowcher RENEWAL
Costa D WaycottIndiaXuxue Feng NEGOTIATION
Costa K StockhamRussiaBernardo Dominic NEW
Francesco N NickaArgentinaIoni Bowcher PROPOSAL
Maisha F CampainFranceAnna Fali NEGOTIATION
Francesco X AmigonJapanXuxue Feng QUALIFIED
Arvin C SlusarskiSpainStephen Shaw NEGOTIATION
Ricardo I AlbaresCanadaAnna Fali QUALIFIED
Greenwood A BriddickRussiaIoni Bowcher RENEWAL
Izzy K BriddickSpainAsiya Javayant RENEWAL
Jeanfrancois J BriddickUnited KingdomAnna Fali NEGOTIATION
Ricardo Y ChuiIndiaAmy Elsner PROPOSAL
Emily C IturbideBrazilOnyama Limba UNQUALIFIED
Jeanfrancois X BriddickGermanyXuxue Feng NEGOTIATION
Alejandro N TollnerFranceIoni Bowcher NEW
Tony J StockhamItalyBernardo Dominic NEW
Kaitlin Q GauchoFranceAsiya Javayant UNQUALIFIED
Darci N ChuiUnited KingdomBernardo Dominic PROPOSAL
Silvio T CampainAustraliaIvan Magalhaes QUALIFIED
Maisha X KuskoAustraliaElwin Sharvill NEGOTIATION
Isabel Y DilliardFranceXuxue Feng QUALIFIED
Jones O CaldareraRussiaBernardo Dominic NEGOTIATION
Arvin L BriddickItalyBernardo Dominic NEGOTIATION
Faith J NickaJapanAnna Fali UNQUALIFIED
Smith R AmigonItalyElwin Sharvill PROPOSAL
Stacey Z DarakjySpainXuxue Feng QUALIFIED
Stacey X StensethIndiaAmy Elsner NEGOTIATION
Faith W AmigonSpainAmy Elsner QUALIFIED
Clifford Y CaldareraJapanBernardo Dominic RENEWAL
Alejandro U MaletGermanyIoni Bowcher QUALIFIED
Maisha P OldroydCanadaIvan Magalhaes NEGOTIATION
Stacey E RoysterSpainAmy Elsner UNQUALIFIED
Jones P BriddickBrazilIoni Bowcher PROPOSAL
Silvio V TollnerUnited KingdomXuxue Feng NEW
Mujtaba E NestleIndiaElwin Sharvill UNQUALIFIED
Adams Y KuskoAustraliaElwin Sharvill RENEWAL
Rodrigues E GarufiArgentinaOnyama Limba NEW
Jennifer K SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Deepesh L PoquetteSpainBernardo Dominic QUALIFIED
Sinclair L SlusarskiGermanyElwin Sharvill RENEWAL
Johnson B MacleadIndiaIvan Magalhaes NEW
Antonio J WieserFranceElwin Sharvill NEW
Frozen Columns
Name
Jeanfrancois W Caldarera
Chavez S Foller
Alejandro J Malet
Izzy M Vocelka
Costa U Poquette
Izzy L Vocelka
Kaitlin H Briddick
Salvatore A Whobrey
Stacey U Kolmetz
Chavez G Maclead
Sinclair B Malet
Maisha Y Stenseth
Julie H Morasca
Chavez E Iturbide
Octavia E Stockham
Stacey F Sergi
Arvin G Schemmer
Jefferson S Poquette
Octavia P Bowley
David S Ostrosky
Chavez M Saylors
Munro Y Rulapaugh
Morrow T Iturbide
Jefferson F Ferencz
Nicolas N Malet
Stacey C Campain
Jeanfrancois Z Stenseth
Aruna H Caudy
Faith P Figeroa
Morrow X Nicka
Sinclair R Oldroyd
Sinclair T Garufi
Aika S Bowley
Wickens T Rim
Deepesh R Inouye
Julie Y Gillian
Kaitlin M Ostrosky
Maria Y Vocelka
Maria P Bowley
Stacey L Briddick
Juan Q Nicka
Aditya M Slusarski
Arvin C Shinko
Jeanfrancois H Oldroyd
Munro E Whobrey
Juan G Vocelka
Ivar U Tollner
Jennifer V Ostrosky
Smith F Rulapaugh
Aika O Morasca
IdCountryDate
1000Australia2026-07-24
1001Germany2026-07-01
1002Argentina2026-07-08
1003United Kingdom2026-06-27
1004France2026-07-25
1005Brazil2026-06-26
1006United Kingdom2026-07-20
1007Italy2026-06-26
1008India2026-07-06
1009Canada2026-06-27
1010Brazil2026-07-09
1011Italy2026-07-25
1012India2026-07-04
1013United Kingdom2026-07-06
1014Canada2026-07-13
1015Japan2026-06-29
1016India2026-07-01
1017Russia2026-07-15
1018Spain2026-07-10
1019Australia2026-07-10
1020Australia2026-07-13
1021Argentina2026-07-19
1022Russia2026-07-01
1023United Kingdom2026-07-22
1024Australia2026-07-18
1025France2026-07-13
1026Canada2026-07-14
1027Canada2026-07-22
1028Brazil2026-07-13
1029France2026-07-01
1030United Kingdom2026-07-14
1031Argentina2026-06-27
1032Australia2026-07-17
1033Argentina2026-07-16
1034Japan2026-07-07
1035Canada2026-07-11
1036Japan2026-06-26
1037Canada2026-07-02
1038Australia2026-07-21
1039India2026-06-26
1040India2026-06-26
1041Brazil2026-07-21
1042Canada2026-07-19
1043Japan2026-07-05
1044United Kingdom2026-07-20
1045Argentina2026-07-11
1046France2026-07-17
1047Russia2026-07-04
1048Brazil2026-06-26
1049France2026-07-02

On-Demand Data

NameIdCountryDate
Francesco Y Morasca1000Spain2026-07-03
Jeanfrancois O Caldarera1001Russia2026-07-21
Ivar V Bowley1002Argentina2026-07-06
Munro H Ferencz1003Argentina2026-07-02
Aika B Stockham1004Australia2026-07-11
Mayumi V Nestle1005Italy2026-06-29
Kaitlin B Caudy1006Canada2026-07-18
Munro Q Nestle1007Russia2026-06-26
Jennifer L Venere1008Argentina2026-07-14
Greenwood W Gillian1009Japan2026-06-27
Darci Q Malet1010Argentina2026-07-25
Cody K Perin1011Canada2026-07-06
Faith Z Albares1012Australia2026-07-12
Kadeem V Nicka1013Australia2026-06-30
Clifford M Briddick1014India2026-06-30
Octavia C Royster1015Italy2026-07-17
Murillo U Bowley1016India2026-07-08
Jefferson S Bolognia1017Italy2026-06-30
James Z Saylors1018Argentina2026-07-25
Francesco A Inouye1019Germany2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David T BologniaAustraliaIoni Bowcher NEGOTIATION
Munro H InouyeFranceAsiya Javayant NEW
Deepesh Y InouyeFranceStephen Shaw RENEWAL
Silvio B GlickFranceAsiya Javayant RENEWAL
Kadeem S TollnerIndiaAmy Elsner RENEWAL
Maria H RutaArgentinaAmy Elsner RENEWAL
Silvio E KuskoBrazilIoni Bowcher PROPOSAL
Claire V PerinUnited KingdomBernardo Dominic NEW
Leon B MacleadArgentinaStephen Shaw RENEWAL
Munro O RoysterUnited KingdomAsiya Javayant PROPOSAL
Octavia H KolmetzCanadaXuxue Feng NEGOTIATION
Clifford J PoquetteBrazilElwin Sharvill PROPOSAL
Juan F OstroskyAustraliaStephen Shaw RENEWAL
Costa X RulapaughBrazilOnyama Limba QUALIFIED
Ashley L BologniaBrazilAsiya Javayant RENEWAL
Salvatore M SergiArgentinaAsiya Javayant QUALIFIED
Clifford S VocelkaJapanAmy Elsner UNQUALIFIED
Aditya V FollerIndiaAmy Elsner PROPOSAL
Kaitlin R FerenczArgentinaAsiya Javayant RENEWAL
Morrow D GillianBrazilBernardo Dominic NEGOTIATION
Mujtaba B SlusarskiIndiaIoni Bowcher NEW
Rodrigues T OstroskyItalyBernardo Dominic QUALIFIED
Octavia H VocelkaRussiaXuxue Feng QUALIFIED
Maria N MorascaItalyIoni Bowcher NEGOTIATION
Sinclair I BowleySpainAnna Fali PROPOSAL
Izzy F MacleadJapanBernardo Dominic PROPOSAL
Antonio F VocelkaSpainStephen Shaw PROPOSAL
Kadeem K WaycottAustraliaElwin Sharvill NEW
Sinclair G DarakjyBrazilAsiya Javayant RENEWAL
Jones D BologniaCanadaBernardo Dominic QUALIFIED
Maisha K NestleCanadaXuxue Feng UNQUALIFIED
Chavez D AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Jeanfrancois Q PoquetteGermanyXuxue Feng NEW
Francesco L WieserJapanAnna Fali NEGOTIATION
Johnson C KolmetzSpainAmy Elsner PROPOSAL
Francesco C BologniaArgentinaIvan Magalhaes UNQUALIFIED
Munro U BologniaSpainStephen Shaw PROPOSAL
Adams Y CaldareraBrazilBernardo Dominic NEW
Clifford U RulapaughBrazilElwin Sharvill PROPOSAL
Claire Y FlosiIndiaXuxue Feng 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>