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
Cody B CampainItalyIoni Bowcher RENEWAL
Darci P SergiJapanAsiya Javayant NEGOTIATION
Stacey O RoysterRussiaStephen Shaw UNQUALIFIED
Faith I CampainJapanOnyama Limba RENEWAL
Mujtaba Y WhobreyItalyIoni Bowcher NEGOTIATION
Nicolas O RimItalyIvan Magalhaes QUALIFIED
Octavia K DarakjyItalyBernardo Dominic RENEWAL
Kaitlin S MaletJapanAsiya Javayant NEW
Izzy Q GarufiBrazilXuxue Feng UNQUALIFIED
Emily O AmigonAustraliaOnyama Limba NEGOTIATION
Julie S ButtGermanyAsiya Javayant QUALIFIED
Claire U DarakjyAustraliaElwin Sharvill QUALIFIED
Izzy R OstroskyGermanyAnna Fali NEGOTIATION
Octavia D RutaGermanyAmy Elsner UNQUALIFIED
Smith E BriddickArgentinaIoni Bowcher RENEWAL
Stacey L MaletItalyOnyama Limba UNQUALIFIED
Arvin X CaudyGermanyElwin Sharvill RENEWAL
Wickens L RutaJapanAsiya Javayant UNQUALIFIED
Aika Z AlbaresCanadaStephen Shaw NEW
Jeanfrancois U MorascaIndiaAnna Fali RENEWAL
Jefferson K WieserSpainAnna Fali QUALIFIED
Silvio O StockhamAustraliaBernardo Dominic UNQUALIFIED
Silvio O PerinRussiaElwin Sharvill PROPOSAL
Sinclair I KolmetzSpainStephen Shaw QUALIFIED
Arvin D KolmetzCanadaStephen Shaw RENEWAL
Leon O OstroskyAustraliaXuxue Feng NEGOTIATION
Nicolas J StockhamJapanIvan Magalhaes PROPOSAL
Greenwood B TollnerAustraliaIvan Magalhaes QUALIFIED
Ivar V PoquetteUnited KingdomOnyama Limba RENEWAL
Morrow W WieserAustraliaOnyama Limba UNQUALIFIED
Claire O MaletArgentinaIoni Bowcher NEW
Kadeem K IturbideJapanXuxue Feng UNQUALIFIED
Kaitlin T FollerBrazilAmy Elsner NEW
Munro C StensethGermanyOnyama Limba UNQUALIFIED
Mujtaba W DoeRussiaXuxue Feng PROPOSAL
Costa U PaprockiIndiaAmy Elsner PROPOSAL
Misaki D MarrierArgentinaIoni Bowcher PROPOSAL
Antonio O VocelkaIndiaOnyama Limba RENEWAL
Jennifer R MacleadUnited KingdomIoni Bowcher PROPOSAL
Kadeem E CaldareraSpainBernardo Dominic QUALIFIED
Alejandro M ChuiRussiaIoni Bowcher UNQUALIFIED
Mujtaba U BowleyCanadaBernardo Dominic NEW
Stacey Z ShinkoJapanAmy Elsner NEW
Sinclair O StensethCanadaXuxue Feng PROPOSAL
Chavez M SlusarskiGermanyIvan Magalhaes NEW
Antonio Z MorascaJapanIoni Bowcher NEW
Jeanfrancois G CaldareraUnited KingdomElwin Sharvill RENEWAL
Darci W RimSpainAnna Fali UNQUALIFIED
Francesco F GlickRussiaXuxue Feng RENEWAL
Rodrigues U SchemmerItalyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja A RoysterGermanyIvan Magalhaes RENEWAL
Ricardo Z RoysterRussiaBernardo Dominic QUALIFIED
Alejandro Z MaletArgentinaAnna Fali UNQUALIFIED
Maisha U VocelkaIndiaStephen Shaw UNQUALIFIED
Jennifer V DoeArgentinaStephen Shaw UNQUALIFIED
James X ChuiRussiaAnna Fali PROPOSAL
Ashley O AlbaresRussiaAnna Fali NEGOTIATION
Costa Y NickaSpainXuxue Feng PROPOSAL
Maria R CampainArgentinaAmy Elsner UNQUALIFIED
Darci O ShinkoFranceXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood K AlbaresFrance2025-04-25Chemel, James L Cpa RENEWAL57Bernardo Dominic
1001Arvin L RutaItaly2025-04-24Rangoni Of Florence RENEWAL1Xuxue Feng
1002Jefferson V IturbideGermany2025-04-24Truhlar And Truhlar Attys RENEWAL37Bernardo Dominic
1003Sinclair D StensethFrance2025-04-30Chanay, Jeffrey A Esq UNQUALIFIED0Elwin Sharvill
1004Faith S NestleArgentina2025-04-16Rangoni Of Florence RENEWAL72Onyama Limba
1005Ricardo I PoquetteBrazil2025-04-25Chanay, Jeffrey A Esq PROPOSAL50Bernardo Dominic
1006Nicolas L FerenczArgentina2025-04-01Morlong Associates QUALIFIED47Ivan Magalhaes
1007Tony R MarrierJapan2025-04-27Dorl, James J Esq QUALIFIED96Ivan Magalhaes
1008Kadeem K VenereArgentina2025-04-30Truhlar And Truhlar Attys UNQUALIFIED45Ivan Magalhaes
1009Darci L FigeroaGermany2025-04-12Rousseaux, Michael Esq PROPOSAL67Elwin Sharvill
1010Sinclair W OldroydRussia2025-04-29Dorl, James J Esq NEGOTIATION2Amy Elsner
1011Misaki M TollnerBrazil2025-04-06Feltz Printing Service UNQUALIFIED60Asiya Javayant
1012Isabel L GauchoFrance2025-04-19Truhlar And Truhlar Attys RENEWAL59Amy Elsner
1013Maria N WieserSpain2025-04-09King, Christopher A Esq UNQUALIFIED43Anna Fali
1014Jennifer B MorascaUnited Kingdom2025-04-05Chanay, Jeffrey A Esq QUALIFIED75Anna Fali
1015Leja Y ShinkoSpain2025-04-16Buckley Miller Wright UNQUALIFIED67Xuxue Feng
1016Rodrigues P BologniaArgentina2025-04-22Rousseaux, Michael Esq QUALIFIED59Asiya Javayant
1017Aruna K FlosiIndia2025-04-04King, Christopher A Esq NEW63Onyama Limba
1018Claire N PerinAustralia2025-04-18Morlong Associates QUALIFIED41Xuxue Feng
1019Adams S AlbaresGermany2025-04-24Commercial Press PROPOSAL74Bernardo Dominic
1020Silvio L RoysterIndia2025-04-09Feltz Printing Service NEGOTIATION46Stephen Shaw
1021Jones E VenereSpain2025-04-11Chapman, Ross E Esq QUALIFIED70Amy Elsner
1022Sinclair L WhobreyRussia2025-04-02Dorl, James J Esq NEW40Stephen Shaw
1023Costa X WaycottArgentina2025-04-12Truhlar And Truhlar Attys NEGOTIATION85Amy Elsner
1024Smith A WhobreyBrazil2025-04-17Printing Dimensions QUALIFIED41Stephen Shaw
1025Morrow Z NestleSpain2025-04-17Rousseaux, Michael Esq PROPOSAL8Elwin Sharvill
1026Smith C IturbideIndia2025-04-25King, Christopher A Esq NEGOTIATION0Ivan Magalhaes
1027Clifford C RoysterFrance2025-04-02Benton, John B Jr NEW31Ivan Magalhaes
1028Greenwood G VenereCanada2025-04-21Benton, John B Jr NEGOTIATION49Elwin Sharvill
1029Francesco T RoysterItaly2025-04-19King, Christopher A Esq PROPOSAL92Amy Elsner
1030Costa M GlickBrazil2025-04-21Chapman, Ross E Esq NEGOTIATION5Stephen Shaw
1031Leon S ButtJapan2025-04-24Buckley Miller Wright QUALIFIED7Xuxue Feng
1032Adams C SchemmerArgentina2025-04-05Chanay, Jeffrey A Esq QUALIFIED74Stephen Shaw
1033James Y DilliardArgentina2025-04-20Dorl, James J Esq PROPOSAL9Xuxue Feng
1034Mujtaba Z KolmetzItaly2025-04-07Truhlar And Truhlar Attys UNQUALIFIED8Onyama Limba
1035Kadeem I NestleFrance2025-04-02Rousseaux, Michael Esq NEW5Elwin Sharvill
1036Julie Y PerinUnited Kingdom2025-04-04Rangoni Of Florence NEGOTIATION64Anna Fali
1037Tony J InouyeArgentina2025-04-30Feiner Bros QUALIFIED17Elwin Sharvill
1038Rodrigues L OldroydBrazil2025-04-26King, Christopher A Esq RENEWAL82Amy Elsner
1039Kadeem Z OstroskyGermany2025-04-07Printing Dimensions QUALIFIED77Anna Fali
1040David Z NickaArgentina2025-04-02Rangoni Of Florence NEW42Ivan Magalhaes
1041Juan D MorascaIndia2025-04-18King, Christopher A Esq UNQUALIFIED21Anna Fali
1042Greenwood E BologniaFrance2025-04-09Truhlar And Truhlar Attys UNQUALIFIED74Anna Fali
1043Johnson R VocelkaAustralia2025-04-04Commercial Press PROPOSAL99Stephen Shaw
1044Julie X StockhamCanada2025-04-20Chapman, Ross E Esq RENEWAL68Elwin Sharvill
1045Smith Z InouyeArgentina2025-04-07Benton, John B Jr UNQUALIFIED78Asiya Javayant
1046Johnson N GauchoArgentina2025-04-10Chapman, Ross E Esq UNQUALIFIED72Amy Elsner
1047Darci T MaletJapan2025-04-28Feiner Bros NEGOTIATION66Ivan Magalhaes
1048Adams Z SchemmerArgentina2025-04-23Commercial Press NEW56Onyama Limba
1049Mayumi M FlosiGermany2025-04-17Commercial Press RENEWAL48Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire H CampainSpainIvan Magalhaes RENEWAL
Leon O DarakjyGermanyOnyama Limba PROPOSAL
Izzy A BologniaArgentinaIoni Bowcher RENEWAL
Chavez Z SlusarskiUnited KingdomAsiya Javayant NEW
Leja R DarakjyRussiaXuxue Feng UNQUALIFIED
Claire R KolmetzItalyAnna Fali RENEWAL
Jones R FigeroaJapanAnna Fali RENEWAL
Emily J RutaArgentinaBernardo Dominic PROPOSAL
Francesco P FlosiBrazilOnyama Limba UNQUALIFIED
Antonio X GillianIndiaBernardo Dominic NEGOTIATION
Smith F ShinkoFranceAmy Elsner UNQUALIFIED
Smith K OldroydSpainIoni Bowcher UNQUALIFIED
Jefferson K DarakjySpainBernardo Dominic UNQUALIFIED
Chavez D FerenczGermanyXuxue Feng QUALIFIED
Salvatore F AlbaresItalyBernardo Dominic UNQUALIFIED
Misaki K AmigonArgentinaIvan Magalhaes NEW
Arvin L GauchoUnited KingdomXuxue Feng NEGOTIATION
Smith T GarufiRussiaOnyama Limba NEGOTIATION
Leja D InouyeJapanAnna Fali UNQUALIFIED
Clifford H DilliardUnited KingdomAsiya Javayant NEW
Alejandro D InouyeBrazilIoni Bowcher NEGOTIATION
Kaitlin R StockhamGermanyAnna Fali NEW
Silvio U DarakjyFranceAmy Elsner PROPOSAL
Leon C FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi I RoysterArgentinaStephen Shaw NEW
Jeanfrancois J OstroskyItalyStephen Shaw NEGOTIATION
Darci N DoeUnited KingdomAmy Elsner PROPOSAL
Murillo C WaycottSpainXuxue Feng RENEWAL
Maria K DoeJapanElwin Sharvill RENEWAL
Alejandro E SlusarskiCanadaAsiya Javayant UNQUALIFIED
Costa D VenereBrazilOnyama Limba NEW
Smith S MorascaUnited KingdomIvan Magalhaes RENEWAL
Francesco K GauchoBrazilAmy Elsner PROPOSAL
Aruna A FigeroaBrazilStephen Shaw UNQUALIFIED
Munro T ButtArgentinaElwin Sharvill QUALIFIED
Alejandro A ChuiFranceBernardo Dominic PROPOSAL
Faith L TollnerSpainOnyama Limba PROPOSAL
Arvin V GillianBrazilAmy Elsner PROPOSAL
Kaitlin C MaletIndiaAnna Fali UNQUALIFIED
Chavez P GillianFranceOnyama Limba NEGOTIATION
Leon T CampainUnited KingdomElwin Sharvill QUALIFIED
Greenwood N ChuiArgentinaAsiya Javayant RENEWAL
Chavez X ShinkoRussiaAnna Fali NEGOTIATION
Octavia O SchemmerRussiaElwin Sharvill PROPOSAL
Alejandro P MorascaItalyAnna Fali UNQUALIFIED
David O TollnerCanadaAmy Elsner NEGOTIATION
Jones D MorascaBrazilStephen Shaw UNQUALIFIED
Jeanfrancois N ChuiSpainOnyama Limba PROPOSAL
Maisha C SergiBrazilAmy Elsner UNQUALIFIED
Alejandro S WhobreyRussiaAnna Fali QUALIFIED
Frozen Columns
Name
Arvin Z Bowley
Izzy D Wieser
Alejandro I Caudy
Alejandro F Iturbide
Sinclair P Royster
Sinclair G Campain
Chavez Y Albares
Darci T Ferencz
Claire F Flosi
Johnson T Chui
Misaki E Foller
Mayumi J Ostrosky
Adams O Dilliard
Ivar W Foller
David N Malet
Faith B Bolognia
Murillo A Nicka
Jennifer C Kolmetz
Juan O Ferencz
Izzy E Dilliard
Johnson R Inouye
Chavez X Albares
Darci W Albares
Juan L Garufi
Tony P Malet
Kadeem J Wieser
Emily Q Schemmer
Arvin H Albares
Costa L Paprocki
Maisha E Ferencz
Sinclair X Nicka
Munro Z Rim
Arvin B Tollner
Mujtaba S Caldarera
Kadeem K Whobrey
Misaki R Waycott
Darci H Kolmetz
Juan C Caldarera
Costa C Malet
Darci V Rim
Faith Y Stenseth
Silvio D Chui
Nicolas C Gaucho
Octavia X Oldroyd
Francesco F Bolognia
Isabel F Paprocki
Aika O Paprocki
Salvatore H Inouye
Arvin J Oldroyd
Silvio J Whobrey
IdCountryDate
1000France2025-04-18
1001Spain2025-04-26
1002France2025-04-27
1003Argentina2025-04-28
1004Argentina2025-04-28
1005India2025-04-12
1006United Kingdom2025-04-15
1007Italy2025-04-04
1008Brazil2025-04-28
1009Brazil2025-04-15
1010Japan2025-04-05
1011France2025-04-20
1012France2025-04-25
1013Spain2025-04-13
1014Japan2025-04-20
1015Brazil2025-04-08
1016United Kingdom2025-04-07
1017Brazil2025-04-05
1018Italy2025-04-15
1019Germany2025-04-25
1020United Kingdom2025-04-11
1021Australia2025-04-01
1022Brazil2025-04-29
1023Brazil2025-04-09
1024Italy2025-04-20
1025Italy2025-04-02
1026Germany2025-04-01
1027Germany2025-04-25
1028Germany2025-04-03
1029Germany2025-04-10
1030India2025-04-11
1031Spain2025-04-18
1032Germany2025-04-07
1033Italy2025-04-19
1034France2025-04-21
1035Australia2025-04-15
1036India2025-04-14
1037United Kingdom2025-04-30
1038Japan2025-04-26
1039United Kingdom2025-04-22
1040Russia2025-04-14
1041Spain2025-04-19
1042Argentina2025-04-06
1043Russia2025-04-30
1044Germany2025-04-27
1045Japan2025-04-21
1046Italy2025-04-25
1047Canada2025-04-08
1048Australia2025-04-22
1049United Kingdom2025-04-10

On-Demand Data

NameIdCountryDate
Emily X Vocelka1000India2025-04-25
Johnson R Caudy1001Spain2025-04-24
Tony S Caudy1002Brazil2025-04-17
Stacey O Bolognia1003Brazil2025-04-07
David K Figeroa1004Canada2025-04-10
Octavia D Caudy1005India2025-04-10
Morrow I Briddick1006France2025-04-27
Sinclair Q Rim1007Australia2025-04-27
Kadeem D Nicka1008Canada2025-04-06
Cody P Royster1009Canada2025-04-24
Francesco Y Paprocki1010France2025-04-06
Murillo L Malet1011Australia2025-04-26
Chavez F Campain1012Italy2025-04-09
Ivar I Slusarski1013Canada2025-04-21
Jefferson O Nestle1014Australia2025-04-05
Arvin L Kusko1015Argentina2025-04-25
Misaki Y Venere1016Italy2025-04-23
Adams P Iturbide1017Australia2025-04-07
Morrow G Butt1018United Kingdom2025-04-03
Ashley T Chui1019United Kingdom2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria Q KuskoCanadaStephen Shaw PROPOSAL
Aditya N StensethUnited KingdomBernardo Dominic QUALIFIED
Munro I IturbideGermanyAmy Elsner NEW
Adams H StockhamIndiaAmy Elsner PROPOSAL
Tony I MorascaJapanAnna Fali QUALIFIED
Leon U RulapaughFranceAmy Elsner RENEWAL
Adams H GlickBrazilStephen Shaw UNQUALIFIED
Octavia E TollnerAustraliaStephen Shaw PROPOSAL
Jones R ButtJapanIvan Magalhaes PROPOSAL
Ashley A VenereUnited KingdomAnna Fali NEW
Morrow N MaletJapanOnyama Limba RENEWAL
Chavez D SergiUnited KingdomAnna Fali RENEWAL
Aruna E AlbaresRussiaBernardo Dominic PROPOSAL
Leon P GlickSpainElwin Sharvill NEW
Isabel B KuskoRussiaAnna Fali NEW
Kadeem B MorascaItalyBernardo Dominic QUALIFIED
Emily W SchemmerRussiaAnna Fali UNQUALIFIED
Aruna P BologniaItalyAsiya Javayant QUALIFIED
Isabel Y OstroskyRussiaAsiya Javayant UNQUALIFIED
Jones T PaprockiCanadaAmy Elsner PROPOSAL
Leja F IturbideGermanyIoni Bowcher PROPOSAL
Kadeem P FigeroaFranceBernardo Dominic PROPOSAL
Juan P RoysterSpainIvan Magalhaes NEGOTIATION
Isabel T KuskoAustraliaOnyama Limba NEW
Rodrigues H DoeRussiaAnna Fali PROPOSAL
Kaitlin E ButtItalyIoni Bowcher RENEWAL
Kadeem D BriddickItalyBernardo Dominic UNQUALIFIED
Aditya C TollnerJapanIvan Magalhaes NEW
Maisha Y GillianFranceAmy Elsner RENEWAL
Adams I PerinIndiaAnna Fali UNQUALIFIED
Tony X SlusarskiArgentinaOnyama Limba QUALIFIED
Stacey J KuskoRussiaBernardo Dominic PROPOSAL
Silvio K RutaRussiaAmy Elsner NEW
Kadeem L SergiBrazilIvan Magalhaes RENEWAL
Chavez S FollerAustraliaIoni Bowcher QUALIFIED
Mayumi Q RutaUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin V InouyeSpainXuxue Feng NEGOTIATION
Aditya N WaycottRussiaAnna Fali NEGOTIATION
Mujtaba N MorascaGermanyOnyama Limba NEGOTIATION
Izzy N VenereArgentinaXuxue Feng 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>