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
Darci K MarrierCanadaIoni Bowcher QUALIFIED
Faith T SaylorsGermanyBernardo Dominic PROPOSAL
Ricardo C IturbideAustraliaOnyama Limba QUALIFIED
Morrow M RimArgentinaOnyama Limba RENEWAL
Adams E WieserUnited KingdomAnna Fali QUALIFIED
Sinclair A AlbaresRussiaXuxue Feng NEGOTIATION
Mujtaba T StensethFranceStephen Shaw QUALIFIED
Kadeem A MorascaCanadaOnyama Limba QUALIFIED
Nicolas L OldroydSpainIoni Bowcher UNQUALIFIED
Emily F IturbideArgentinaBernardo Dominic NEGOTIATION
Greenwood H StensethSpainAnna Fali NEW
Aika P WhobreyAustraliaIvan Magalhaes RENEWAL
Aika I MacleadRussiaIoni Bowcher RENEWAL
Morrow R AlbaresSpainAnna Fali NEW
Mujtaba G RulapaughItalyOnyama Limba UNQUALIFIED
Deepesh F CaldareraGermanyIvan Magalhaes UNQUALIFIED
Deepesh T RulapaughIndiaIoni Bowcher UNQUALIFIED
Ivar R KolmetzJapanXuxue Feng UNQUALIFIED
Mayumi M GlickBrazilStephen Shaw NEW
Darci S ButtItalyXuxue Feng NEGOTIATION
Julie A AmigonArgentinaAnna Fali RENEWAL
James U AmigonBrazilXuxue Feng QUALIFIED
Munro K InouyeItalyBernardo Dominic UNQUALIFIED
Aruna J CampainRussiaIoni Bowcher QUALIFIED
Aruna S NickaCanadaAmy Elsner QUALIFIED
Leja L NickaFranceStephen Shaw QUALIFIED
Jeanfrancois G RoysterAustraliaOnyama Limba PROPOSAL
Julie N CampainGermanyElwin Sharvill QUALIFIED
Francesco H NestleArgentinaIoni Bowcher NEGOTIATION
Jefferson F FlosiItalyAnna Fali NEW
Stacey F NickaCanadaElwin Sharvill NEW
Leon Q StockhamGermanyOnyama Limba QUALIFIED
Isabel N WieserGermanyIvan Magalhaes PROPOSAL
Mujtaba E FollerBrazilElwin Sharvill PROPOSAL
Adams W VocelkaRussiaXuxue Feng NEW
Cody M RulapaughSpainBernardo Dominic NEGOTIATION
Mayumi A DarakjyGermanyElwin Sharvill RENEWAL
Julie T GlickFranceIvan Magalhaes NEGOTIATION
Chavez G ButtIndiaXuxue Feng NEGOTIATION
Kadeem N SaylorsRussiaXuxue Feng NEGOTIATION
Mujtaba R FerenczRussiaIoni Bowcher NEW
Kaitlin X BowleyItalyAmy Elsner NEGOTIATION
Kaitlin T FigeroaIndiaXuxue Feng PROPOSAL
Leon K StockhamJapanIvan Magalhaes QUALIFIED
Francesco D RoysterItalyAsiya Javayant UNQUALIFIED
Johnson I StensethJapanIoni Bowcher RENEWAL
Murillo O RimUnited KingdomElwin Sharvill RENEWAL
Chavez R MaletGermanyAnna Fali PROPOSAL
Wickens S ChuiJapanIvan Magalhaes NEW
Juan K SaylorsUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Julie H VocelkaItalyIvan Magalhaes UNQUALIFIED
Murillo E NickaItalyAmy Elsner UNQUALIFIED
Ricardo W PerinArgentinaStephen Shaw NEGOTIATION
Cody I MaletAustraliaAnna Fali UNQUALIFIED
Leon L MaletIndiaElwin Sharvill PROPOSAL
David M NickaIndiaAmy Elsner UNQUALIFIED
Leon D AlbaresSpainStephen Shaw NEGOTIATION
Emily G BowleyFranceAsiya Javayant NEW
Clifford P GillianIndiaAmy Elsner NEW
Deepesh R SchemmerItalyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci L GlickFrance2025-05-22Buckley Miller Wright RENEWAL38Onyama Limba
1001Ashley V PaprockiSpain2025-05-23Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1002Ashley L TollnerFrance2025-06-02Buckley Miller Wright UNQUALIFIED30Elwin Sharvill
1003Salvatore G DilliardGermany2025-06-02Benton, John B Jr PROPOSAL65Elwin Sharvill
1004Kadeem X KolmetzBrazil2025-06-12King, Christopher A Esq NEGOTIATION78Amy Elsner
1005Kadeem M VocelkaSpain2025-05-30Printing Dimensions NEGOTIATION75Xuxue Feng
1006Misaki P CaudyUnited Kingdom2025-05-21King, Christopher A Esq NEGOTIATION82Ioni Bowcher
1007Faith N FerenczUnited Kingdom2025-05-19Truhlar And Truhlar Attys RENEWAL56Bernardo Dominic
1008Silvio K MacleadGermany2025-05-21Feltz Printing Service QUALIFIED25Bernardo Dominic
1009Leja V FollerGermany2025-06-03King, Christopher A Esq NEW74Bernardo Dominic
1010Salvatore A FerenczRussia2025-06-05Rangoni Of Florence NEGOTIATION15Amy Elsner
1011Wickens E FollerRussia2025-05-26Chemel, James L Cpa NEW74Elwin Sharvill
1012Jeanfrancois A KuskoJapan2025-06-01Feltz Printing Service NEW82Stephen Shaw
1013Kaitlin S MarrierGermany2025-06-13Rousseaux, Michael Esq RENEWAL73Xuxue Feng
1014Darci P RutaGermany2025-05-28Chapman, Ross E Esq RENEWAL42Ioni Bowcher
1015Kaitlin W OstroskyUnited Kingdom2025-05-27Dorl, James J Esq QUALIFIED28Ioni Bowcher
1016Isabel C CampainFrance2025-05-31Truhlar And Truhlar Attys QUALIFIED41Onyama Limba
1017James Q RoysterSpain2025-06-03Benton, John B Jr NEGOTIATION98Bernardo Dominic
1018Kadeem T FigeroaUnited Kingdom2025-05-29Truhlar And Truhlar Attys NEGOTIATION69Onyama Limba
1019Antonio L GauchoSpain2025-05-19Printing Dimensions NEGOTIATION22Amy Elsner
1020Isabel U FollerGermany2025-05-17King, Christopher A Esq UNQUALIFIED72Stephen Shaw
1021Munro S SergiGermany2025-05-31Rangoni Of Florence UNQUALIFIED15Asiya Javayant
1022Aika Y SergiItaly2025-05-31Rousseaux, Michael Esq PROPOSAL53Ivan Magalhaes
1023Deepesh J SaylorsArgentina2025-05-18Rousseaux, Michael Esq PROPOSAL39Ioni Bowcher
1024Jeanfrancois W DoeCanada2025-05-29Printing Dimensions PROPOSAL3Elwin Sharvill
1025Darci A DoeRussia2025-05-31Feiner Bros UNQUALIFIED65Bernardo Dominic
1026Mayumi T InouyeGermany2025-06-06Rousseaux, Michael Esq UNQUALIFIED73Amy Elsner
1027Juan P VocelkaSpain2025-06-01Commercial Press NEGOTIATION61Ioni Bowcher
1028Greenwood M NickaArgentina2025-05-27Chapman, Ross E Esq NEGOTIATION20Ioni Bowcher
1029Antonio R StensethBrazil2025-06-03King, Christopher A Esq UNQUALIFIED61Bernardo Dominic
1030Julie Q NestleItaly2025-06-08Truhlar And Truhlar Attys NEGOTIATION37Elwin Sharvill
1031James X PoquetteSpain2025-05-28Feltz Printing Service UNQUALIFIED63Ioni Bowcher
1032Octavia U BologniaIndia2025-05-25Feltz Printing Service RENEWAL8Amy Elsner
1033Jeanfrancois E BowleyRussia2025-06-01Commercial Press NEGOTIATION61Anna Fali
1034Deepesh D SergiIndia2025-05-25Feltz Printing Service PROPOSAL91Amy Elsner
1035Octavia N VocelkaBrazil2025-05-30Dorl, James J Esq RENEWAL23Onyama Limba
1036Smith W RimJapan2025-05-20Truhlar And Truhlar Attys NEGOTIATION45Ioni Bowcher
1037Cody F PaprockiItaly2025-06-13King, Christopher A Esq UNQUALIFIED28Amy Elsner
1038Leon T MorascaUnited Kingdom2025-05-17Feltz Printing Service QUALIFIED58Xuxue Feng
1039Aditya A VocelkaItaly2025-06-03Dorl, James J Esq NEGOTIATION70Ioni Bowcher
1040Costa L MaletSpain2025-05-22King, Christopher A Esq RENEWAL11Anna Fali
1041Sinclair H ButtIndia2025-05-21Commercial Press NEW8Xuxue Feng
1042Salvatore G SlusarskiUnited Kingdom2025-06-14Rousseaux, Michael Esq UNQUALIFIED32Bernardo Dominic
1043Francesco T MarrierFrance2025-05-23Buckley Miller Wright NEGOTIATION63Xuxue Feng
1044Francesco A MarrierArgentina2025-05-31Feltz Printing Service NEW87Elwin Sharvill
1045Emily D RutaItaly2025-05-25Feiner Bros RENEWAL37Ioni Bowcher
1046Deepesh F KolmetzGermany2025-06-01Chemel, James L Cpa NEGOTIATION97Xuxue Feng
1047Antonio X MaletArgentina2025-06-14Morlong Associates PROPOSAL72Anna Fali
1048Juan N OstroskyUnited Kingdom2025-06-09Commercial Press PROPOSAL91Anna Fali
1049Julie I RutaUnited Kingdom2025-05-21Benton, John B Jr NEGOTIATION22Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Alejandro B DoeGermanyIoni Bowcher QUALIFIED
Greenwood I OstroskyItalyElwin Sharvill NEGOTIATION
Faith D VocelkaArgentinaStephen Shaw UNQUALIFIED
Costa Z BologniaBrazilAnna Fali RENEWAL
Wickens G CaudyCanadaStephen Shaw UNQUALIFIED
Morrow F MarrierCanadaAnna Fali RENEWAL
Antonio O GauchoItalyElwin Sharvill NEW
Alejandro V BowleySpainOnyama Limba NEW
Morrow B FigeroaArgentinaOnyama Limba UNQUALIFIED
Julie K ShinkoCanadaAsiya Javayant UNQUALIFIED
Leon G VocelkaAustraliaAmy Elsner PROPOSAL
James H FerenczIndiaAnna Fali UNQUALIFIED
Rodrigues B BriddickFranceIvan Magalhaes RENEWAL
Jennifer S ButtRussiaIoni Bowcher RENEWAL
Isabel P SchemmerArgentinaAnna Fali RENEWAL
Maria V BologniaItalyIvan Magalhaes NEW
Johnson X StockhamArgentinaBernardo Dominic QUALIFIED
Leon H WaycottUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois Q TollnerFranceBernardo Dominic RENEWAL
Maisha Q BowleyJapanAnna Fali UNQUALIFIED
Arvin C VocelkaGermanyAsiya Javayant UNQUALIFIED
Ivar L SchemmerJapanOnyama Limba QUALIFIED
Costa E SaylorsGermanyIvan Magalhaes PROPOSAL
Costa A ShinkoArgentinaAmy Elsner QUALIFIED
Aruna M MaletBrazilIvan Magalhaes PROPOSAL
Leja Z BriddickAustraliaBernardo Dominic QUALIFIED
Mayumi T KolmetzArgentinaAsiya Javayant NEGOTIATION
Wickens A SlusarskiRussiaStephen Shaw NEGOTIATION
Kadeem D CampainItalyIoni Bowcher RENEWAL
Silvio L GauchoAustraliaIvan Magalhaes NEGOTIATION
Julie W KolmetzRussiaElwin Sharvill NEW
Aditya I RutaFranceAmy Elsner PROPOSAL
Maisha Z MaletFranceStephen Shaw NEW
Misaki O KuskoGermanyAmy Elsner QUALIFIED
Rodrigues J ShinkoGermanyAsiya Javayant PROPOSAL
Isabel R CaudyGermanyOnyama Limba QUALIFIED
Rodrigues E RimArgentinaOnyama Limba RENEWAL
Julie A GarufiAustraliaIoni Bowcher UNQUALIFIED
Ricardo X StensethAustraliaXuxue Feng NEW
Juan B GlickRussiaIvan Magalhaes NEGOTIATION
Julie D RulapaughCanadaAnna Fali NEW
Antonio E RutaFranceAnna Fali UNQUALIFIED
Jefferson U GillianBrazilElwin Sharvill NEGOTIATION
Silvio U RoysterAustraliaIoni Bowcher RENEWAL
Julie X IturbideGermanyIvan Magalhaes RENEWAL
Morrow S OstroskyAustraliaBernardo Dominic RENEWAL
Aditya F InouyeAustraliaStephen Shaw QUALIFIED
Misaki O TollnerUnited KingdomXuxue Feng NEGOTIATION
Francesco R DoeBrazilStephen Shaw RENEWAL
Antonio G AmigonSpainOnyama Limba NEW
Frozen Columns
Name
Ivar R Rulapaugh
Darci X Vocelka
Antonio H Perin
Arvin V Perin
David G Wieser
Leja G Sergi
Mayumi A Rulapaugh
Leon O Bolognia
Faith Y Campain
Clifford K Sergi
Emily O Nestle
Murillo Z Royster
Jeanfrancois W Morasca
Stacey J Tollner
Nicolas K Shinko
Francesco A Butt
Ashley Y Paprocki
Jeanfrancois D Vocelka
Emily V Sergi
Jefferson C Chui
Johnson G Campain
Salvatore C Slusarski
Mujtaba A Ostrosky
Juan L Malet
Sinclair C Wieser
Stacey I Dilliard
Murillo H Albares
Ashley F Ferencz
Ricardo D Stenseth
Isabel K Malet
Silvio O Stenseth
Deepesh A Rulapaugh
Jeanfrancois T Nestle
Jones K Tollner
Maria A Ostrosky
Morrow N Albares
Antonio Q Rulapaugh
Nicolas O Malet
Alejandro Q Marrier
Aditya X Stockham
Ashley S Vocelka
Antonio M Wieser
Smith M Rulapaugh
Johnson J Venere
Jefferson W Bolognia
Munro N Sergi
Jennifer O Ferencz
Leon E Shinko
Jefferson X Gillian
Jeanfrancois S Bolognia
IdCountryDate
1000United Kingdom2025-05-31
1001Australia2025-06-06
1002Spain2025-05-27
1003Italy2025-05-17
1004Argentina2025-05-31
1005United Kingdom2025-06-08
1006Russia2025-06-12
1007Spain2025-05-22
1008Japan2025-06-02
1009France2025-06-08
1010Canada2025-06-04
1011Italy2025-05-16
1012Italy2025-05-18
1013Russia2025-05-18
1014Germany2025-05-18
1015Italy2025-05-22
1016Australia2025-06-11
1017Spain2025-06-09
1018Italy2025-06-14
1019Germany2025-05-27
1020Spain2025-06-05
1021United Kingdom2025-06-04
1022India2025-05-20
1023Australia2025-06-07
1024Brazil2025-05-23
1025United Kingdom2025-05-31
1026India2025-06-05
1027Japan2025-05-23
1028Japan2025-05-25
1029India2025-05-31
1030Japan2025-05-22
1031Canada2025-05-19
1032Spain2025-06-13
1033Argentina2025-05-16
1034Brazil2025-06-14
1035Canada2025-06-01
1036Spain2025-05-21
1037Spain2025-05-19
1038Australia2025-06-09
1039Brazil2025-06-11
1040Germany2025-05-31
1041Argentina2025-05-23
1042Spain2025-05-27
1043Germany2025-05-30
1044Russia2025-05-16
1045United Kingdom2025-05-19
1046Canada2025-06-11
1047Australia2025-06-09
1048India2025-06-06
1049Germany2025-06-14

On-Demand Data

NameIdCountryDate
Rodrigues A Morasca1000Brazil2025-05-30
James W Bolognia1001Italy2025-06-06
Ricardo I Glick1002Australia2025-06-07
Ricardo X Slusarski1003India2025-06-14
Chavez D Flosi1004Italy2025-05-25
Morrow S Shinko1005Brazil2025-05-23
Ashley U Briddick1006Australia2025-06-01
James Q Figeroa1007Spain2025-06-11
Maisha H Campain1008United Kingdom2025-06-02
Darci Q Caudy1009Brazil2025-06-12
Ricardo P Wieser1010India2025-06-09
David A Inouye1011Brazil2025-05-19
Kadeem E Morasca1012India2025-06-03
Silvio P Bolognia1013Brazil2025-06-09
Maria H Dilliard1014Canada2025-06-03
Jefferson U Tollner1015France2025-05-29
Misaki N Albares1016India2025-05-28
Stacey S Wieser1017Brazil2025-06-02
Aditya P Slusarski1018Spain2025-05-21
Silvio I Ostrosky1019France2025-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois F GarufiSpainAsiya Javayant NEGOTIATION
Maria G MaletArgentinaIoni Bowcher NEGOTIATION
James Z DilliardAustraliaAnna Fali RENEWAL
Jennifer H ChuiArgentinaBernardo Dominic PROPOSAL
Kadeem F VocelkaItalyAmy Elsner NEGOTIATION
Cody P IturbideArgentinaXuxue Feng NEW
Julie C RutaGermanyAmy Elsner RENEWAL
Leja S GlickIndiaElwin Sharvill NEGOTIATION
Munro M KuskoUnited KingdomIvan Magalhaes RENEWAL
Mujtaba R BologniaRussiaIvan Magalhaes NEGOTIATION
Rodrigues A DoeFranceStephen Shaw QUALIFIED
Tony M BologniaIndiaXuxue Feng RENEWAL
Maria A MarrierJapanBernardo Dominic NEGOTIATION
Kadeem A RimCanadaAsiya Javayant NEW
Aruna M WieserJapanAmy Elsner PROPOSAL
Octavia E MarrierGermanyBernardo Dominic RENEWAL
Julie B BologniaIndiaOnyama Limba UNQUALIFIED
Jeanfrancois E TollnerUnited KingdomAnna Fali PROPOSAL
Clifford U CaudySpainXuxue Feng NEW
Claire D MarrierGermanyIoni Bowcher RENEWAL
Deepesh I NickaBrazilStephen Shaw UNQUALIFIED
Deepesh Y SchemmerGermanyAnna Fali QUALIFIED
Aruna P FigeroaAustraliaStephen Shaw RENEWAL
Leon X VenereItalyAmy Elsner NEW
Aditya J RimGermanyElwin Sharvill NEGOTIATION
Salvatore K CaldareraCanadaOnyama Limba NEW
Mayumi Z SchemmerJapanAsiya Javayant PROPOSAL
Ricardo K CaudyItalyBernardo Dominic NEW
Octavia J SchemmerAustraliaBernardo Dominic RENEWAL
Adams N FollerArgentinaXuxue Feng PROPOSAL
Murillo B BologniaRussiaAmy Elsner PROPOSAL
Cody X SaylorsCanadaAsiya Javayant QUALIFIED
Munro J VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Juan F FigeroaArgentinaAmy Elsner RENEWAL
Claire I ButtFranceIoni Bowcher RENEWAL
Stacey J RoysterIndiaOnyama Limba RENEWAL
Kadeem L RutaCanadaBernardo Dominic UNQUALIFIED
Antonio Z GlickGermanyOnyama Limba NEGOTIATION
Misaki T SchemmerRussiaAsiya Javayant PROPOSAL
Salvatore F SlusarskiSpainIvan Magalhaes QUALIFIED

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