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
Ashley G GarufiAustraliaIvan Magalhaes NEGOTIATION
Kaitlin G GillianUnited KingdomIoni Bowcher NEW
Salvatore V BologniaJapanIoni Bowcher RENEWAL
Claire B OldroydArgentinaBernardo Dominic RENEWAL
Julie X SlusarskiItalyElwin Sharvill QUALIFIED
Ivar A StockhamArgentinaAnna Fali PROPOSAL
Munro C RulapaughBrazilStephen Shaw QUALIFIED
Maria W VenereRussiaStephen Shaw QUALIFIED
Maisha J PaprockiJapanAnna Fali QUALIFIED
Deepesh C SergiSpainXuxue Feng QUALIFIED
David K TollnerJapanXuxue Feng UNQUALIFIED
Aruna H WaycottBrazilElwin Sharvill PROPOSAL
Misaki B VenereItalyAmy Elsner QUALIFIED
Salvatore Y OldroydFranceIvan Magalhaes NEW
Jennifer N WieserIndiaOnyama Limba UNQUALIFIED
Salvatore D PaprockiFranceIvan Magalhaes UNQUALIFIED
Leja J VocelkaFranceAmy Elsner UNQUALIFIED
Murillo C ChuiJapanXuxue Feng NEW
Tony V PaprockiBrazilIoni Bowcher RENEWAL
Kaitlin M IturbideIndiaAsiya Javayant NEW
Mayumi I RoysterArgentinaElwin Sharvill RENEWAL
Jeanfrancois K SchemmerFranceAnna Fali RENEWAL
Izzy S GlickItalyXuxue Feng RENEWAL
Johnson G BowleyItalyIvan Magalhaes RENEWAL
Jones C OstroskyCanadaIoni Bowcher UNQUALIFIED
Costa D WieserItalyStephen Shaw NEGOTIATION
Nicolas E SergiUnited KingdomIvan Magalhaes RENEWAL
Salvatore H BowleySpainOnyama Limba PROPOSAL
Isabel N SlusarskiJapanXuxue Feng NEGOTIATION
Nicolas X RutaIndiaIvan Magalhaes PROPOSAL
Adams X DarakjyIndiaXuxue Feng PROPOSAL
Salvatore V GlickSpainAsiya Javayant QUALIFIED
Stacey C RimArgentinaOnyama Limba PROPOSAL
Clifford G VocelkaFranceAsiya Javayant NEW
Aika M FollerArgentinaBernardo Dominic NEGOTIATION
Adams Q KuskoFranceStephen Shaw PROPOSAL
Darci N RimCanadaXuxue Feng NEGOTIATION
Nicolas K MacleadJapanOnyama Limba NEW
Isabel R RulapaughJapanAmy Elsner QUALIFIED
Leja O OldroydSpainIvan Magalhaes PROPOSAL
Silvio B SaylorsSpainAnna Fali PROPOSAL
Darci K DoeUnited KingdomBernardo Dominic RENEWAL
Murillo Q RutaCanadaOnyama Limba QUALIFIED
Tony J ShinkoFranceBernardo Dominic UNQUALIFIED
Silvio E DarakjyBrazilBernardo Dominic UNQUALIFIED
Juan P PaprockiSpainAsiya Javayant NEW
Misaki U FerenczCanadaAnna Fali QUALIFIED
Ashley U SchemmerArgentinaAsiya Javayant PROPOSAL
Leja X WieserIndiaIvan Magalhaes RENEWAL
Cody G CaldareraArgentinaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Francesco Q StensethRussiaAmy Elsner NEGOTIATION
Sinclair C MaletIndiaStephen Shaw PROPOSAL
Darci X CaudyJapanStephen Shaw PROPOSAL
Jones O FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Francesco F DoeJapanXuxue Feng UNQUALIFIED
Morrow L MacleadAustraliaXuxue Feng UNQUALIFIED
Smith E AmigonUnited KingdomAmy Elsner NEW
Jeanfrancois N FollerGermanyIvan Magalhaes UNQUALIFIED
Morrow P GillianIndiaIvan Magalhaes UNQUALIFIED
Jones S OstroskyCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams R FollerCanada2026-08-01Printing Dimensions PROPOSAL91Anna Fali
1001Rodrigues R BowleyArgentina2026-07-19Truhlar And Truhlar Attys UNQUALIFIED23Anna Fali
1002Juan L InouyeCanada2026-07-31Printing Dimensions NEGOTIATION81Onyama Limba
1003Clifford U FerenczSpain2026-07-21Printing Dimensions UNQUALIFIED30Bernardo Dominic
1004Antonio T RulapaughFrance2026-07-27Morlong Associates UNQUALIFIED53Xuxue Feng
1005Clifford Y BologniaIndia2026-07-28Truhlar And Truhlar Attys RENEWAL22Ivan Magalhaes
1006Kadeem A GlickArgentina2026-08-02Feltz Printing Service NEGOTIATION19Anna Fali
1007Misaki Z BriddickGermany2026-07-17Chapman, Ross E Esq QUALIFIED11Asiya Javayant
1008Maisha D GlickJapan2026-07-18Dorl, James J Esq PROPOSAL61Ivan Magalhaes
1009Isabel H WhobreyArgentina2026-07-28Benton, John B Jr UNQUALIFIED57Amy Elsner
1010Tony L BriddickBrazil2026-08-12Truhlar And Truhlar Attys NEGOTIATION60Anna Fali
1011Francesco W SchemmerBrazil2026-07-20Morlong Associates PROPOSAL76Anna Fali
1012Tony I WaycottUnited Kingdom2026-08-04Truhlar And Truhlar Attys NEW70Asiya Javayant
1013Isabel Q ButtSpain2026-08-06Feiner Bros NEGOTIATION52Anna Fali
1014Jennifer F IturbideAustralia2026-07-20Morlong Associates QUALIFIED75Ivan Magalhaes
1015Izzy M PerinBrazil2026-07-19Dorl, James J Esq PROPOSAL47Xuxue Feng
1016Julie A SlusarskiGermany2026-07-25Buckley Miller Wright QUALIFIED92Xuxue Feng
1017Ashley T InouyeBrazil2026-08-04Buckley Miller Wright PROPOSAL85Onyama Limba
1018Maria S CampainRussia2026-08-01Chapman, Ross E Esq PROPOSAL5Xuxue Feng
1019Misaki A ButtBrazil2026-07-19Commercial Press UNQUALIFIED50Bernardo Dominic
1020Kaitlin J BriddickJapan2026-07-30Chapman, Ross E Esq RENEWAL95Ioni Bowcher
1021Darci Q SergiIndia2026-07-21King, Christopher A Esq NEGOTIATION59Xuxue Feng
1022Aditya U SergiBrazil2026-07-25Benton, John B Jr NEGOTIATION63Ioni Bowcher
1023Cody F NestleUnited Kingdom2026-08-09Commercial Press RENEWAL63Asiya Javayant
1024Munro I WieserAustralia2026-07-22Printing Dimensions RENEWAL95Amy Elsner
1025Murillo G SchemmerJapan2026-07-19Morlong Associates QUALIFIED68Stephen Shaw
1026Maisha Y MacleadRussia2026-07-21Benton, John B Jr NEW44Onyama Limba
1027Juan D PoquetteArgentina2026-07-25Commercial Press RENEWAL88Anna Fali
1028Ivar W SaylorsArgentina2026-08-01Truhlar And Truhlar Attys RENEWAL19Asiya Javayant
1029Mayumi D MacleadIndia2026-08-07Chanay, Jeffrey A Esq PROPOSAL36Onyama Limba
1030Nicolas D DoeArgentina2026-07-23King, Christopher A Esq RENEWAL28Bernardo Dominic
1031Antonio A ButtCanada2026-07-29Printing Dimensions PROPOSAL6Anna Fali
1032Ashley E AlbaresGermany2026-08-01Feiner Bros NEGOTIATION41Asiya Javayant
1033Costa D FlosiArgentina2026-07-23Benton, John B Jr UNQUALIFIED34Xuxue Feng
1034Arvin S OldroydAustralia2026-07-30Benton, John B Jr UNQUALIFIED64Bernardo Dominic
1035Izzy Q FigeroaIndia2026-07-14Feltz Printing Service UNQUALIFIED98Anna Fali
1036Wickens O GauchoIndia2026-07-21King, Christopher A Esq NEW45Bernardo Dominic
1037Adams D GillianBrazil2026-07-22Truhlar And Truhlar Attys RENEWAL0Ivan Magalhaes
1038Nicolas C GarufiIndia2026-08-02Commercial Press PROPOSAL20Stephen Shaw
1039Misaki Z PoquetteRussia2026-07-25Printing Dimensions NEW70Xuxue Feng
1040Sinclair P SaylorsJapan2026-07-28Chemel, James L Cpa RENEWAL6Ivan Magalhaes
1041Wickens J BriddickRussia2026-08-04Truhlar And Truhlar Attys RENEWAL84Ioni Bowcher
1042Stacey C PaprockiArgentina2026-07-29Chemel, James L Cpa NEGOTIATION34Anna Fali
1043Faith S WieserUnited Kingdom2026-07-14Chanay, Jeffrey A Esq QUALIFIED36Elwin Sharvill
1044Jefferson Q RimGermany2026-07-18Feltz Printing Service RENEWAL46Ioni Bowcher
1045Francesco S WhobreyUnited Kingdom2026-08-07Chapman, Ross E Esq PROPOSAL78Ioni Bowcher
1046Jennifer K SergiItaly2026-08-10Chanay, Jeffrey A Esq QUALIFIED69Bernardo Dominic
1047Antonio W BriddickItaly2026-07-14Dorl, James J Esq NEGOTIATION99Ioni Bowcher
1048Faith N KuskoCanada2026-07-20Commercial Press RENEWAL34Onyama Limba
1049Clifford Z CaudyAustralia2026-07-17Printing Dimensions NEGOTIATION41Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo L SlusarskiIndiaAnna Fali NEW
Francesco O KolmetzGermanyOnyama Limba QUALIFIED
Nicolas E NestleSpainIoni Bowcher RENEWAL
Mayumi Z CampainBrazilAnna Fali RENEWAL
Antonio D DilliardGermanyStephen Shaw PROPOSAL
Wickens V KolmetzBrazilIvan Magalhaes RENEWAL
Chavez O IturbideCanadaOnyama Limba NEGOTIATION
Octavia L CaldareraArgentinaAnna Fali QUALIFIED
Morrow X InouyeUnited KingdomIoni Bowcher UNQUALIFIED
Leon X ShinkoAustraliaBernardo Dominic NEW
Wickens Z BriddickIndiaAmy Elsner UNQUALIFIED
Johnson L RulapaughGermanyBernardo Dominic UNQUALIFIED
Greenwood H GarufiBrazilAsiya Javayant UNQUALIFIED
Murillo Z DarakjyFranceAsiya Javayant NEW
Chavez U StockhamArgentinaAsiya Javayant NEW
Rodrigues K ChuiJapanAnna Fali PROPOSAL
Kaitlin F IturbideJapanOnyama Limba RENEWAL
James E GillianUnited KingdomBernardo Dominic RENEWAL
Wickens Z StockhamFranceAnna Fali RENEWAL
Kadeem M BriddickItalyAnna Fali UNQUALIFIED
James I ShinkoCanadaXuxue Feng NEW
Aditya E CaldareraGermanyAmy Elsner PROPOSAL
Leja M ShinkoRussiaIoni Bowcher NEGOTIATION
Jennifer I NestleAustraliaElwin Sharvill UNQUALIFIED
Munro T PaprockiJapanAsiya Javayant QUALIFIED
Ashley U KolmetzRussiaAmy Elsner PROPOSAL
Jones O CampainAustraliaAnna Fali PROPOSAL
Cody U WaycottUnited KingdomAsiya Javayant QUALIFIED
Cody A MaletRussiaXuxue Feng QUALIFIED
Jeanfrancois U DoeJapanBernardo Dominic QUALIFIED
Maria U FigeroaCanadaXuxue Feng QUALIFIED
Deepesh D StensethIndiaElwin Sharvill QUALIFIED
Adams O GlickSpainStephen Shaw NEW
Stacey U WieserFranceAmy Elsner RENEWAL
Francesco M IturbideAustraliaIoni Bowcher NEW
Ricardo W AlbaresGermanyBernardo Dominic NEGOTIATION
Stacey O MaletIndiaAsiya Javayant NEW
Leon Y DoeRussiaBernardo Dominic QUALIFIED
Jeanfrancois L WieserItalyAsiya Javayant NEW
Adams P NestleCanadaBernardo Dominic RENEWAL
Emily V SergiAustraliaOnyama Limba PROPOSAL
Darci L NickaBrazilAnna Fali NEW
Greenwood D PerinCanadaStephen Shaw NEGOTIATION
Rodrigues V BriddickAustraliaBernardo Dominic QUALIFIED
Deepesh I OstroskyUnited KingdomXuxue Feng PROPOSAL
Juan X InouyeCanadaIvan Magalhaes QUALIFIED
Octavia X TollnerItalyXuxue Feng PROPOSAL
Mujtaba J DilliardAustraliaAmy Elsner NEW
Faith E NestleBrazilBernardo Dominic NEW
Mayumi Z FollerFranceElwin Sharvill NEW
Frozen Columns
Name
James U Royster
Cody D Schemmer
Stacey B Butt
Antonio M Bowley
Aruna P Garufi
Jeanfrancois R Shinko
Misaki S Sergi
Costa E Caldarera
Claire T Glick
Misaki Q Bowley
Sinclair Z Nestle
Emily P Wieser
Salvatore C Waycott
Arvin I Nicka
Izzy X Dilliard
James T Tollner
Leon Q Slusarski
Nicolas H Ferencz
Aika D Sergi
Maria N Caudy
Cody I Darakjy
Maisha X Poquette
Octavia R Venere
Antonio N Rim
Morrow I Amigon
Aika E Royster
Deepesh M Royster
Silvio J Kolmetz
Salvatore W Morasca
Darci R Perin
Salvatore F Glick
Francesco D Flosi
Mujtaba L Ferencz
Morrow J Perin
Maria A Rulapaugh
Jeanfrancois N Glick
Silvio X Nestle
Adams B Stenseth
Leja P Butt
Stacey Q Perin
Murillo O Campain
Kadeem X Ostrosky
Arvin O Caldarera
Mayumi R Chui
Clifford A Iturbide
Greenwood E Flosi
Chavez X Ruta
Maisha Q Foller
Leon C Darakjy
Aruna V Amigon
IdCountryDate
1000Japan2026-07-15
1001India2026-08-05
1002Argentina2026-07-28
1003Japan2026-07-30
1004Italy2026-07-31
1005Australia2026-08-07
1006Australia2026-08-12
1007India2026-07-22
1008Germany2026-08-07
1009United Kingdom2026-08-11
1010France2026-07-30
1011France2026-07-24
1012Italy2026-08-07
1013Argentina2026-07-17
1014France2026-08-03
1015Germany2026-07-22
1016France2026-08-03
1017India2026-07-20
1018Italy2026-08-06
1019Germany2026-07-21
1020Russia2026-07-21
1021Japan2026-08-01
1022Russia2026-08-06
1023Germany2026-07-21
1024France2026-08-07
1025India2026-07-23
1026Spain2026-08-10
1027Russia2026-07-22
1028United Kingdom2026-08-08
1029Germany2026-08-10
1030Argentina2026-07-19
1031Spain2026-07-23
1032Brazil2026-08-02
1033India2026-08-05
1034Australia2026-07-21
1035France2026-08-04
1036Canada2026-07-23
1037United Kingdom2026-07-20
1038Japan2026-07-29
1039Germany2026-07-16
1040India2026-07-25
1041Brazil2026-08-06
1042Argentina2026-07-31
1043India2026-07-18
1044Argentina2026-07-15
1045Australia2026-08-12
1046Spain2026-08-07
1047Russia2026-08-02
1048United Kingdom2026-07-15
1049Russia2026-08-07

On-Demand Data

NameIdCountryDate
Francesco J Perin1000United Kingdom2026-08-08
Alejandro Q Slusarski1001United Kingdom2026-08-06
Jeanfrancois H Morasca1002Japan2026-07-20
Izzy T Briddick1003Spain2026-07-24
Nicolas T Darakjy1004India2026-07-20
Cody R Malet1005Australia2026-07-21
Salvatore G Morasca1006Brazil2026-08-12
Kadeem J Bolognia1007Canada2026-07-14
Smith G Campain1008Australia2026-07-27
Murillo X Venere1009Australia2026-07-17
Chavez P Morasca1010India2026-08-02
Silvio W Malet1011Spain2026-07-22
Misaki K Paprocki1012Russia2026-07-31
Leon C Morasca1013Australia2026-07-21
Munro F Dilliard1014Russia2026-08-06
Salvatore Z Darakjy1015Germany2026-08-03
Wickens J Bolognia1016Russia2026-08-02
Deepesh R Campain1017Italy2026-07-29
David C Venere1018Italy2026-08-05
Kaitlin A Albares1019Argentina2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith E CaldareraArgentinaOnyama Limba PROPOSAL
Leon V StensethAustraliaIvan Magalhaes NEGOTIATION
Kaitlin H WieserAustraliaAnna Fali PROPOSAL
Salvatore U NestleRussiaElwin Sharvill UNQUALIFIED
Costa F VocelkaIndiaElwin Sharvill RENEWAL
Greenwood R NickaIndiaOnyama Limba NEGOTIATION
Sinclair Q SlusarskiItalyBernardo Dominic PROPOSAL
Leon M OstroskyFranceBernardo Dominic QUALIFIED
Rodrigues I ButtAustraliaAsiya Javayant PROPOSAL
Leon L RoysterCanadaAsiya Javayant NEW
David E AlbaresSpainOnyama Limba PROPOSAL
Nicolas T AmigonItalyAnna Fali NEW
David L OstroskyBrazilOnyama Limba PROPOSAL
Arvin W ShinkoJapanOnyama Limba NEGOTIATION
Emily D WaycottGermanyIoni Bowcher UNQUALIFIED
Deepesh R DarakjyArgentinaOnyama Limba PROPOSAL
Julie Q ButtCanadaStephen Shaw PROPOSAL
Darci A WaycottJapanIoni Bowcher RENEWAL
Francesco P KuskoIndiaXuxue Feng PROPOSAL
Mayumi C VocelkaCanadaElwin Sharvill PROPOSAL
Juan W VocelkaJapanAmy Elsner UNQUALIFIED
Francesco B FollerItalyXuxue Feng NEW
Claire I WieserRussiaIvan Magalhaes UNQUALIFIED
Jefferson C FlosiFranceAnna Fali NEGOTIATION
Costa A MarrierSpainElwin Sharvill NEGOTIATION
Ricardo U KolmetzFranceOnyama Limba PROPOSAL
Julie B FollerItalyBernardo Dominic NEGOTIATION
Costa D InouyeFranceIvan Magalhaes NEW
Alejandro I RulapaughAustraliaStephen Shaw PROPOSAL
Tony Y FigeroaCanadaAnna Fali PROPOSAL
Clifford Z IturbideCanadaAsiya Javayant RENEWAL
Izzy H WhobreyAustraliaAmy Elsner RENEWAL
Murillo H PaprockiUnited KingdomAmy Elsner RENEWAL
Faith T DoeFranceAsiya Javayant QUALIFIED
Maria Q NestleIndiaStephen Shaw PROPOSAL
Costa Q PerinJapanIoni Bowcher PROPOSAL
Ivar T BologniaIndiaBernardo Dominic NEW
Aika E AlbaresItalyIvan Magalhaes RENEWAL
Ivar S FollerCanadaOnyama Limba QUALIFIED
Faith J PerinJapanXuxue Feng 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>