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 Q ChuiUnited KingdomBernardo Dominic PROPOSAL
Morrow K KuskoRussiaOnyama Limba RENEWAL
Wickens P SchemmerUnited KingdomXuxue Feng NEGOTIATION
Izzy Q ButtBrazilAmy Elsner PROPOSAL
Kaitlin F RutaGermanyIoni Bowcher QUALIFIED
Julie G OstroskyRussiaBernardo Dominic QUALIFIED
Salvatore W GillianRussiaAnna Fali RENEWAL
Salvatore V IturbideFranceXuxue Feng NEW
Kadeem V ButtRussiaStephen Shaw QUALIFIED
Emily A FigeroaIndiaIvan Magalhaes QUALIFIED
Darci Z DoeBrazilElwin Sharvill NEGOTIATION
Jennifer I ButtJapanAmy Elsner NEW
Stacey Y OstroskySpainStephen Shaw QUALIFIED
Kaitlin H RoysterSpainIvan Magalhaes NEW
Alejandro P RoysterArgentinaIvan Magalhaes NEGOTIATION
Chavez X KuskoSpainIvan Magalhaes UNQUALIFIED
Rodrigues C WieserItalyXuxue Feng NEW
Munro H TollnerBrazilElwin Sharvill RENEWAL
Rodrigues E OstroskyRussiaXuxue Feng UNQUALIFIED
James A SaylorsRussiaOnyama Limba RENEWAL
Juan F FollerJapanAsiya Javayant NEW
Rodrigues N DilliardItalyIoni Bowcher UNQUALIFIED
Claire U VocelkaArgentinaIvan Magalhaes QUALIFIED
Antonio O ButtFranceStephen Shaw UNQUALIFIED
Mayumi A NickaSpainAsiya Javayant NEW
Aruna L WieserItalyBernardo Dominic QUALIFIED
Alejandro C AmigonIndiaOnyama Limba NEW
Deepesh U StensethArgentinaElwin Sharvill RENEWAL
Greenwood L GauchoUnited KingdomStephen Shaw RENEWAL
David B MarrierGermanyOnyama Limba RENEWAL
Isabel O PerinRussiaStephen Shaw NEGOTIATION
Jefferson A DoeJapanXuxue Feng PROPOSAL
Munro L WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo E GillianCanadaIoni Bowcher RENEWAL
Misaki V MarrierFranceAnna Fali NEW
Chavez E GarufiUnited KingdomElwin Sharvill PROPOSAL
Clifford Z DarakjyAustraliaAsiya Javayant UNQUALIFIED
Deepesh C StockhamIndiaIvan Magalhaes UNQUALIFIED
Octavia J VenereBrazilStephen Shaw PROPOSAL
Aditya O PerinJapanAnna Fali UNQUALIFIED
James O KolmetzArgentinaAmy Elsner PROPOSAL
Aika J BologniaBrazilIvan Magalhaes PROPOSAL
Claire P StensethCanadaOnyama Limba NEGOTIATION
Greenwood A GauchoUnited KingdomAnna Fali PROPOSAL
Nicolas N VenereUnited KingdomStephen Shaw NEGOTIATION
Murillo G VenereArgentinaAnna Fali NEW
Cody X OstroskyJapanIvan Magalhaes PROPOSAL
Aditya Y NickaArgentinaIvan Magalhaes NEGOTIATION
Mayumi Y CaldareraUnited KingdomAnna Fali PROPOSAL
Aika W RulapaughItalyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair H BriddickArgentinaOnyama Limba QUALIFIED
Juan O WaycottFranceBernardo Dominic NEGOTIATION
David E CampainGermanyAsiya Javayant NEGOTIATION
Deepesh Y IturbideGermanyBernardo Dominic UNQUALIFIED
Juan B IturbideArgentinaOnyama Limba RENEWAL
Jones A MaletArgentinaIoni Bowcher NEGOTIATION
Antonio N GauchoGermanyAsiya Javayant PROPOSAL
Faith D VenereRussiaElwin Sharvill QUALIFIED
Morrow A KuskoGermanyElwin Sharvill NEW
Ashley M FollerUnited KingdomElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo Z AlbaresAustralia2026-06-27Dorl, James J Esq QUALIFIED78Ivan Magalhaes
1001Ashley U SchemmerCanada2026-07-08Chapman, Ross E Esq NEW3Ioni Bowcher
1002James O IturbideFrance2026-06-28Printing Dimensions QUALIFIED51Asiya Javayant
1003Kaitlin S CampainArgentina2026-06-22Printing Dimensions NEW3Ioni Bowcher
1004Mujtaba V WhobreyItaly2026-06-22Feiner Bros NEGOTIATION33Stephen Shaw
1005Darci W ShinkoAustralia2026-07-03Morlong Associates PROPOSAL20Ivan Magalhaes
1006Ivar D RoysterFrance2026-06-25Morlong Associates NEW42Stephen Shaw
1007Ivar Z MarrierFrance2026-07-17Dorl, James J Esq NEW40Elwin Sharvill
1008Alejandro F PerinIndia2026-07-09Truhlar And Truhlar Attys NEGOTIATION84Ivan Magalhaes
1009Adams C KuskoGermany2026-07-07Buckley Miller Wright NEGOTIATION53Anna Fali
1010Jennifer W TollnerAustralia2026-07-02Dorl, James J Esq NEW73Ivan Magalhaes
1011Ricardo B BologniaCanada2026-07-17Chapman, Ross E Esq NEGOTIATION97Stephen Shaw
1012Antonio I BologniaJapan2026-07-04Commercial Press RENEWAL65Anna Fali
1013Faith F IturbideCanada2026-07-06Truhlar And Truhlar Attys NEW83Asiya Javayant
1014Munro T SlusarskiIndia2026-06-27Buckley Miller Wright QUALIFIED45Amy Elsner
1015Kaitlin H VocelkaGermany2026-06-21Chanay, Jeffrey A Esq PROPOSAL31Ioni Bowcher
1016Clifford V PerinItaly2026-07-07King, Christopher A Esq PROPOSAL79Onyama Limba
1017Salvatore C NickaJapan2026-07-11Chapman, Ross E Esq PROPOSAL60Asiya Javayant
1018Wickens U DoeSpain2026-07-10Buckley Miller Wright NEGOTIATION11Stephen Shaw
1019Jennifer L AmigonJapan2026-07-08Morlong Associates PROPOSAL83Bernardo Dominic
1020Antonio S WaycottArgentina2026-07-16Feiner Bros UNQUALIFIED48Bernardo Dominic
1021Cody W NickaJapan2026-06-28Chemel, James L Cpa NEW57Bernardo Dominic
1022Jennifer Y AmigonArgentina2026-07-07Buckley Miller Wright RENEWAL76Onyama Limba
1023Ashley A OldroydArgentina2026-07-01King, Christopher A Esq PROPOSAL61Ioni Bowcher
1024Nicolas S MaletSpain2026-06-26Truhlar And Truhlar Attys QUALIFIED10Stephen Shaw
1025Sinclair S ShinkoItaly2026-06-27King, Christopher A Esq UNQUALIFIED39Bernardo Dominic
1026Maisha E GauchoSpain2026-07-04Chanay, Jeffrey A Esq NEGOTIATION74Bernardo Dominic
1027Johnson I ButtArgentina2026-07-15Truhlar And Truhlar Attys PROPOSAL66Elwin Sharvill
1028Kaitlin Q StockhamCanada2026-07-11Benton, John B Jr UNQUALIFIED75Ivan Magalhaes
1029Julie N KolmetzSpain2026-07-16King, Christopher A Esq NEW35Asiya Javayant
1030David O VenereIndia2026-07-10Chapman, Ross E Esq RENEWAL47Elwin Sharvill
1031Costa C FollerIndia2026-07-10Buckley Miller Wright UNQUALIFIED24Asiya Javayant
1032Clifford M ChuiSpain2026-06-30King, Christopher A Esq PROPOSAL88Xuxue Feng
1033Ricardo K DarakjyArgentina2026-06-26Buckley Miller Wright RENEWAL54Ioni Bowcher
1034Sinclair U GarufiItaly2026-06-24Feltz Printing Service NEGOTIATION19Onyama Limba
1035Salvatore F PerinUnited Kingdom2026-06-30Commercial Press NEGOTIATION64Asiya Javayant
1036Cody P MarrierBrazil2026-07-02Rousseaux, Michael Esq NEGOTIATION98Ioni Bowcher
1037Darci T SlusarskiRussia2026-06-30Rousseaux, Michael Esq NEW13Xuxue Feng
1038Greenwood X RutaArgentina2026-07-19Commercial Press PROPOSAL58Xuxue Feng
1039Nicolas K WhobreyGermany2026-07-19Chanay, Jeffrey A Esq RENEWAL19Ivan Magalhaes
1040James U ShinkoCanada2026-06-28Dorl, James J Esq UNQUALIFIED82Asiya Javayant
1041Ashley N SaylorsJapan2026-06-23Feiner Bros NEGOTIATION28Bernardo Dominic
1042Ashley S VenereItaly2026-06-20Rousseaux, Michael Esq PROPOSAL5Onyama Limba
1043Alejandro H WieserBrazil2026-06-30Benton, John B Jr QUALIFIED17Onyama Limba
1044Ashley T DoeJapan2026-07-09Truhlar And Truhlar Attys NEW1Anna Fali
1045Leja B ButtSpain2026-06-26Rousseaux, Michael Esq PROPOSAL51Amy Elsner
1046Francesco O DoeCanada2026-06-25King, Christopher A Esq UNQUALIFIED24Elwin Sharvill
1047Faith U KolmetzGermany2026-07-02Rousseaux, Michael Esq NEW97Onyama Limba
1048Clifford A BriddickUnited Kingdom2026-06-20Morlong Associates PROPOSAL88Anna Fali
1049Costa O MorascaGermany2026-07-17Feiner Bros UNQUALIFIED75Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aditya P WhobreyCanadaAmy Elsner UNQUALIFIED
Cody W DarakjySpainElwin Sharvill RENEWAL
Munro W VenereItalyIvan Magalhaes PROPOSAL
Johnson N PoquetteArgentinaAsiya Javayant RENEWAL
Clifford U MorascaIndiaElwin Sharvill RENEWAL
Greenwood V CaudyArgentinaXuxue Feng QUALIFIED
Chavez U GillianBrazilAmy Elsner PROPOSAL
Aruna B CaldareraRussiaIvan Magalhaes RENEWAL
Emily B DoeUnited KingdomIoni Bowcher UNQUALIFIED
Misaki O ShinkoFranceAnna Fali QUALIFIED
Sinclair M RulapaughArgentinaAmy Elsner QUALIFIED
Sinclair O RoysterIndiaBernardo Dominic NEW
Ricardo C SchemmerSpainBernardo Dominic NEGOTIATION
Aika H OldroydArgentinaStephen Shaw NEW
Mujtaba H PaprockiCanadaAnna Fali RENEWAL
Greenwood K MacleadBrazilBernardo Dominic PROPOSAL
Smith P SaylorsItalyAnna Fali QUALIFIED
Misaki P CaudyUnited KingdomXuxue Feng QUALIFIED
Johnson B FollerJapanXuxue Feng RENEWAL
Francesco S MaletFranceIvan Magalhaes QUALIFIED
Tony Q InouyeCanadaIoni Bowcher NEGOTIATION
Silvio N MaletFranceAmy Elsner UNQUALIFIED
Johnson C RutaCanadaXuxue Feng PROPOSAL
Nicolas W GarufiJapanAsiya Javayant NEGOTIATION
Leja F KuskoArgentinaStephen Shaw NEGOTIATION
Chavez P PoquetteArgentinaAnna Fali QUALIFIED
Arvin Q VenereSpainOnyama Limba UNQUALIFIED
Mayumi L FlosiFranceXuxue Feng QUALIFIED
Octavia O BologniaAustraliaIvan Magalhaes RENEWAL
Maria U SchemmerCanadaIvan Magalhaes QUALIFIED
Greenwood S RutaJapanOnyama Limba UNQUALIFIED
Jones L FlosiSpainOnyama Limba NEW
Deepesh P IturbideUnited KingdomAnna Fali NEGOTIATION
Ivar S MacleadJapanIvan Magalhaes NEW
Rodrigues K DarakjyArgentinaAsiya Javayant QUALIFIED
James Y StensethAustraliaElwin Sharvill NEW
Cody S DoeUnited KingdomXuxue Feng RENEWAL
Murillo U IturbideAustraliaOnyama Limba UNQUALIFIED
Greenwood N BologniaGermanyAnna Fali QUALIFIED
Adams D DarakjyUnited KingdomIoni Bowcher RENEWAL
Deepesh O ButtRussiaOnyama Limba NEGOTIATION
Darci M KolmetzBrazilOnyama Limba QUALIFIED
Smith Y VocelkaFranceAnna Fali QUALIFIED
Maria F PaprockiGermanyIvan Magalhaes QUALIFIED
Cody Y DilliardSpainXuxue Feng RENEWAL
Nicolas N ShinkoArgentinaXuxue Feng NEGOTIATION
Cody K MaletGermanyAnna Fali PROPOSAL
Johnson O MaletIndiaOnyama Limba PROPOSAL
Francesco Q RulapaughIndiaAmy Elsner PROPOSAL
Munro B WaycottFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Alejandro S Stenseth
Jeanfrancois B Dilliard
Morrow I Foller
Faith R Ostrosky
Aruna D Stockham
Greenwood H Caudy
Claire Y Vocelka
Wickens W Malet
Greenwood C Campain
Costa J Schemmer
Murillo A Maclead
Wickens O Perin
Leon J Foller
Sinclair P Whobrey
Isabel C Wieser
Adams Y Tollner
Juan H Amigon
Leja K Malet
Maisha H Gillian
Munro R Bowley
Cody K Nestle
Jeanfrancois U Perin
Wickens O Kolmetz
Antonio L Tollner
Smith N Nicka
Emily C Albares
Darci K Rim
Jeanfrancois W Nicka
Misaki H Glick
Chavez Z Briddick
Aika Z Inouye
Chavez V Iturbide
Ricardo N Wieser
Antonio P Sergi
Izzy S Ruta
Morrow Y Briddick
Deepesh J Gillian
Aditya D Rulapaugh
Octavia F Waycott
Deepesh W Foller
James E Stockham
David M Inouye
Jefferson L Wieser
Antonio U Wieser
Jeanfrancois K Dilliard
Faith B Venere
Mayumi J Slusarski
Wickens I Stenseth
Munro B Wieser
Greenwood X Kolmetz
IdCountryDate
1000United Kingdom2026-07-14
1001Brazil2026-06-26
1002Canada2026-06-25
1003United Kingdom2026-07-05
1004Russia2026-06-29
1005Australia2026-06-25
1006United Kingdom2026-07-07
1007Italy2026-07-10
1008Australia2026-06-22
1009France2026-06-29
1010Canada2026-07-16
1011Argentina2026-07-16
1012United Kingdom2026-07-10
1013France2026-06-29
1014Spain2026-06-28
1015Germany2026-07-09
1016India2026-07-17
1017India2026-07-06
1018Argentina2026-07-05
1019Canada2026-07-14
1020Russia2026-07-11
1021Spain2026-07-13
1022Canada2026-06-20
1023France2026-06-28
1024Australia2026-07-07
1025Germany2026-07-17
1026Canada2026-07-01
1027United Kingdom2026-07-19
1028Russia2026-07-06
1029Canada2026-07-15
1030United Kingdom2026-07-09
1031India2026-07-14
1032Spain2026-07-16
1033Argentina2026-07-15
1034India2026-07-03
1035Japan2026-06-27
1036France2026-06-20
1037Australia2026-07-17
1038India2026-06-28
1039Canada2026-07-15
1040Germany2026-06-25
1041India2026-06-30
1042India2026-06-21
1043Argentina2026-07-17
1044Italy2026-07-18
1045India2026-06-25
1046Argentina2026-06-29
1047Italy2026-07-12
1048United Kingdom2026-07-10
1049India2026-07-13

On-Demand Data

NameIdCountryDate
Aditya W Nestle1000Spain2026-07-06
Maisha M Caldarera1001Russia2026-06-20
Wickens C Butt1002Australia2026-07-11
Silvio P Perin1003Australia2026-07-08
Deepesh A Oldroyd1004Italy2026-07-13
Adams I Bolognia1005Italy2026-07-14
Leon E Saylors1006Spain2026-07-05
Kaitlin F Amigon1007Canada2026-07-17
Ashley X Vocelka1008Brazil2026-07-17
Ashley G Gaucho1009Italy2026-07-18
Salvatore Y Ruta1010United Kingdom2026-07-07
Jennifer Y Marrier1011Brazil2026-07-08
Silvio Z Shinko1012Italy2026-07-02
Salvatore V Campain1013Australia2026-07-05
Cody S Sergi1014Russia2026-07-18
Silvio S Doe1015United Kingdom2026-07-01
Izzy I Iturbide1016Germany2026-06-25
Cody K Briddick1017United Kingdom2026-07-15
Aditya X Amigon1018France2026-07-14
Emily H Ostrosky1019Germany2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson Z MaletBrazilXuxue Feng NEGOTIATION
Leon F OstroskyCanadaAmy Elsner QUALIFIED
Kaitlin M MaletJapanIoni Bowcher PROPOSAL
Cody H CaudyRussiaAmy Elsner NEGOTIATION
Faith I NestleJapanAmy Elsner NEGOTIATION
Kadeem N KuskoUnited KingdomXuxue Feng QUALIFIED
Maisha E InouyeItalyAsiya Javayant PROPOSAL
Sinclair G KuskoRussiaXuxue Feng NEGOTIATION
Smith H NestleGermanyElwin Sharvill NEW
Alejandro Q OldroydFranceAnna Fali UNQUALIFIED
Costa A PerinIndiaIoni Bowcher RENEWAL
Silvio D DilliardBrazilStephen Shaw PROPOSAL
Octavia Y SergiItalyIoni Bowcher UNQUALIFIED
Antonio U FigeroaBrazilIvan Magalhaes NEW
Wickens K StensethBrazilAmy Elsner UNQUALIFIED
Ivar D WieserJapanOnyama Limba RENEWAL
Wickens F RoysterArgentinaAmy Elsner UNQUALIFIED
Smith F IturbideIndiaElwin Sharvill NEGOTIATION
Izzy I PerinSpainAnna Fali NEW
David V ChuiIndiaAmy Elsner NEW
Aika F MarrierUnited KingdomBernardo Dominic QUALIFIED
Adams B MorascaCanadaAsiya Javayant RENEWAL
Stacey B SlusarskiRussiaAsiya Javayant NEW
Maria R AlbaresCanadaStephen Shaw NEGOTIATION
Claire K MarrierJapanAmy Elsner NEGOTIATION
Murillo E SchemmerFranceXuxue Feng QUALIFIED
Salvatore L AmigonArgentinaAmy Elsner NEGOTIATION
Faith Y DilliardJapanXuxue Feng NEGOTIATION
Clifford W BriddickAustraliaAnna Fali UNQUALIFIED
Ivar N RutaRussiaStephen Shaw QUALIFIED
Costa F NickaJapanAsiya Javayant UNQUALIFIED
Murillo Y WaycottRussiaBernardo Dominic RENEWAL
Emily X SaylorsBrazilAnna Fali QUALIFIED
Emily D WaycottBrazilIoni Bowcher PROPOSAL
Mayumi G RulapaughCanadaAsiya Javayant RENEWAL
Tony J FlosiArgentinaOnyama Limba QUALIFIED
Tony K MarrierFranceAnna Fali UNQUALIFIED
Jones Q FigeroaArgentinaXuxue Feng QUALIFIED
Izzy G SchemmerCanadaIoni Bowcher NEW
Greenwood C ButtCanadaAmy Elsner RENEWAL

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