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
Johnson S AlbaresIndiaAmy Elsner QUALIFIED
Alejandro I RutaCanadaElwin Sharvill QUALIFIED
Sinclair Y ShinkoArgentinaBernardo Dominic RENEWAL
Ricardo E VenereGermanyAsiya Javayant QUALIFIED
Maria B OstroskyCanadaOnyama Limba NEW
Greenwood W SergiArgentinaXuxue Feng NEW
Clifford U FigeroaArgentinaAsiya Javayant PROPOSAL
Izzy B GlickJapanAmy Elsner UNQUALIFIED
Julie B OldroydGermanyStephen Shaw NEGOTIATION
Deepesh X DarakjyCanadaAnna Fali QUALIFIED
Wickens O FlosiSpainAmy Elsner NEW
Johnson B KuskoArgentinaIvan Magalhaes PROPOSAL
Tony F MorascaItalyAsiya Javayant PROPOSAL
Aditya S BologniaAustraliaAsiya Javayant RENEWAL
Chavez R CaldareraAustraliaAnna Fali NEW
Munro J CampainFranceIoni Bowcher QUALIFIED
Octavia G MaletBrazilAnna Fali UNQUALIFIED
Wickens U VenereSpainElwin Sharvill NEGOTIATION
Stacey X ButtFranceXuxue Feng NEW
Maria L GauchoSpainAmy Elsner PROPOSAL
Aditya O BriddickGermanyAsiya Javayant NEW
Julie T OldroydCanadaAmy Elsner QUALIFIED
Stacey P SergiFranceAmy Elsner PROPOSAL
Leon P VenereIndiaIvan Magalhaes NEW
Rodrigues H RoysterIndiaAmy Elsner PROPOSAL
Emily J PaprockiUnited KingdomIoni Bowcher NEW
Tony Z MaletArgentinaBernardo Dominic PROPOSAL
Smith O MaletSpainOnyama Limba NEW
Faith V AlbaresFranceIoni Bowcher NEW
Jeanfrancois L GlickAustraliaAsiya Javayant NEW
Smith M GillianSpainStephen Shaw RENEWAL
Ricardo X RutaFranceElwin Sharvill PROPOSAL
Mayumi Y OldroydIndiaAmy Elsner RENEWAL
Octavia W StockhamRussiaAmy Elsner RENEWAL
Greenwood F IturbideSpainOnyama Limba NEGOTIATION
Cody W MorascaRussiaXuxue Feng NEW
Salvatore Q RulapaughFranceAsiya Javayant NEGOTIATION
Kaitlin J SergiItalyOnyama Limba UNQUALIFIED
Greenwood N DilliardUnited KingdomIoni Bowcher QUALIFIED
Jones M ChuiIndiaStephen Shaw PROPOSAL
Aika X ButtItalyElwin Sharvill NEW
Faith D PerinBrazilElwin Sharvill UNQUALIFIED
Johnson E DoeIndiaXuxue Feng QUALIFIED
Emily V OstroskyIndiaIvan Magalhaes QUALIFIED
Rodrigues A PaprockiBrazilBernardo Dominic QUALIFIED
Ashley O FigeroaArgentinaAnna Fali NEW
Alejandro Q SchemmerGermanyIvan Magalhaes QUALIFIED
Greenwood T PerinIndiaIoni Bowcher PROPOSAL
Chavez O WaycottBrazilStephen Shaw PROPOSAL
Antonio W DoeBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Julie V DarakjyRussiaStephen Shaw UNQUALIFIED
Jefferson D GarufiIndiaXuxue Feng QUALIFIED
Leja R TollnerItalyAnna Fali NEW
Francesco D FollerCanadaAmy Elsner QUALIFIED
Leon F TollnerSpainBernardo Dominic NEW
Sinclair S IturbideGermanyAsiya Javayant PROPOSAL
Ricardo H FerenczCanadaAmy Elsner UNQUALIFIED
Ricardo N MacleadIndiaBernardo Dominic NEGOTIATION
Salvatore I KuskoIndiaIoni Bowcher UNQUALIFIED
Misaki I DoeRussiaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki S FerenczBrazil2026-07-17Dorl, James J Esq QUALIFIED69Anna Fali
1001Claire V DilliardAustralia2026-07-25Rangoni Of Florence RENEWAL81Ioni Bowcher
1002Octavia H WhobreyCanada2026-07-28Printing Dimensions RENEWAL25Elwin Sharvill
1003Francesco W StensethJapan2026-07-31Printing Dimensions NEW35Amy Elsner
1004Darci G PaprockiGermany2026-07-29Rousseaux, Michael Esq QUALIFIED63Xuxue Feng
1005Aruna F FerenczArgentina2026-07-28Rousseaux, Michael Esq RENEWAL79Xuxue Feng
1006Sinclair N PerinGermany2026-08-06Printing Dimensions UNQUALIFIED47Stephen Shaw
1007Jennifer V RulapaughJapan2026-07-14Chemel, James L Cpa NEGOTIATION59Bernardo Dominic
1008Kadeem P DilliardFrance2026-08-04Rangoni Of Florence QUALIFIED6Onyama Limba
1009Arvin C FigeroaBrazil2026-07-28Commercial Press RENEWAL95Stephen Shaw
1010Johnson W FigeroaBrazil2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED14Bernardo Dominic
1011Smith Z BologniaBrazil2026-07-29Benton, John B Jr UNQUALIFIED5Anna Fali
1012Murillo M WhobreyIndia2026-08-05Feiner Bros PROPOSAL65Elwin Sharvill
1013Jefferson N RulapaughIndia2026-07-20Commercial Press PROPOSAL66Xuxue Feng
1014Mayumi N CaudyJapan2026-07-22Feiner Bros PROPOSAL5Stephen Shaw
1015Izzy H MaletItaly2026-08-06Rousseaux, Michael Esq UNQUALIFIED90Ivan Magalhaes
1016Clifford T OstroskyCanada2026-07-16Dorl, James J Esq QUALIFIED62Stephen Shaw
1017Isabel T KolmetzRussia2026-07-13Rangoni Of Florence NEGOTIATION70Ivan Magalhaes
1018Kadeem L StockhamArgentina2026-08-06Feltz Printing Service NEW74Bernardo Dominic
1019Juan H BriddickIndia2026-07-27King, Christopher A Esq NEGOTIATION33Ioni Bowcher
1020Misaki G VenereGermany2026-07-29Chapman, Ross E Esq NEW75Bernardo Dominic
1021Isabel G KolmetzRussia2026-07-29Benton, John B Jr NEGOTIATION94Onyama Limba
1022Alejandro H ButtUnited Kingdom2026-07-19Dorl, James J Esq NEGOTIATION64Onyama Limba
1023Silvio G BowleyArgentina2026-07-24King, Christopher A Esq RENEWAL96Stephen Shaw
1024Arvin G PerinRussia2026-07-21Chapman, Ross E Esq PROPOSAL73Ivan Magalhaes
1025Chavez T MarrierAustralia2026-08-05Commercial Press NEW95Amy Elsner
1026Aika O PerinAustralia2026-08-11Feltz Printing Service QUALIFIED61Stephen Shaw
1027Francesco H BriddickItaly2026-08-03Commercial Press UNQUALIFIED7Amy Elsner
1028Aruna P ButtJapan2026-07-16Commercial Press UNQUALIFIED23Ioni Bowcher
1029Jones R PoquetteCanada2026-08-05Truhlar And Truhlar Attys UNQUALIFIED28Onyama Limba
1030Cody B StockhamAustralia2026-07-24Dorl, James J Esq NEGOTIATION92Ioni Bowcher
1031Silvio A NickaRussia2026-07-15Truhlar And Truhlar Attys PROPOSAL91Amy Elsner
1032Aruna F PerinJapan2026-07-22Chemel, James L Cpa QUALIFIED12Ioni Bowcher
1033Arvin O VenereIndia2026-07-20Dorl, James J Esq QUALIFIED85Stephen Shaw
1034Cody U GarufiArgentina2026-07-20Morlong Associates NEGOTIATION9Ivan Magalhaes
1035Emily U KolmetzCanada2026-08-10Feiner Bros RENEWAL54Amy Elsner
1036Juan M GarufiJapan2026-08-09Rangoni Of Florence RENEWAL93Stephen Shaw
1037Aditya C GauchoSpain2026-07-31Truhlar And Truhlar Attys RENEWAL52Asiya Javayant
1038Arvin T WieserIndia2026-07-22Feiner Bros QUALIFIED41Stephen Shaw
1039Mayumi Z WaycottUnited Kingdom2026-07-28Chapman, Ross E Esq NEW95Stephen Shaw
1040Murillo S WieserJapan2026-07-30Rousseaux, Michael Esq NEW43Xuxue Feng
1041Aditya K PerinIndia2026-08-08Commercial Press UNQUALIFIED62Ioni Bowcher
1042Munro B ChuiBrazil2026-07-13Chanay, Jeffrey A Esq NEGOTIATION82Xuxue Feng
1043Cody G RulapaughAustralia2026-08-03Morlong Associates RENEWAL90Xuxue Feng
1044Smith C IturbideSpain2026-08-05Truhlar And Truhlar Attys NEW91Ivan Magalhaes
1045Emily Q OldroydItaly2026-07-22Dorl, James J Esq RENEWAL88Onyama Limba
1046Claire G MaletArgentina2026-07-23Chanay, Jeffrey A Esq QUALIFIED81Amy Elsner
1047Aika A PerinRussia2026-07-31Chemel, James L Cpa PROPOSAL28Stephen Shaw
1048Kadeem T SergiItaly2026-07-13Morlong Associates PROPOSAL4Asiya Javayant
1049Ivar O RulapaughUnited Kingdom2026-07-17Chapman, Ross E Esq QUALIFIED4Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jones Y GarufiAustraliaAmy Elsner NEGOTIATION
Morrow K IturbideCanadaIoni Bowcher RENEWAL
Nicolas L CampainCanadaOnyama Limba NEW
Octavia L StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin K OstroskyBrazilXuxue Feng QUALIFIED
Juan X BologniaCanadaIvan Magalhaes UNQUALIFIED
Silvio D PoquetteRussiaAmy Elsner UNQUALIFIED
Kadeem V GillianRussiaAnna Fali NEW
Francesco X GlickGermanyAmy Elsner UNQUALIFIED
Ricardo N SlusarskiRussiaBernardo Dominic QUALIFIED
Faith K SergiAustraliaAnna Fali UNQUALIFIED
Francesco M BriddickSpainAmy Elsner NEW
Jones A ShinkoCanadaBernardo Dominic PROPOSAL
Deepesh N KuskoIndiaElwin Sharvill RENEWAL
Ashley Z GillianIndiaBernardo Dominic NEGOTIATION
Adams D FerenczItalyElwin Sharvill NEGOTIATION
Claire J KolmetzIndiaElwin Sharvill NEGOTIATION
Isabel L SchemmerAustraliaAsiya Javayant RENEWAL
Mayumi M SlusarskiIndiaIvan Magalhaes QUALIFIED
Ivar S InouyeJapanAnna Fali UNQUALIFIED
Ashley U WhobreyUnited KingdomBernardo Dominic RENEWAL
Johnson V KolmetzGermanyAsiya Javayant NEW
Rodrigues M VocelkaGermanyAsiya Javayant NEGOTIATION
Mujtaba E OstroskyCanadaIoni Bowcher NEGOTIATION
Murillo K MarrierItalyIvan Magalhaes PROPOSAL
Adams J ShinkoArgentinaAmy Elsner NEW
Costa C FlosiAustraliaAsiya Javayant UNQUALIFIED
Deepesh J StensethUnited KingdomXuxue Feng NEGOTIATION
Jones B NickaAustraliaStephen Shaw NEGOTIATION
Cody U FollerFranceXuxue Feng PROPOSAL
Aika T CaudySpainAnna Fali PROPOSAL
Clifford L MaletBrazilElwin Sharvill PROPOSAL
Stacey J BowleyUnited KingdomIoni Bowcher RENEWAL
Aruna G KuskoFranceOnyama Limba QUALIFIED
Izzy I DarakjyFranceOnyama Limba QUALIFIED
David B ChuiRussiaBernardo Dominic QUALIFIED
Ashley B VenereBrazilElwin Sharvill PROPOSAL
Claire U KolmetzItalyXuxue Feng NEW
Leja S PaprockiCanadaBernardo Dominic NEW
Costa G KuskoCanadaAsiya Javayant NEW
Salvatore X VocelkaBrazilBernardo Dominic RENEWAL
Leon G PerinAustraliaAnna Fali NEW
Kaitlin X RutaRussiaStephen Shaw NEGOTIATION
Aika S AmigonBrazilStephen Shaw NEW
Leja E OstroskySpainStephen Shaw NEW
Jennifer S CaldareraRussiaXuxue Feng QUALIFIED
Silvio B BriddickUnited KingdomIvan Magalhaes PROPOSAL
Clifford J PaprockiItalyXuxue Feng NEGOTIATION
Julie E FigeroaIndiaAnna Fali PROPOSAL
Maisha L FollerItalyElwin Sharvill PROPOSAL
Frozen Columns
Name
Mujtaba M Garufi
Morrow O Oldroyd
Mayumi P Whobrey
Cody A Schemmer
Juan B Nestle
Jefferson O Rim
Greenwood T Albares
Mayumi P Saylors
Clifford S Bowley
Jefferson Q Poquette
Kaitlin V Shinko
Aika X Flosi
Claire I Gillian
Stacey R Doe
Deepesh P Rulapaugh
Silvio R Glick
Alejandro Q Ostrosky
Faith M Bowley
Wickens L Perin
Maria U Perin
Clifford E Garufi
Isabel H Doe
Leon C Butt
Ricardo N Chui
Maisha C Flosi
Johnson B Caldarera
Ivar G Rulapaugh
Chavez R Shinko
Ashley F Figeroa
Nicolas B Venere
Aika W Albares
Arvin Z Doe
Salvatore J Stenseth
Kaitlin M Poquette
Darci U Perin
Emily X Ruta
Stacey O Marrier
Nicolas V Whobrey
Aika U Darakjy
Faith H Kolmetz
Juan E Stockham
Mujtaba V Nestle
Claire E Dilliard
Johnson Q Malet
Deepesh A Ostrosky
Costa J Rim
Ashley F Ruta
Antonio L Venere
Kadeem I Royster
Octavia J Shinko
IdCountryDate
1000Argentina2026-08-04
1001Australia2026-08-11
1002Argentina2026-07-13
1003Germany2026-08-03
1004United Kingdom2026-07-28
1005Italy2026-08-05
1006Brazil2026-08-11
1007India2026-08-09
1008India2026-08-07
1009France2026-08-11
1010United Kingdom2026-08-11
1011France2026-07-16
1012India2026-07-25
1013Australia2026-08-08
1014India2026-07-14
1015Australia2026-08-08
1016Spain2026-08-03
1017Japan2026-07-28
1018Japan2026-07-22
1019Spain2026-07-18
1020Brazil2026-07-24
1021Japan2026-08-02
1022United Kingdom2026-08-10
1023Germany2026-07-27
1024Canada2026-07-19
1025Australia2026-07-22
1026Japan2026-07-20
1027Brazil2026-07-13
1028Germany2026-07-16
1029Brazil2026-07-17
1030Brazil2026-07-21
1031Argentina2026-08-08
1032Germany2026-07-19
1033Germany2026-07-25
1034Spain2026-07-13
1035Canada2026-08-01
1036Brazil2026-07-15
1037India2026-07-20
1038France2026-08-03
1039Spain2026-07-20
1040Italy2026-07-14
1041Spain2026-08-04
1042Spain2026-07-17
1043Germany2026-07-23
1044Japan2026-07-19
1045Spain2026-07-17
1046Italy2026-08-03
1047France2026-07-20
1048India2026-07-20
1049Japan2026-08-08

On-Demand Data

NameIdCountryDate
Emily H Rulapaugh1000Japan2026-08-02
Jennifer I Oldroyd1001Russia2026-07-13
Deepesh H Bowley1002Canada2026-07-31
David L Paprocki1003Canada2026-07-18
Isabel Y Morasca1004United Kingdom2026-07-20
Ricardo Y Stenseth1005Japan2026-07-27
Faith L Bowley1006United Kingdom2026-07-26
Murillo U Perin1007Italy2026-07-23
Tony O Whobrey1008Germany2026-07-27
Julie T Rim1009Russia2026-07-23
Deepesh N Rim1010United Kingdom2026-07-27
Aruna L Paprocki1011United Kingdom2026-07-31
Silvio P Wieser1012Russia2026-08-09
Arvin E Chui1013Spain2026-07-30
Jefferson I Kusko1014Argentina2026-07-23
Mayumi Z Butt1015Australia2026-08-01
Costa H Doe1016France2026-07-17
Salvatore R Royster1017Canada2026-07-15
Jeanfrancois K Oldroyd1018Japan2026-08-11
Kaitlin J Ostrosky1019Australia2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy K WhobreyArgentinaStephen Shaw NEW
Deepesh H SlusarskiFranceAsiya Javayant UNQUALIFIED
Julie T VocelkaCanadaElwin Sharvill NEW
Nicolas R FerenczBrazilXuxue Feng NEW
Ricardo H StockhamArgentinaElwin Sharvill UNQUALIFIED
Costa C IturbideCanadaAsiya Javayant NEW
Jones E SergiArgentinaElwin Sharvill NEGOTIATION
Izzy I KuskoUnited KingdomAnna Fali PROPOSAL
Izzy C RoysterFranceAnna Fali NEW
Cody X VocelkaBrazilOnyama Limba NEW
Kadeem L OstroskyCanadaXuxue Feng QUALIFIED
David V FlosiBrazilAmy Elsner UNQUALIFIED
Cody G RutaSpainAmy Elsner NEGOTIATION
Alejandro P StensethItalyIoni Bowcher UNQUALIFIED
Jones I VenereSpainStephen Shaw QUALIFIED
Emily R GlickBrazilAsiya Javayant UNQUALIFIED
Aruna F VocelkaGermanyIoni Bowcher NEGOTIATION
Aruna Q MarrierSpainAnna Fali NEW
Tony H BowleyUnited KingdomXuxue Feng UNQUALIFIED
Jefferson X BologniaFranceOnyama Limba NEW
Misaki C MacleadUnited KingdomAsiya Javayant PROPOSAL
Maisha K ButtSpainIoni Bowcher QUALIFIED
Murillo R NickaItalyOnyama Limba QUALIFIED
Izzy B DoeIndiaIoni Bowcher RENEWAL
Ivar N WhobreyFranceStephen Shaw UNQUALIFIED
Juan C MacleadUnited KingdomAsiya Javayant NEW
Isabel F OldroydGermanyXuxue Feng QUALIFIED
Cody O IturbideIndiaAmy Elsner RENEWAL
Leja S StensethUnited KingdomAnna Fali QUALIFIED
Kadeem N DoeCanadaBernardo Dominic RENEWAL
Juan G CampainGermanyAnna Fali NEGOTIATION
Aika O FollerAustraliaAmy Elsner NEW
Maria H GauchoArgentinaOnyama Limba NEW
Kadeem I RoysterAustraliaAnna Fali QUALIFIED
Mayumi U ShinkoGermanyStephen Shaw NEW
Aruna K BologniaAustraliaElwin Sharvill PROPOSAL
Faith Z MarrierUnited KingdomElwin Sharvill PROPOSAL
Claire R TollnerItalyIoni Bowcher UNQUALIFIED
Kadeem K FigeroaRussiaIoni Bowcher NEGOTIATION
David W MarrierCanadaIvan 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>