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
Isabel O WaycottUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois L VocelkaSpainAnna Fali QUALIFIED
Jefferson S BologniaIndiaIoni Bowcher UNQUALIFIED
Isabel F NestleItalyStephen Shaw NEW
Maisha L PerinCanadaStephen Shaw NEW
Smith U WieserCanadaOnyama Limba UNQUALIFIED
Wickens Z RulapaughBrazilIvan Magalhaes NEGOTIATION
Deepesh B TollnerJapanBernardo Dominic RENEWAL
Julie A MacleadItalyAsiya Javayant RENEWAL
Emily V NestleArgentinaStephen Shaw RENEWAL
Jefferson V GarufiItalyXuxue Feng NEW
Misaki M DarakjyArgentinaAmy Elsner NEW
Johnson M ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio W ButtItalyStephen Shaw PROPOSAL
Octavia K MarrierAustraliaElwin Sharvill NEGOTIATION
Sinclair V PoquetteIndiaIoni Bowcher QUALIFIED
Wickens C VenereRussiaElwin Sharvill NEGOTIATION
Maisha H AlbaresGermanyAmy Elsner QUALIFIED
Arvin U SchemmerJapanStephen Shaw RENEWAL
Francesco Y FerenczIndiaXuxue Feng PROPOSAL
James B RoysterFranceIoni Bowcher PROPOSAL
Nicolas V InouyeAustraliaOnyama Limba UNQUALIFIED
Smith P GillianUnited KingdomStephen Shaw RENEWAL
Antonio U SaylorsArgentinaXuxue Feng NEW
Clifford I PoquetteUnited KingdomAnna Fali NEGOTIATION
Smith M SlusarskiIndiaStephen Shaw NEW
Juan P BriddickCanadaAmy Elsner NEGOTIATION
Cody M StensethFranceElwin Sharvill NEW
Aika T FollerIndiaIoni Bowcher NEGOTIATION
Faith X StensethSpainAmy Elsner QUALIFIED
Octavia A DarakjyArgentinaBernardo Dominic PROPOSAL
David S BowleyJapanIvan Magalhaes NEW
Alejandro J StensethRussiaIvan Magalhaes RENEWAL
Tony R VocelkaAustraliaIvan Magalhaes NEGOTIATION
Sinclair S BowleyAustraliaOnyama Limba UNQUALIFIED
Costa B SchemmerSpainAsiya Javayant QUALIFIED
Jeanfrancois O MaletBrazilAnna Fali PROPOSAL
Francesco Y DilliardItalyIvan Magalhaes QUALIFIED
Jennifer A WaycottCanadaOnyama Limba QUALIFIED
Leja X ChuiArgentinaAsiya Javayant PROPOSAL
Jefferson S StensethUnited KingdomBernardo Dominic PROPOSAL
Jennifer T VocelkaItalyAmy Elsner UNQUALIFIED
Silvio B WhobreyFranceBernardo Dominic NEW
Leja E MacleadAustraliaAsiya Javayant NEGOTIATION
Sinclair F MaletGermanyOnyama Limba PROPOSAL
Ricardo W GauchoCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois O PoquetteAustraliaIoni Bowcher NEGOTIATION
Deepesh P RutaCanadaBernardo Dominic RENEWAL
Claire R TollnerFranceStephen Shaw NEGOTIATION
Rodrigues N ButtJapanStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody C MorascaGermanyOnyama Limba RENEWAL
Ashley G AlbaresIndiaElwin Sharvill NEW
Julie M KuskoRussiaAnna Fali PROPOSAL
Rodrigues N CaudyAustraliaAsiya Javayant QUALIFIED
Murillo L VocelkaRussiaAsiya Javayant RENEWAL
Alejandro B MorascaItalyStephen Shaw QUALIFIED
Deepesh T StensethUnited KingdomIvan Magalhaes NEGOTIATION
Isabel N BologniaUnited KingdomAsiya Javayant NEGOTIATION
Aditya H RulapaughJapanXuxue Feng UNQUALIFIED
Clifford Z VocelkaRussiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro F FerenczAustralia2026-06-08Chapman, Ross E Esq PROPOSAL73Ioni Bowcher
1001Arvin M PerinRussia2026-06-05Rangoni Of Florence UNQUALIFIED4Anna Fali
1002Antonio K AlbaresUnited Kingdom2026-06-17Chanay, Jeffrey A Esq RENEWAL1Xuxue Feng
1003Jennifer E MorascaCanada2026-06-11Morlong Associates RENEWAL5Elwin Sharvill
1004David W RulapaughBrazil2026-06-28Commercial Press QUALIFIED61Bernardo Dominic
1005Salvatore F KuskoItaly2026-06-03Chanay, Jeffrey A Esq QUALIFIED88Stephen Shaw
1006Clifford G ButtBrazil2026-06-22King, Christopher A Esq RENEWAL27Bernardo Dominic
1007Leja E RimRussia2026-06-05King, Christopher A Esq NEW83Stephen Shaw
1008Mujtaba K MorascaItaly2026-06-23Chapman, Ross E Esq QUALIFIED73Anna Fali
1009Aditya P MorascaUnited Kingdom2026-06-29Chapman, Ross E Esq UNQUALIFIED37Anna Fali
1010Murillo H WieserCanada2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED92Anna Fali
1011Wickens Q RutaRussia2026-06-15Truhlar And Truhlar Attys UNQUALIFIED39Anna Fali
1012Rodrigues K FerenczJapan2026-06-08Dorl, James J Esq QUALIFIED69Amy Elsner
1013Maria E BriddickUnited Kingdom2026-06-26King, Christopher A Esq QUALIFIED5Ivan Magalhaes
1014Aika G WaycottSpain2026-06-26Printing Dimensions RENEWAL50Bernardo Dominic
1015Darci N MaletRussia2026-06-15Rangoni Of Florence QUALIFIED84Asiya Javayant
1016Kadeem G DilliardBrazil2026-06-29Commercial Press RENEWAL43Onyama Limba
1017Izzy S DarakjyJapan2026-06-03Benton, John B Jr QUALIFIED15Ioni Bowcher
1018Deepesh V KuskoAustralia2026-06-08Chanay, Jeffrey A Esq QUALIFIED79Ivan Magalhaes
1019Tony I PoquetteItaly2026-07-02Chapman, Ross E Esq RENEWAL19Bernardo Dominic
1020Chavez L GauchoBrazil2026-06-09Rousseaux, Michael Esq UNQUALIFIED39Onyama Limba
1021Aditya D VocelkaUnited Kingdom2026-07-02Printing Dimensions QUALIFIED7Anna Fali
1022Misaki O PoquetteBrazil2026-07-02Benton, John B Jr PROPOSAL80Xuxue Feng
1023Stacey A OldroydJapan2026-06-03Commercial Press PROPOSAL84Asiya Javayant
1024Cody A SaylorsUnited Kingdom2026-06-22Printing Dimensions RENEWAL89Xuxue Feng
1025Aruna I SergiJapan2026-06-14Feiner Bros UNQUALIFIED19Stephen Shaw
1026Mujtaba S RulapaughArgentina2026-06-29Buckley Miller Wright NEGOTIATION87Xuxue Feng
1027Julie N ShinkoUnited Kingdom2026-06-14Feltz Printing Service QUALIFIED30Amy Elsner
1028Aika M FigeroaAustralia2026-06-16Feltz Printing Service UNQUALIFIED76Bernardo Dominic
1029Darci Q MacleadJapan2026-06-10Chanay, Jeffrey A Esq QUALIFIED44Elwin Sharvill
1030Clifford Z GillianItaly2026-06-04Chemel, James L Cpa NEGOTIATION23Onyama Limba
1031Murillo H SergiBrazil2026-06-08Rousseaux, Michael Esq QUALIFIED35Elwin Sharvill
1032Darci K CaldareraBrazil2026-06-18Feltz Printing Service PROPOSAL39Amy Elsner
1033Morrow A DilliardBrazil2026-06-27Buckley Miller Wright RENEWAL69Xuxue Feng
1034Clifford V ShinkoJapan2026-06-03Dorl, James J Esq QUALIFIED26Asiya Javayant
1035Greenwood G FerenczItaly2026-06-26Feiner Bros PROPOSAL18Bernardo Dominic
1036Alejandro D FollerArgentina2026-06-16King, Christopher A Esq PROPOSAL57Asiya Javayant
1037Sinclair X MacleadArgentina2026-06-05Commercial Press PROPOSAL72Asiya Javayant
1038Octavia B BologniaSpain2026-06-30Chanay, Jeffrey A Esq NEGOTIATION6Elwin Sharvill
1039Murillo K PoquetteSpain2026-06-17Chanay, Jeffrey A Esq QUALIFIED71Asiya Javayant
1040Tony K FigeroaFrance2026-06-08Feiner Bros QUALIFIED87Elwin Sharvill
1041Nicolas S GarufiArgentina2026-06-12Truhlar And Truhlar Attys QUALIFIED52Stephen Shaw
1042Salvatore K StockhamCanada2026-06-15Commercial Press UNQUALIFIED66Elwin Sharvill
1043Maria V CampainJapan2026-06-21King, Christopher A Esq NEGOTIATION50Onyama Limba
1044David V CaudyIndia2026-06-14Feiner Bros RENEWAL38Ioni Bowcher
1045Greenwood Y FigeroaGermany2026-07-02Rangoni Of Florence NEGOTIATION65Amy Elsner
1046Arvin G FigeroaGermany2026-07-02Chapman, Ross E Esq UNQUALIFIED53Onyama Limba
1047Ashley A ChuiIndia2026-06-25Dorl, James J Esq NEGOTIATION56Ioni Bowcher
1048Aruna J AlbaresJapan2026-06-22Truhlar And Truhlar Attys NEGOTIATION99Stephen Shaw
1049Kadeem J RulapaughGermany2026-06-15Chemel, James L Cpa NEGOTIATION46Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas X FlosiSpainAsiya Javayant UNQUALIFIED
Wickens M InouyeBrazilAsiya Javayant PROPOSAL
Rodrigues O PoquetteBrazilIvan Magalhaes UNQUALIFIED
Clifford F MarrierFranceAnna Fali NEGOTIATION
Greenwood I MorascaCanadaXuxue Feng NEGOTIATION
Greenwood G GillianBrazilAmy Elsner NEW
Mayumi N CaudyFranceIvan Magalhaes UNQUALIFIED
Salvatore I InouyeSpainAmy Elsner NEW
Leon H FerenczArgentinaXuxue Feng NEGOTIATION
Darci V RutaJapanAsiya Javayant NEW
Claire O SchemmerCanadaBernardo Dominic QUALIFIED
Julie L OstroskyBrazilAmy Elsner PROPOSAL
Smith Q MarrierSpainAnna Fali PROPOSAL
Aditya S MacleadAustraliaAnna Fali NEGOTIATION
Rodrigues V BriddickFranceAmy Elsner QUALIFIED
Alejandro P WhobreyArgentinaAnna Fali UNQUALIFIED
Sinclair S RoysterUnited KingdomBernardo Dominic PROPOSAL
Mujtaba N NestleJapanStephen Shaw NEW
Juan H CaudyJapanStephen Shaw RENEWAL
Tony H ShinkoBrazilAnna Fali PROPOSAL
Silvio V BowleyAustraliaStephen Shaw QUALIFIED
Clifford W FigeroaItalyStephen Shaw UNQUALIFIED
Jones Z DarakjyBrazilStephen Shaw UNQUALIFIED
Aruna Q RimArgentinaAmy Elsner QUALIFIED
Aika M PaprockiFranceXuxue Feng RENEWAL
Faith N DoeFranceElwin Sharvill UNQUALIFIED
Johnson N FerenczJapanAsiya Javayant QUALIFIED
Aditya Z BologniaItalyOnyama Limba PROPOSAL
Faith Y FigeroaItalyElwin Sharvill NEW
Rodrigues E StensethRussiaOnyama Limba UNQUALIFIED
Misaki I StockhamItalyAmy Elsner RENEWAL
Isabel F RoysterUnited KingdomAsiya Javayant PROPOSAL
Julie C ButtIndiaAmy Elsner PROPOSAL
Nicolas B DilliardRussiaAnna Fali UNQUALIFIED
Jennifer L VocelkaArgentinaElwin Sharvill NEW
Sinclair K ChuiJapanIoni Bowcher NEGOTIATION
Tony A PoquetteFranceStephen Shaw UNQUALIFIED
Cody C RulapaughIndiaStephen Shaw RENEWAL
Misaki M KuskoArgentinaXuxue Feng NEGOTIATION
Isabel A MarrierUnited KingdomStephen Shaw NEW
Costa V StensethGermanyStephen Shaw NEGOTIATION
Costa X AlbaresCanadaStephen Shaw NEGOTIATION
Emily B ButtUnited KingdomAsiya Javayant RENEWAL
Maisha E GillianAustraliaAmy Elsner PROPOSAL
Maisha H GlickJapanAnna Fali QUALIFIED
Kadeem R MacleadGermanyAnna Fali NEW
Munro H MorascaBrazilAnna Fali NEGOTIATION
Octavia C BologniaRussiaIoni Bowcher RENEWAL
Aditya D FigeroaJapanElwin Sharvill RENEWAL
Silvio T RimAustraliaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Kaitlin F Venere
Cody J Butt
Jefferson Z Gaucho
Adams V Shinko
James J Glick
Aika Y Inouye
Silvio X Albares
Salvatore L Oldroyd
Aika X Briddick
Octavia X Bowley
Juan P Sergi
Aika D Oldroyd
Tony M Caudy
Juan L Gillian
Jefferson N Sergi
Munro I Maclead
Jennifer R Dilliard
Costa O Paprocki
James Y Oldroyd
Aruna E Doe
Faith I Rulapaugh
Juan Q Doe
Mujtaba W Maclead
Stacey Y Sergi
Cody D Slusarski
Ricardo B Royster
Rodrigues Y Poquette
Julie L Bolognia
Faith O Ostrosky
Maisha L Schemmer
Deepesh O Flosi
Julie L Marrier
Munro O Gaucho
Aika K Venere
Chavez R Venere
Faith V Inouye
Silvio Y Kolmetz
Aika D Foller
Misaki P Ostrosky
Arvin W Flosi
Silvio O Caudy
Silvio R Morasca
Arvin Y Bolognia
Alejandro I Caudy
Maria K Stenseth
Adams Y Iturbide
Jones W Rim
Jeanfrancois W Briddick
Maisha B Wieser
Ricardo M Oldroyd
IdCountryDate
1000Brazil2026-06-08
1001Germany2026-06-29
1002Brazil2026-06-19
1003Canada2026-06-13
1004Argentina2026-06-08
1005United Kingdom2026-06-25
1006Argentina2026-06-17
1007Canada2026-06-28
1008France2026-06-22
1009Canada2026-06-12
1010Russia2026-06-17
1011Japan2026-06-09
1012India2026-06-12
1013Spain2026-06-21
1014Japan2026-06-10
1015India2026-06-16
1016Argentina2026-06-12
1017Japan2026-06-30
1018Russia2026-06-07
1019Japan2026-06-18
1020Australia2026-06-27
1021India2026-06-21
1022Italy2026-07-01
1023Italy2026-06-18
1024Canada2026-06-22
1025Russia2026-06-12
1026Germany2026-06-09
1027Argentina2026-06-15
1028France2026-06-20
1029Russia2026-06-23
1030Brazil2026-06-28
1031France2026-06-29
1032Germany2026-06-26
1033Brazil2026-06-28
1034Italy2026-06-24
1035United Kingdom2026-06-04
1036India2026-06-28
1037United Kingdom2026-06-05
1038India2026-06-27
1039Brazil2026-06-04
1040United Kingdom2026-06-21
1041Italy2026-06-22
1042Canada2026-06-03
1043India2026-06-04
1044Australia2026-06-28
1045Australia2026-06-22
1046Italy2026-06-12
1047Japan2026-06-09
1048France2026-06-11
1049France2026-06-18

On-Demand Data

NameIdCountryDate
Mujtaba W Albares1000France2026-06-28
Claire M Bowley1001Italy2026-06-12
James X Vocelka1002United Kingdom2026-06-21
Aruna L Chui1003Spain2026-06-17
Cody J Gaucho1004Argentina2026-06-18
Ashley B Iturbide1005Japan2026-06-03
Isabel U Glick1006France2026-06-26
Costa W Shinko1007India2026-07-01
Juan B Foller1008Spain2026-06-23
Johnson S Sergi1009Japan2026-06-12
Rodrigues X Poquette1010Russia2026-07-02
Aruna W Shinko1011Germany2026-06-17
Darci Q Marrier1012Spain2026-06-28
Greenwood Q Glick1013Russia2026-06-09
Ricardo B Bowley1014India2026-06-13
Salvatore I Maclead1015Australia2026-06-10
Adams W Amigon1016Brazil2026-06-23
Jeanfrancois G Oldroyd1017Russia2026-06-29
Darci G Rim1018Canada2026-06-25
Silvio N Royster1019Russia2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria M DilliardRussiaXuxue Feng UNQUALIFIED
Leon H BriddickUnited KingdomAmy Elsner NEGOTIATION
Mujtaba X RutaIndiaBernardo Dominic RENEWAL
Aika D RulapaughArgentinaBernardo Dominic PROPOSAL
Arvin G SaylorsCanadaElwin Sharvill NEW
Mayumi Y CaudyCanadaIoni Bowcher NEW
Aditya O FollerAustraliaXuxue Feng UNQUALIFIED
Arvin J VocelkaJapanAnna Fali QUALIFIED
Deepesh A VenereArgentinaXuxue Feng QUALIFIED
Stacey I RoysterUnited KingdomStephen Shaw RENEWAL
Darci O FerenczUnited KingdomIvan Magalhaes RENEWAL
Arvin Y GauchoIndiaStephen Shaw NEGOTIATION
Jennifer E MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Johnson T SergiUnited KingdomAmy Elsner PROPOSAL
Clifford A WieserUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore P AmigonCanadaAsiya Javayant QUALIFIED
Rodrigues I KolmetzFranceAsiya Javayant NEW
Jennifer E VenereSpainAsiya Javayant RENEWAL
Jennifer H PoquetteGermanyIoni Bowcher QUALIFIED
Deepesh O ChuiRussiaOnyama Limba RENEWAL
Izzy M SchemmerGermanyStephen Shaw RENEWAL
Arvin Z DarakjyBrazilAsiya Javayant PROPOSAL
James B CaudyGermanyOnyama Limba PROPOSAL
Deepesh I AlbaresArgentinaXuxue Feng NEW
Morrow Z PaprockiIndiaAnna Fali NEW
Misaki W SergiJapanAsiya Javayant NEW
Arvin N MaletIndiaElwin Sharvill QUALIFIED
Greenwood U BologniaUnited KingdomAmy Elsner QUALIFIED
Leja K BriddickGermanyElwin Sharvill QUALIFIED
Antonio A SergiIndiaOnyama Limba NEGOTIATION
Mayumi A KuskoAustraliaXuxue Feng QUALIFIED
Nicolas I VenereArgentinaIoni Bowcher UNQUALIFIED
Nicolas B NickaIndiaOnyama Limba RENEWAL
Kadeem B MacleadSpainIoni Bowcher PROPOSAL
Juan M CaldareraUnited KingdomBernardo Dominic NEW
Aruna I SergiBrazilAmy Elsner RENEWAL
Deepesh I SlusarskiIndiaElwin Sharvill NEGOTIATION
Leja U FlosiGermanyIoni Bowcher RENEWAL
Jeanfrancois S GarufiIndiaOnyama Limba NEGOTIATION
Jones J NestleFranceIvan Magalhaes 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>