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
Aditya K MorascaBrazilAsiya Javayant PROPOSAL
Sinclair W OldroydGermanyAnna Fali NEW
Adams W FlosiGermanyOnyama Limba PROPOSAL
Ivar K RoysterAustraliaAnna Fali NEW
Juan U PoquetteSpainAmy Elsner NEGOTIATION
Ashley K ChuiCanadaIvan Magalhaes QUALIFIED
Chavez U CaudyItalyAmy Elsner NEGOTIATION
Silvio Y MaletJapanAmy Elsner UNQUALIFIED
Jennifer S CampainItalyIoni Bowcher NEGOTIATION
Murillo T BriddickRussiaIvan Magalhaes NEGOTIATION
Emily O SergiIndiaIvan Magalhaes PROPOSAL
Izzy Q RulapaughItalyOnyama Limba NEW
Arvin K ChuiBrazilAmy Elsner NEGOTIATION
Wickens C NestleUnited KingdomIvan Magalhaes RENEWAL
Rodrigues M RulapaughBrazilAnna Fali UNQUALIFIED
Faith N IturbideItalyAsiya Javayant NEW
Octavia U MaletArgentinaStephen Shaw UNQUALIFIED
Misaki R IturbideItalyXuxue Feng QUALIFIED
Ivar Z SergiJapanAmy Elsner PROPOSAL
Silvio A WieserJapanElwin Sharvill NEGOTIATION
Juan K RimJapanXuxue Feng RENEWAL
Ashley T CampainBrazilOnyama Limba PROPOSAL
Leja B OldroydSpainStephen Shaw UNQUALIFIED
Isabel Z DilliardGermanyAnna Fali NEGOTIATION
Ivar I BowleyArgentinaIvan Magalhaes PROPOSAL
Wickens X AlbaresSpainBernardo Dominic QUALIFIED
Leja Z VenereJapanIoni Bowcher NEW
Chavez I KolmetzJapanXuxue Feng NEGOTIATION
Morrow Z StensethBrazilOnyama Limba UNQUALIFIED
David G SaylorsUnited KingdomAmy Elsner NEGOTIATION
Tony Y TollnerCanadaStephen Shaw UNQUALIFIED
Darci B TollnerArgentinaStephen Shaw QUALIFIED
Isabel P MorascaIndiaBernardo Dominic PROPOSAL
Faith A NickaRussiaAmy Elsner QUALIFIED
Johnson P OldroydArgentinaBernardo Dominic NEGOTIATION
Greenwood S PoquetteGermanyStephen Shaw PROPOSAL
Alejandro E SergiAustraliaOnyama Limba PROPOSAL
Johnson Q PerinArgentinaXuxue Feng RENEWAL
Alejandro J PoquetteFranceIvan Magalhaes PROPOSAL
Antonio D PaprockiSpainAsiya Javayant UNQUALIFIED
Izzy V RoysterIndiaOnyama Limba UNQUALIFIED
David Z GillianArgentinaBernardo Dominic NEGOTIATION
Emily O VenereSpainIvan Magalhaes NEW
Stacey P StockhamBrazilOnyama Limba NEGOTIATION
Cody B StensethFranceBernardo Dominic RENEWAL
Clifford S WieserCanadaStephen Shaw NEW
Aditya U ShinkoFranceIvan Magalhaes PROPOSAL
Munro D RimRussiaAmy Elsner QUALIFIED
Salvatore X SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Claire G FerenczIndiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson X MaletIndiaOnyama Limba NEGOTIATION
Ivar T FerenczRussiaXuxue Feng QUALIFIED
James P OstroskyBrazilIvan Magalhaes PROPOSAL
Aika B MorascaRussiaXuxue Feng NEW
Francesco N OldroydAustraliaElwin Sharvill NEGOTIATION
Smith A GlickUnited KingdomAsiya Javayant QUALIFIED
Juan E RutaRussiaIoni Bowcher PROPOSAL
Munro Z MorascaBrazilAnna Fali NEGOTIATION
Jones K RutaJapanAnna Fali UNQUALIFIED
Alejandro N WieserIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba K SlusarskiJapan2026-08-28Truhlar And Truhlar Attys QUALIFIED52Ivan Magalhaes
1001James C ShinkoAustralia2026-08-15Buckley Miller Wright PROPOSAL43Bernardo Dominic
1002James A StensethRussia2026-08-07Chanay, Jeffrey A Esq PROPOSAL18Stephen Shaw
1003Munro D MarrierCanada2026-08-12Commercial Press PROPOSAL71Bernardo Dominic
1004Isabel A SaylorsArgentina2026-08-13Chanay, Jeffrey A Esq PROPOSAL66Amy Elsner
1005Aruna S ChuiSpain2026-08-14Rangoni Of Florence PROPOSAL24Amy Elsner
1006Faith M WieserSpain2026-08-12Rousseaux, Michael Esq RENEWAL13Onyama Limba
1007Leon U FerenczGermany2026-08-20Dorl, James J Esq UNQUALIFIED78Ioni Bowcher
1008Morrow G SergiCanada2026-08-19Buckley Miller Wright PROPOSAL3Onyama Limba
1009Antonio D CampainFrance2026-08-25Truhlar And Truhlar Attys NEW33Onyama Limba
1010Izzy Y SchemmerIndia2026-08-18Feiner Bros RENEWAL42Ioni Bowcher
1011Claire A BowleySpain2026-09-02Printing Dimensions NEW50Ioni Bowcher
1012Ashley F MorascaGermany2026-08-08Rousseaux, Michael Esq RENEWAL98Anna Fali
1013Jennifer X MorascaSpain2026-08-26Buckley Miller Wright PROPOSAL22Asiya Javayant
1014Leon Y FlosiItaly2026-08-30Feiner Bros NEW98Elwin Sharvill
1015Emily U CampainBrazil2026-08-12Chanay, Jeffrey A Esq NEW32Onyama Limba
1016Wickens D SaylorsArgentina2026-08-11Chanay, Jeffrey A Esq NEW25Onyama Limba
1017Faith W NickaRussia2026-08-27Chapman, Ross E Esq UNQUALIFIED54Xuxue Feng
1018Jeanfrancois Z TollnerBrazil2026-08-25Truhlar And Truhlar Attys NEGOTIATION69Elwin Sharvill
1019Darci X ShinkoCanada2026-08-26Morlong Associates UNQUALIFIED43Elwin Sharvill
1020Jeanfrancois M OstroskyIndia2026-08-10Benton, John B Jr NEW45Ioni Bowcher
1021Aruna N DarakjyBrazil2026-08-14Chapman, Ross E Esq UNQUALIFIED27Xuxue Feng
1022Jeanfrancois P VocelkaItaly2026-08-24Chemel, James L Cpa NEW5Anna Fali
1023Jennifer Z RulapaughItaly2026-08-26Benton, John B Jr RENEWAL53Anna Fali
1024Smith D PerinCanada2026-08-21Printing Dimensions NEGOTIATION8Bernardo Dominic
1025Ivar H CampainBrazil2026-08-13Chapman, Ross E Esq PROPOSAL63Ioni Bowcher
1026Johnson R MorascaFrance2026-08-29Chemel, James L Cpa PROPOSAL4Ioni Bowcher
1027Faith L MaletFrance2026-09-02Chanay, Jeffrey A Esq PROPOSAL64Elwin Sharvill
1028Aika F GlickGermany2026-08-18Dorl, James J Esq UNQUALIFIED69Ioni Bowcher
1029Jeanfrancois Z StockhamFrance2026-08-29Buckley Miller Wright NEW50Ioni Bowcher
1030Maisha B RoysterBrazil2026-08-31Chemel, James L Cpa NEGOTIATION48Onyama Limba
1031Misaki K ChuiItaly2026-08-28Commercial Press NEW83Xuxue Feng
1032Chavez A RimRussia2026-08-08Buckley Miller Wright QUALIFIED95Asiya Javayant
1033Stacey X AmigonCanada2026-09-01Benton, John B Jr QUALIFIED55Amy Elsner
1034Leon Y VenereIndia2026-08-06Buckley Miller Wright NEW64Bernardo Dominic
1035Sinclair J TollnerRussia2026-08-19Dorl, James J Esq PROPOSAL53Ivan Magalhaes
1036Jennifer M GlickRussia2026-08-26Feiner Bros NEGOTIATION8Elwin Sharvill
1037Jefferson E CaudyFrance2026-08-11Chapman, Ross E Esq UNQUALIFIED11Ivan Magalhaes
1038Clifford G BowleyArgentina2026-08-17Benton, John B Jr UNQUALIFIED28Anna Fali
1039Jennifer T RimGermany2026-08-10Feiner Bros PROPOSAL67Anna Fali
1040Greenwood O FigeroaSpain2026-08-21Buckley Miller Wright NEW0Stephen Shaw
1041Mayumi L GarufiGermany2026-08-31King, Christopher A Esq QUALIFIED87Asiya Javayant
1042Tony H DarakjyCanada2026-08-31Morlong Associates RENEWAL66Xuxue Feng
1043Leon P DilliardAustralia2026-08-07Rousseaux, Michael Esq QUALIFIED63Stephen Shaw
1044Stacey Q NickaJapan2026-08-18Chapman, Ross E Esq QUALIFIED48Amy Elsner
1045Sinclair Q MorascaUnited Kingdom2026-08-08Printing Dimensions NEW65Bernardo Dominic
1046Kaitlin Y AlbaresArgentina2026-08-10Dorl, James J Esq UNQUALIFIED18Ivan Magalhaes
1047Costa C StockhamArgentina2026-08-07Printing Dimensions RENEWAL9Elwin Sharvill
1048Arvin V ButtBrazil2026-09-02Rousseaux, Michael Esq UNQUALIFIED4Stephen Shaw
1049Silvio C RimRussia2026-09-01Buckley Miller Wright NEGOTIATION43Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aika M FlosiFranceXuxue Feng RENEWAL
Maisha Y DilliardItalyIoni Bowcher RENEWAL
Ashley L GlickJapanXuxue Feng NEGOTIATION
Jeanfrancois M GarufiBrazilXuxue Feng QUALIFIED
Wickens V RimJapanElwin Sharvill RENEWAL
Ivar N SchemmerSpainIvan Magalhaes UNQUALIFIED
Julie E WaycottCanadaIoni Bowcher QUALIFIED
Leja T ShinkoIndiaElwin Sharvill QUALIFIED
Ricardo Z VocelkaSpainOnyama Limba NEW
Izzy G InouyeGermanyBernardo Dominic NEGOTIATION
Johnson P SchemmerUnited KingdomAnna Fali PROPOSAL
Izzy N FlosiBrazilIoni Bowcher PROPOSAL
Jeanfrancois Q FerenczJapanOnyama Limba RENEWAL
Leon R AmigonBrazilAsiya Javayant NEW
Maria P NickaAustraliaAmy Elsner PROPOSAL
Murillo C SaylorsSpainElwin Sharvill NEW
Emily R SaylorsArgentinaStephen Shaw QUALIFIED
Wickens E PaprockiRussiaStephen Shaw NEGOTIATION
Morrow X GlickIndiaBernardo Dominic QUALIFIED
Ricardo W ChuiRussiaOnyama Limba UNQUALIFIED
Tony P RoysterFranceBernardo Dominic NEGOTIATION
Sinclair B BowleyArgentinaXuxue Feng QUALIFIED
Isabel L ChuiCanadaAmy Elsner QUALIFIED
Francesco Z DarakjyArgentinaIvan Magalhaes RENEWAL
Aditya Y ChuiItalyBernardo Dominic QUALIFIED
Greenwood O ShinkoBrazilAmy Elsner PROPOSAL
Greenwood F StensethUnited KingdomStephen Shaw NEW
Mujtaba F CaldareraFranceStephen Shaw NEGOTIATION
Sinclair Y GillianArgentinaElwin Sharvill UNQUALIFIED
Murillo E WieserBrazilIvan Magalhaes QUALIFIED
Johnson X StockhamFranceBernardo Dominic NEGOTIATION
Sinclair Y BriddickJapanAmy Elsner RENEWAL
Misaki V ButtArgentinaAmy Elsner RENEWAL
Morrow Y StockhamFranceAmy Elsner QUALIFIED
Munro H ShinkoItalyIvan Magalhaes RENEWAL
Wickens Q RulapaughJapanElwin Sharvill RENEWAL
Julie N SchemmerIndiaOnyama Limba UNQUALIFIED
Jones P PaprockiArgentinaAnna Fali QUALIFIED
Kaitlin Y SlusarskiUnited KingdomXuxue Feng QUALIFIED
Ashley H BriddickFranceOnyama Limba NEW
Chavez M RutaRussiaIvan Magalhaes NEW
Jeanfrancois K IturbideSpainAnna Fali UNQUALIFIED
Silvio X SchemmerRussiaAnna Fali NEGOTIATION
Leon Z DarakjyUnited KingdomBernardo Dominic PROPOSAL
Silvio I CaldareraIndiaAnna Fali NEGOTIATION
Alejandro A FlosiAustraliaElwin Sharvill QUALIFIED
Ashley X RoysterCanadaIoni Bowcher PROPOSAL
Emily J DoeBrazilStephen Shaw NEGOTIATION
Stacey W BologniaItalyAsiya Javayant PROPOSAL
Deepesh R GauchoJapanIoni Bowcher RENEWAL
Frozen Columns
Name
Deepesh N Rim
David D Nicka
Johnson X Figeroa
Aruna V Gillian
David M Perin
Octavia O Saylors
David B Marrier
Chavez I Butt
Morrow E Shinko
Aruna Z Vocelka
Leja M Tollner
Costa G Inouye
Juan C Whobrey
Nicolas T Morasca
Aruna V Royster
Aika P Iturbide
Tony M Briddick
Maisha H Caudy
Jones F Glick
Jefferson N Malet
Aditya E Amigon
Johnson E Bolognia
Leon I Stenseth
Smith O Wieser
Sinclair C Campain
Nicolas L Foller
Aika R Marrier
Kadeem O Amigon
Ivar L Darakjy
Claire S Vocelka
Alejandro E Figeroa
Ricardo C Dilliard
Tony F Stockham
Aditya N Sergi
David A Chui
Jefferson E Wieser
Mujtaba Q Caudy
David B Bowley
Antonio T Darakjy
Francesco J Caudy
Francesco C Shinko
Aika J Royster
Ricardo G Shinko
Jeanfrancois M Perin
Murillo U Malet
Jennifer K Flosi
Darci T Royster
Misaki Q Sergi
Tony M Gillian
David Z Ferencz
IdCountryDate
1000Australia2026-08-19
1001Russia2026-08-21
1002Argentina2026-08-07
1003France2026-08-11
1004Italy2026-08-20
1005Russia2026-09-02
1006India2026-08-30
1007Canada2026-08-09
1008Australia2026-08-05
1009Italy2026-08-12
1010Russia2026-08-16
1011Germany2026-08-15
1012Canada2026-08-19
1013India2026-08-23
1014India2026-08-31
1015Brazil2026-08-29
1016Germany2026-08-20
1017Argentina2026-08-23
1018Japan2026-08-15
1019Italy2026-09-01
1020Brazil2026-08-21
1021Spain2026-08-20
1022Brazil2026-08-27
1023Spain2026-08-17
1024Brazil2026-09-02
1025Brazil2026-08-11
1026Spain2026-08-11
1027Brazil2026-08-23
1028Italy2026-08-31
1029Brazil2026-08-18
1030Germany2026-08-15
1031Australia2026-08-07
1032Germany2026-08-04
1033Russia2026-08-22
1034Argentina2026-08-20
1035France2026-09-02
1036Australia2026-08-06
1037Brazil2026-08-14
1038France2026-08-29
1039Italy2026-08-24
1040Russia2026-08-10
1041United Kingdom2026-08-12
1042Germany2026-08-27
1043Japan2026-08-14
1044Italy2026-08-16
1045Italy2026-08-29
1046Australia2026-08-21
1047Argentina2026-08-25
1048Germany2026-08-17
1049Russia2026-08-19

On-Demand Data

NameIdCountryDate
Aditya E Shinko1000India2026-08-27
Arvin F Perin1001Italy2026-08-18
Chavez R Tollner1002Canada2026-08-06
Ivar N Kolmetz1003United Kingdom2026-08-17
Kadeem S Ferencz1004Italy2026-08-18
Antonio U Amigon1005Canada2026-08-20
Tony A Ruta1006Japan2026-08-14
Faith D Maclead1007Italy2026-08-24
Darci Q Albares1008France2026-08-25
Stacey F Briddick1009Spain2026-08-17
Aika U Venere1010Argentina2026-08-15
Maisha A Nestle1011Argentina2026-08-04
Wickens U Flosi1012United Kingdom2026-09-01
Salvatore A Royster1013Japan2026-08-09
Clifford D Garufi1014Australia2026-08-17
Izzy R Albares1015Australia2026-08-14
Darci F Amigon1016Spain2026-08-11
Alejandro N Stockham1017Japan2026-08-08
Francesco C Oldroyd1018Japan2026-08-12
James B Oldroyd1019Japan2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco T WieserCanadaXuxue Feng NEW
Kadeem D KolmetzRussiaBernardo Dominic PROPOSAL
Emily P ButtJapanAmy Elsner UNQUALIFIED
Aika F DoeRussiaStephen Shaw RENEWAL
Rodrigues Y RulapaughJapanAnna Fali PROPOSAL
Aruna Q FerenczIndiaAmy Elsner NEW
Arvin H ButtJapanIoni Bowcher PROPOSAL
Deepesh B ChuiRussiaElwin Sharvill NEGOTIATION
Jennifer T SlusarskiRussiaElwin Sharvill PROPOSAL
Antonio D MaletFranceIvan Magalhaes UNQUALIFIED
Octavia V FerenczItalyElwin Sharvill PROPOSAL
Aika X MacleadSpainIvan Magalhaes RENEWAL
Darci N OldroydAustraliaIvan Magalhaes PROPOSAL
Aruna F NickaBrazilElwin Sharvill UNQUALIFIED
Maria J ShinkoItalyOnyama Limba PROPOSAL
Faith Q KolmetzIndiaAsiya Javayant PROPOSAL
Munro U KolmetzCanadaIvan Magalhaes NEW
Stacey L FerenczBrazilElwin Sharvill RENEWAL
Greenwood E OldroydUnited KingdomAmy Elsner PROPOSAL
James M CaudySpainStephen Shaw UNQUALIFIED
Wickens T GarufiItalyBernardo Dominic UNQUALIFIED
Kaitlin N VenereCanadaOnyama Limba RENEWAL
Aika P ShinkoUnited KingdomIvan Magalhaes QUALIFIED
David N TollnerJapanOnyama Limba NEGOTIATION
Leon C OldroydFranceOnyama Limba UNQUALIFIED
Munro E MarrierIndiaIoni Bowcher QUALIFIED
Claire M DoeUnited KingdomStephen Shaw QUALIFIED
Greenwood Y FigeroaRussiaAmy Elsner NEGOTIATION
Jennifer Q NickaRussiaOnyama Limba PROPOSAL
Ivar H FigeroaGermanyAnna Fali PROPOSAL
Leon A PaprockiAustraliaBernardo Dominic RENEWAL
Costa S MorascaUnited KingdomStephen Shaw UNQUALIFIED
Aruna U VocelkaArgentinaIoni Bowcher RENEWAL
James V RimSpainOnyama Limba QUALIFIED
Deepesh I MaletRussiaIoni Bowcher UNQUALIFIED
Leon X RutaBrazilElwin Sharvill PROPOSAL
Clifford C KolmetzIndiaIvan Magalhaes NEW
Kaitlin Z DoeFranceIoni Bowcher UNQUALIFIED
Smith F NickaItalyIvan Magalhaes UNQUALIFIED
Emily A GarufiRussiaAnna Fali 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>