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
Greenwood M PaprockiJapanAnna Fali RENEWAL
Wickens R SergiAustraliaAnna Fali NEGOTIATION
Cody A VenereBrazilAmy Elsner NEW
Misaki K NestleCanadaXuxue Feng UNQUALIFIED
Aika B NestleRussiaStephen Shaw NEW
Izzy G MaletFranceAnna Fali QUALIFIED
Jennifer V PerinAustraliaOnyama Limba RENEWAL
Costa Y MaletArgentinaXuxue Feng PROPOSAL
Johnson U OldroydFranceAnna Fali UNQUALIFIED
Jones V GillianJapanAsiya Javayant RENEWAL
Claire K StockhamSpainAmy Elsner NEW
Jeanfrancois N StockhamArgentinaStephen Shaw PROPOSAL
Salvatore I RutaAustraliaBernardo Dominic RENEWAL
Maria H SergiBrazilIvan Magalhaes QUALIFIED
Maisha H InouyeUnited KingdomIoni Bowcher QUALIFIED
Smith Q MorascaBrazilXuxue Feng NEW
Ivar U RoysterSpainIoni Bowcher UNQUALIFIED
Aika L GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Tony V NestleUnited KingdomBernardo Dominic NEW
Aruna S MaletBrazilAsiya Javayant PROPOSAL
Ricardo A PaprockiArgentinaOnyama Limba RENEWAL
Kaitlin W MorascaJapanIvan Magalhaes NEGOTIATION
Sinclair Q KuskoGermanyIoni Bowcher NEGOTIATION
Mujtaba I FerenczUnited KingdomXuxue Feng RENEWAL
Faith C StockhamBrazilOnyama Limba RENEWAL
Salvatore B MaletAustraliaStephen Shaw RENEWAL
Mayumi K NickaIndiaXuxue Feng RENEWAL
Julie A AlbaresSpainAsiya Javayant UNQUALIFIED
Salvatore N KuskoUnited KingdomOnyama Limba NEW
James A SlusarskiFranceIoni Bowcher UNQUALIFIED
Murillo H KuskoGermanyXuxue Feng RENEWAL
Maria G DilliardAustraliaOnyama Limba NEGOTIATION
Murillo H RutaAustraliaBernardo Dominic QUALIFIED
Mujtaba L CaldareraGermanyIoni Bowcher PROPOSAL
Morrow I IturbideJapanIoni Bowcher QUALIFIED
Jeanfrancois C CampainRussiaOnyama Limba QUALIFIED
Deepesh B DoeRussiaBernardo Dominic NEW
Leon W AmigonRussiaBernardo Dominic UNQUALIFIED
Maisha B MaletItalyStephen Shaw QUALIFIED
Adams K KolmetzCanadaOnyama Limba PROPOSAL
Kadeem U KuskoItalyAmy Elsner RENEWAL
Francesco C GauchoFranceIvan Magalhaes NEW
Rodrigues G NickaArgentinaAsiya Javayant NEGOTIATION
Salvatore Y StockhamJapanAsiya Javayant NEW
Stacey N AmigonItalyIoni Bowcher UNQUALIFIED
Jeanfrancois K KuskoFranceOnyama Limba QUALIFIED
Tony W CaudyRussiaElwin Sharvill PROPOSAL
Ivar S RulapaughUnited KingdomAsiya Javayant PROPOSAL
Maria E SchemmerAustraliaIoni Bowcher UNQUALIFIED
Kaitlin A StensethFranceAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa G SchemmerArgentinaAsiya Javayant QUALIFIED
Morrow P MacleadBrazilStephen Shaw NEW
Aika I WieserIndiaAmy Elsner RENEWAL
Jefferson T StensethAustraliaElwin Sharvill PROPOSAL
Kadeem K CampainFranceAsiya Javayant NEW
Munro U AlbaresItalyOnyama Limba NEW
Johnson W SlusarskiAustraliaXuxue Feng NEGOTIATION
Sinclair S WhobreyJapanAmy Elsner NEGOTIATION
Deepesh S AlbaresArgentinaElwin Sharvill UNQUALIFIED
Antonio U CampainJapanIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy Z SchemmerItaly2025-04-19Rousseaux, Michael Esq UNQUALIFIED59Elwin Sharvill
1001Aika W NestleRussia2025-04-23Commercial Press PROPOSAL85Onyama Limba
1002Jones Y StockhamAustralia2025-04-28Chemel, James L Cpa NEGOTIATION96Amy Elsner
1003Costa P ShinkoAustralia2025-04-27Morlong Associates UNQUALIFIED36Ioni Bowcher
1004Ashley A RimSpain2025-04-21Rangoni Of Florence RENEWAL49Elwin Sharvill
1005Morrow V FlosiCanada2025-04-14Buckley Miller Wright UNQUALIFIED27Anna Fali
1006Clifford Q ShinkoFrance2025-04-09Printing Dimensions NEGOTIATION5Amy Elsner
1007James Q ChuiUnited Kingdom2025-04-13Buckley Miller Wright QUALIFIED8Stephen Shaw
1008Silvio I AmigonAustralia2025-04-24Benton, John B Jr RENEWAL37Asiya Javayant
1009Izzy S FollerItaly2025-04-23Chapman, Ross E Esq PROPOSAL22Bernardo Dominic
1010Claire G TollnerRussia2025-03-31Truhlar And Truhlar Attys NEGOTIATION92Bernardo Dominic
1011Juan Z OstroskyFrance2025-04-06Truhlar And Truhlar Attys NEGOTIATION16Ioni Bowcher
1012Jeanfrancois M WieserJapan2025-04-01Dorl, James J Esq RENEWAL83Elwin Sharvill
1013Deepesh G AlbaresGermany2025-04-21Chapman, Ross E Esq QUALIFIED99Xuxue Feng
1014Ivar F MaletItaly2025-04-22Chemel, James L Cpa PROPOSAL52Ioni Bowcher
1015Aruna W RoysterItaly2025-04-08Dorl, James J Esq NEGOTIATION7Ivan Magalhaes
1016Mayumi V WaycottItaly2025-04-15Rangoni Of Florence QUALIFIED40Asiya Javayant
1017Jennifer E BowleyJapan2025-04-22Rousseaux, Michael Esq UNQUALIFIED80Ioni Bowcher
1018Aruna X VenereIndia2025-04-15Benton, John B Jr PROPOSAL14Onyama Limba
1019Misaki F VocelkaSpain2025-04-21Truhlar And Truhlar Attys PROPOSAL55Asiya Javayant
1020Antonio G StensethGermany2025-04-21Benton, John B Jr UNQUALIFIED65Ioni Bowcher
1021Antonio C DarakjyFrance2025-04-05Rangoni Of Florence UNQUALIFIED83Xuxue Feng
1022Silvio C VocelkaIndia2025-04-28Feiner Bros NEGOTIATION58Elwin Sharvill
1023Aditya W MarrierBrazil2025-04-08Printing Dimensions PROPOSAL51Stephen Shaw
1024Munro V NickaItaly2025-04-20Truhlar And Truhlar Attys NEW95Bernardo Dominic
1025Nicolas E OstroskyAustralia2025-03-31Dorl, James J Esq NEW48Xuxue Feng
1026James L VocelkaUnited Kingdom2025-04-28Printing Dimensions UNQUALIFIED90Amy Elsner
1027Aditya S GauchoCanada2025-04-19Chapman, Ross E Esq QUALIFIED41Bernardo Dominic
1028Silvio X OldroydUnited Kingdom2025-04-05Benton, John B Jr PROPOSAL74Elwin Sharvill
1029Munro T RoysterFrance2025-04-17Printing Dimensions NEGOTIATION32Xuxue Feng
1030Octavia Q MarrierIndia2025-04-18Buckley Miller Wright QUALIFIED67Ioni Bowcher
1031Jennifer V FlosiSpain2025-04-27Feiner Bros PROPOSAL88Bernardo Dominic
1032Maisha V SaylorsFrance2025-04-11Commercial Press RENEWAL60Elwin Sharvill
1033Silvio G FerenczArgentina2025-04-26Chapman, Ross E Esq RENEWAL9Elwin Sharvill
1034Juan N FigeroaBrazil2025-04-25Commercial Press NEGOTIATION63Onyama Limba
1035Claire T BriddickIndia2025-04-27Printing Dimensions RENEWAL8Onyama Limba
1036Claire G PerinIndia2025-04-15Rangoni Of Florence UNQUALIFIED23Bernardo Dominic
1037Deepesh I BriddickBrazil2025-04-25Commercial Press QUALIFIED76Ivan Magalhaes
1038Maria W VocelkaUnited Kingdom2025-04-14Dorl, James J Esq UNQUALIFIED74Stephen Shaw
1039David K NickaJapan2025-04-27Morlong Associates RENEWAL0Bernardo Dominic
1040Salvatore Y RutaAustralia2025-04-21Truhlar And Truhlar Attys UNQUALIFIED72Xuxue Feng
1041Mujtaba Y GlickJapan2025-04-12Rousseaux, Michael Esq UNQUALIFIED96Xuxue Feng
1042Johnson O RutaUnited Kingdom2025-04-24Buckley Miller Wright NEW19Ivan Magalhaes
1043Murillo H SaylorsRussia2025-04-03Benton, John B Jr PROPOSAL3Ioni Bowcher
1044Tony V OldroydRussia2025-04-23Dorl, James J Esq RENEWAL70Ioni Bowcher
1045Morrow W DarakjyIndia2025-04-04Dorl, James J Esq QUALIFIED56Ivan Magalhaes
1046Francesco A OstroskyCanada2025-04-15Benton, John B Jr UNQUALIFIED1Anna Fali
1047Kaitlin S StensethBrazil2025-04-19Rangoni Of Florence PROPOSAL59Bernardo Dominic
1048Jennifer T AmigonSpain2025-04-10Chapman, Ross E Esq RENEWAL25Stephen Shaw
1049Stacey Y SergiUnited Kingdom2025-04-08Benton, John B Jr RENEWAL68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Y ShinkoGermanyXuxue Feng NEGOTIATION
David H WieserSpainElwin Sharvill RENEWAL
Jennifer J MaletJapanIoni Bowcher QUALIFIED
Faith J AlbaresUnited KingdomElwin Sharvill QUALIFIED
Cody F NestleFranceXuxue Feng NEW
Antonio I CaldareraRussiaIvan Magalhaes UNQUALIFIED
Nicolas D GarufiBrazilElwin Sharvill QUALIFIED
Mayumi O GillianAustraliaXuxue Feng NEGOTIATION
Munro H ShinkoGermanyAsiya Javayant NEGOTIATION
Munro H GauchoJapanOnyama Limba PROPOSAL
Mujtaba O KolmetzItalyAnna Fali UNQUALIFIED
Leja Z StockhamBrazilAmy Elsner UNQUALIFIED
Francesco O CaldareraGermanyIvan Magalhaes QUALIFIED
Costa L AlbaresItalyIoni Bowcher NEW
Smith Y SergiJapanStephen Shaw UNQUALIFIED
Silvio O RoysterArgentinaAsiya Javayant QUALIFIED
Adams W RoysterCanadaXuxue Feng NEGOTIATION
Antonio H TollnerGermanyBernardo Dominic UNQUALIFIED
Aika O KolmetzArgentinaBernardo Dominic UNQUALIFIED
Misaki S OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna J RulapaughIndiaBernardo Dominic RENEWAL
Isabel Z ShinkoUnited KingdomIoni Bowcher NEW
Mujtaba B CaldareraArgentinaAsiya Javayant NEGOTIATION
Isabel V NestleUnited KingdomOnyama Limba NEW
Misaki N WhobreyItalyIoni Bowcher QUALIFIED
Nicolas S FerenczBrazilXuxue Feng NEW
Salvatore U PerinItalyXuxue Feng NEW
Rodrigues L VenereGermanyAmy Elsner RENEWAL
Rodrigues W KolmetzUnited KingdomAsiya Javayant NEGOTIATION
Octavia Z InouyeRussiaAnna Fali NEW
Wickens G SergiItalyAmy Elsner NEGOTIATION
Clifford G WieserFranceAmy Elsner RENEWAL
Julie R StensethJapanAnna Fali QUALIFIED
Aika N OldroydRussiaIoni Bowcher NEGOTIATION
Jennifer H DoeUnited KingdomXuxue Feng QUALIFIED
Emily B DarakjyRussiaStephen Shaw QUALIFIED
Alejandro Q DilliardBrazilOnyama Limba PROPOSAL
Antonio B DoeItalyAsiya Javayant PROPOSAL
Greenwood N GarufiAustraliaStephen Shaw NEW
Izzy L OstroskyUnited KingdomAnna Fali NEW
Faith D BriddickJapanElwin Sharvill QUALIFIED
Greenwood Y FerenczFranceAnna Fali RENEWAL
Kadeem U WhobreyBrazilElwin Sharvill RENEWAL
Kadeem M BowleyBrazilBernardo Dominic RENEWAL
Kaitlin K OstroskyArgentinaElwin Sharvill UNQUALIFIED
Mujtaba G StensethFranceElwin Sharvill RENEWAL
Arvin S NestleUnited KingdomAnna Fali NEGOTIATION
Alejandro K GillianSpainXuxue Feng QUALIFIED
Arvin W PerinGermanyOnyama Limba NEGOTIATION
Jeanfrancois Q RulapaughAustraliaAmy Elsner NEGOTIATION
Frozen Columns
Name
Greenwood Z Amigon
Stacey P Waycott
Faith G Stenseth
Cody H Rim
Antonio Q Caudy
Ricardo Z Campain
Munro O Rulapaugh
Julie Z Gillian
Maisha H Malet
Kaitlin P Shinko
Leon O Campain
Ashley G Oldroyd
Cody H Shinko
Juan Y Vocelka
Clifford Z Shinko
Rodrigues D Amigon
Faith C Caudy
Aika K Ostrosky
Adams L Kusko
Leon Q Ruta
Leon N Foller
Aditya O Marrier
Jones B Vocelka
Octavia I Gaucho
Mayumi Q Bolognia
Jefferson T Gaucho
Kadeem D Inouye
Kaitlin N Amigon
Jefferson A Nicka
Jones S Butt
Antonio I Bolognia
Leja E Doe
Ivar B Poquette
Alejandro J Kusko
Silvio P Chui
Alejandro R Schemmer
Cody Z Slusarski
Rodrigues V Figeroa
Izzy D Gillian
Morrow Q Tollner
Maisha F Caldarera
Tony K Glick
Silvio D Gaucho
Leon T Ruta
Izzy L Darakjy
Maisha M Bowley
Aruna F Whobrey
David I Slusarski
Arvin G Flosi
Leja A Amigon
IdCountryDate
1000Japan2025-04-04
1001France2025-04-15
1002Canada2025-04-17
1003France2025-04-22
1004United Kingdom2025-04-17
1005Italy2025-04-01
1006Argentina2025-04-14
1007Japan2025-04-24
1008Spain2025-04-18
1009France2025-04-10
1010Argentina2025-04-02
1011Argentina2025-04-02
1012Spain2025-04-01
1013Brazil2025-04-08
1014France2025-04-01
1015Argentina2025-04-29
1016Japan2025-04-26
1017Australia2025-04-18
1018Brazil2025-04-04
1019India2025-04-12
1020Australia2025-04-05
1021Brazil2025-04-14
1022Argentina2025-04-10
1023United Kingdom2025-03-31
1024France2025-04-02
1025United Kingdom2025-04-09
1026Spain2025-04-26
1027United Kingdom2025-04-14
1028Canada2025-04-01
1029India2025-04-22
1030Italy2025-04-07
1031Australia2025-04-13
1032Italy2025-04-26
1033Italy2025-04-01
1034Japan2025-04-28
1035India2025-03-31
1036France2025-04-09
1037India2025-04-26
1038Japan2025-04-18
1039Germany2025-04-07
1040Russia2025-04-23
1041Canada2025-04-06
1042Brazil2025-04-25
1043United Kingdom2025-04-12
1044France2025-03-31
1045Australia2025-04-12
1046India2025-04-28
1047France2025-04-06
1048Argentina2025-04-01
1049France2025-04-08

On-Demand Data

NameIdCountryDate
Murillo L Darakjy1000Argentina2025-04-13
Munro A Maclead1001United Kingdom2025-04-26
Chavez S Perin1002United Kingdom2025-03-31
Jefferson Y Gillian1003France2025-04-11
Silvio P Wieser1004India2025-03-31
Stacey K Rulapaugh1005Russia2025-04-02
Ivar X Perin1006Brazil2025-04-01
Munro N Sergi1007Canada2025-04-18
Maisha A Ferencz1008Spain2025-04-10
Smith V Garufi1009Russia2025-04-19
Aika E Schemmer1010Brazil2025-04-07
Leja J Slusarski1011Argentina2025-04-29
Julie L Ruta1012Australia2025-04-24
Deepesh M Wieser1013Germany2025-04-18
Claire Y Malet1014Germany2025-04-01
Sinclair D Garufi1015Argentina2025-04-26
Darci P Waycott1016Russia2025-04-06
Octavia V Dilliard1017Brazil2025-04-02
Aruna Z Saylors1018Brazil2025-03-31
Izzy M Whobrey1019Italy2025-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa L GauchoJapanXuxue Feng PROPOSAL
Darci B WaycottUnited KingdomOnyama Limba PROPOSAL
Nicolas J AlbaresJapanAnna Fali RENEWAL
Kadeem W PerinCanadaStephen Shaw NEW
Murillo A AmigonUnited KingdomXuxue Feng PROPOSAL
Tony G GillianAustraliaIvan Magalhaes UNQUALIFIED
Misaki K OstroskyUnited KingdomXuxue Feng NEGOTIATION
Kadeem N IturbideAustraliaXuxue Feng RENEWAL
Octavia D RulapaughCanadaAnna Fali NEW
Ashley Y GauchoIndiaAsiya Javayant PROPOSAL
Alejandro N FerenczFranceIoni Bowcher NEW
Smith G BowleySpainXuxue Feng QUALIFIED
Stacey O FerenczCanadaBernardo Dominic NEGOTIATION
Ivar A MacleadIndiaBernardo Dominic UNQUALIFIED
Darci W MaletGermanyIvan Magalhaes RENEWAL
Francesco D VenereJapanOnyama Limba QUALIFIED
Morrow M CampainAustraliaIoni Bowcher PROPOSAL
Johnson M ButtBrazilAmy Elsner NEGOTIATION
Maria G IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Isabel N SchemmerBrazilIvan Magalhaes UNQUALIFIED
Cody B ChuiCanadaOnyama Limba NEW
Deepesh A IturbideJapanAmy Elsner QUALIFIED
Leja B StockhamUnited KingdomBernardo Dominic NEGOTIATION
David S BowleyBrazilAmy Elsner RENEWAL
Jennifer J OldroydJapanAmy Elsner UNQUALIFIED
Jones A KuskoJapanIoni Bowcher UNQUALIFIED
Costa S NickaBrazilStephen Shaw PROPOSAL
Jeanfrancois G NickaRussiaXuxue Feng NEW
Darci L FerenczArgentinaAsiya Javayant UNQUALIFIED
Juan R DoeFranceAsiya Javayant PROPOSAL
Adams L VocelkaAustraliaOnyama Limba NEW
Octavia G KolmetzUnited KingdomAnna Fali NEGOTIATION
Stacey C FigeroaArgentinaAsiya Javayant PROPOSAL
Kadeem Y InouyeCanadaIvan Magalhaes UNQUALIFIED
Arvin W CaldareraJapanAsiya Javayant RENEWAL
David S IturbideFranceAnna Fali UNQUALIFIED
Sinclair J KolmetzArgentinaAmy Elsner NEW
Julie D StensethArgentinaIoni Bowcher UNQUALIFIED
Cody W KuskoBrazilXuxue Feng NEGOTIATION
Deepesh G GauchoItalyIoni Bowcher PROPOSAL

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