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
Octavia V PoquetteArgentinaAnna Fali UNQUALIFIED
Faith E SlusarskiAustraliaStephen Shaw NEGOTIATION
Octavia J DoeGermanyIoni Bowcher UNQUALIFIED
Juan D CampainCanadaAsiya Javayant NEGOTIATION
Tony Q MaletIndiaXuxue Feng NEW
Aditya W GarufiAustraliaAmy Elsner NEW
Antonio D VocelkaItalyStephen Shaw NEW
Rodrigues A FigeroaBrazilIoni Bowcher PROPOSAL
Isabel A GarufiRussiaAmy Elsner NEW
Emily W SaylorsAustraliaBernardo Dominic RENEWAL
Salvatore P InouyeUnited KingdomIoni Bowcher QUALIFIED
Arvin O VocelkaGermanyBernardo Dominic PROPOSAL
Julie B IturbideGermanyAmy Elsner NEW
Maisha V RutaRussiaIvan Magalhaes UNQUALIFIED
Jones R IturbideSpainIoni Bowcher UNQUALIFIED
Alejandro N AlbaresFranceXuxue Feng NEW
Ivar D StockhamItalyStephen Shaw QUALIFIED
Arvin V BologniaJapanIoni Bowcher UNQUALIFIED
Jefferson U VenereFranceAmy Elsner PROPOSAL
Kadeem U TollnerBrazilXuxue Feng UNQUALIFIED
Misaki F DoeCanadaIoni Bowcher RENEWAL
Sinclair W NestleIndiaAnna Fali PROPOSAL
Faith A NickaCanadaBernardo Dominic QUALIFIED
David P GarufiBrazilAnna Fali NEW
Wickens E TollnerArgentinaAmy Elsner PROPOSAL
Tony D SchemmerFranceAsiya Javayant RENEWAL
Aruna Z OldroydIndiaIvan Magalhaes NEGOTIATION
Silvio C AmigonRussiaIoni Bowcher NEGOTIATION
Munro F DilliardIndiaBernardo Dominic RENEWAL
Aika P ButtAustraliaAmy Elsner NEW
Sinclair Z CaldareraArgentinaBernardo Dominic UNQUALIFIED
Murillo L KolmetzArgentinaStephen Shaw QUALIFIED
Murillo U RutaRussiaElwin Sharvill PROPOSAL
Jones T FerenczRussiaAnna Fali UNQUALIFIED
Aditya J SergiBrazilOnyama Limba UNQUALIFIED
Greenwood N RoysterUnited KingdomXuxue Feng NEGOTIATION
Sinclair Y ShinkoFranceElwin Sharvill NEW
Johnson A WaycottItalyElwin Sharvill NEGOTIATION
Costa T MacleadGermanyBernardo Dominic QUALIFIED
Jennifer V TollnerJapanAsiya Javayant NEGOTIATION
Salvatore S ShinkoCanadaAnna Fali PROPOSAL
Alejandro F SchemmerArgentinaXuxue Feng NEGOTIATION
Jefferson K StensethIndiaAnna Fali PROPOSAL
Faith H NestleUnited KingdomIvan Magalhaes PROPOSAL
Jones L RoysterArgentinaAmy Elsner UNQUALIFIED
Adams B BologniaGermanyStephen Shaw NEW
Aika N GlickGermanyAmy Elsner UNQUALIFIED
Mayumi H MaletFranceXuxue Feng NEW
Antonio Z BriddickSpainIoni Bowcher QUALIFIED
Ricardo W ChuiArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Smith K CaudyUnited KingdomIvan Magalhaes PROPOSAL
Aditya P CaldareraSpainBernardo Dominic NEGOTIATION
Francesco W SergiUnited KingdomOnyama Limba UNQUALIFIED
Aditya Q SlusarskiCanadaIoni Bowcher QUALIFIED
Cody Y BowleyGermanyAmy Elsner NEW
Mayumi I StensethSpainAsiya Javayant QUALIFIED
Jeanfrancois R FlosiBrazilBernardo Dominic NEW
David U PerinArgentinaElwin Sharvill NEGOTIATION
Arvin K WaycottIndiaElwin Sharvill UNQUALIFIED
Kaitlin H NestleSpainAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia H SlusarskiSpain2026-08-03Benton, John B Jr NEGOTIATION42Stephen Shaw
1001Nicolas X PoquetteJapan2026-08-22Rangoni Of Florence RENEWAL73Anna Fali
1002Alejandro O BowleyJapan2026-08-17Feltz Printing Service NEGOTIATION68Xuxue Feng
1003Clifford X FigeroaGermany2026-08-08Truhlar And Truhlar Attys QUALIFIED37Ivan Magalhaes
1004Stacey C ShinkoJapan2026-08-16Rousseaux, Michael Esq NEGOTIATION86Asiya Javayant
1005Izzy H KolmetzIndia2026-08-03Morlong Associates NEW72Ioni Bowcher
1006Kadeem Z RoysterJapan2026-07-28Truhlar And Truhlar Attys RENEWAL44Asiya Javayant
1007Stacey J FerenczJapan2026-08-10Truhlar And Truhlar Attys PROPOSAL25Anna Fali
1008Stacey Z AlbaresUnited Kingdom2026-08-16Buckley Miller Wright QUALIFIED80Onyama Limba
1009Smith K SergiAustralia2026-08-01Feltz Printing Service NEW77Ivan Magalhaes
1010Cody G SlusarskiGermany2026-08-19Rousseaux, Michael Esq RENEWAL28Asiya Javayant
1011Murillo S SaylorsBrazil2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED83Bernardo Dominic
1012Faith C AlbaresBrazil2026-08-15Benton, John B Jr RENEWAL37Asiya Javayant
1013Leon M NestleCanada2026-08-12Truhlar And Truhlar Attys NEGOTIATION91Asiya Javayant
1014Stacey J GlickRussia2026-08-14King, Christopher A Esq RENEWAL38Ioni Bowcher
1015Sinclair I PoquetteCanada2026-07-29Feiner Bros NEW33Elwin Sharvill
1016Arvin I PerinFrance2026-07-25Truhlar And Truhlar Attys PROPOSAL86Bernardo Dominic
1017Greenwood V NickaGermany2026-08-18Rangoni Of Florence NEGOTIATION92Ivan Magalhaes
1018Stacey D WieserRussia2026-08-15Rousseaux, Michael Esq UNQUALIFIED28Elwin Sharvill
1019Jefferson C NickaGermany2026-08-08Commercial Press NEGOTIATION63Xuxue Feng
1020Greenwood U CaudyJapan2026-08-07Benton, John B Jr RENEWAL98Ivan Magalhaes
1021Leja K DarakjyGermany2026-07-27Feltz Printing Service NEGOTIATION54Amy Elsner
1022Sinclair Z FollerSpain2026-08-16Chanay, Jeffrey A Esq RENEWAL95Onyama Limba
1023Izzy U WaycottUnited Kingdom2026-08-19Truhlar And Truhlar Attys QUALIFIED83Asiya Javayant
1024Tony Q MarrierAustralia2026-08-03Chemel, James L Cpa NEGOTIATION65Ioni Bowcher
1025Faith C SlusarskiCanada2026-07-28Printing Dimensions UNQUALIFIED5Ivan Magalhaes
1026Jennifer Q KolmetzCanada2026-08-20Benton, John B Jr NEW9Xuxue Feng
1027Salvatore Y TollnerBrazil2026-07-25King, Christopher A Esq RENEWAL49Amy Elsner
1028Aruna V ButtUnited Kingdom2026-08-17Benton, John B Jr NEGOTIATION59Bernardo Dominic
1029Greenwood B OstroskyItaly2026-07-28Rousseaux, Michael Esq UNQUALIFIED4Onyama Limba
1030Izzy C GillianJapan2026-08-07Buckley Miller Wright NEW12Stephen Shaw
1031Johnson M DoeIndia2026-08-18Dorl, James J Esq NEW13Ioni Bowcher
1032Faith J FlosiAustralia2026-08-17Dorl, James J Esq QUALIFIED35Amy Elsner
1033Sinclair R OldroydSpain2026-08-07King, Christopher A Esq PROPOSAL81Onyama Limba
1034Leja A RoysterSpain2026-07-30Dorl, James J Esq NEGOTIATION53Onyama Limba
1035Aruna P RutaIndia2026-07-26Chanay, Jeffrey A Esq QUALIFIED7Bernardo Dominic
1036Aika Q SlusarskiUnited Kingdom2026-08-12Dorl, James J Esq UNQUALIFIED47Anna Fali
1037Wickens C NickaUnited Kingdom2026-08-10Chanay, Jeffrey A Esq QUALIFIED26Ivan Magalhaes
1038Leon K PaprockiJapan2026-08-17Dorl, James J Esq NEW8Xuxue Feng
1039Clifford D BriddickBrazil2026-08-19King, Christopher A Esq RENEWAL16Bernardo Dominic
1040Juan J PaprockiGermany2026-08-08Printing Dimensions NEGOTIATION55Xuxue Feng
1041Aika Q GillianFrance2026-08-04Morlong Associates RENEWAL92Bernardo Dominic
1042Juan D RoysterRussia2026-08-16King, Christopher A Esq NEGOTIATION16Asiya Javayant
1043Salvatore V FerenczFrance2026-08-10Truhlar And Truhlar Attys UNQUALIFIED16Asiya Javayant
1044Faith L MaletRussia2026-08-07Morlong Associates NEGOTIATION77Amy Elsner
1045Nicolas T SaylorsCanada2026-08-19King, Christopher A Esq RENEWAL95Asiya Javayant
1046Isabel J GarufiIndia2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED15Bernardo Dominic
1047Deepesh K RimFrance2026-08-09Chemel, James L Cpa PROPOSAL28Asiya Javayant
1048Cody F DoeGermany2026-08-02Benton, John B Jr UNQUALIFIED13Asiya Javayant
1049Maria W SlusarskiItaly2026-07-25Printing Dimensions NEW96Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem I DilliardGermanyAsiya Javayant UNQUALIFIED
Francesco H ShinkoAustraliaAmy Elsner PROPOSAL
Morrow D NickaArgentinaIvan Magalhaes QUALIFIED
Mayumi Q DarakjyCanadaAnna Fali NEW
Jeanfrancois Y NickaJapanIvan Magalhaes UNQUALIFIED
Maisha Q WieserIndiaAsiya Javayant PROPOSAL
Greenwood N CaudyIndiaOnyama Limba NEGOTIATION
Isabel S RulapaughBrazilAsiya Javayant UNQUALIFIED
Costa O SaylorsRussiaAmy Elsner NEGOTIATION
Cody D MaletIndiaAsiya Javayant NEW
Tony M BriddickArgentinaBernardo Dominic PROPOSAL
Sinclair S FerenczRussiaBernardo Dominic NEW
Salvatore M KuskoItalyXuxue Feng PROPOSAL
Mujtaba A DarakjyUnited KingdomAsiya Javayant NEW
Jefferson C DarakjyAustraliaAmy Elsner NEW
Nicolas V MaletCanadaAnna Fali NEW
Aditya G WaycottJapanOnyama Limba QUALIFIED
Silvio W ButtUnited KingdomElwin Sharvill NEW
Chavez H ChuiRussiaElwin Sharvill NEW
James Y FollerArgentinaElwin Sharvill UNQUALIFIED
Francesco M SergiBrazilStephen Shaw NEGOTIATION
Faith V FlosiItalyBernardo Dominic RENEWAL
Ashley M FigeroaIndiaAmy Elsner PROPOSAL
Mujtaba E SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Emily L AmigonUnited KingdomXuxue Feng RENEWAL
Mujtaba Z ShinkoFranceBernardo Dominic NEGOTIATION
Greenwood E ButtGermanyStephen Shaw UNQUALIFIED
Alejandro I BologniaAustraliaAnna Fali QUALIFIED
Juan J InouyeRussiaAnna Fali PROPOSAL
James O KolmetzBrazilOnyama Limba PROPOSAL
Misaki B KolmetzBrazilBernardo Dominic PROPOSAL
Ivar R SchemmerGermanyElwin Sharvill RENEWAL
James I DoeUnited KingdomBernardo Dominic NEW
Alejandro P VocelkaGermanyAsiya Javayant NEW
Stacey I MacleadIndiaXuxue Feng QUALIFIED
Stacey D OldroydUnited KingdomIoni Bowcher NEW
Mayumi A SergiCanadaOnyama Limba PROPOSAL
Wickens G GlickSpainOnyama Limba NEW
Darci I KolmetzArgentinaIvan Magalhaes PROPOSAL
Clifford U FigeroaCanadaIvan Magalhaes QUALIFIED
Emily M MacleadArgentinaAsiya Javayant PROPOSAL
Claire G GarufiCanadaOnyama Limba RENEWAL
Deepesh D OstroskyCanadaBernardo Dominic QUALIFIED
Jeanfrancois V MaletArgentinaStephen Shaw QUALIFIED
Isabel S FlosiItalyAmy Elsner UNQUALIFIED
Jennifer M IturbideItalyAsiya Javayant NEGOTIATION
Ivar F OstroskyArgentinaAnna Fali RENEWAL
Greenwood I SlusarskiUnited KingdomOnyama Limba NEW
Wickens V BriddickIndiaStephen Shaw UNQUALIFIED
Jennifer N MarrierIndiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Francesco R Maclead
Smith Z Albares
Murillo C Nicka
Clifford V Garufi
Wickens R Maclead
Jefferson O Paprocki
Juan B Slusarski
Salvatore J Perin
Mayumi T Ruta
Aditya E Morasca
Stacey Y Darakjy
Izzy A Wieser
Morrow I Royster
Clifford D Waycott
Clifford B Chui
Murillo Y Kusko
Tony A Bolognia
Jeanfrancois W Foller
Ashley Q Inouye
Tony X Marrier
Cody F Foller
Costa Y Nestle
Maisha R Royster
Izzy U Dilliard
Ashley K Inouye
Clifford K Malet
Sinclair T Amigon
David U Ruta
Chavez Z Oldroyd
Cody R Malet
Smith Y Caldarera
Jefferson M Rulapaugh
Chavez S Ostrosky
Misaki Y Whobrey
Murillo W Bowley
Misaki O Rim
Arvin B Bolognia
Darci J Paprocki
Adams Y Tollner
Aruna U Kolmetz
Jefferson G Wieser
James U Rulapaugh
Misaki B Maclead
Nicolas R Whobrey
Stacey E Royster
Aruna E Dilliard
Chavez I Briddick
Arvin E Kusko
Aditya P Glick
Chavez X Vocelka
IdCountryDate
1000India2026-08-07
1001Australia2026-07-29
1002Japan2026-08-05
1003Germany2026-07-26
1004Russia2026-08-12
1005Argentina2026-08-11
1006Italy2026-08-17
1007Russia2026-08-11
1008Russia2026-08-04
1009France2026-08-08
1010Italy2026-08-12
1011United Kingdom2026-08-09
1012Australia2026-07-27
1013Canada2026-07-29
1014India2026-08-19
1015Italy2026-07-24
1016Argentina2026-07-26
1017Argentina2026-08-08
1018United Kingdom2026-08-11
1019Spain2026-08-15
1020Germany2026-07-26
1021Spain2026-08-15
1022Argentina2026-08-09
1023Italy2026-08-22
1024Argentina2026-08-17
1025Germany2026-08-06
1026Germany2026-08-02
1027Canada2026-08-05
1028United Kingdom2026-08-07
1029Canada2026-08-03
1030Spain2026-08-12
1031Australia2026-08-05
1032Italy2026-07-31
1033Japan2026-08-11
1034France2026-08-06
1035Australia2026-08-22
1036Brazil2026-08-02
1037Canada2026-08-20
1038Japan2026-08-12
1039Germany2026-08-22
1040India2026-08-16
1041Italy2026-07-26
1042United Kingdom2026-08-15
1043Germany2026-08-02
1044Japan2026-08-04
1045Spain2026-08-17
1046Australia2026-07-28
1047Canada2026-07-31
1048Italy2026-08-21
1049Spain2026-08-10

On-Demand Data

NameIdCountryDate
James U Rim1000Canada2026-07-24
Aditya B Schemmer1001Japan2026-08-21
Salvatore K Whobrey1002Germany2026-07-25
James Z Glick1003Brazil2026-08-14
Leja D Caudy1004Brazil2026-07-29
Sinclair D Stenseth1005Germany2026-08-13
Jefferson Q Rulapaugh1006Germany2026-08-22
Murillo W Foller1007France2026-08-19
Murillo P Venere1008India2026-08-21
Francesco A Paprocki1009Italy2026-08-16
Munro O Stenseth1010Spain2026-08-10
Maria B Nestle1011Spain2026-08-14
David K Maclead1012Italy2026-08-02
Tony E Gaucho1013Australia2026-08-03
Francesco P Nicka1014Brazil2026-08-05
Cody L Slusarski1015Brazil2026-08-07
Ashley I Poquette1016United Kingdom2026-07-29
Jennifer D Wieser1017Australia2026-08-15
Morrow U Dilliard1018Spain2026-07-26
Misaki U Vocelka1019Italy2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna V SaylorsArgentinaStephen Shaw UNQUALIFIED
Aditya Z KuskoCanadaAmy Elsner UNQUALIFIED
Ashley C WaycottUnited KingdomIvan Magalhaes PROPOSAL
Costa K DoeFranceAsiya Javayant NEW
Jefferson F ButtBrazilStephen Shaw NEW
Costa P KolmetzBrazilIoni Bowcher NEW
Ashley V SaylorsSpainIoni Bowcher QUALIFIED
Murillo Q CaudySpainAnna Fali NEW
Wickens Y KolmetzSpainAmy Elsner RENEWAL
Ricardo I RulapaughJapanElwin Sharvill UNQUALIFIED
Arvin M BriddickGermanyXuxue Feng NEW
Misaki D StensethCanadaAsiya Javayant QUALIFIED
Morrow I OldroydItalyBernardo Dominic NEW
Misaki E VenereIndiaAsiya Javayant UNQUALIFIED
Adams N NickaIndiaIoni Bowcher NEW
Octavia L PerinUnited KingdomBernardo Dominic NEW
Alejandro K ChuiGermanyAsiya Javayant QUALIFIED
Johnson J StockhamGermanyAnna Fali UNQUALIFIED
Aditya N OldroydAustraliaAnna Fali NEGOTIATION
Adams O OldroydBrazilAnna Fali NEGOTIATION
Kaitlin E FlosiJapanAnna Fali RENEWAL
Adams V StockhamArgentinaBernardo Dominic PROPOSAL
Jones A BologniaCanadaBernardo Dominic NEW
Arvin X GillianRussiaAsiya Javayant RENEWAL
Jefferson Z MorascaIndiaAnna Fali QUALIFIED
Darci M CaudyRussiaIvan Magalhaes QUALIFIED
Mujtaba L PerinRussiaAmy Elsner NEW
Morrow V BriddickBrazilStephen Shaw RENEWAL
Clifford J SchemmerIndiaElwin Sharvill NEGOTIATION
Octavia Y NickaFranceAnna Fali NEW
Adams Q SergiUnited KingdomAnna Fali PROPOSAL
Jefferson N GillianSpainIoni Bowcher QUALIFIED
Emily X InouyeUnited KingdomAsiya Javayant NEW
Jeanfrancois L FollerBrazilAnna Fali NEGOTIATION
Sinclair V StensethCanadaOnyama Limba UNQUALIFIED
Tony H CampainRussiaAmy Elsner PROPOSAL
Julie V WhobreyGermanyOnyama Limba UNQUALIFIED
Izzy Q RoysterSpainBernardo Dominic UNQUALIFIED
Costa N StensethRussiaAnna Fali QUALIFIED
Kadeem G NestleBrazilXuxue Feng PROPOSAL

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