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
Jennifer N PoquetteAustraliaAmy Elsner UNQUALIFIED
Antonio S NestleItalyOnyama Limba NEGOTIATION
Juan J ChuiBrazilXuxue Feng NEGOTIATION
Mujtaba T OldroydFranceAmy Elsner UNQUALIFIED
Juan L MacleadIndiaElwin Sharvill PROPOSAL
Stacey D RimBrazilXuxue Feng UNQUALIFIED
Jeanfrancois A WhobreyIndiaIoni Bowcher UNQUALIFIED
Wickens T RulapaughRussiaAmy Elsner QUALIFIED
Jennifer D DoeFranceAsiya Javayant QUALIFIED
Emily S ShinkoJapanAsiya Javayant RENEWAL
Faith U FerenczAustraliaIvan Magalhaes PROPOSAL
Deepesh N SchemmerUnited KingdomOnyama Limba NEGOTIATION
Aditya W PaprockiBrazilIoni Bowcher QUALIFIED
Emily F InouyeIndiaAmy Elsner NEGOTIATION
Mayumi K ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Wickens Y DarakjyCanadaAsiya Javayant NEW
Mujtaba C StensethUnited KingdomAmy Elsner QUALIFIED
Jones L PerinBrazilIoni Bowcher UNQUALIFIED
Aditya X FerenczItalyBernardo Dominic PROPOSAL
Alejandro H WaycottJapanAnna Fali RENEWAL
Kadeem X PoquetteFranceAnna Fali QUALIFIED
Salvatore Y SlusarskiArgentinaBernardo Dominic NEGOTIATION
Ricardo J FerenczRussiaAnna Fali RENEWAL
Deepesh R WieserIndiaXuxue Feng NEW
Salvatore T PerinSpainBernardo Dominic NEW
Isabel A ShinkoSpainIoni Bowcher PROPOSAL
Murillo C RoysterGermanyIoni Bowcher PROPOSAL
Costa Y InouyeGermanyIvan Magalhaes PROPOSAL
Morrow T SlusarskiArgentinaElwin Sharvill UNQUALIFIED
Ricardo O KuskoBrazilIoni Bowcher QUALIFIED
Mayumi O RoysterRussiaAnna Fali NEW
Maria A GlickFranceAnna Fali NEW
Aditya Y PaprockiItalyAnna Fali PROPOSAL
Claire R FerenczBrazilXuxue Feng PROPOSAL
Johnson C TollnerJapanAsiya Javayant NEGOTIATION
Maria D RoysterJapanElwin Sharvill NEGOTIATION
Ivar S VocelkaJapanXuxue Feng NEGOTIATION
Kaitlin B RoysterRussiaElwin Sharvill QUALIFIED
Silvio B PaprockiGermanyXuxue Feng UNQUALIFIED
Clifford H PerinJapanOnyama Limba QUALIFIED
Ricardo B IturbideRussiaStephen Shaw NEGOTIATION
Faith M MarrierUnited KingdomBernardo Dominic PROPOSAL
Claire R SchemmerIndiaAsiya Javayant PROPOSAL
Izzy D DarakjyItalyXuxue Feng NEGOTIATION
James X FlosiJapanAmy Elsner QUALIFIED
Sinclair M WaycottGermanyElwin Sharvill RENEWAL
Johnson J FollerAustraliaIoni Bowcher UNQUALIFIED
Stacey L SergiIndiaAnna Fali NEGOTIATION
Johnson S WieserRussiaAmy Elsner UNQUALIFIED
Silvio C MaletArgentinaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio X WhobreyJapanAmy Elsner NEGOTIATION
Stacey J CampainCanadaElwin Sharvill QUALIFIED
David J GarufiIndiaXuxue Feng QUALIFIED
Salvatore F GarufiItalyAmy Elsner UNQUALIFIED
Kaitlin J CaudyItalyOnyama Limba NEW
Adams K CaldareraIndiaOnyama Limba NEGOTIATION
Francesco H BriddickFranceIoni Bowcher QUALIFIED
Jeanfrancois E CaudyArgentinaIoni Bowcher NEW
Ricardo C SchemmerBrazilAsiya Javayant NEGOTIATION
Johnson J CaldareraItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin V CaldareraIndia2024-06-11Printing Dimensions QUALIFIED46Asiya Javayant
1001Juan Z BriddickGermany2024-06-03Chanay, Jeffrey A Esq RENEWAL23Anna Fali
1002Salvatore X BriddickArgentina2024-05-15Truhlar And Truhlar Attys PROPOSAL21Elwin Sharvill
1003Chavez V GauchoGermany2024-06-05Chemel, James L Cpa QUALIFIED34Ioni Bowcher
1004David P DarakjyFrance2024-05-20Feltz Printing Service RENEWAL36Amy Elsner
1005Tony A CampainJapan2024-06-05Commercial Press QUALIFIED71Elwin Sharvill
1006Francesco Z PerinAustralia2024-05-31Buckley Miller Wright NEW56Stephen Shaw
1007Deepesh O MarrierJapan2024-06-07Rangoni Of Florence NEGOTIATION63Ivan Magalhaes
1008Leon Q CaldareraCanada2024-06-06Printing Dimensions NEW19Asiya Javayant
1009Arvin X DilliardRussia2024-06-10Commercial Press RENEWAL10Stephen Shaw
1010Murillo X FollerJapan2024-06-04Chanay, Jeffrey A Esq QUALIFIED41Xuxue Feng
1011Murillo P MaletJapan2024-05-15Truhlar And Truhlar Attys RENEWAL83Xuxue Feng
1012Octavia N OstroskyArgentina2024-05-19Chapman, Ross E Esq NEW66Ioni Bowcher
1013Arvin R GauchoBrazil2024-05-15Chapman, Ross E Esq NEGOTIATION62Ivan Magalhaes
1014Jefferson J GlickGermany2024-05-30Rousseaux, Michael Esq PROPOSAL88Ivan Magalhaes
1015Munro U PoquetteAustralia2024-05-15King, Christopher A Esq UNQUALIFIED24Stephen Shaw
1016Sinclair X MaletItaly2024-05-16Chemel, James L Cpa QUALIFIED38Bernardo Dominic
1017Greenwood V DilliardArgentina2024-06-11Chapman, Ross E Esq PROPOSAL31Amy Elsner
1018Kadeem T WhobreyFrance2024-05-31Truhlar And Truhlar Attys NEW71Xuxue Feng
1019Tony P VenereIndia2024-05-22Printing Dimensions QUALIFIED53Stephen Shaw
1020Aditya V DilliardSpain2024-06-02Rangoni Of Florence NEW95Stephen Shaw
1021Izzy B GauchoArgentina2024-05-30Printing Dimensions PROPOSAL75Ioni Bowcher
1022David B SlusarskiItaly2024-05-22Morlong Associates NEGOTIATION16Bernardo Dominic
1023Faith H RimGermany2024-06-08Commercial Press NEGOTIATION37Ioni Bowcher
1024Kadeem O MaletAustralia2024-06-04Chapman, Ross E Esq PROPOSAL40Elwin Sharvill
1025Julie K MaletIndia2024-06-10Feltz Printing Service NEGOTIATION61Amy Elsner
1026Darci Z WhobreyArgentina2024-05-28Buckley Miller Wright NEGOTIATION9Elwin Sharvill
1027Cody R DoeFrance2024-06-04Buckley Miller Wright RENEWAL7Ioni Bowcher
1028Alejandro X IturbideGermany2024-06-04King, Christopher A Esq NEW49Anna Fali
1029Faith N OldroydJapan2024-05-17Morlong Associates UNQUALIFIED47Elwin Sharvill
1030Wickens K CaudyRussia2024-06-08Rangoni Of Florence UNQUALIFIED48Onyama Limba
1031Leja U PerinCanada2024-05-27Rangoni Of Florence NEGOTIATION13Amy Elsner
1032Jennifer F MaletJapan2024-05-25Benton, John B Jr UNQUALIFIED10Amy Elsner
1033Ricardo J SaylorsBrazil2024-06-04Printing Dimensions RENEWAL39Elwin Sharvill
1034Ashley N SlusarskiFrance2024-06-03Chanay, Jeffrey A Esq RENEWAL84Ioni Bowcher
1035Cody Y ShinkoRussia2024-05-18Feiner Bros UNQUALIFIED1Ivan Magalhaes
1036Maisha K ButtRussia2024-06-08Feltz Printing Service NEW34Asiya Javayant
1037Stacey O BowleyJapan2024-05-18Feltz Printing Service NEW74Asiya Javayant
1038Kadeem N NestleUnited Kingdom2024-05-23Rousseaux, Michael Esq QUALIFIED93Stephen Shaw
1039Aruna A CampainArgentina2024-05-29Chapman, Ross E Esq PROPOSAL25Amy Elsner
1040Tony K WhobreyUnited Kingdom2024-05-29Buckley Miller Wright PROPOSAL56Elwin Sharvill
1041Aruna D FollerUnited Kingdom2024-06-06Chemel, James L Cpa QUALIFIED19Anna Fali
1042Jefferson U FerenczSpain2024-05-24Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1043Salvatore C SergiIndia2024-06-02King, Christopher A Esq NEGOTIATION35Anna Fali
1044Jeanfrancois X BologniaIndia2024-05-20Feltz Printing Service NEW28Asiya Javayant
1045Clifford D StensethIndia2024-05-15Feltz Printing Service NEGOTIATION99Xuxue Feng
1046Ivar O BologniaAustralia2024-06-06Truhlar And Truhlar Attys QUALIFIED22Amy Elsner
1047Maria H MacleadAustralia2024-06-03Printing Dimensions NEGOTIATION26Ivan Magalhaes
1048Ashley O RulapaughFrance2024-05-30Printing Dimensions RENEWAL77Onyama Limba
1049Greenwood H OstroskyItaly2024-06-02Chanay, Jeffrey A Esq QUALIFIED17Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois I DilliardRussiaIvan Magalhaes NEGOTIATION
Kadeem X FigeroaArgentinaOnyama Limba UNQUALIFIED
Ashley N FigeroaGermanyElwin Sharvill UNQUALIFIED
Deepesh Q TollnerAustraliaIoni Bowcher UNQUALIFIED
Clifford V MorascaAustraliaStephen Shaw NEGOTIATION
Misaki C KuskoRussiaAmy Elsner NEW
David X DilliardItalyAsiya Javayant NEW
Faith M ChuiUnited KingdomIoni Bowcher QUALIFIED
Faith F StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Alejandro S RulapaughSpainXuxue Feng UNQUALIFIED
Jefferson A NestleAustraliaOnyama Limba RENEWAL
Wickens Q BriddickCanadaXuxue Feng NEW
Francesco O NestleAustraliaAmy Elsner RENEWAL
Cody P SergiUnited KingdomBernardo Dominic NEW
Tony J ChuiFranceStephen Shaw RENEWAL
Faith H ButtGermanyXuxue Feng QUALIFIED
Jefferson T DoeRussiaOnyama Limba PROPOSAL
Tony A CaudyBrazilAsiya Javayant PROPOSAL
Deepesh R WieserCanadaElwin Sharvill UNQUALIFIED
Chavez U DilliardJapanIoni Bowcher NEGOTIATION
Leja H GarufiJapanBernardo Dominic UNQUALIFIED
Francesco B DoeFranceIvan Magalhaes PROPOSAL
Leon X BriddickArgentinaIoni Bowcher RENEWAL
Stacey X TollnerUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois R MaletBrazilOnyama Limba NEGOTIATION
Clifford D MorascaIndiaIvan Magalhaes UNQUALIFIED
James G FlosiItalyXuxue Feng PROPOSAL
Emily D OldroydBrazilAnna Fali NEW
Stacey A SaylorsUnited KingdomAmy Elsner NEGOTIATION
Emily X RimIndiaAmy Elsner NEGOTIATION
Maria T WaycottCanadaBernardo Dominic PROPOSAL
Rodrigues F RulapaughSpainBernardo Dominic RENEWAL
Aruna W RimIndiaIoni Bowcher UNQUALIFIED
Izzy R DoeGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois J CaudyCanadaIoni Bowcher NEGOTIATION
Darci I VenereGermanyOnyama Limba UNQUALIFIED
Claire N FlosiItalyAsiya Javayant QUALIFIED
Murillo O WhobreyRussiaElwin Sharvill NEGOTIATION
Clifford F SlusarskiGermanyAsiya Javayant NEGOTIATION
Smith Z OldroydSpainIoni Bowcher NEGOTIATION
Greenwood V CaudyCanadaOnyama Limba UNQUALIFIED
Octavia M ChuiJapanAsiya Javayant PROPOSAL
Stacey I SergiGermanyAnna Fali RENEWAL
Salvatore O SaylorsItalyElwin Sharvill NEGOTIATION
Leja F FollerAustraliaXuxue Feng NEGOTIATION
Smith V ButtAustraliaAmy Elsner NEGOTIATION
Kadeem F BologniaJapanBernardo Dominic NEGOTIATION
Sinclair U GillianUnited KingdomIvan Magalhaes PROPOSAL
Faith Q FollerAustraliaOnyama Limba PROPOSAL
Munro Y CaudyIndiaIoni Bowcher RENEWAL
Frozen Columns
Name
Nicolas E Stenseth
Costa S Shinko
Darci O Venere
Isabel N Campain
Jones S Marrier
Emily Q Gillian
Alejandro Z Stockham
Emily X Gaucho
Maisha H Ruta
Rodrigues I Campain
Kadeem F Doe
David B Marrier
Antonio I Nestle
Mujtaba H Inouye
Jones N Tollner
Nicolas E Doe
Misaki Q Vocelka
Antonio P Royster
Izzy P Bolognia
Silvio N Darakjy
Clifford Q Royster
Aruna X Vocelka
Kaitlin T Inouye
Maria F Sergi
Sinclair C Darakjy
Tony Q Royster
Silvio E Butt
Stacey V Kolmetz
Jennifer V Vocelka
Darci Q Inouye
Francesco F Wieser
Jeanfrancois U Amigon
Ivar D Slusarski
Francesco F Campain
Maisha T Doe
Chavez M Bowley
Aruna T Sergi
Smith L Rulapaugh
Francesco B Marrier
Juan Y Gillian
Antonio P Saylors
Emily Z Ostrosky
Cody I Morasca
Chavez M Tollner
Cody N Oldroyd
Maisha T Glick
Deepesh Z Albares
Rodrigues W Ruta
Jeanfrancois Y Glick
Tony X Flosi
IdCountryDate
1000Argentina2024-06-02
1001France2024-06-01
1002Canada2024-05-20
1003United Kingdom2024-06-09
1004France2024-05-18
1005Spain2024-05-16
1006Canada2024-05-18
1007France2024-05-15
1008Argentina2024-06-05
1009France2024-05-25
1010Argentina2024-06-06
1011Brazil2024-06-02
1012United Kingdom2024-06-13
1013Spain2024-05-29
1014Japan2024-06-07
1015Argentina2024-05-21
1016Canada2024-06-08
1017Argentina2024-05-20
1018Brazil2024-05-28
1019Spain2024-05-28
1020Japan2024-05-30
1021Brazil2024-05-25
1022Spain2024-05-31
1023Russia2024-05-18
1024Italy2024-06-01
1025Australia2024-05-26
1026Canada2024-06-12
1027Canada2024-05-23
1028India2024-06-10
1029Italy2024-05-30
1030Russia2024-05-29
1031Italy2024-05-28
1032Canada2024-06-06
1033Russia2024-06-10
1034United Kingdom2024-06-06
1035Russia2024-06-11
1036Japan2024-05-20
1037Germany2024-06-13
1038Canada2024-05-18
1039Australia2024-05-22
1040United Kingdom2024-06-03
1041France2024-05-16
1042Russia2024-05-27
1043Germany2024-06-13
1044Spain2024-05-19
1045Germany2024-05-28
1046France2024-05-26
1047Brazil2024-05-20
1048Italy2024-05-30
1049Italy2024-06-09

On-Demand Data

NameIdCountryDate
Ashley L Amigon1000Australia2024-05-20
Silvio T Gillian1001Russia2024-05-20
Mayumi R Stockham1002Russia2024-05-20
Ivar W Vocelka1003Russia2024-06-06
Izzy Y Venere1004France2024-05-20
Mayumi S Shinko1005Germany2024-05-23
Isabel P Marrier1006Italy2024-05-26
Cody T Stenseth1007Italy2024-05-23
Claire M Maclead1008India2024-05-28
Kadeem T Foller1009Australia2024-06-09
Aruna I Ostrosky1010Germany2024-06-13
Cody P Kusko1011Brazil2024-06-12
Maria L Gaucho1012Canada2024-06-09
Rodrigues K Garufi1013Brazil2024-05-22
James X Rim1014Argentina2024-05-23
Nicolas S Malet1015Germany2024-05-19
Greenwood C Malet1016Argentina2024-05-15
Maria L Gillian1017Australia2024-06-04
Johnson C Ruta1018Australia2024-05-29
Jefferson R Malet1019Italy2024-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood C RoysterJapanAsiya Javayant PROPOSAL
Cody E MacleadAustraliaIvan Magalhaes UNQUALIFIED
Leon L MarrierArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois X MaletBrazilXuxue Feng QUALIFIED
Salvatore O StockhamRussiaAsiya Javayant QUALIFIED
Octavia F StensethItalyBernardo Dominic PROPOSAL
Kaitlin M ShinkoCanadaElwin Sharvill PROPOSAL
Johnson I BriddickItalyElwin Sharvill NEGOTIATION
Wickens I BowleyJapanXuxue Feng QUALIFIED
Claire N IturbideRussiaAnna Fali NEGOTIATION
Octavia Z AlbaresUnited KingdomElwin Sharvill RENEWAL
Claire B MacleadArgentinaOnyama Limba UNQUALIFIED
Leja L GillianSpainAsiya Javayant NEGOTIATION
Greenwood F SaylorsItalyXuxue Feng QUALIFIED
Maria N InouyeSpainXuxue Feng QUALIFIED
Johnson B RutaSpainElwin Sharvill RENEWAL
Smith K ChuiSpainElwin Sharvill PROPOSAL
Juan N StockhamBrazilBernardo Dominic RENEWAL
Aika H ChuiArgentinaBernardo Dominic PROPOSAL
Leja G IturbideCanadaIoni Bowcher QUALIFIED
Aditya A VenereJapanElwin Sharvill NEW
Antonio E StockhamRussiaIoni Bowcher PROPOSAL
Tony B SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba Y ShinkoJapanIvan Magalhaes UNQUALIFIED
Claire K BriddickCanadaOnyama Limba RENEWAL
Kadeem E GillianJapanAnna Fali NEW
Chavez E CaudyCanadaAsiya Javayant PROPOSAL
Ivar T CaudyGermanyStephen Shaw NEW
Faith F TollnerArgentinaElwin Sharvill NEGOTIATION
Johnson V TollnerRussiaXuxue Feng PROPOSAL
Antonio V CampainBrazilXuxue Feng NEGOTIATION
Antonio P InouyeItalyStephen Shaw UNQUALIFIED
Julie Y DilliardFranceStephen Shaw UNQUALIFIED
Kaitlin B GillianCanadaOnyama Limba PROPOSAL
Aditya K MorascaSpainBernardo Dominic NEGOTIATION
Maisha S DoeBrazilAmy Elsner PROPOSAL
Nicolas I KolmetzRussiaIoni Bowcher NEGOTIATION
Francesco P ButtUnited KingdomStephen Shaw PROPOSAL
Tony O WhobreyItalyOnyama Limba NEGOTIATION
Leja J TollnerUnited KingdomElwin Sharvill 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>