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
James Y PerinFranceIoni Bowcher NEW
Leja U WieserRussiaAnna Fali PROPOSAL
Faith W SaylorsBrazilBernardo Dominic NEGOTIATION
Claire P TollnerCanadaXuxue Feng PROPOSAL
Tony I ShinkoCanadaElwin Sharvill PROPOSAL
Leja J NickaAustraliaAsiya Javayant QUALIFIED
Emily B ShinkoItalyAmy Elsner NEW
Ashley D DilliardUnited KingdomElwin Sharvill NEW
Jefferson T DarakjyCanadaIoni Bowcher RENEWAL
Arvin B StockhamRussiaIoni Bowcher NEGOTIATION
Julie D SaylorsCanadaXuxue Feng NEW
Juan L RulapaughAustraliaOnyama Limba NEW
Smith T WaycottFranceBernardo Dominic RENEWAL
Munro R StensethUnited KingdomOnyama Limba NEW
Mujtaba F WieserSpainBernardo Dominic UNQUALIFIED
Cody W SchemmerArgentinaAnna Fali QUALIFIED
Darci A DoeBrazilElwin Sharvill NEW
Emily D SlusarskiIndiaOnyama Limba RENEWAL
Claire G BologniaIndiaOnyama Limba QUALIFIED
Silvio A FollerSpainAsiya Javayant NEGOTIATION
Darci F VocelkaAustraliaStephen Shaw NEGOTIATION
Greenwood H DoeBrazilOnyama Limba PROPOSAL
Darci G BologniaItalyAmy Elsner QUALIFIED
Antonio K WaycottGermanyIoni Bowcher NEW
Smith T AmigonSpainIvan Magalhaes UNQUALIFIED
Smith W AlbaresArgentinaXuxue Feng NEGOTIATION
Faith B PoquetteBrazilStephen Shaw NEGOTIATION
Jones Q VocelkaGermanyXuxue Feng PROPOSAL
Sinclair Z OldroydSpainXuxue Feng PROPOSAL
Murillo J PerinArgentinaAnna Fali RENEWAL
James N WhobreyAustraliaIvan Magalhaes NEW
Adams O WhobreyRussiaIoni Bowcher RENEWAL
Rodrigues E RutaGermanyIoni Bowcher QUALIFIED
Kaitlin C MaletJapanBernardo Dominic UNQUALIFIED
Mayumi J KolmetzRussiaStephen Shaw NEW
Izzy H PerinSpainBernardo Dominic NEW
Francesco M WieserRussiaStephen Shaw NEGOTIATION
Costa W WieserCanadaStephen Shaw UNQUALIFIED
Faith Z ChuiUnited KingdomStephen Shaw PROPOSAL
Faith R StensethBrazilBernardo Dominic PROPOSAL
James K MaletItalyIvan Magalhaes NEGOTIATION
Aruna M GillianFranceIoni Bowcher NEGOTIATION
Jefferson V MarrierSpainIoni Bowcher QUALIFIED
Jennifer G MacleadBrazilXuxue Feng NEGOTIATION
Leja C RimRussiaAmy Elsner UNQUALIFIED
Munro S RutaAustraliaAsiya Javayant RENEWAL
Claire M FollerUnited KingdomStephen Shaw NEGOTIATION
Arvin W PaprockiUnited KingdomAmy Elsner PROPOSAL
Misaki A DoeGermanyStephen Shaw NEGOTIATION
Rodrigues A MorascaBrazilOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi J FigeroaBrazilOnyama Limba QUALIFIED
Silvio B NestleCanadaAnna Fali NEGOTIATION
Isabel A GauchoGermanyXuxue Feng NEGOTIATION
Maisha G PerinCanadaXuxue Feng UNQUALIFIED
Tony X MacleadBrazilIoni Bowcher UNQUALIFIED
Nicolas Q SaylorsFranceStephen Shaw NEGOTIATION
Maisha H KolmetzItalyAnna Fali UNQUALIFIED
Aika O ChuiUnited KingdomAnna Fali NEGOTIATION
Stacey M SlusarskiRussiaIvan Magalhaes QUALIFIED
Silvio E SlusarskiFranceStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair J VenereArgentina2026-07-17King, Christopher A Esq NEW67Xuxue Feng
1001Emily Z MorascaJapan2026-08-06Feltz Printing Service QUALIFIED77Anna Fali
1002Morrow Z ShinkoCanada2026-08-01Feltz Printing Service PROPOSAL87Stephen Shaw
1003Sinclair P RimUnited Kingdom2026-07-19Feltz Printing Service UNQUALIFIED42Bernardo Dominic
1004Nicolas X ShinkoAustralia2026-08-09Benton, John B Jr PROPOSAL87Stephen Shaw
1005Aika D StensethRussia2026-07-18Chemel, James L Cpa PROPOSAL18Ioni Bowcher
1006Deepesh S BologniaRussia2026-08-09Benton, John B Jr UNQUALIFIED46Elwin Sharvill
1007Jefferson O DarakjySpain2026-07-23Feltz Printing Service UNQUALIFIED36Ioni Bowcher
1008Stacey Y FlosiRussia2026-07-21Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1009David E MorascaAustralia2026-07-21Rangoni Of Florence NEW82Ioni Bowcher
1010Arvin S AmigonAustralia2026-08-11Chapman, Ross E Esq UNQUALIFIED11Elwin Sharvill
1011Maria N MarrierAustralia2026-08-02Dorl, James J Esq QUALIFIED37Ivan Magalhaes
1012Misaki F GarufiRussia2026-07-20Truhlar And Truhlar Attys PROPOSAL87Xuxue Feng
1013Antonio O CampainJapan2026-07-26Printing Dimensions QUALIFIED39Anna Fali
1014Juan E BologniaUnited Kingdom2026-08-10Chapman, Ross E Esq PROPOSAL27Elwin Sharvill
1015Ashley A MorascaArgentina2026-07-31Chanay, Jeffrey A Esq PROPOSAL8Anna Fali
1016Jeanfrancois D PerinIndia2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED51Ivan Magalhaes
1017Munro W BriddickBrazil2026-07-19Buckley Miller Wright NEGOTIATION78Onyama Limba
1018Deepesh X RimIndia2026-08-07Morlong Associates NEGOTIATION55Elwin Sharvill
1019Kadeem Y OstroskyGermany2026-07-22Rangoni Of Florence QUALIFIED57Bernardo Dominic
1020Johnson O WieserArgentina2026-08-06King, Christopher A Esq QUALIFIED31Stephen Shaw
1021Misaki R VenereCanada2026-08-03Benton, John B Jr QUALIFIED22Stephen Shaw
1022Rodrigues S BriddickSpain2026-07-24Feiner Bros QUALIFIED41Onyama Limba
1023Salvatore N KuskoSpain2026-08-05Chanay, Jeffrey A Esq NEGOTIATION39Ivan Magalhaes
1024Chavez T BowleyGermany2026-07-24Chapman, Ross E Esq UNQUALIFIED18Stephen Shaw
1025Jeanfrancois J ChuiArgentina2026-07-31Rangoni Of Florence PROPOSAL11Onyama Limba
1026Silvio Y CaldareraSpain2026-08-10Buckley Miller Wright NEW13Onyama Limba
1027Francesco N RimCanada2026-08-13Benton, John B Jr QUALIFIED14Elwin Sharvill
1028Kadeem Q RoysterArgentina2026-08-12Rangoni Of Florence QUALIFIED41Elwin Sharvill
1029Claire R BriddickFrance2026-08-10Printing Dimensions QUALIFIED62Bernardo Dominic
1030Kadeem F DilliardGermany2026-07-30Rangoni Of Florence RENEWAL78Amy Elsner
1031Munro W OstroskyUnited Kingdom2026-07-27Rousseaux, Michael Esq RENEWAL89Amy Elsner
1032Greenwood L WhobreyRussia2026-07-30Buckley Miller Wright NEGOTIATION53Elwin Sharvill
1033Salvatore O BowleyArgentina2026-07-15Dorl, James J Esq NEW21Xuxue Feng
1034Isabel Y MaletItaly2026-07-16Truhlar And Truhlar Attys RENEWAL54Ioni Bowcher
1035Chavez A DoeSpain2026-07-27Rangoni Of Florence QUALIFIED44Elwin Sharvill
1036Clifford U WieserGermany2026-07-21Rangoni Of Florence PROPOSAL44Amy Elsner
1037Darci P DoeArgentina2026-08-03Chemel, James L Cpa UNQUALIFIED11Amy Elsner
1038Aika W MaletAustralia2026-07-22Buckley Miller Wright PROPOSAL97Anna Fali
1039Salvatore P OldroydAustralia2026-07-28Chapman, Ross E Esq RENEWAL33Amy Elsner
1040Alejandro A VocelkaGermany2026-08-09Rangoni Of Florence NEW75Anna Fali
1041Ashley M OldroydArgentina2026-07-31Chapman, Ross E Esq PROPOSAL12Onyama Limba
1042Julie A MarrierRussia2026-08-13Rangoni Of Florence PROPOSAL40Ivan Magalhaes
1043Misaki N OldroydAustralia2026-07-31Rangoni Of Florence NEW90Amy Elsner
1044Maria A RoysterSpain2026-08-02King, Christopher A Esq RENEWAL75Ivan Magalhaes
1045Maisha Q ChuiRussia2026-08-06Printing Dimensions PROPOSAL5Ioni Bowcher
1046Jones U IturbideAustralia2026-07-28Buckley Miller Wright PROPOSAL39Bernardo Dominic
1047Ashley Q CampainItaly2026-07-29King, Christopher A Esq NEW63Anna Fali
1048Jeanfrancois G DoeFrance2026-08-07King, Christopher A Esq NEGOTIATION33Ioni Bowcher
1049Izzy G WaycottSpain2026-07-27Rousseaux, Michael Esq QUALIFIED97Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jones H PoquetteArgentinaAmy Elsner UNQUALIFIED
Octavia C MaletFranceAsiya Javayant NEGOTIATION
Clifford V FollerGermanyIoni Bowcher NEGOTIATION
Maisha L NickaSpainAnna Fali NEGOTIATION
Jones B InouyeAustraliaStephen Shaw NEW
Greenwood T WieserAustraliaElwin Sharvill PROPOSAL
Murillo Q IturbideAustraliaElwin Sharvill RENEWAL
Stacey K RutaArgentinaAnna Fali RENEWAL
Jennifer X RimUnited KingdomElwin Sharvill QUALIFIED
Rodrigues W RutaCanadaXuxue Feng PROPOSAL
Izzy Q MorascaCanadaIvan Magalhaes RENEWAL
Misaki Y InouyeIndiaAmy Elsner NEW
Mujtaba N RimItalyIvan Magalhaes PROPOSAL
Julie D AlbaresSpainAnna Fali QUALIFIED
James A DarakjySpainAsiya Javayant UNQUALIFIED
Johnson W MacleadGermanyStephen Shaw NEGOTIATION
Kadeem Y FerenczGermanyAsiya Javayant UNQUALIFIED
Jefferson T CampainJapanIoni Bowcher PROPOSAL
Leja M VocelkaArgentinaAmy Elsner PROPOSAL
Arvin B OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Octavia Q OldroydUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois Q GlickAustraliaXuxue Feng NEW
Jones K NickaBrazilAsiya Javayant RENEWAL
Kaitlin D FigeroaUnited KingdomAmy Elsner RENEWAL
Leja X GillianItalyStephen Shaw PROPOSAL
Chavez D RimItalyAmy Elsner QUALIFIED
Wickens C DarakjyJapanAmy Elsner NEGOTIATION
Jones E MacleadBrazilStephen Shaw UNQUALIFIED
Costa Y WaycottGermanyXuxue Feng UNQUALIFIED
Aika R DilliardBrazilBernardo Dominic RENEWAL
Maria M OstroskyGermanyElwin Sharvill QUALIFIED
Kadeem T BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Nicolas S KolmetzUnited KingdomAnna Fali RENEWAL
Nicolas Y ShinkoGermanyElwin Sharvill PROPOSAL
Jeanfrancois F FigeroaJapanBernardo Dominic UNQUALIFIED
Francesco G BowleyArgentinaIvan Magalhaes QUALIFIED
James I BologniaAustraliaOnyama Limba QUALIFIED
Aruna Y CaudyFranceAnna Fali RENEWAL
Silvio N KolmetzArgentinaIvan Magalhaes QUALIFIED
Aika E VocelkaCanadaAsiya Javayant RENEWAL
Silvio B BologniaGermanyElwin Sharvill UNQUALIFIED
Costa K GarufiItalyIvan Magalhaes UNQUALIFIED
Misaki U MaletItalyXuxue Feng RENEWAL
Silvio K TollnerItalyStephen Shaw NEGOTIATION
Jeanfrancois J DoeRussiaXuxue Feng QUALIFIED
Smith K RoysterBrazilAsiya Javayant PROPOSAL
Chavez B GlickIndiaIoni Bowcher UNQUALIFIED
Kadeem I OldroydRussiaIvan Magalhaes UNQUALIFIED
Kadeem F WieserArgentinaOnyama Limba PROPOSAL
Ashley W DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Frozen Columns
Name
Tony Q Ruta
Ricardo N Malet
Kaitlin N Shinko
Sinclair G Ostrosky
Maisha G Gaucho
Jeanfrancois Q Chui
Munro D Caudy
Leon K Wieser
Sinclair P Schemmer
Jennifer O Malet
Ricardo P Nestle
Greenwood A Tollner
James F Caudy
Octavia T Caudy
Deepesh Y Ruta
Silvio H Shinko
Ivar V Inouye
Johnson Z Malet
Claire M Chui
Clifford V Nestle
Munro P Ferencz
Aruna B Maclead
Kaitlin F Briddick
Costa W Maclead
Sinclair Z Schemmer
James O Saylors
Isabel M Stenseth
Juan J Malet
James R Caudy
Aika N Stenseth
Leja I Bolognia
Jennifer W Sergi
Arvin L Gaucho
Ashley R Nicka
Kadeem A Stenseth
Munro B Albares
Julie X Slusarski
Munro Q Garufi
Misaki K Sergi
Alejandro U Gaucho
Aruna M Oldroyd
Mujtaba Y Stockham
Tony R Stockham
Aditya H Poquette
Tony L Bowley
Jones V Oldroyd
Aruna L Slusarski
Maisha C Gillian
Smith F Kolmetz
Jennifer T Vocelka
IdCountryDate
1000France2026-08-04
1001India2026-07-16
1002Russia2026-08-02
1003United Kingdom2026-07-21
1004Italy2026-08-01
1005Japan2026-08-10
1006Germany2026-07-30
1007France2026-08-06
1008Japan2026-07-29
1009France2026-07-18
1010United Kingdom2026-07-16
1011Italy2026-08-03
1012Brazil2026-07-30
1013France2026-07-18
1014Italy2026-07-23
1015Brazil2026-08-09
1016Germany2026-08-03
1017France2026-08-08
1018Spain2026-07-18
1019Brazil2026-08-02
1020Spain2026-08-03
1021Spain2026-07-16
1022Japan2026-08-06
1023Brazil2026-08-06
1024Spain2026-07-30
1025Australia2026-07-25
1026India2026-07-21
1027Italy2026-07-17
1028Australia2026-08-13
1029India2026-08-06
1030Canada2026-08-10
1031Japan2026-08-08
1032France2026-07-29
1033Germany2026-07-21
1034Australia2026-08-09
1035Spain2026-08-10
1036India2026-07-29
1037Italy2026-08-01
1038Russia2026-07-15
1039Canada2026-08-13
1040Germany2026-08-07
1041Russia2026-07-17
1042Italy2026-07-21
1043Brazil2026-07-15
1044Canada2026-08-10
1045Australia2026-08-03
1046France2026-08-13
1047United Kingdom2026-07-27
1048France2026-07-26
1049Canada2026-07-24

On-Demand Data

NameIdCountryDate
Kadeem R Bowley1000United Kingdom2026-07-23
Tony Q Wieser1001Japan2026-08-08
Aditya O Bowley1002Russia2026-07-15
Juan D Nicka1003Canada2026-08-03
Mayumi Y Chui1004France2026-07-16
Aika R Perin1005France2026-07-29
Salvatore A Shinko1006Spain2026-07-24
Leon H Gaucho1007France2026-07-27
Maria N Wieser1008Japan2026-07-21
Nicolas Z Venere1009Russia2026-07-24
Costa H Schemmer1010Japan2026-08-05
Juan X Briddick1011Argentina2026-08-13
Chavez U Saylors1012United Kingdom2026-08-04
Chavez H Doe1013Italy2026-07-23
Ashley E Foller1014Spain2026-08-06
Leja H Chui1015Russia2026-07-25
Stacey U Malet1016France2026-07-15
David R Doe1017India2026-07-19
Munro D Morasca1018Argentina2026-08-13
Munro F Slusarski1019Australia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna F FlosiGermanyOnyama Limba PROPOSAL
Antonio E WaycottBrazilAmy Elsner PROPOSAL
David Q WaycottFranceAsiya Javayant RENEWAL
Chavez U MaletArgentinaAmy Elsner NEW
Nicolas A FlosiAustraliaAmy Elsner QUALIFIED
Jeanfrancois S GarufiJapanXuxue Feng QUALIFIED
Sinclair I IturbideJapanElwin Sharvill NEW
Antonio A MaletBrazilAnna Fali QUALIFIED
Stacey H TollnerBrazilOnyama Limba NEGOTIATION
Misaki T FlosiCanadaElwin Sharvill NEW
Johnson U ShinkoItalyIvan Magalhaes NEGOTIATION
Kadeem D GlickIndiaElwin Sharvill NEW
Mayumi T WaycottItalyAmy Elsner RENEWAL
Chavez S GillianFranceOnyama Limba QUALIFIED
Adams E GlickAustraliaIoni Bowcher RENEWAL
Morrow D ChuiGermanyIvan Magalhaes NEW
Darci E TollnerBrazilBernardo Dominic RENEWAL
Jennifer V MacleadJapanXuxue Feng QUALIFIED
Costa N FerenczBrazilStephen Shaw QUALIFIED
Silvio Q MaletGermanyBernardo Dominic UNQUALIFIED
Izzy O KolmetzIndiaStephen Shaw PROPOSAL
Johnson Y AmigonBrazilStephen Shaw PROPOSAL
Chavez L InouyeJapanIvan Magalhaes PROPOSAL
David T AlbaresArgentinaIvan Magalhaes PROPOSAL
Adams K BowleyIndiaAnna Fali RENEWAL
Maria U GillianRussiaIvan Magalhaes QUALIFIED
Greenwood G OstroskyRussiaAmy Elsner RENEWAL
Leja J FlosiUnited KingdomIvan Magalhaes RENEWAL
Ricardo D ShinkoJapanStephen Shaw NEW
Antonio F InouyeItalyIvan Magalhaes UNQUALIFIED
Misaki I AmigonCanadaAnna Fali PROPOSAL
Ricardo K DarakjyCanadaBernardo Dominic QUALIFIED
Darci R TollnerJapanXuxue Feng UNQUALIFIED
David P MaletBrazilOnyama Limba NEW
Nicolas T PaprockiSpainXuxue Feng NEW
Deepesh D NestleRussiaOnyama Limba RENEWAL
Leja N MaletItalyIvan Magalhaes RENEWAL
Leon V MaletCanadaIvan Magalhaes PROPOSAL
Adams X VenereIndiaIvan Magalhaes NEGOTIATION
Emily E TollnerJapanIoni Bowcher 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>