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
Faith K NickaGermanyIvan Magalhaes NEGOTIATION
Aruna K CaldareraRussiaStephen Shaw PROPOSAL
Octavia C MorascaRussiaAmy Elsner RENEWAL
Cody L OstroskyGermanyIoni Bowcher RENEWAL
Faith H PoquetteCanadaIvan Magalhaes QUALIFIED
Aruna X BowleyUnited KingdomStephen Shaw RENEWAL
Juan I ChuiItalyOnyama Limba NEGOTIATION
Smith L MorascaBrazilIoni Bowcher QUALIFIED
Rodrigues I FollerGermanyBernardo Dominic UNQUALIFIED
Darci U SchemmerItalyStephen Shaw PROPOSAL
Emily T BowleyBrazilStephen Shaw NEGOTIATION
Antonio N SchemmerJapanAmy Elsner UNQUALIFIED
Aruna I ButtAustraliaAmy Elsner RENEWAL
Juan Z ShinkoItalyXuxue Feng NEW
Nicolas T CaldareraCanadaIoni Bowcher NEGOTIATION
Alejandro T SaylorsIndiaIvan Magalhaes QUALIFIED
Aruna U DarakjyItalyElwin Sharvill NEGOTIATION
Julie P FlosiSpainOnyama Limba UNQUALIFIED
Isabel O StensethRussiaAnna Fali RENEWAL
Misaki F KolmetzItalyAnna Fali RENEWAL
Chavez D IturbideJapanStephen Shaw RENEWAL
Salvatore F GlickFranceBernardo Dominic NEGOTIATION
Wickens G VocelkaCanadaElwin Sharvill QUALIFIED
Jennifer K InouyeAustraliaBernardo Dominic NEGOTIATION
Antonio I SaylorsArgentinaBernardo Dominic PROPOSAL
Stacey M NestleAustraliaAnna Fali NEW
Julie X CaldareraBrazilAnna Fali UNQUALIFIED
Leja X RoysterUnited KingdomOnyama Limba UNQUALIFIED
Tony C NestleUnited KingdomIvan Magalhaes NEW
Nicolas W GauchoArgentinaOnyama Limba NEGOTIATION
Sinclair W NickaFranceBernardo Dominic QUALIFIED
Maria I VocelkaBrazilAnna Fali RENEWAL
Darci C NickaItalyBernardo Dominic PROPOSAL
Darci P StensethRussiaElwin Sharvill NEGOTIATION
Kaitlin Y IturbideArgentinaElwin Sharvill QUALIFIED
Mayumi M GlickArgentinaAmy Elsner PROPOSAL
Isabel L CampainCanadaElwin Sharvill UNQUALIFIED
Tony Y SchemmerIndiaAmy Elsner PROPOSAL
Murillo G KolmetzCanadaAnna Fali NEGOTIATION
Francesco T PoquetteRussiaAnna Fali RENEWAL
Aika X ButtRussiaAnna Fali UNQUALIFIED
Aika C CaudyGermanyElwin Sharvill UNQUALIFIED
Leon C FlosiCanadaOnyama Limba UNQUALIFIED
Maria X WaycottUnited KingdomOnyama Limba QUALIFIED
Salvatore K SergiSpainBernardo Dominic QUALIFIED
Alejandro P AmigonFranceOnyama Limba NEW
Francesco A FigeroaIndiaElwin Sharvill UNQUALIFIED
Morrow B InouyeRussiaIoni Bowcher PROPOSAL
Darci M SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem Z CaldareraArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Tony W ButtUnited KingdomAsiya Javayant NEW
James B ButtSpainXuxue Feng QUALIFIED
Darci S DoeIndiaBernardo Dominic QUALIFIED
Clifford S PaprockiArgentinaElwin Sharvill NEGOTIATION
Octavia V TollnerJapanElwin Sharvill RENEWAL
Maisha Y CaudyBrazilAnna Fali NEGOTIATION
Clifford M ShinkoAustraliaIvan Magalhaes QUALIFIED
Maisha P ButtCanadaIvan Magalhaes NEGOTIATION
Jennifer L FollerItalyIoni Bowcher NEGOTIATION
Nicolas T PaprockiAustraliaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio U KolmetzUnited Kingdom2026-07-21King, Christopher A Esq NEGOTIATION96Amy Elsner
1001Leon S CampainArgentina2026-07-26Printing Dimensions NEGOTIATION45Asiya Javayant
1002Rodrigues E RoysterArgentina2026-07-09Feltz Printing Service PROPOSAL80Xuxue Feng
1003Misaki L PoquetteSpain2026-07-28Chanay, Jeffrey A Esq QUALIFIED53Amy Elsner
1004Johnson Y RoysterUnited Kingdom2026-07-10Morlong Associates NEW49Xuxue Feng
1005Alejandro C OldroydGermany2026-07-12Feiner Bros NEW37Amy Elsner
1006Smith A FigeroaCanada2026-07-24Feiner Bros RENEWAL29Onyama Limba
1007Salvatore N ShinkoUnited Kingdom2026-07-07Rousseaux, Michael Esq NEGOTIATION74Amy Elsner
1008Ivar R RimAustralia2026-07-18Printing Dimensions QUALIFIED59Stephen Shaw
1009Mayumi Y PerinJapan2026-07-16Chapman, Ross E Esq NEW40Anna Fali
1010Tony Y FlosiIndia2026-07-25Commercial Press UNQUALIFIED34Asiya Javayant
1011James B StensethBrazil2026-07-16Dorl, James J Esq PROPOSAL37Xuxue Feng
1012Claire Z PaprockiGermany2026-07-21Truhlar And Truhlar Attys PROPOSAL79Asiya Javayant
1013Deepesh E NestleGermany2026-07-23Benton, John B Jr NEW52Bernardo Dominic
1014Jefferson N WaycottGermany2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED79Ivan Magalhaes
1015Aruna O FlosiJapan2026-08-01Feltz Printing Service QUALIFIED10Amy Elsner
1016Morrow Q RimGermany2026-07-20Chanay, Jeffrey A Esq NEGOTIATION40Elwin Sharvill
1017Antonio U PaprockiJapan2026-07-16Dorl, James J Esq RENEWAL38Ivan Magalhaes
1018Julie C GlickUnited Kingdom2026-07-25Feltz Printing Service RENEWAL91Onyama Limba
1019Claire Y MaletJapan2026-07-20Feiner Bros NEW36Stephen Shaw
1020Aditya J StockhamRussia2026-07-16King, Christopher A Esq UNQUALIFIED5Amy Elsner
1021Alejandro K FigeroaIndia2026-07-08Benton, John B Jr RENEWAL9Ioni Bowcher
1022Stacey X SergiIndia2026-07-27Benton, John B Jr NEGOTIATION44Stephen Shaw
1023Jeanfrancois Q OldroydBrazil2026-07-14Chemel, James L Cpa QUALIFIED85Anna Fali
1024Julie C CaudyJapan2026-07-19King, Christopher A Esq NEW37Ioni Bowcher
1025Tony J RoysterItaly2026-07-11Rousseaux, Michael Esq QUALIFIED12Onyama Limba
1026Mujtaba A StensethArgentina2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED20Ioni Bowcher
1027Aruna X StensethSpain2026-08-01Printing Dimensions UNQUALIFIED90Amy Elsner
1028Morrow J FerenczAustralia2026-07-30Chapman, Ross E Esq RENEWAL27Stephen Shaw
1029Nicolas X CaudyUnited Kingdom2026-08-01Commercial Press PROPOSAL74Onyama Limba
1030Aika J RoysterCanada2026-07-13Dorl, James J Esq NEGOTIATION28Anna Fali
1031Maria K NestleIndia2026-07-14Morlong Associates UNQUALIFIED67Anna Fali
1032Chavez J AmigonArgentina2026-08-02Feltz Printing Service NEGOTIATION1Bernardo Dominic
1033Smith X KolmetzGermany2026-07-16Printing Dimensions PROPOSAL32Onyama Limba
1034Ashley A AmigonGermany2026-07-24Printing Dimensions PROPOSAL57Xuxue Feng
1035Ricardo O BowleyRussia2026-07-18Commercial Press NEW72Asiya Javayant
1036Faith Z FerenczArgentina2026-07-13Chemel, James L Cpa UNQUALIFIED54Ivan Magalhaes
1037Antonio W FlosiGermany2026-07-16Truhlar And Truhlar Attys NEGOTIATION73Ioni Bowcher
1038Emily F SlusarskiSpain2026-07-06Benton, John B Jr QUALIFIED30Asiya Javayant
1039Nicolas Q DoeAustralia2026-07-30Chanay, Jeffrey A Esq PROPOSAL32Asiya Javayant
1040Izzy K WieserAustralia2026-07-26Rousseaux, Michael Esq NEW69Xuxue Feng
1041Nicolas E ChuiIndia2026-07-27Feltz Printing Service QUALIFIED60Amy Elsner
1042Kadeem T RulapaughRussia2026-07-21Chanay, Jeffrey A Esq QUALIFIED44Xuxue Feng
1043Isabel S FerenczArgentina2026-08-01Rousseaux, Michael Esq QUALIFIED69Amy Elsner
1044Clifford J OstroskyIndia2026-07-29Feltz Printing Service NEGOTIATION48Asiya Javayant
1045Octavia X CaudyBrazil2026-07-14Feltz Printing Service QUALIFIED88Ioni Bowcher
1046Jeanfrancois A ButtIndia2026-07-29Feltz Printing Service NEGOTIATION71Ivan Magalhaes
1047Silvio F AlbaresAustralia2026-07-25Chanay, Jeffrey A Esq PROPOSAL61Anna Fali
1048Murillo J NickaCanada2026-07-09Commercial Press NEW37Ivan Magalhaes
1049David T NickaItaly2026-07-24Benton, John B Jr PROPOSAL24Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Emily G AlbaresBrazilAsiya Javayant NEGOTIATION
Deepesh T AmigonIndiaAnna Fali QUALIFIED
Darci Y WaycottArgentinaStephen Shaw NEGOTIATION
Silvio C SchemmerItalyStephen Shaw QUALIFIED
Salvatore S WieserJapanXuxue Feng NEW
Deepesh J BologniaRussiaIvan Magalhaes QUALIFIED
Mayumi N BowleyRussiaAnna Fali PROPOSAL
Julie L MarrierArgentinaAmy Elsner PROPOSAL
Greenwood M GlickGermanyIvan Magalhaes QUALIFIED
Wickens N FlosiBrazilIvan Magalhaes QUALIFIED
Jefferson W AlbaresFranceAmy Elsner QUALIFIED
Faith I CaudyCanadaXuxue Feng PROPOSAL
Tony D NestleGermanyBernardo Dominic QUALIFIED
Smith S AlbaresFranceXuxue Feng PROPOSAL
Leon E RoysterIndiaBernardo Dominic UNQUALIFIED
Stacey L MarrierAustraliaStephen Shaw QUALIFIED
Stacey X AlbaresJapanOnyama Limba NEGOTIATION
Ashley R VocelkaCanadaAnna Fali RENEWAL
Mujtaba L CaudyItalyAsiya Javayant UNQUALIFIED
Sinclair F VocelkaAustraliaAsiya Javayant UNQUALIFIED
Murillo P MarrierRussiaOnyama Limba PROPOSAL
Alejandro M SaylorsIndiaStephen Shaw RENEWAL
Jeanfrancois Z StockhamSpainElwin Sharvill UNQUALIFIED
Izzy L StockhamSpainIvan Magalhaes RENEWAL
Clifford U MacleadArgentinaAmy Elsner QUALIFIED
Chavez Y ShinkoArgentinaAsiya Javayant RENEWAL
Jennifer J NickaSpainIvan Magalhaes NEW
Kadeem A RimSpainBernardo Dominic NEGOTIATION
Ivar D PerinArgentinaBernardo Dominic NEGOTIATION
Kadeem F PaprockiBrazilAnna Fali NEW
Tony X TollnerRussiaIvan Magalhaes PROPOSAL
Clifford H CaldareraRussiaAsiya Javayant NEW
Jones I BowleySpainStephen Shaw NEGOTIATION
Francesco E RutaSpainAnna Fali PROPOSAL
Leja R MorascaItalyElwin Sharvill NEW
Kadeem C DilliardJapanIoni Bowcher RENEWAL
Silvio K NestleBrazilOnyama Limba QUALIFIED
Francesco P CampainItalyAmy Elsner RENEWAL
Aika B FlosiRussiaAnna Fali RENEWAL
Greenwood S PaprockiItalyXuxue Feng QUALIFIED
Ricardo O KuskoItalyXuxue Feng UNQUALIFIED
Isabel V RulapaughSpainOnyama Limba PROPOSAL
Mayumi D OstroskyGermanyIoni Bowcher RENEWAL
Mujtaba V MaletRussiaIoni Bowcher NEGOTIATION
Jefferson Q StockhamIndiaAnna Fali UNQUALIFIED
Rodrigues B OldroydBrazilAmy Elsner QUALIFIED
Octavia T GauchoJapanIvan Magalhaes QUALIFIED
Wickens C AmigonBrazilXuxue Feng NEW
Izzy I GillianItalyXuxue Feng NEGOTIATION
Emily C SergiAustraliaIvan Magalhaes RENEWAL
Frozen Columns
Name
Faith Q Paprocki
Mayumi U Kolmetz
Aruna C Stockham
Wickens Y Campain
Cody B Ferencz
Murillo R Rulapaugh
Faith C Caldarera
Cody H Perin
Francesco Y Figeroa
Jones D Marrier
Kadeem P Royster
Octavia N Albares
Kaitlin R Perin
Misaki C Whobrey
Leja D Nicka
Jefferson Y Perin
Costa J Nestle
Mayumi Q Saylors
Silvio C Shinko
Francesco P Malet
Jones B Stockham
Maria T Rulapaugh
Salvatore J Inouye
Chavez F Darakjy
Kadeem T Kolmetz
Johnson F Ruta
Mayumi W Perin
Arvin S Poquette
Clifford V Bowley
Kadeem K Campain
Izzy E Vocelka
Rodrigues F Bowley
Aika R Bolognia
Claire T Royster
Greenwood C Tollner
Mujtaba U Foller
Jeanfrancois U Marrier
Julie M Ruta
Aditya X Iturbide
Murillo P Dilliard
Maisha B Flosi
Jones W Amigon
Maria J Stockham
Adams W Garufi
Morrow X Royster
Leja J Rulapaugh
Emily T Iturbide
Darci U Whobrey
Munro O Caldarera
Deepesh Z Morasca
IdCountryDate
1000Japan2026-07-29
1001Australia2026-07-21
1002Australia2026-07-13
1003Japan2026-07-21
1004Russia2026-07-24
1005India2026-07-17
1006Brazil2026-07-16
1007Spain2026-07-21
1008Japan2026-07-16
1009Canada2026-07-20
1010Spain2026-07-24
1011Japan2026-07-21
1012Italy2026-07-28
1013Canada2026-07-11
1014Brazil2026-07-10
1015Brazil2026-07-16
1016Spain2026-07-08
1017Brazil2026-07-26
1018Germany2026-07-20
1019Japan2026-07-20
1020Argentina2026-07-11
1021France2026-07-23
1022Brazil2026-07-12
1023Russia2026-07-19
1024France2026-07-21
1025Argentina2026-07-11
1026Spain2026-07-17
1027United Kingdom2026-07-12
1028France2026-08-02
1029France2026-07-28
1030Italy2026-08-02
1031Brazil2026-07-26
1032Argentina2026-07-11
1033Brazil2026-07-18
1034India2026-07-24
1035Canada2026-07-28
1036United Kingdom2026-07-27
1037Australia2026-07-27
1038Germany2026-07-23
1039Argentina2026-08-02
1040Canada2026-07-15
1041Brazil2026-07-28
1042Spain2026-08-01
1043Russia2026-07-13
1044India2026-07-17
1045Italy2026-07-26
1046Italy2026-07-30
1047United Kingdom2026-07-29
1048Germany2026-07-14
1049Australia2026-07-08

On-Demand Data

NameIdCountryDate
Mayumi C Malet1000Germany2026-07-14
Kaitlin N Rulapaugh1001Germany2026-07-22
Silvio M Briddick1002Australia2026-08-03
Alejandro K Butt1003Australia2026-07-25
Mujtaba P Inouye1004Brazil2026-07-29
Nicolas R Rim1005Argentina2026-07-15
James Q Briddick1006India2026-07-17
Smith G Caudy1007Brazil2026-07-11
Kadeem H Caudy1008France2026-07-21
Mayumi M Paprocki1009Australia2026-07-23
Clifford M Inouye1010Italy2026-07-27
Greenwood Q Bolognia1011Argentina2026-07-10
Emily U Gaucho1012Spain2026-07-22
Isabel E Whobrey1013Germany2026-07-19
Smith I Perin1014United Kingdom2026-07-21
Francesco N Royster1015Germany2026-07-29
Jennifer W Slusarski1016Russia2026-07-13
Cody U Nestle1017Germany2026-07-27
Alejandro H Kusko1018Japan2026-08-03
Morrow F Bolognia1019Spain2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi B NickaCanadaAnna Fali NEGOTIATION
Deepesh E KuskoArgentinaIoni Bowcher RENEWAL
Ricardo M PoquetteIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois L OstroskyBrazilAmy Elsner RENEWAL
Sinclair J CaudyFranceIvan Magalhaes UNQUALIFIED
Maisha T GarufiAustraliaOnyama Limba UNQUALIFIED
Greenwood L MaletGermanyStephen Shaw RENEWAL
Juan K MaletBrazilElwin Sharvill UNQUALIFIED
Faith W DilliardUnited KingdomAnna Fali QUALIFIED
Aruna O OstroskyGermanyXuxue Feng RENEWAL
Julie H GillianIndiaBernardo Dominic RENEWAL
Murillo V GarufiFranceAsiya Javayant PROPOSAL
Isabel U GarufiItalyAmy Elsner UNQUALIFIED
Chavez N RulapaughFranceBernardo Dominic PROPOSAL
Stacey J SergiBrazilElwin Sharvill QUALIFIED
Julie O MarrierJapanAmy Elsner NEGOTIATION
Smith O SaylorsItalyAsiya Javayant NEGOTIATION
Ashley H RimGermanyAnna Fali NEW
David P GarufiFranceIoni Bowcher QUALIFIED
Octavia J AlbaresFranceElwin Sharvill UNQUALIFIED
Smith Z GillianArgentinaOnyama Limba NEW
Ivar G InouyeSpainElwin Sharvill UNQUALIFIED
James Y StockhamItalyIvan Magalhaes PROPOSAL
Munro M RoysterSpainOnyama Limba QUALIFIED
Ashley N TollnerArgentinaAmy Elsner UNQUALIFIED
Arvin T PoquetteBrazilStephen Shaw RENEWAL
Isabel X SchemmerCanadaStephen Shaw UNQUALIFIED
Octavia X BologniaAustraliaBernardo Dominic RENEWAL
Adams K OldroydCanadaAnna Fali NEGOTIATION
Arvin G GarufiArgentinaBernardo Dominic QUALIFIED
Jeanfrancois B VenereArgentinaAmy Elsner UNQUALIFIED
James W InouyeGermanyOnyama Limba UNQUALIFIED
Leon Q OstroskyArgentinaOnyama Limba RENEWAL
Wickens V RutaAustraliaAsiya Javayant NEGOTIATION
Rodrigues F PerinGermanyOnyama Limba NEGOTIATION
Johnson J SchemmerGermanyOnyama Limba NEGOTIATION
Isabel O FerenczBrazilOnyama Limba PROPOSAL
Nicolas O TollnerUnited KingdomIvan Magalhaes PROPOSAL
Johnson Y ChuiAustraliaIvan Magalhaes PROPOSAL
Maria X IturbideGermanyIoni Bowcher NEGOTIATION

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