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
Deepesh M RoysterJapanIoni Bowcher UNQUALIFIED
Maria N NickaRussiaAsiya Javayant PROPOSAL
Juan N OstroskyIndiaBernardo Dominic NEGOTIATION
Aditya Z MaletIndiaBernardo Dominic RENEWAL
Greenwood Z DilliardSpainIvan Magalhaes QUALIFIED
Ivar J RimGermanyIoni Bowcher UNQUALIFIED
Aika M BriddickJapanAnna Fali RENEWAL
Kadeem O NickaAustraliaAmy Elsner RENEWAL
Cody S CampainJapanAsiya Javayant NEGOTIATION
Jefferson W NickaUnited KingdomElwin Sharvill UNQUALIFIED
Faith A TollnerArgentinaStephen Shaw NEW
Johnson X GlickArgentinaBernardo Dominic NEGOTIATION
Sinclair K DilliardIndiaIoni Bowcher NEGOTIATION
Izzy P FlosiCanadaIoni Bowcher RENEWAL
Aika L IturbideIndiaIvan Magalhaes QUALIFIED
Aruna J FollerGermanyAsiya Javayant QUALIFIED
Aditya D SergiAustraliaXuxue Feng UNQUALIFIED
Ashley S SlusarskiRussiaAsiya Javayant RENEWAL
Leon G GauchoItalyAnna Fali RENEWAL
Cody G SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Julie E KuskoUnited KingdomAsiya Javayant QUALIFIED
Emily Q PerinBrazilBernardo Dominic RENEWAL
Tony R ChuiRussiaAnna Fali PROPOSAL
Aruna G MorascaCanadaOnyama Limba QUALIFIED
Alejandro G InouyeCanadaIoni Bowcher NEW
Aruna U BriddickArgentinaAmy Elsner PROPOSAL
Maisha B GarufiFranceOnyama Limba PROPOSAL
Leon F MaletFranceStephen Shaw NEGOTIATION
Clifford T SaylorsBrazilAsiya Javayant UNQUALIFIED
Claire H DilliardRussiaOnyama Limba NEGOTIATION
Stacey M DilliardBrazilAnna Fali QUALIFIED
Darci E SergiSpainBernardo Dominic UNQUALIFIED
Kaitlin M MaletBrazilBernardo Dominic NEGOTIATION
Ricardo P DarakjySpainXuxue Feng NEW
Costa S OldroydFranceElwin Sharvill NEW
Costa Z MarrierArgentinaIvan Magalhaes QUALIFIED
Isabel S StockhamUnited KingdomBernardo Dominic NEW
Maisha N RoysterItalyStephen Shaw NEGOTIATION
Aika N SaylorsUnited KingdomAmy Elsner NEW
Salvatore Y GarufiSpainXuxue Feng RENEWAL
Salvatore D FerenczRussiaStephen Shaw NEGOTIATION
Clifford X PaprockiSpainElwin Sharvill NEGOTIATION
Rodrigues C PaprockiArgentinaAsiya Javayant QUALIFIED
Clifford B SergiBrazilOnyama Limba QUALIFIED
Greenwood E CaudyItalyBernardo Dominic UNQUALIFIED
Octavia W KuskoArgentinaElwin Sharvill NEGOTIATION
Julie D PerinAustraliaXuxue Feng RENEWAL
Aruna I CaldareraGermanyBernardo Dominic NEW
Wickens U ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro O FlosiBrazilAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya A NickaIndiaAmy Elsner UNQUALIFIED
Jones F OstroskyArgentinaAsiya Javayant NEW
Claire C MaletArgentinaXuxue Feng NEGOTIATION
Stacey E BriddickAustraliaStephen Shaw UNQUALIFIED
Julie O NestleIndiaStephen Shaw QUALIFIED
Maria R RimJapanAsiya Javayant RENEWAL
Octavia W AlbaresGermanyXuxue Feng PROPOSAL
Kaitlin N StensethItalyAmy Elsner QUALIFIED
Tony R StensethUnited KingdomIoni Bowcher RENEWAL
Juan L BowleyJapanIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar A ShinkoArgentina2025-05-19Printing Dimensions UNQUALIFIED11Amy Elsner
1001Jeanfrancois S TollnerBrazil2025-06-16Rangoni Of Florence PROPOSAL70Asiya Javayant
1002Munro K CampainBrazil2025-06-07King, Christopher A Esq QUALIFIED45Elwin Sharvill
1003Octavia P DarakjyBrazil2025-06-05Chapman, Ross E Esq PROPOSAL68Onyama Limba
1004Cody B AmigonJapan2025-06-14King, Christopher A Esq UNQUALIFIED1Xuxue Feng
1005Chavez N GillianItaly2025-06-10Morlong Associates QUALIFIED72Stephen Shaw
1006Emily Y WieserUnited Kingdom2025-05-26Benton, John B Jr UNQUALIFIED1Asiya Javayant
1007Deepesh N DoeJapan2025-06-03Morlong Associates QUALIFIED66Onyama Limba
1008Kaitlin H BriddickRussia2025-06-02Feltz Printing Service NEGOTIATION75Ivan Magalhaes
1009Maria F BriddickSpain2025-06-06King, Christopher A Esq NEGOTIATION24Anna Fali
1010Rodrigues Y DilliardRussia2025-06-14Commercial Press RENEWAL27Anna Fali
1011Arvin W AmigonIndia2025-06-01King, Christopher A Esq RENEWAL81Ivan Magalhaes
1012Ashley S IturbideItaly2025-06-02Chapman, Ross E Esq RENEWAL85Asiya Javayant
1013Leja O GillianSpain2025-06-02Truhlar And Truhlar Attys UNQUALIFIED70Onyama Limba
1014Aruna R VenereCanada2025-06-10Benton, John B Jr PROPOSAL63Asiya Javayant
1015Smith V SergiSpain2025-05-29Chemel, James L Cpa NEGOTIATION71Stephen Shaw
1016Morrow P RoysterCanada2025-06-03Rousseaux, Michael Esq QUALIFIED70Elwin Sharvill
1017Ricardo B PoquetteAustralia2025-06-09Benton, John B Jr QUALIFIED86Bernardo Dominic
1018Salvatore L BologniaRussia2025-05-28Feltz Printing Service NEW27Asiya Javayant
1019Deepesh X SergiGermany2025-06-01King, Christopher A Esq NEGOTIATION50Ioni Bowcher
1020Jefferson O BriddickRussia2025-05-18Rousseaux, Michael Esq NEGOTIATION13Asiya Javayant
1021Silvio D OstroskyIndia2025-06-04Chapman, Ross E Esq UNQUALIFIED15Elwin Sharvill
1022Aika Y NestleRussia2025-05-25Rousseaux, Michael Esq RENEWAL28Ivan Magalhaes
1023Octavia G WieserItaly2025-06-06Printing Dimensions NEGOTIATION17Amy Elsner
1024Wickens S GillianIndia2025-06-15Chanay, Jeffrey A Esq RENEWAL26Onyama Limba
1025Maisha U FollerCanada2025-06-04Commercial Press UNQUALIFIED10Xuxue Feng
1026Jennifer K BriddickGermany2025-06-04Rangoni Of Florence QUALIFIED16Stephen Shaw
1027Kadeem A MacleadRussia2025-06-16Chapman, Ross E Esq PROPOSAL91Onyama Limba
1028Faith K FerenczFrance2025-06-15Printing Dimensions RENEWAL67Asiya Javayant
1029Clifford W WieserCanada2025-06-05Chanay, Jeffrey A Esq PROPOSAL24Ioni Bowcher
1030Jefferson S VenereGermany2025-05-21Commercial Press QUALIFIED66Ivan Magalhaes
1031Cody X DilliardFrance2025-05-26Commercial Press UNQUALIFIED46Anna Fali
1032Greenwood I RimSpain2025-05-18Benton, John B Jr QUALIFIED40Stephen Shaw
1033Aditya H RulapaughArgentina2025-05-31Printing Dimensions UNQUALIFIED75Xuxue Feng
1034Adams O CaudyAustralia2025-05-26King, Christopher A Esq QUALIFIED31Xuxue Feng
1035Clifford L BriddickAustralia2025-06-15King, Christopher A Esq NEW65Elwin Sharvill
1036Faith B RutaRussia2025-05-28Commercial Press NEGOTIATION28Asiya Javayant
1037Izzy N VenereAustralia2025-06-10Printing Dimensions PROPOSAL27Onyama Limba
1038Octavia K CampainArgentina2025-06-02Morlong Associates QUALIFIED16Ioni Bowcher
1039Aika T RutaAustralia2025-06-15Morlong Associates PROPOSAL30Ivan Magalhaes
1040Ashley A SergiJapan2025-06-02Dorl, James J Esq NEW68Asiya Javayant
1041Juan S FollerUnited Kingdom2025-05-26Chanay, Jeffrey A Esq NEW56Stephen Shaw
1042Murillo A BologniaBrazil2025-05-23Chanay, Jeffrey A Esq PROPOSAL17Asiya Javayant
1043Adams X CaudyGermany2025-06-15Commercial Press NEW44Amy Elsner
1044Leja N AmigonIndia2025-05-28Buckley Miller Wright RENEWAL44Bernardo Dominic
1045Greenwood L DoeUnited Kingdom2025-05-24Feltz Printing Service RENEWAL94Stephen Shaw
1046Jefferson W FerenczAustralia2025-06-04Chanay, Jeffrey A Esq QUALIFIED15Bernardo Dominic
1047Francesco I FlosiFrance2025-05-24Morlong Associates UNQUALIFIED82Bernardo Dominic
1048Mayumi R BowleyIndia2025-06-15Feiner Bros UNQUALIFIED70Ivan Magalhaes
1049Jefferson O VenereSpain2025-05-19Chapman, Ross E Esq NEW27Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
James Z WieserRussiaOnyama Limba NEW
Misaki W DoeItalyElwin Sharvill QUALIFIED
Costa M FigeroaRussiaXuxue Feng RENEWAL
Jeanfrancois W BowleyArgentinaElwin Sharvill RENEWAL
Deepesh E ChuiUnited KingdomIoni Bowcher NEGOTIATION
Aditya C CampainUnited KingdomXuxue Feng NEW
Tony I NestleFranceIoni Bowcher NEGOTIATION
Jeanfrancois F GillianCanadaIvan Magalhaes NEW
Kadeem F AmigonRussiaIvan Magalhaes UNQUALIFIED
Smith X SchemmerArgentinaIoni Bowcher PROPOSAL
Leon S SlusarskiArgentinaOnyama Limba NEGOTIATION
Julie M GauchoFranceXuxue Feng RENEWAL
Morrow W FlosiUnited KingdomIvan Magalhaes NEW
Costa H IturbideIndiaAnna Fali PROPOSAL
Jefferson Q MorascaSpainAnna Fali NEGOTIATION
Ivar Y MarrierArgentinaOnyama Limba NEW
Kadeem I DilliardAustraliaXuxue Feng PROPOSAL
Greenwood Y KolmetzArgentinaAnna Fali UNQUALIFIED
Aruna E KuskoFranceAnna Fali PROPOSAL
Cody Q BowleyCanadaAnna Fali NEGOTIATION
Smith H InouyeGermanyStephen Shaw NEW
Salvatore C ButtArgentinaXuxue Feng QUALIFIED
David R BriddickIndiaOnyama Limba NEW
Jones X ButtBrazilIvan Magalhaes NEGOTIATION
Maisha J SlusarskiBrazilIoni Bowcher UNQUALIFIED
Salvatore U PoquetteGermanyOnyama Limba NEGOTIATION
Octavia J VocelkaRussiaIvan Magalhaes NEW
Greenwood K PoquetteJapanXuxue Feng UNQUALIFIED
Adams X MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Johnson I StockhamUnited KingdomIoni Bowcher NEW
Aika W StensethJapanXuxue Feng NEW
Sinclair F FerenczJapanIvan Magalhaes UNQUALIFIED
David G ShinkoIndiaIvan Magalhaes RENEWAL
Wickens Z DoeBrazilAsiya Javayant PROPOSAL
Izzy G StockhamArgentinaBernardo Dominic RENEWAL
Murillo O WieserArgentinaStephen Shaw PROPOSAL
Morrow L PoquetteFranceOnyama Limba QUALIFIED
Salvatore S IturbideJapanOnyama Limba NEGOTIATION
Stacey F MaletBrazilOnyama Limba QUALIFIED
Maria T BologniaBrazilIoni Bowcher RENEWAL
Leon J WhobreySpainStephen Shaw PROPOSAL
Nicolas H StensethArgentinaStephen Shaw UNQUALIFIED
Deepesh W BowleyIndiaAsiya Javayant QUALIFIED
Silvio Q TollnerFranceIvan Magalhaes PROPOSAL
Arvin Q IturbideArgentinaAnna Fali RENEWAL
Stacey K PoquetteRussiaStephen Shaw UNQUALIFIED
Wickens Z RoysterUnited KingdomXuxue Feng NEW
Tony A PaprockiFranceBernardo Dominic NEGOTIATION
Jefferson A BriddickItalyAnna Fali PROPOSAL
Darci E InouyeGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Murillo E Bolognia
Aditya M Doe
Aruna W Perin
Kadeem F Inouye
Mujtaba H Slusarski
Maria G Gillian
Jeanfrancois A Waycott
Jennifer P Gillian
Smith L Shinko
Misaki L Butt
Smith K Malet
Nicolas I Slusarski
Sinclair S Darakjy
Cody Q Sergi
Ricardo W Iturbide
Munro H Rim
Chavez Z Oldroyd
Ivar J Slusarski
Francesco F Rulapaugh
Maisha B Iturbide
Tony S Bolognia
Clifford D Venere
Francesco W Rulapaugh
Nicolas I Amigon
Jeanfrancois P Gillian
Ashley X Kolmetz
Julie Q Iturbide
Munro V Slusarski
Jones Y Malet
Adams G Schemmer
Kaitlin G Gaucho
Munro F Chui
Jeanfrancois O Malet
Leon F Gaucho
Tony H Waycott
Smith J Stenseth
Julie J Venere
Darci Z Ferencz
Antonio I Royster
Julie D Venere
Alejandro Q Waycott
Adams Q Iturbide
Murillo L Bowley
Murillo U Caldarera
Arvin V Maclead
Johnson Q Morasca
Morrow D Marrier
Ricardo R Gaucho
Aruna W Caudy
Aika P Bowley
IdCountryDate
1000Italy2025-05-28
1001Canada2025-05-22
1002India2025-06-02
1003India2025-05-28
1004Argentina2025-06-07
1005Spain2025-05-29
1006Italy2025-06-06
1007United Kingdom2025-06-06
1008Russia2025-05-25
1009France2025-06-11
1010Germany2025-06-09
1011Japan2025-05-23
1012Russia2025-05-28
1013India2025-06-14
1014France2025-06-08
1015Brazil2025-06-06
1016Argentina2025-06-06
1017Spain2025-06-03
1018Spain2025-05-24
1019Japan2025-06-09
1020Brazil2025-06-10
1021Australia2025-05-25
1022India2025-06-06
1023France2025-06-14
1024Australia2025-05-25
1025Germany2025-06-10
1026Argentina2025-06-01
1027France2025-05-29
1028Russia2025-06-03
1029Argentina2025-06-14
1030Brazil2025-05-18
1031Germany2025-05-21
1032Russia2025-05-28
1033India2025-06-01
1034Brazil2025-06-07
1035Argentina2025-06-11
1036India2025-06-16
1037Canada2025-06-02
1038Spain2025-05-18
1039Japan2025-06-04
1040Italy2025-06-09
1041Spain2025-05-22
1042Australia2025-06-05
1043France2025-05-31
1044Russia2025-06-11
1045Russia2025-06-13
1046Australia2025-05-30
1047United Kingdom2025-05-20
1048Canada2025-05-27
1049United Kingdom2025-06-02

On-Demand Data

NameIdCountryDate
Silvio V Stenseth1000Italy2025-05-19
Emily B Ostrosky1001Australia2025-06-02
Wickens B Paprocki1002Brazil2025-05-31
Smith F Royster1003India2025-05-29
Salvatore M Caudy1004Canada2025-06-04
Kaitlin D Caudy1005Spain2025-06-13
Maisha R Caldarera1006Canada2025-06-03
Munro P Chui1007Canada2025-05-23
Tony R Poquette1008Canada2025-05-19
Mujtaba F Stenseth1009Argentina2025-05-31
Jones J Perin1010Germany2025-06-08
Stacey C Caudy1011United Kingdom2025-05-29
Mujtaba U Whobrey1012Australia2025-05-25
Aditya E Campain1013Russia2025-05-26
Costa N Albares1014Australia2025-06-03
Sinclair X Dilliard1015Spain2025-06-10
Julie V Tollner1016Spain2025-06-12
Sinclair W Paprocki1017Russia2025-05-21
Julie C Glick1018Italy2025-05-18
Aika X Darakjy1019India2025-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja B MacleadIndiaXuxue Feng NEGOTIATION
Isabel D VocelkaFranceAmy Elsner QUALIFIED
Octavia C RutaUnited KingdomBernardo Dominic QUALIFIED
Ricardo S FerenczCanadaXuxue Feng QUALIFIED
Claire O RimSpainElwin Sharvill UNQUALIFIED
Clifford A PaprockiBrazilBernardo Dominic QUALIFIED
Silvio B DilliardGermanyIvan Magalhaes NEW
Jones K RulapaughIndiaIvan Magalhaes NEW
Octavia Z NickaArgentinaAmy Elsner QUALIFIED
David R MacleadRussiaXuxue Feng PROPOSAL
Costa E GillianArgentinaStephen Shaw NEW
Salvatore B SaylorsIndiaIvan Magalhaes NEW
Octavia S NickaBrazilXuxue Feng QUALIFIED
Alejandro K PaprockiItalyAnna Fali PROPOSAL
Clifford G DoeJapanIoni Bowcher UNQUALIFIED
Claire N BriddickBrazilStephen Shaw UNQUALIFIED
Jennifer J StockhamRussiaIoni Bowcher NEGOTIATION
Octavia L RimGermanyAsiya Javayant UNQUALIFIED
Emily I MaletIndiaAmy Elsner NEGOTIATION
Ivar D WaycottJapanAmy Elsner RENEWAL
Chavez T RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Misaki Y StockhamJapanXuxue Feng UNQUALIFIED
Silvio S BowleyJapanAnna Fali PROPOSAL
Ricardo P CaldareraIndiaAnna Fali NEGOTIATION
Johnson V SchemmerItalyOnyama Limba UNQUALIFIED
Alejandro A AmigonAustraliaIoni Bowcher PROPOSAL
Faith V PoquetteArgentinaIvan Magalhaes QUALIFIED
Darci S MorascaJapanAmy Elsner RENEWAL
Ricardo D FigeroaJapanAsiya Javayant QUALIFIED
Ricardo V AmigonUnited KingdomAsiya Javayant RENEWAL
Wickens A SaylorsBrazilXuxue Feng RENEWAL
Cody G ButtFranceBernardo Dominic NEGOTIATION
Deepesh S NickaRussiaBernardo Dominic QUALIFIED
Faith P VocelkaIndiaStephen Shaw QUALIFIED
Deepesh K StensethJapanBernardo Dominic NEW
Cody S OstroskyArgentinaElwin Sharvill PROPOSAL
Leja A SlusarskiSpainStephen Shaw RENEWAL
Sinclair N MacleadAustraliaIvan Magalhaes QUALIFIED
Salvatore T MaletAustraliaAmy Elsner QUALIFIED
Aditya R PaprockiIndiaBernardo Dominic 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>