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
Izzy S FollerBrazilIoni Bowcher NEGOTIATION
Leja U FigeroaSpainIoni Bowcher RENEWAL
Arvin Q BologniaUnited KingdomIvan Magalhaes RENEWAL
Jefferson W OstroskyFranceXuxue Feng UNQUALIFIED
Leja E SlusarskiGermanyAnna Fali NEGOTIATION
Antonio P AmigonAustraliaElwin Sharvill PROPOSAL
Chavez P BowleyFranceAmy Elsner RENEWAL
Munro A AlbaresRussiaIoni Bowcher PROPOSAL
Stacey R FollerAustraliaXuxue Feng NEGOTIATION
Ivar X AlbaresIndiaIoni Bowcher RENEWAL
James U RimJapanBernardo Dominic QUALIFIED
Adams E GillianUnited KingdomAsiya Javayant PROPOSAL
Octavia W SchemmerArgentinaXuxue Feng UNQUALIFIED
Mayumi S FollerItalyAsiya Javayant RENEWAL
Faith X PoquetteAustraliaElwin Sharvill UNQUALIFIED
Octavia J VenereFranceIvan Magalhaes UNQUALIFIED
Clifford P MacleadAustraliaAnna Fali UNQUALIFIED
Munro L GlickBrazilOnyama Limba RENEWAL
Aika X RulapaughFranceAsiya Javayant PROPOSAL
Sinclair A PaprockiCanadaAsiya Javayant UNQUALIFIED
David J RutaCanadaIvan Magalhaes RENEWAL
Greenwood I StockhamCanadaOnyama Limba QUALIFIED
Clifford J RoysterUnited KingdomStephen Shaw QUALIFIED
James P NestleRussiaAmy Elsner RENEWAL
Aruna V DoeUnited KingdomIoni Bowcher NEW
Jeanfrancois Q FigeroaJapanOnyama Limba NEGOTIATION
Isabel C FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Julie A RutaCanadaIoni Bowcher UNQUALIFIED
David P ChuiBrazilIvan Magalhaes RENEWAL
Aruna D BowleyRussiaElwin Sharvill NEGOTIATION
Stacey E NickaSpainElwin Sharvill PROPOSAL
Misaki N ButtItalyOnyama Limba NEGOTIATION
Aruna S SergiCanadaStephen Shaw RENEWAL
Jeanfrancois K MacleadJapanIoni Bowcher NEGOTIATION
Aditya S OstroskyAustraliaIvan Magalhaes NEGOTIATION
Izzy O RimRussiaBernardo Dominic PROPOSAL
Juan A RimUnited KingdomIvan Magalhaes PROPOSAL
Ashley Y FollerSpainBernardo Dominic RENEWAL
Nicolas G IturbideBrazilElwin Sharvill RENEWAL
Claire W OstroskyIndiaElwin Sharvill NEGOTIATION
Aika S AlbaresJapanXuxue Feng UNQUALIFIED
Johnson J AmigonFranceOnyama Limba QUALIFIED
Faith Z GillianBrazilAmy Elsner UNQUALIFIED
Emily W FollerArgentinaXuxue Feng QUALIFIED
Maisha M MorascaBrazilElwin Sharvill QUALIFIED
Costa X SlusarskiIndiaElwin Sharvill PROPOSAL
Chavez Z SlusarskiSpainBernardo Dominic NEGOTIATION
Aruna S TollnerUnited KingdomStephen Shaw RENEWAL
Stacey H VenereCanadaAnna Fali NEW
Murillo M SaylorsFranceElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Julie F InouyeUnited KingdomAsiya Javayant RENEWAL
Tony I MaletCanadaAmy Elsner NEGOTIATION
Antonio S VenereSpainIvan Magalhaes RENEWAL
Ricardo W CaldareraFranceOnyama Limba QUALIFIED
Kadeem Q MacleadCanadaXuxue Feng QUALIFIED
Salvatore B RulapaughFranceStephen Shaw UNQUALIFIED
Maisha N RutaCanadaAsiya Javayant PROPOSAL
Chavez H GauchoIndiaStephen Shaw RENEWAL
Adams G SergiSpainStephen Shaw PROPOSAL
Darci W MacleadCanadaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones E PaprockiCanada2026-06-09Truhlar And Truhlar Attys PROPOSAL15Amy Elsner
1001Juan X GlickIndia2026-06-15Chapman, Ross E Esq QUALIFIED82Xuxue Feng
1002Cody U IturbideUnited Kingdom2026-06-24Feiner Bros NEW82Ioni Bowcher
1003Johnson M MaletFrance2026-06-08Benton, John B Jr UNQUALIFIED55Ioni Bowcher
1004Jeanfrancois O WaycottArgentina2026-06-09Chanay, Jeffrey A Esq NEGOTIATION23Onyama Limba
1005Deepesh I RutaBrazil2026-06-10Rousseaux, Michael Esq RENEWAL14Anna Fali
1006Sinclair C PoquetteFrance2026-07-03Buckley Miller Wright NEGOTIATION82Xuxue Feng
1007Leja K WhobreyArgentina2026-06-29Rangoni Of Florence QUALIFIED91Bernardo Dominic
1008Morrow N FollerArgentina2026-06-30Rousseaux, Michael Esq UNQUALIFIED43Stephen Shaw
1009Clifford A GillianGermany2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED9Onyama Limba
1010Ashley W MarrierGermany2026-06-16Dorl, James J Esq PROPOSAL84Stephen Shaw
1011Murillo A GarufiIndia2026-06-17Truhlar And Truhlar Attys RENEWAL91Ioni Bowcher
1012Aika E CaudyRussia2026-06-15Feltz Printing Service UNQUALIFIED49Elwin Sharvill
1013Nicolas F AmigonItaly2026-07-02Feiner Bros QUALIFIED45Stephen Shaw
1014Wickens W SergiGermany2026-06-24Chemel, James L Cpa RENEWAL37Bernardo Dominic
1015Isabel F ButtJapan2026-06-23King, Christopher A Esq UNQUALIFIED91Ioni Bowcher
1016Aika C VocelkaJapan2026-06-08Dorl, James J Esq RENEWAL57Ioni Bowcher
1017Aika V ChuiArgentina2026-07-04Printing Dimensions UNQUALIFIED81Stephen Shaw
1018Antonio K ButtBrazil2026-07-06Dorl, James J Esq RENEWAL9Elwin Sharvill
1019Jeanfrancois B GarufiAustralia2026-06-25Truhlar And Truhlar Attys RENEWAL85Elwin Sharvill
1020Arvin D TollnerIndia2026-06-30Truhlar And Truhlar Attys UNQUALIFIED10Onyama Limba
1021Rodrigues S FollerIndia2026-06-22Benton, John B Jr PROPOSAL96Amy Elsner
1022Octavia F GarufiBrazil2026-06-21Dorl, James J Esq QUALIFIED61Asiya Javayant
1023Maisha V CampainAustralia2026-07-03Printing Dimensions UNQUALIFIED89Ivan Magalhaes
1024Cody J GarufiSpain2026-06-14Morlong Associates PROPOSAL62Elwin Sharvill
1025Julie Q SlusarskiUnited Kingdom2026-06-14Printing Dimensions NEW21Onyama Limba
1026Jennifer C BowleyUnited Kingdom2026-06-21Feltz Printing Service QUALIFIED28Ioni Bowcher
1027Morrow H WieserCanada2026-06-13Commercial Press QUALIFIED20Anna Fali
1028Stacey M NickaJapan2026-06-21Chapman, Ross E Esq NEW2Ivan Magalhaes
1029Faith Z CaldareraGermany2026-07-06Chemel, James L Cpa RENEWAL52Xuxue Feng
1030Tony S TollnerJapan2026-06-18Chapman, Ross E Esq RENEWAL30Ivan Magalhaes
1031Francesco P StockhamSpain2026-06-14Chemel, James L Cpa QUALIFIED2Ioni Bowcher
1032Rodrigues G CampainSpain2026-06-15Chanay, Jeffrey A Esq PROPOSAL10Asiya Javayant
1033Octavia N CaudyItaly2026-06-08Printing Dimensions RENEWAL52Elwin Sharvill
1034Smith H SaylorsRussia2026-06-19Morlong Associates RENEWAL43Elwin Sharvill
1035Nicolas G OldroydArgentina2026-06-21Buckley Miller Wright RENEWAL58Elwin Sharvill
1036David L PerinGermany2026-06-29King, Christopher A Esq QUALIFIED54Amy Elsner
1037Darci S StensethBrazil2026-07-06Feiner Bros NEGOTIATION41Onyama Limba
1038David F CampainIndia2026-06-18Chemel, James L Cpa QUALIFIED16Bernardo Dominic
1039Mujtaba V ShinkoFrance2026-06-11Chanay, Jeffrey A Esq QUALIFIED80Ioni Bowcher
1040Aditya B MaletAustralia2026-06-14Dorl, James J Esq PROPOSAL55Ivan Magalhaes
1041Johnson Y TollnerSpain2026-06-27Feiner Bros QUALIFIED69Bernardo Dominic
1042Adams A MaletSpain2026-06-26Chanay, Jeffrey A Esq PROPOSAL41Asiya Javayant
1043Arvin E DilliardFrance2026-06-24Feltz Printing Service QUALIFIED34Amy Elsner
1044Ivar Q KuskoBrazil2026-06-10Buckley Miller Wright PROPOSAL30Ivan Magalhaes
1045Deepesh N MarrierIndia2026-06-14Benton, John B Jr NEGOTIATION15Stephen Shaw
1046Faith Z SergiUnited Kingdom2026-06-12Truhlar And Truhlar Attys RENEWAL60Anna Fali
1047Clifford K GlickAustralia2026-07-05Chanay, Jeffrey A Esq PROPOSAL67Xuxue Feng
1048Silvio G AmigonJapan2026-06-12Morlong Associates RENEWAL42Onyama Limba
1049Claire Y SergiItaly2026-06-14Rangoni Of Florence RENEWAL9Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki K SchemmerGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois K StensethAustraliaAnna Fali UNQUALIFIED
Aditya K CampainJapanAmy Elsner NEW
Adams T MaletSpainAnna Fali NEGOTIATION
Costa P RutaArgentinaIoni Bowcher NEW
James D RulapaughIndiaIvan Magalhaes UNQUALIFIED
Smith D IturbideSpainAmy Elsner NEGOTIATION
Aruna U InouyeCanadaIvan Magalhaes PROPOSAL
Tony L GlickFranceBernardo Dominic NEW
Kadeem I GillianArgentinaXuxue Feng NEW
Aika O MacleadBrazilElwin Sharvill QUALIFIED
Stacey F StensethIndiaIvan Magalhaes UNQUALIFIED
Leon X OldroydUnited KingdomElwin Sharvill QUALIFIED
Aika U ButtAustraliaXuxue Feng NEGOTIATION
Wickens P PoquetteSpainAnna Fali UNQUALIFIED
Murillo E VocelkaGermanyAnna Fali RENEWAL
Ashley J NickaFranceXuxue Feng UNQUALIFIED
Antonio L ButtRussiaOnyama Limba UNQUALIFIED
Antonio E OldroydGermanyXuxue Feng UNQUALIFIED
Claire H PoquetteSpainBernardo Dominic NEW
Maria U MaletIndiaStephen Shaw PROPOSAL
Deepesh V PoquetteAustraliaElwin Sharvill NEW
Salvatore T CaldareraArgentinaStephen Shaw UNQUALIFIED
Claire Q GarufiSpainXuxue Feng NEGOTIATION
Juan I GauchoCanadaAmy Elsner NEW
Aika I PaprockiItalyAnna Fali QUALIFIED
Jennifer M CaudyItalyElwin Sharvill NEW
Aika M IturbideAustraliaAmy Elsner RENEWAL
Silvio Q ChuiAustraliaBernardo Dominic PROPOSAL
Rodrigues S KuskoIndiaXuxue Feng RENEWAL
Aika D DilliardCanadaStephen Shaw RENEWAL
James G KuskoBrazilBernardo Dominic RENEWAL
Darci H WieserItalyAsiya Javayant NEW
Aika O KolmetzArgentinaAmy Elsner RENEWAL
Aruna X SlusarskiGermanyBernardo Dominic RENEWAL
Silvio B FigeroaItalyAmy Elsner NEGOTIATION
Aika B AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo W VenereFranceAmy Elsner NEGOTIATION
Ricardo F RimCanadaOnyama Limba UNQUALIFIED
Adams X RutaAustraliaStephen Shaw NEGOTIATION
Izzy Z StensethAustraliaAsiya Javayant NEGOTIATION
Nicolas Z InouyeJapanStephen Shaw PROPOSAL
Cody Z ButtJapanStephen Shaw UNQUALIFIED
Mayumi N MaletSpainXuxue Feng NEGOTIATION
Aruna L MaletSpainOnyama Limba NEW
Jennifer Z DarakjyFranceXuxue Feng UNQUALIFIED
Mujtaba Y ChuiItalyStephen Shaw PROPOSAL
Jennifer N GillianUnited KingdomIoni Bowcher UNQUALIFIED
Stacey F CaudyRussiaOnyama Limba UNQUALIFIED
Smith N NestleBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Cody P Garufi
Cody C Royster
Aditya E Shinko
Julie F Waycott
Sinclair M Darakjy
Murillo V Waycott
Julie Z Paprocki
Emily Q Glick
Kaitlin K Royster
Aditya J Chui
Julie H Bolognia
Smith M Stenseth
Aika S Glick
David B Slusarski
Jennifer A Shinko
Arvin O Ostrosky
Kaitlin R Butt
Stacey J Butt
Emily O Dilliard
Maria W Darakjy
Kadeem S Rim
Misaki A Figeroa
Alejandro V Malet
Leon Y Venere
Jones D Malet
Silvio B Vocelka
Maisha V Kusko
Munro Q Amigon
Aditya L Flosi
Deepesh W Kusko
Munro W Albares
Octavia U Ostrosky
Morrow W Shinko
Mujtaba W Bolognia
Jennifer R Albares
Tony J Waycott
Silvio E Waycott
Julie G Gillian
Isabel C Schemmer
Greenwood Q Briddick
Leon F Chui
Faith L Marrier
Adams F Stenseth
Jones V Stenseth
Smith U Nicka
Clifford E Dilliard
Greenwood Z Ostrosky
Kaitlin R Malet
Alejandro M Oldroyd
Ricardo S Figeroa
IdCountryDate
1000United Kingdom2026-06-12
1001Australia2026-06-29
1002Canada2026-07-06
1003Japan2026-06-27
1004Australia2026-07-07
1005France2026-06-15
1006France2026-06-28
1007Russia2026-06-15
1008Canada2026-06-13
1009Italy2026-06-11
1010France2026-06-25
1011India2026-06-16
1012Germany2026-06-12
1013United Kingdom2026-06-27
1014Argentina2026-06-15
1015Japan2026-07-06
1016Japan2026-06-08
1017Spain2026-06-19
1018Brazil2026-06-17
1019Argentina2026-06-19
1020Argentina2026-06-25
1021Australia2026-06-21
1022Japan2026-06-16
1023Italy2026-06-25
1024United Kingdom2026-07-02
1025Canada2026-07-04
1026United Kingdom2026-06-20
1027Italy2026-06-13
1028Germany2026-07-04
1029Spain2026-06-23
1030Australia2026-06-16
1031Japan2026-07-07
1032United Kingdom2026-07-04
1033Japan2026-07-02
1034Spain2026-07-01
1035Germany2026-07-03
1036Brazil2026-06-12
1037Italy2026-07-06
1038Canada2026-06-19
1039Spain2026-06-22
1040Australia2026-07-02
1041Argentina2026-06-10
1042Italy2026-07-07
1043Germany2026-06-10
1044United Kingdom2026-07-01
1045India2026-06-18
1046Argentina2026-06-15
1047Russia2026-06-30
1048India2026-06-21
1049France2026-06-30

On-Demand Data

NameIdCountryDate
Jones B Inouye1000Japan2026-06-17
Adams Y Ruta1001France2026-06-27
Claire C Gaucho1002India2026-06-18
Misaki Q Venere1003France2026-07-04
Maisha C Gaucho1004Argentina2026-06-14
Nicolas Z Flosi1005Australia2026-06-15
Alejandro F Venere1006United Kingdom2026-06-17
Mujtaba R Garufi1007Argentina2026-07-05
Faith P Poquette1008United Kingdom2026-07-07
Juan W Ruta1009Australia2026-07-05
Julie W Oldroyd1010Australia2026-07-05
David Q Sergi1011India2026-06-29
James X Oldroyd1012France2026-06-08
Cody D Butt1013Australia2026-06-08
Isabel H Oldroyd1014Japan2026-07-05
Leja A Doe1015United Kingdom2026-06-17
James K Glick1016India2026-07-01
Clifford H Flosi1017United Kingdom2026-07-06
Munro W Ferencz1018Argentina2026-06-27
David S Amigon1019Japan2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin P BologniaJapanAmy Elsner QUALIFIED
Ivar A VocelkaSpainAmy Elsner UNQUALIFIED
Leon R WhobreySpainElwin Sharvill PROPOSAL
Morrow O VenereGermanyAnna Fali QUALIFIED
Jeanfrancois A PerinArgentinaOnyama Limba UNQUALIFIED
Kadeem R SergiFranceBernardo Dominic PROPOSAL
Aruna G FigeroaItalyBernardo Dominic QUALIFIED
Darci G GlickAustraliaIvan Magalhaes NEW
Deepesh J WhobreyJapanAnna Fali NEGOTIATION
Julie F RutaArgentinaXuxue Feng QUALIFIED
Faith U FlosiGermanyAsiya Javayant NEGOTIATION
Francesco H MarrierItalyAnna Fali UNQUALIFIED
Claire H AmigonArgentinaAmy Elsner NEW
Kaitlin W PoquetteBrazilIvan Magalhaes QUALIFIED
Aika H RulapaughAustraliaIvan Magalhaes RENEWAL
Julie A FlosiGermanyAmy Elsner RENEWAL
Jones L FerenczIndiaIvan Magalhaes PROPOSAL
Cody A OldroydCanadaXuxue Feng RENEWAL
Salvatore V IturbideSpainXuxue Feng QUALIFIED
Aditya U DilliardItalyAmy Elsner NEGOTIATION
Julie E ChuiAustraliaStephen Shaw RENEWAL
Clifford J GarufiJapanAsiya Javayant RENEWAL
Murillo C BologniaRussiaIvan Magalhaes UNQUALIFIED
Tony N MaletSpainXuxue Feng UNQUALIFIED
Ivar N GlickUnited KingdomXuxue Feng NEW
Morrow L IturbideJapanOnyama Limba RENEWAL
Johnson F BologniaRussiaAsiya Javayant NEGOTIATION
Antonio U DoeBrazilStephen Shaw NEGOTIATION
Jeanfrancois P ChuiGermanyStephen Shaw NEGOTIATION
Antonio T RutaSpainAnna Fali RENEWAL
Faith L GlickBrazilIoni Bowcher NEGOTIATION
Aditya H MaletSpainXuxue Feng NEW
Jennifer X StockhamFranceAmy Elsner UNQUALIFIED
Chavez Q GauchoAustraliaXuxue Feng PROPOSAL
Murillo Z BologniaItalyBernardo Dominic RENEWAL
Nicolas D RoysterJapanStephen Shaw QUALIFIED
Adams X GarufiAustraliaAmy Elsner RENEWAL
Greenwood H StensethCanadaElwin Sharvill PROPOSAL
Mujtaba Q NestleGermanyIoni Bowcher NEGOTIATION
Clifford J RutaAustraliaOnyama Limba 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>