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
Murillo P ButtJapanAnna Fali QUALIFIED
Rodrigues L BologniaIndiaAsiya Javayant QUALIFIED
Claire Q GillianCanadaIoni Bowcher NEGOTIATION
Chavez V KuskoAustraliaXuxue Feng NEGOTIATION
Aditya O MaletBrazilElwin Sharvill QUALIFIED
Ashley Q CaldareraJapanElwin Sharvill RENEWAL
Izzy R WieserSpainAsiya Javayant NEW
Chavez V ChuiAustraliaAmy Elsner QUALIFIED
Maria B SlusarskiGermanyOnyama Limba NEGOTIATION
Deepesh G MarrierItalyStephen Shaw UNQUALIFIED
Clifford T ShinkoFranceElwin Sharvill NEW
Darci N FigeroaRussiaAmy Elsner NEGOTIATION
Jefferson G SlusarskiJapanAnna Fali UNQUALIFIED
Kadeem S VenereIndiaIoni Bowcher UNQUALIFIED
Deepesh D RimRussiaIvan Magalhaes UNQUALIFIED
Faith E PaprockiBrazilXuxue Feng RENEWAL
Juan S RulapaughAustraliaAmy Elsner PROPOSAL
Silvio G FigeroaGermanyXuxue Feng QUALIFIED
Kaitlin M ShinkoIndiaIoni Bowcher NEGOTIATION
Salvatore D FollerItalyBernardo Dominic UNQUALIFIED
Jones J NestleUnited KingdomIvan Magalhaes PROPOSAL
Octavia M VocelkaCanadaAmy Elsner UNQUALIFIED
Juan I NickaIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois E DoeFranceAnna Fali UNQUALIFIED
David I ButtCanadaIoni Bowcher UNQUALIFIED
Jones L GillianAustraliaAsiya Javayant QUALIFIED
Maisha D DoeJapanStephen Shaw QUALIFIED
Deepesh F NickaFranceAnna Fali UNQUALIFIED
Salvatore C WieserUnited KingdomXuxue Feng NEGOTIATION
Juan E AlbaresFranceBernardo Dominic UNQUALIFIED
Faith W KolmetzFranceOnyama Limba NEGOTIATION
Adams J RutaAustraliaAmy Elsner RENEWAL
Arvin F OldroydSpainAsiya Javayant UNQUALIFIED
Murillo H NickaCanadaBernardo Dominic PROPOSAL
Misaki J FerenczGermanyElwin Sharvill RENEWAL
Jennifer V RulapaughAustraliaAsiya Javayant NEGOTIATION
James F InouyeGermanyBernardo Dominic UNQUALIFIED
Stacey R BowleyCanadaBernardo Dominic NEGOTIATION
Johnson J ShinkoIndiaIvan Magalhaes RENEWAL
Cody O SlusarskiJapanBernardo Dominic NEGOTIATION
Deepesh R WhobreyItalyAmy Elsner QUALIFIED
Izzy U CampainCanadaOnyama Limba PROPOSAL
Morrow G WieserArgentinaAsiya Javayant NEW
Salvatore G SchemmerSpainBernardo Dominic UNQUALIFIED
Salvatore F SlusarskiFranceElwin Sharvill RENEWAL
Stacey G FollerItalyAsiya Javayant QUALIFIED
Isabel H AlbaresRussiaXuxue Feng RENEWAL
Adams Y StockhamRussiaAmy Elsner UNQUALIFIED
Johnson O RulapaughRussiaAnna Fali NEGOTIATION
Wickens S ShinkoBrazilAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio P KuskoItalyOnyama Limba QUALIFIED
Salvatore T MarrierArgentinaXuxue Feng NEGOTIATION
Mujtaba E RulapaughArgentinaStephen Shaw PROPOSAL
Isabel U PaprockiItalyElwin Sharvill UNQUALIFIED
Deepesh P DilliardItalyAnna Fali QUALIFIED
Nicolas H CaudyCanadaStephen Shaw QUALIFIED
Smith J GauchoBrazilElwin Sharvill NEW
Leja D VocelkaJapanBernardo Dominic PROPOSAL
Silvio O AlbaresBrazilElwin Sharvill NEW
Aditya Q MacleadRussiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo K SchemmerItaly2024-06-16Rousseaux, Michael Esq RENEWAL16Bernardo Dominic
1001Stacey N SaylorsBrazil2024-06-02Truhlar And Truhlar Attys RENEWAL61Ioni Bowcher
1002Salvatore D VocelkaGermany2024-05-31Benton, John B Jr RENEWAL84Stephen Shaw
1003Clifford V ButtJapan2024-06-02Chanay, Jeffrey A Esq RENEWAL62Bernardo Dominic
1004Murillo Y NestleAustralia2024-06-07Chapman, Ross E Esq RENEWAL67Onyama Limba
1005Nicolas R WieserArgentina2024-06-03Rousseaux, Michael Esq RENEWAL68Xuxue Feng
1006Morrow P ButtUnited Kingdom2024-06-09Chanay, Jeffrey A Esq NEGOTIATION7Onyama Limba
1007Ivar N FollerRussia2024-06-02Feltz Printing Service QUALIFIED80Anna Fali
1008Deepesh I BologniaSpain2024-05-24Feltz Printing Service RENEWAL99Stephen Shaw
1009Aditya N WaycottRussia2024-06-20Rangoni Of Florence NEGOTIATION99Ivan Magalhaes
1010Izzy J VenereCanada2024-06-16Benton, John B Jr UNQUALIFIED35Asiya Javayant
1011Jefferson K CaldareraSpain2024-05-24Rangoni Of Florence PROPOSAL27Ivan Magalhaes
1012Deepesh E WhobreyFrance2024-05-25Rousseaux, Michael Esq UNQUALIFIED31Ioni Bowcher
1013Octavia V CaudyArgentina2024-06-03Rousseaux, Michael Esq NEW52Bernardo Dominic
1014Izzy P AlbaresRussia2024-06-19Chemel, James L Cpa QUALIFIED19Ivan Magalhaes
1015David G RulapaughIndia2024-06-13Chapman, Ross E Esq NEW18Anna Fali
1016Sinclair U GillianBrazil2024-06-11Chemel, James L Cpa PROPOSAL87Asiya Javayant
1017Adams P RimUnited Kingdom2024-05-26Rangoni Of Florence PROPOSAL85Ivan Magalhaes
1018David W CaldareraIndia2024-06-01King, Christopher A Esq PROPOSAL24Ivan Magalhaes
1019Aditya H NickaUnited Kingdom2024-05-31Dorl, James J Esq PROPOSAL46Xuxue Feng
1020Greenwood M SlusarskiGermany2024-06-11Buckley Miller Wright UNQUALIFIED32Ivan Magalhaes
1021Francesco G PoquetteCanada2024-06-04Dorl, James J Esq NEW6Amy Elsner
1022Nicolas Q SlusarskiArgentina2024-06-05Dorl, James J Esq RENEWAL20Amy Elsner
1023Rodrigues X PoquetteAustralia2024-06-05Printing Dimensions NEW73Asiya Javayant
1024Jeanfrancois F FollerItaly2024-06-13Chanay, Jeffrey A Esq NEGOTIATION37Stephen Shaw
1025James F NestleJapan2024-06-08Buckley Miller Wright UNQUALIFIED90Stephen Shaw
1026Maisha V StockhamSpain2024-06-10Buckley Miller Wright NEW8Ivan Magalhaes
1027Leon U VenereGermany2024-06-03Feiner Bros PROPOSAL1Stephen Shaw
1028Julie E ButtFrance2024-06-15King, Christopher A Esq NEGOTIATION19Xuxue Feng
1029Wickens O MacleadUnited Kingdom2024-06-20Rousseaux, Michael Esq NEW98Ioni Bowcher
1030Smith G FigeroaUnited Kingdom2024-06-19Chemel, James L Cpa NEGOTIATION96Bernardo Dominic
1031Octavia D PoquetteBrazil2024-06-05Truhlar And Truhlar Attys NEGOTIATION16Ivan Magalhaes
1032Jeanfrancois M MaletFrance2024-06-10Feiner Bros UNQUALIFIED90Bernardo Dominic
1033Ashley B StensethBrazil2024-05-28Rousseaux, Michael Esq RENEWAL84Ioni Bowcher
1034Morrow D SergiFrance2024-06-21Benton, John B Jr RENEWAL95Amy Elsner
1035Jones B PerinBrazil2024-06-16Feltz Printing Service PROPOSAL23Stephen Shaw
1036Aika H VenereRussia2024-06-22Buckley Miller Wright NEW90Ivan Magalhaes
1037Ivar Y TollnerCanada2024-06-07Chemel, James L Cpa RENEWAL87Ioni Bowcher
1038Jefferson W MorascaUnited Kingdom2024-06-14Truhlar And Truhlar Attys NEGOTIATION37Stephen Shaw
1039Kadeem N SlusarskiRussia2024-06-09Chapman, Ross E Esq PROPOSAL41Onyama Limba
1040Aruna R BriddickIndia2024-06-10Chemel, James L Cpa UNQUALIFIED84Elwin Sharvill
1041Deepesh E CaudyFrance2024-06-04Feiner Bros PROPOSAL11Asiya Javayant
1042Jeanfrancois Y StockhamArgentina2024-06-02Benton, John B Jr NEW30Ioni Bowcher
1043James A FigeroaJapan2024-06-22Feltz Printing Service RENEWAL38Xuxue Feng
1044Ricardo P VenereUnited Kingdom2024-06-01Morlong Associates QUALIFIED74Amy Elsner
1045Izzy P FlosiAustralia2024-06-08Benton, John B Jr PROPOSAL15Onyama Limba
1046Jones U WieserGermany2024-06-17Rousseaux, Michael Esq NEGOTIATION3Asiya Javayant
1047Adams V ShinkoCanada2024-05-31Buckley Miller Wright UNQUALIFIED45Stephen Shaw
1048Julie E DoeUnited Kingdom2024-06-08Chemel, James L Cpa UNQUALIFIED80Elwin Sharvill
1049Cody L BologniaBrazil2024-06-15Chanay, Jeffrey A Esq NEGOTIATION81Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aditya C KuskoBrazilAsiya Javayant PROPOSAL
Salvatore N OldroydRussiaOnyama Limba UNQUALIFIED
Maisha Z CaldareraRussiaElwin Sharvill RENEWAL
James L MacleadGermanyElwin Sharvill NEW
Ivar L DoeJapanAsiya Javayant RENEWAL
Rodrigues B FollerBrazilXuxue Feng RENEWAL
Jennifer V ChuiItalyOnyama Limba UNQUALIFIED
Aditya W CaudyUnited KingdomAsiya Javayant NEGOTIATION
Deepesh O ButtFranceOnyama Limba UNQUALIFIED
Mujtaba T InouyeUnited KingdomXuxue Feng PROPOSAL
Claire O ChuiBrazilAsiya Javayant QUALIFIED
Chavez M GauchoItalyAnna Fali NEW
Ashley E GauchoBrazilIoni Bowcher NEGOTIATION
Deepesh H RoysterJapanAsiya Javayant NEW
Morrow G VocelkaGermanyIvan Magalhaes NEGOTIATION
Leon R RulapaughFranceStephen Shaw RENEWAL
Murillo V IturbideAustraliaAmy Elsner NEGOTIATION
Ashley U WieserItalyStephen Shaw NEW
Ashley L IturbideAustraliaXuxue Feng NEW
Smith G TollnerJapanBernardo Dominic PROPOSAL
Maisha G InouyeArgentinaOnyama Limba PROPOSAL
Mujtaba J IturbideIndiaAnna Fali NEW
Adams K StensethCanadaXuxue Feng NEGOTIATION
Silvio D DoeIndiaIvan Magalhaes PROPOSAL
Maria G ButtAustraliaBernardo Dominic QUALIFIED
Izzy N RulapaughAustraliaAmy Elsner QUALIFIED
Chavez O SchemmerIndiaAnna Fali UNQUALIFIED
Aruna I KuskoGermanyIoni Bowcher PROPOSAL
Francesco S RoysterUnited KingdomOnyama Limba RENEWAL
David J InouyeArgentinaAmy Elsner QUALIFIED
Izzy R CaudyBrazilAmy Elsner QUALIFIED
Julie H CaudyArgentinaIvan Magalhaes NEW
Nicolas P InouyeGermanyBernardo Dominic NEW
Silvio D ShinkoItalyBernardo Dominic QUALIFIED
Tony P MorascaUnited KingdomAsiya Javayant RENEWAL
Jennifer T GlickIndiaXuxue Feng NEGOTIATION
Munro E SlusarskiSpainAnna Fali RENEWAL
Smith Y AmigonJapanAsiya Javayant QUALIFIED
Smith Z CaldareraUnited KingdomIoni Bowcher QUALIFIED
Silvio I BriddickAustraliaElwin Sharvill QUALIFIED
Clifford M CaudyBrazilAmy Elsner NEGOTIATION
Izzy X WieserItalyAnna Fali NEW
Cody M WaycottGermanyStephen Shaw NEGOTIATION
Murillo I FerenczAustraliaIvan Magalhaes RENEWAL
Jennifer R KuskoGermanyBernardo Dominic RENEWAL
Octavia N SlusarskiGermanyElwin Sharvill PROPOSAL
Greenwood J StockhamRussiaStephen Shaw NEW
Francesco B RulapaughArgentinaStephen Shaw UNQUALIFIED
Ricardo Z WieserCanadaIvan Magalhaes UNQUALIFIED
Arvin N CaldareraIndiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Chavez W Chui
Rodrigues U Nicka
Johnson T Waycott
Alejandro G Rulapaugh
Deepesh O Paprocki
Jefferson I Stenseth
Misaki L Rim
Ashley X Gaucho
Tony A Briddick
Maisha K Stenseth
Claire E Poquette
Cody I Gaucho
Aditya W Venere
Wickens L Caldarera
Julie B Tollner
Sinclair H Butt
Julie J Whobrey
Smith F Butt
Wickens V Doe
Emily F Whobrey
Murillo I Bolognia
Leon K Poquette
Jennifer M Sergi
Leon O Venere
Juan U Malet
Nicolas R Iturbide
Izzy P Maclead
Tony V Sergi
Wickens G Maclead
Rodrigues M Figeroa
Costa X Maclead
Kaitlin V Ruta
Kaitlin O Glick
Kaitlin U Gaucho
Jeanfrancois Z Slusarski
Aruna Z Doe
Cody X Caudy
Adams W Rulapaugh
Costa Y Wieser
Salvatore T Caldarera
Cody K Amigon
Mayumi N Stenseth
Emily R Butt
Claire E Rulapaugh
Juan E Foller
Julie P Rim
Clifford N Iturbide
Leja A Venere
Greenwood N Albares
Mayumi K Vocelka
IdCountryDate
1000India2024-05-25
1001Italy2024-05-31
1002Canada2024-06-02
1003United Kingdom2024-06-10
1004Italy2024-06-14
1005Russia2024-06-18
1006Canada2024-06-01
1007Italy2024-05-31
1008Spain2024-06-19
1009Germany2024-06-10
1010Germany2024-05-25
1011France2024-06-09
1012Japan2024-05-24
1013Russia2024-06-10
1014Canada2024-06-13
1015France2024-06-04
1016United Kingdom2024-05-25
1017Germany2024-05-28
1018Germany2024-05-24
1019Argentina2024-06-14
1020United Kingdom2024-06-15
1021Argentina2024-06-18
1022Canada2024-06-20
1023Japan2024-06-06
1024Brazil2024-06-13
1025Japan2024-06-15
1026Russia2024-06-07
1027France2024-06-02
1028Australia2024-06-05
1029Italy2024-06-02
1030Italy2024-06-13
1031Japan2024-06-18
1032Canada2024-06-22
1033India2024-06-11
1034France2024-06-10
1035Brazil2024-06-18
1036United Kingdom2024-06-21
1037Germany2024-05-30
1038Canada2024-06-16
1039Brazil2024-06-07
1040Germany2024-06-19
1041Germany2024-06-22
1042Australia2024-06-19
1043France2024-06-14
1044India2024-05-31
1045India2024-05-26
1046India2024-06-07
1047United Kingdom2024-05-31
1048Japan2024-06-11
1049Australia2024-06-09

On-Demand Data

NameIdCountryDate
Greenwood E Oldroyd1000Argentina2024-06-03
James D Foller1001France2024-06-15
Smith C Malet1002Japan2024-05-31
Johnson N Paprocki1003Canada2024-06-10
Costa R Garufi1004Argentina2024-06-06
Rodrigues R Wieser1005Russia2024-06-18
Mujtaba U Briddick1006Spain2024-06-16
Salvatore Y Ruta1007Spain2024-06-18
Mujtaba I Butt1008Russia2024-06-16
Arvin D Malet1009Italy2024-06-20
Clifford K Darakjy1010Canada2024-05-28
Silvio V Stenseth1011Japan2024-05-31
Tony N Rulapaugh1012Australia2024-06-22
Jefferson F Whobrey1013United Kingdom2024-05-25
Juan H Shinko1014France2024-06-03
Juan I Stockham1015Spain2024-05-24
Rodrigues N Schemmer1016Canada2024-06-19
Izzy Z Malet1017France2024-06-19
Cody M Iturbide1018Germany2024-05-31
Kaitlin S Marrier1019Germany2024-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith E DoeUnited KingdomAnna Fali NEW
Leja G TollnerCanadaAmy Elsner PROPOSAL
Rodrigues C MarrierJapanAnna Fali NEW
Cody R SchemmerGermanyXuxue Feng PROPOSAL
Johnson C RimUnited KingdomStephen Shaw PROPOSAL
Munro J StockhamCanadaOnyama Limba RENEWAL
Emily G TollnerCanadaBernardo Dominic UNQUALIFIED
Ashley R GillianIndiaElwin Sharvill UNQUALIFIED
Salvatore K ChuiFranceIoni Bowcher UNQUALIFIED
Mujtaba H DoeAustraliaIvan Magalhaes RENEWAL
Aditya T DilliardAustraliaXuxue Feng QUALIFIED
Adams X WaycottItalyIoni Bowcher PROPOSAL
Leon I SchemmerJapanAmy Elsner NEW
Rodrigues S TollnerUnited KingdomAnna Fali RENEWAL
Juan F WhobreyFranceAmy Elsner PROPOSAL
Jeanfrancois Y FollerArgentinaOnyama Limba UNQUALIFIED
Ricardo J ShinkoSpainIvan Magalhaes RENEWAL
Munro L AlbaresGermanyOnyama Limba RENEWAL
Aika Q StensethItalyStephen Shaw NEW
Kadeem A OldroydCanadaAmy Elsner NEGOTIATION
Jeanfrancois G SaylorsIndiaIoni Bowcher UNQUALIFIED
Tony V RimRussiaAmy Elsner PROPOSAL
Morrow T AmigonArgentinaStephen Shaw NEW
Ashley M SaylorsFranceAmy Elsner RENEWAL
Nicolas Y KuskoCanadaOnyama Limba UNQUALIFIED
Ashley A SaylorsJapanElwin Sharvill NEW
Francesco W BriddickFranceIoni Bowcher NEW
Leja M InouyeItalyAmy Elsner NEW
Salvatore K BowleyBrazilIoni Bowcher NEW
Ashley Y StensethIndiaIoni Bowcher PROPOSAL
Aika Z ChuiIndiaAmy Elsner QUALIFIED
Salvatore Y CaldareraUnited KingdomAnna Fali NEGOTIATION
Murillo D MaletIndiaXuxue Feng RENEWAL
Leon A FlosiJapanAsiya Javayant QUALIFIED
Wickens Y KuskoIndiaAsiya Javayant PROPOSAL
Nicolas Q DarakjyUnited KingdomIoni Bowcher PROPOSAL
Nicolas P PaprockiIndiaXuxue Feng RENEWAL
Jefferson V FerenczArgentinaStephen Shaw NEGOTIATION
Alejandro W FollerGermanyXuxue Feng UNQUALIFIED
Deepesh S NickaCanadaAnna Fali RENEWAL

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