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
Ivar Q MaletItalyStephen Shaw PROPOSAL
Mujtaba C IturbideGermanyIoni Bowcher NEGOTIATION
Aruna F DarakjyAustraliaElwin Sharvill PROPOSAL
Jones A DarakjyUnited KingdomElwin Sharvill PROPOSAL
Misaki P GlickRussiaIvan Magalhaes NEW
Darci S InouyeJapanAmy Elsner UNQUALIFIED
Morrow I NestleGermanyAmy Elsner RENEWAL
Antonio O PerinItalyBernardo Dominic NEGOTIATION
Claire R OstroskyUnited KingdomAmy Elsner QUALIFIED
Ricardo Y ChuiBrazilBernardo Dominic RENEWAL
Munro X AlbaresUnited KingdomAmy Elsner NEW
Alejandro C BowleyIndiaIoni Bowcher QUALIFIED
James M CampainIndiaAsiya Javayant UNQUALIFIED
Tony W OstroskyArgentinaStephen Shaw NEW
Nicolas B CaudyBrazilElwin Sharvill QUALIFIED
Misaki A VenereArgentinaElwin Sharvill QUALIFIED
Alejandro Z InouyeAustraliaXuxue Feng RENEWAL
Jennifer X CaldareraFranceStephen Shaw UNQUALIFIED
Jennifer S FlosiBrazilStephen Shaw NEW
Sinclair Z InouyeSpainAnna Fali NEGOTIATION
Murillo M MaletUnited KingdomXuxue Feng PROPOSAL
Chavez T WhobreyAustraliaAmy Elsner QUALIFIED
Adams Q RulapaughGermanyAmy Elsner RENEWAL
Greenwood M RulapaughRussiaBernardo Dominic NEGOTIATION
Ashley O VocelkaAustraliaOnyama Limba RENEWAL
Leja F PaprockiJapanXuxue Feng RENEWAL
Tony D MaletItalyIoni Bowcher NEGOTIATION
Antonio J StockhamBrazilAnna Fali RENEWAL
Francesco E IturbideSpainXuxue Feng RENEWAL
Misaki P StensethJapanIoni Bowcher QUALIFIED
Tony U BriddickArgentinaElwin Sharvill PROPOSAL
Smith X VenereIndiaXuxue Feng QUALIFIED
Misaki A KuskoItalyOnyama Limba UNQUALIFIED
Tony D MaletBrazilBernardo Dominic QUALIFIED
Izzy W BriddickGermanyBernardo Dominic NEGOTIATION
Adams S BowleyGermanyAmy Elsner PROPOSAL
Chavez L GillianCanadaIvan Magalhaes PROPOSAL
Murillo Z MaletJapanBernardo Dominic NEGOTIATION
Juan D FlosiBrazilOnyama Limba NEGOTIATION
Sinclair N GauchoCanadaIvan Magalhaes NEW
Julie L GauchoIndiaAmy Elsner PROPOSAL
Darci F VocelkaItalyXuxue Feng PROPOSAL
Ricardo D InouyeIndiaAsiya Javayant UNQUALIFIED
Aditya V GarufiIndiaBernardo Dominic QUALIFIED
Deepesh P AlbaresIndiaElwin Sharvill NEGOTIATION
Silvio S MorascaBrazilBernardo Dominic PROPOSAL
Jefferson K WhobreyJapanOnyama Limba NEGOTIATION
Mujtaba F MarrierRussiaXuxue Feng QUALIFIED
Sinclair F WhobreyJapanIvan Magalhaes NEGOTIATION
Emily A NestleIndiaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens E ChuiBrazilOnyama Limba RENEWAL
Isabel Y GlickGermanyOnyama Limba RENEWAL
James W FigeroaIndiaAnna Fali UNQUALIFIED
Cody D WieserBrazilOnyama Limba RENEWAL
Ashley X OstroskyItalyOnyama Limba NEGOTIATION
Rodrigues Q SchemmerAustraliaElwin Sharvill RENEWAL
Silvio U ButtGermanyAsiya Javayant PROPOSAL
Arvin Y SaylorsFranceIvan Magalhaes QUALIFIED
Greenwood N FerenczJapanAnna Fali NEW
Clifford R BologniaItalyXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan M MorascaFrance2024-04-25Chemel, James L Cpa NEW86Xuxue Feng
1001Wickens F VenereJapan2024-05-07Rangoni Of Florence RENEWAL71Ivan Magalhaes
1002Munro Y MaletRussia2024-04-30Truhlar And Truhlar Attys QUALIFIED50Xuxue Feng
1003Claire S IturbideArgentina2024-04-28Chemel, James L Cpa PROPOSAL13Bernardo Dominic
1004Johnson Q WieserBrazil2024-05-11Truhlar And Truhlar Attys UNQUALIFIED49Bernardo Dominic
1005Rodrigues D VocelkaRussia2024-05-21Dorl, James J Esq UNQUALIFIED98Onyama Limba
1006Darci P KuskoCanada2024-05-05Rangoni Of Florence UNQUALIFIED82Bernardo Dominic
1007Deepesh Q AlbaresItaly2024-05-22Rousseaux, Michael Esq NEGOTIATION89Onyama Limba
1008Isabel J PerinSpain2024-04-30Dorl, James J Esq NEGOTIATION86Amy Elsner
1009Silvio I RutaIndia2024-05-06Benton, John B Jr PROPOSAL33Elwin Sharvill
1010Deepesh R RoysterGermany2024-05-10Commercial Press NEGOTIATION95Ioni Bowcher
1011James I OldroydAustralia2024-04-26King, Christopher A Esq QUALIFIED24Onyama Limba
1012Cody B TollnerUnited Kingdom2024-05-05Benton, John B Jr NEW83Onyama Limba
1013Nicolas J DilliardItaly2024-05-17Truhlar And Truhlar Attys UNQUALIFIED36Onyama Limba
1014Deepesh Y CaudyRussia2024-05-01Chemel, James L Cpa RENEWAL5Xuxue Feng
1015Darci C StockhamSpain2024-05-08Chanay, Jeffrey A Esq NEGOTIATION57Stephen Shaw
1016Salvatore F DarakjyFrance2024-05-14Chanay, Jeffrey A Esq PROPOSAL50Onyama Limba
1017Claire H PoquetteSpain2024-05-09King, Christopher A Esq PROPOSAL15Ivan Magalhaes
1018Johnson T ShinkoSpain2024-04-30Truhlar And Truhlar Attys PROPOSAL64Onyama Limba
1019Ricardo V RutaGermany2024-04-29Rangoni Of Florence NEW98Ivan Magalhaes
1020Jennifer U WhobreyAustralia2024-05-08Truhlar And Truhlar Attys UNQUALIFIED34Ivan Magalhaes
1021Salvatore J InouyeArgentina2024-05-13Chapman, Ross E Esq UNQUALIFIED72Onyama Limba
1022Costa U GarufiSpain2024-05-13Morlong Associates NEGOTIATION96Amy Elsner
1023Greenwood R ShinkoIndia2024-05-19Chemel, James L Cpa UNQUALIFIED76Bernardo Dominic
1024Ivar V CampainAustralia2024-05-22Printing Dimensions PROPOSAL65Stephen Shaw
1025Jeanfrancois M StockhamGermany2024-05-23Morlong Associates PROPOSAL53Anna Fali
1026Arvin D DarakjyJapan2024-05-11Chemel, James L Cpa NEGOTIATION35Asiya Javayant
1027Leon R GillianJapan2024-05-04Feltz Printing Service RENEWAL57Asiya Javayant
1028Claire Z ButtIndia2024-05-15King, Christopher A Esq PROPOSAL86Xuxue Feng
1029Jennifer M SaylorsBrazil2024-05-15King, Christopher A Esq QUALIFIED58Amy Elsner
1030Ricardo S RutaRussia2024-05-01Buckley Miller Wright UNQUALIFIED4Onyama Limba
1031Deepesh E GarufiItaly2024-05-15Chapman, Ross E Esq NEGOTIATION17Stephen Shaw
1032Leon X BologniaArgentina2024-04-28Truhlar And Truhlar Attys RENEWAL80Ioni Bowcher
1033Kaitlin Z WhobreyIndia2024-04-30Buckley Miller Wright NEW57Stephen Shaw
1034Jeanfrancois I BologniaCanada2024-04-29Chanay, Jeffrey A Esq UNQUALIFIED97Xuxue Feng
1035Salvatore C MaletGermany2024-05-24Chapman, Ross E Esq UNQUALIFIED47Ivan Magalhaes
1036Misaki Q SaylorsFrance2024-04-30Chapman, Ross E Esq UNQUALIFIED78Elwin Sharvill
1037Adams O FigeroaItaly2024-05-07Rangoni Of Florence UNQUALIFIED68Ioni Bowcher
1038Silvio U PoquetteSpain2024-05-11Truhlar And Truhlar Attys RENEWAL85Anna Fali
1039Wickens F InouyeSpain2024-05-23Printing Dimensions NEGOTIATION8Amy Elsner
1040Ivar X ButtRussia2024-05-16Chemel, James L Cpa RENEWAL74Ivan Magalhaes
1041Alejandro D PerinItaly2024-05-05Truhlar And Truhlar Attys PROPOSAL85Bernardo Dominic
1042Kaitlin D BriddickGermany2024-05-23Feltz Printing Service QUALIFIED53Anna Fali
1043Leon X VocelkaItaly2024-04-25Rousseaux, Michael Esq NEGOTIATION24Amy Elsner
1044Francesco F PoquetteArgentina2024-04-27Benton, John B Jr NEGOTIATION23Elwin Sharvill
1045Emily Y PoquetteGermany2024-05-14Truhlar And Truhlar Attys NEGOTIATION22Asiya Javayant
1046Faith N BowleyItaly2024-05-18Rousseaux, Michael Esq PROPOSAL45Stephen Shaw
1047Ashley M CampainFrance2024-05-13Rangoni Of Florence QUALIFIED37Ivan Magalhaes
1048Darci D WieserBrazil2024-05-06Rousseaux, Michael Esq PROPOSAL54Onyama Limba
1049Cody S SchemmerAustralia2024-05-14Feiner Bros PROPOSAL35Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Cody P GillianAustraliaElwin Sharvill RENEWAL
Adams U FollerRussiaAnna Fali QUALIFIED
Aika X NestleItalyAnna Fali NEW
Jennifer E KuskoJapanAmy Elsner QUALIFIED
Stacey R PaprockiRussiaBernardo Dominic UNQUALIFIED
Smith J MorascaArgentinaOnyama Limba RENEWAL
Ivar J AmigonItalyAmy Elsner RENEWAL
Claire I PerinAustraliaIoni Bowcher UNQUALIFIED
Nicolas R BologniaItalyBernardo Dominic UNQUALIFIED
Jones E InouyeGermanyAmy Elsner PROPOSAL
Stacey R SergiCanadaIvan Magalhaes RENEWAL
Leon A WieserCanadaIoni Bowcher QUALIFIED
Ashley X StockhamBrazilAsiya Javayant UNQUALIFIED
Julie K RulapaughBrazilAmy Elsner UNQUALIFIED
James N MaletArgentinaStephen Shaw NEGOTIATION
Mujtaba Y AlbaresRussiaIoni Bowcher PROPOSAL
Jefferson B ShinkoUnited KingdomBernardo Dominic NEW
Leon A IturbideUnited KingdomElwin Sharvill NEW
Stacey E AmigonUnited KingdomOnyama Limba NEW
Clifford P SlusarskiJapanOnyama Limba UNQUALIFIED
Arvin N SchemmerArgentinaAsiya Javayant QUALIFIED
Alejandro L IturbideBrazilIoni Bowcher UNQUALIFIED
Arvin C GauchoFranceStephen Shaw QUALIFIED
Wickens J PoquetteCanadaIvan Magalhaes QUALIFIED
Kaitlin I BologniaAustraliaIoni Bowcher NEGOTIATION
Claire Q DoeAustraliaIoni Bowcher NEW
Arvin F ButtBrazilBernardo Dominic UNQUALIFIED
Mayumi G IturbideUnited KingdomAmy Elsner PROPOSAL
Ashley Z AlbaresJapanAnna Fali PROPOSAL
Smith Y BowleyFranceIvan Magalhaes NEGOTIATION
Munro D StockhamCanadaBernardo Dominic RENEWAL
Sinclair B OstroskyItalyIvan Magalhaes RENEWAL
Cody F DilliardAustraliaAnna Fali NEW
Kaitlin G ChuiJapanXuxue Feng NEW
Francesco X AlbaresFranceXuxue Feng NEGOTIATION
Maria J SchemmerFranceAsiya Javayant RENEWAL
Claire H DilliardRussiaElwin Sharvill UNQUALIFIED
Maria I RulapaughFranceAnna Fali RENEWAL
Faith U FerenczUnited KingdomIoni Bowcher QUALIFIED
Aditya X StockhamArgentinaBernardo Dominic UNQUALIFIED
Rodrigues R RulapaughCanadaElwin Sharvill UNQUALIFIED
Mayumi R FollerUnited KingdomAsiya Javayant PROPOSAL
Julie O AlbaresBrazilIvan Magalhaes QUALIFIED
Leon L CampainUnited KingdomStephen Shaw RENEWAL
Juan W WieserSpainAsiya Javayant UNQUALIFIED
Jefferson I NickaSpainBernardo Dominic NEGOTIATION
Nicolas R MorascaFranceAmy Elsner RENEWAL
Faith F DilliardArgentinaBernardo Dominic QUALIFIED
Jefferson H FollerIndiaAnna Fali QUALIFIED
Maisha N OstroskyGermanyIvan Magalhaes NEW
Frozen Columns
Name
Misaki C Briddick
Aruna H Albares
James W Rulapaugh
Smith K Butt
Salvatore V Stockham
Ashley K Malet
Ricardo L Perin
Kaitlin E Royster
James C Waycott
Aditya L Poquette
Wickens I Saylors
Jefferson O Figeroa
Mujtaba I Wieser
Izzy C Oldroyd
Mayumi I Dilliard
Ivar P Maclead
Jones C Butt
Claire Z Paprocki
Costa H Gaucho
Kaitlin C Vocelka
Salvatore Y Figeroa
Claire Y Rulapaugh
Ashley A Oldroyd
Leja H Venere
Sinclair D Bolognia
Alejandro C Stenseth
Juan D Royster
Smith W Inouye
Ivar C Briddick
Darci C Maclead
Jefferson D Wieser
Deepesh J Iturbide
Silvio A Whobrey
Mayumi E Foller
Isabel W Vocelka
Aruna M Ostrosky
Stacey D Briddick
Morrow S Nestle
Aditya E Kusko
Alejandro Q Stockham
Clifford K Nestle
Francesco O Whobrey
Claire S Campain
Jeanfrancois F Maclead
David M Slusarski
Isabel W Maclead
Aditya M Amigon
Kaitlin O Malet
Maria H Saylors
Misaki K Sergi
IdCountryDate
1000Brazil2024-05-10
1001France2024-05-16
1002Argentina2024-05-03
1003United Kingdom2024-05-04
1004France2024-04-25
1005Spain2024-04-30
1006Canada2024-05-23
1007Spain2024-05-13
1008Canada2024-05-18
1009Canada2024-05-24
1010Canada2024-05-05
1011Brazil2024-05-12
1012Australia2024-05-14
1013Canada2024-04-26
1014India2024-05-15
1015Italy2024-05-19
1016India2024-05-08
1017Canada2024-04-25
1018Italy2024-05-23
1019Germany2024-05-04
1020United Kingdom2024-05-21
1021United Kingdom2024-05-20
1022Japan2024-05-23
1023Italy2024-05-12
1024Germany2024-05-11
1025United Kingdom2024-05-01
1026France2024-05-12
1027Italy2024-05-17
1028Italy2024-05-22
1029Italy2024-05-20
1030Japan2024-05-18
1031Italy2024-05-03
1032Japan2024-05-10
1033France2024-05-24
1034Australia2024-04-26
1035Spain2024-04-30
1036Germany2024-05-18
1037Russia2024-05-18
1038Australia2024-05-24
1039Argentina2024-05-08
1040France2024-05-10
1041France2024-05-15
1042Brazil2024-05-11
1043India2024-05-13
1044Brazil2024-05-16
1045Russia2024-04-26
1046Russia2024-04-30
1047Brazil2024-05-18
1048Germany2024-05-06
1049Brazil2024-05-23

On-Demand Data

NameIdCountryDate
Mujtaba E Campain1000Canada2024-05-01
Octavia R Gillian1001Italy2024-04-30
Salvatore E Malet1002United Kingdom2024-05-06
Kadeem J Chui1003Argentina2024-05-12
Aruna E Royster1004Germany2024-05-18
Adams N Bolognia1005France2024-05-04
Aditya L Bolognia1006France2024-04-25
Stacey R Garufi1007Australia2024-05-16
Cody K Dilliard1008Australia2024-05-15
Wickens S Chui1009Canada2024-05-21
Izzy S Glick1010France2024-05-08
Salvatore F Darakjy1011Japan2024-04-30
Adams X Morasca1012Brazil2024-05-16
Ashley I Shinko1013India2024-05-23
Misaki S Flosi1014Argentina2024-05-05
Aika T Kusko1015Russia2024-05-03
Greenwood N Vocelka1016Australia2024-04-29
David B Caudy1017India2024-04-30
Mujtaba D Foller1018Russia2024-05-06
Antonio Y Ferencz1019Argentina2024-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria U SlusarskiJapanOnyama Limba RENEWAL
Morrow C SlusarskiBrazilIvan Magalhaes NEGOTIATION
Munro R KuskoIndiaStephen Shaw NEGOTIATION
Ashley T SergiItalyOnyama Limba NEW
Claire T ShinkoRussiaAsiya Javayant UNQUALIFIED
Wickens B NestleArgentinaStephen Shaw PROPOSAL
Rodrigues Z NestleArgentinaOnyama Limba RENEWAL
Stacey A NickaGermanyAmy Elsner NEGOTIATION
Greenwood W StensethBrazilIoni Bowcher UNQUALIFIED
Mayumi L KolmetzBrazilAsiya Javayant NEGOTIATION
Munro B DilliardRussiaElwin Sharvill RENEWAL
Munro V KuskoJapanOnyama Limba NEGOTIATION
James T SergiItalyElwin Sharvill PROPOSAL
Johnson T SchemmerArgentinaIvan Magalhaes NEW
Ashley A DarakjyJapanStephen Shaw QUALIFIED
Mayumi B SaylorsSpainElwin Sharvill RENEWAL
Costa B CaldareraUnited KingdomXuxue Feng NEW
Misaki H PoquetteGermanyIvan Magalhaes UNQUALIFIED
Munro T DarakjyJapanBernardo Dominic UNQUALIFIED
Greenwood V DarakjyIndiaIvan Magalhaes NEW
Ashley O FlosiFranceXuxue Feng UNQUALIFIED
Nicolas A FlosiJapanAmy Elsner RENEWAL
Juan N FollerIndiaXuxue Feng RENEWAL
Silvio A CaldareraJapanBernardo Dominic QUALIFIED
Ivar Y MaletIndiaStephen Shaw NEGOTIATION
Clifford J WaycottRussiaBernardo Dominic PROPOSAL
Sinclair G ChuiItalyAsiya Javayant NEW
Johnson U FerenczUnited KingdomOnyama Limba QUALIFIED
Leja S CampainUnited KingdomAsiya Javayant NEW
Claire Z NickaUnited KingdomAsiya Javayant UNQUALIFIED
James W NestleCanadaAmy Elsner PROPOSAL
Morrow J NestleGermanyStephen Shaw QUALIFIED
David V WieserJapanIoni Bowcher RENEWAL
Misaki A VocelkaJapanStephen Shaw PROPOSAL
Munro N MaletAustraliaIvan Magalhaes NEW
Adams X RoysterBrazilAnna Fali RENEWAL
Aika O FlosiUnited KingdomStephen Shaw RENEWAL
Julie U RoysterAustraliaAsiya Javayant NEGOTIATION
Wickens K PoquetteCanadaAnna Fali QUALIFIED
Salvatore V AmigonGermanyAmy Elsner UNQUALIFIED

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