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
Chavez V SchemmerFranceIvan Magalhaes RENEWAL
Izzy H BologniaCanadaAnna Fali UNQUALIFIED
Ashley N BriddickGermanyBernardo Dominic UNQUALIFIED
Alejandro V GarufiSpainIoni Bowcher UNQUALIFIED
Chavez Z FigeroaSpainElwin Sharvill NEGOTIATION
Kadeem R WaycottSpainOnyama Limba NEW
Octavia A KuskoSpainElwin Sharvill PROPOSAL
Cody Q WhobreyIndiaAsiya Javayant QUALIFIED
Nicolas B SchemmerArgentinaElwin Sharvill QUALIFIED
Cody W GauchoUnited KingdomStephen Shaw QUALIFIED
Cody G BowleyJapanAmy Elsner PROPOSAL
Jefferson M RutaIndiaStephen Shaw QUALIFIED
Ashley I FollerAustraliaOnyama Limba PROPOSAL
Kadeem I BowleyUnited KingdomXuxue Feng RENEWAL
Aika Z StensethArgentinaAsiya Javayant UNQUALIFIED
Kadeem I GarufiCanadaAsiya Javayant NEW
Leja S MaletIndiaIoni Bowcher NEGOTIATION
Stacey D InouyeItalyAsiya Javayant UNQUALIFIED
Mujtaba I CaudyCanadaAmy Elsner UNQUALIFIED
Antonio Q FerenczAustraliaIvan Magalhaes RENEWAL
Leja O SlusarskiJapanAsiya Javayant PROPOSAL
Cody A GarufiIndiaOnyama Limba NEGOTIATION
Tony C GlickCanadaBernardo Dominic QUALIFIED
Munro E RoysterUnited KingdomAnna Fali QUALIFIED
Aditya T CampainIndiaIvan Magalhaes QUALIFIED
Leja Y BologniaAustraliaXuxue Feng PROPOSAL
James H WhobreyJapanXuxue Feng RENEWAL
Misaki V PerinSpainAmy Elsner RENEWAL
Jones I KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues G BologniaFranceStephen Shaw NEW
Mayumi Z KuskoBrazilOnyama Limba UNQUALIFIED
Adams G ChuiItalyElwin Sharvill RENEWAL
Arvin L OstroskyIndiaAsiya Javayant UNQUALIFIED
Aruna M StockhamSpainXuxue Feng NEW
Salvatore Z InouyeFranceStephen Shaw UNQUALIFIED
Maria Z SchemmerBrazilAnna Fali UNQUALIFIED
Tony X VenereGermanyIvan Magalhaes RENEWAL
Johnson X AlbaresRussiaBernardo Dominic RENEWAL
Sinclair A CaudyGermanyIvan Magalhaes QUALIFIED
Tony Y RoysterFranceAsiya Javayant RENEWAL
Claire S StensethFranceElwin Sharvill NEW
Mayumi B NestleRussiaElwin Sharvill QUALIFIED
Silvio W WieserCanadaAmy Elsner RENEWAL
Misaki K OldroydCanadaBernardo Dominic NEGOTIATION
Nicolas U FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Claire U DilliardSpainAnna Fali NEGOTIATION
Johnson R MaletJapanStephen Shaw NEW
Leon K CampainUnited KingdomAsiya Javayant PROPOSAL
Smith V NestleGermanyAsiya Javayant NEGOTIATION
Jones J OldroydJapanAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood Q ShinkoBrazilIoni Bowcher NEGOTIATION
Stacey Y MorascaIndiaAnna Fali PROPOSAL
Silvio S OstroskyAustraliaOnyama Limba NEGOTIATION
David D RulapaughIndiaAsiya Javayant QUALIFIED
Jones W MaletFranceAsiya Javayant NEGOTIATION
Octavia L RimSpainAsiya Javayant NEGOTIATION
Emily F RutaItalyStephen Shaw NEW
Jennifer Z GlickJapanOnyama Limba NEW
Maisha W WaycottCanadaBernardo Dominic NEW
Izzy C FlosiArgentinaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin D PerinIndia2026-07-15Truhlar And Truhlar Attys NEGOTIATION61Ioni Bowcher
1001Adams J PoquetteJapan2026-07-17Dorl, James J Esq RENEWAL15Ivan Magalhaes
1002Emily P NestleSpain2026-07-15Benton, John B Jr NEGOTIATION8Ivan Magalhaes
1003Arvin H SaylorsIndia2026-07-16Rangoni Of Florence RENEWAL61Ivan Magalhaes
1004Alejandro T AmigonJapan2026-07-22Chemel, James L Cpa PROPOSAL71Anna Fali
1005Chavez M NickaUnited Kingdom2026-06-30Rousseaux, Michael Esq QUALIFIED62Anna Fali
1006Antonio P DoeSpain2026-07-23Morlong Associates NEGOTIATION2Amy Elsner
1007Faith W RimCanada2026-07-16Chapman, Ross E Esq RENEWAL4Asiya Javayant
1008Clifford P GauchoCanada2026-06-25Chanay, Jeffrey A Esq PROPOSAL88Anna Fali
1009Julie P GlickFrance2026-06-29Morlong Associates UNQUALIFIED21Amy Elsner
1010Cody K RulapaughIndia2026-07-22Commercial Press QUALIFIED68Onyama Limba
1011Darci S AmigonCanada2026-07-12Buckley Miller Wright PROPOSAL26Elwin Sharvill
1012Izzy V RutaIndia2026-07-14Dorl, James J Esq RENEWAL42Stephen Shaw
1013Julie E DoeCanada2026-07-03Commercial Press NEW74Ioni Bowcher
1014Stacey D CaudyUnited Kingdom2026-07-12Commercial Press QUALIFIED10Elwin Sharvill
1015Murillo P GauchoGermany2026-07-03Rousseaux, Michael Esq QUALIFIED92Ioni Bowcher
1016Antonio L AlbaresSpain2026-07-03Feltz Printing Service RENEWAL8Onyama Limba
1017Emily U IturbideBrazil2026-07-20Truhlar And Truhlar Attys RENEWAL7Ivan Magalhaes
1018Alejandro P RulapaughGermany2026-07-13Morlong Associates UNQUALIFIED22Asiya Javayant
1019Munro E GauchoIndia2026-07-18Truhlar And Truhlar Attys UNQUALIFIED88Asiya Javayant
1020Stacey V RulapaughArgentina2026-07-23Morlong Associates RENEWAL25Onyama Limba
1021Misaki E ButtSpain2026-07-16Chapman, Ross E Esq UNQUALIFIED63Anna Fali
1022Silvio V DoeAustralia2026-07-12Rousseaux, Michael Esq NEW96Elwin Sharvill
1023Aruna B IturbideFrance2026-07-02Commercial Press PROPOSAL77Stephen Shaw
1024Nicolas Y OldroydIndia2026-07-09Truhlar And Truhlar Attys UNQUALIFIED89Stephen Shaw
1025Deepesh D TollnerArgentina2026-07-04Printing Dimensions NEGOTIATION0Onyama Limba
1026Jennifer T IturbideFrance2026-07-23Morlong Associates QUALIFIED35Anna Fali
1027Emily Y KuskoGermany2026-07-14King, Christopher A Esq UNQUALIFIED66Elwin Sharvill
1028Misaki Q KuskoBrazil2026-07-01Morlong Associates RENEWAL97Xuxue Feng
1029Rodrigues F FerenczItaly2026-07-05Chapman, Ross E Esq NEGOTIATION33Asiya Javayant
1030Smith K RoysterAustralia2026-07-15Chemel, James L Cpa NEGOTIATION89Xuxue Feng
1031Costa R CaldareraRussia2026-07-20Chapman, Ross E Esq UNQUALIFIED76Amy Elsner
1032Arvin E CaldareraItaly2026-07-05Chanay, Jeffrey A Esq RENEWAL74Bernardo Dominic
1033Salvatore D DoeBrazil2026-07-01Morlong Associates RENEWAL31Anna Fali
1034Morrow A RoysterItaly2026-07-21Chemel, James L Cpa RENEWAL72Ivan Magalhaes
1035Cody A WhobreyIndia2026-07-02Dorl, James J Esq NEW62Amy Elsner
1036Rodrigues T GlickBrazil2026-07-06Printing Dimensions NEW67Asiya Javayant
1037Sinclair S FollerSpain2026-07-05Feltz Printing Service QUALIFIED18Onyama Limba
1038Munro T MaletCanada2026-07-10Feiner Bros NEW94Onyama Limba
1039Maisha L GauchoCanada2026-07-09Feiner Bros RENEWAL79Amy Elsner
1040Octavia P MorascaCanada2026-06-29Rousseaux, Michael Esq UNQUALIFIED21Elwin Sharvill
1041Tony T MorascaArgentina2026-07-24Feltz Printing Service RENEWAL44Onyama Limba
1042Darci U NickaIndia2026-06-30King, Christopher A Esq UNQUALIFIED78Amy Elsner
1043Silvio G CaudyCanada2026-07-20Feltz Printing Service QUALIFIED40Xuxue Feng
1044Octavia Y MacleadSpain2026-07-11Morlong Associates PROPOSAL87Ioni Bowcher
1045Octavia S StensethAustralia2026-07-07Chapman, Ross E Esq NEW29Bernardo Dominic
1046Stacey I TollnerCanada2026-07-16Rousseaux, Michael Esq NEW97Stephen Shaw
1047Alejandro Q ButtRussia2026-07-02Rangoni Of Florence PROPOSAL42Ivan Magalhaes
1048Jones T PaprockiItaly2026-07-06Commercial Press NEGOTIATION29Anna Fali
1049Clifford L RutaJapan2026-06-28Morlong Associates PROPOSAL0Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Julie I AlbaresArgentinaStephen Shaw PROPOSAL
Antonio H KolmetzBrazilIvan Magalhaes PROPOSAL
Octavia P NestleUnited KingdomAsiya Javayant NEW
David T CaudyArgentinaIvan Magalhaes NEGOTIATION
Faith Y MaletBrazilIoni Bowcher NEW
Jones H ChuiGermanyIvan Magalhaes RENEWAL
Antonio G KolmetzGermanyIoni Bowcher QUALIFIED
Maria M MorascaCanadaElwin Sharvill NEW
Jeanfrancois K VenereArgentinaBernardo Dominic PROPOSAL
Misaki V GlickUnited KingdomBernardo Dominic NEGOTIATION
Francesco A MaletRussiaAnna Fali RENEWAL
Murillo G NickaAustraliaIvan Magalhaes RENEWAL
Leon Q PerinGermanyElwin Sharvill UNQUALIFIED
Ivar O OldroydJapanIoni Bowcher UNQUALIFIED
Kadeem S SergiJapanIvan Magalhaes NEGOTIATION
Adams N PaprockiUnited KingdomStephen Shaw RENEWAL
Stacey E MaletItalyXuxue Feng QUALIFIED
Alejandro E FigeroaItalyIvan Magalhaes NEGOTIATION
Clifford H FigeroaFranceAsiya Javayant QUALIFIED
Kadeem R SlusarskiJapanXuxue Feng RENEWAL
Juan R GauchoItalyIoni Bowcher PROPOSAL
Darci F FollerUnited KingdomAmy Elsner RENEWAL
Izzy N RoysterBrazilIvan Magalhaes RENEWAL
Mujtaba W FerenczArgentinaIvan Magalhaes PROPOSAL
Jennifer S NickaCanadaStephen Shaw NEGOTIATION
Deepesh N MacleadFranceElwin Sharvill NEGOTIATION
Claire X GarufiArgentinaAmy Elsner QUALIFIED
Ricardo D InouyeIndiaIvan Magalhaes QUALIFIED
Adams D NestleFranceIoni Bowcher UNQUALIFIED
Aika F WaycottCanadaXuxue Feng QUALIFIED
Leon N MaletBrazilAnna Fali RENEWAL
Tony Q SergiUnited KingdomElwin Sharvill RENEWAL
Adams T KolmetzIndiaOnyama Limba UNQUALIFIED
Johnson A StockhamFranceIoni Bowcher NEGOTIATION
Ivar W FigeroaSpainAmy Elsner PROPOSAL
Emily S ButtArgentinaBernardo Dominic NEW
Murillo P PerinRussiaAsiya Javayant PROPOSAL
Aika R WhobreyFranceXuxue Feng QUALIFIED
Misaki K MacleadCanadaAnna Fali QUALIFIED
Stacey C StockhamIndiaIoni Bowcher PROPOSAL
Izzy G PerinBrazilOnyama Limba PROPOSAL
Jefferson H KolmetzItalyBernardo Dominic NEW
Isabel S GauchoUnited KingdomIoni Bowcher NEW
Costa Q WieserFranceStephen Shaw QUALIFIED
Francesco S NickaItalyIoni Bowcher PROPOSAL
Adams J WhobreyJapanXuxue Feng UNQUALIFIED
Aditya E GlickItalyIoni Bowcher RENEWAL
Leja T MaletItalyXuxue Feng PROPOSAL
Maisha A DilliardFranceXuxue Feng NEGOTIATION
Nicolas Q RutaCanadaAmy Elsner RENEWAL
Frozen Columns
Name
Costa I Amigon
Jeanfrancois O Malet
Jennifer W Vocelka
Aruna A Nestle
Salvatore A Foller
Adams I Dilliard
Faith B Slusarski
Murillo Y Stockham
Isabel L Stenseth
Mujtaba G Chui
Ivar U Glick
Sinclair X Bolognia
Izzy W Perin
Maisha F Nicka
Tony M Garufi
Arvin A Doe
Misaki X Sergi
Salvatore Z Glick
Julie J Whobrey
Aika N Poquette
Maisha I Iturbide
Salvatore C Flosi
Leon T Albares
Ashley Z Chui
Costa G Stenseth
Jennifer T Malet
Salvatore M Bowley
Isabel C Kolmetz
Rodrigues J Stenseth
Chavez P Ferencz
Wickens P Poquette
Kadeem H Foller
Arvin H Royster
Kaitlin H Nicka
Tony M Kusko
Ivar R Inouye
Leja P Nestle
David D Royster
Aruna C Caldarera
Jefferson F Butt
David B Nestle
Aditya B Oldroyd
Antonio O Maclead
Greenwood F Kolmetz
Costa J Bowley
Morrow B Ruta
Jones Z Foller
Francesco W Tollner
Sinclair R Dilliard
Cody T Malet
IdCountryDate
1000Russia2026-07-01
1001India2026-07-22
1002Russia2026-07-14
1003Australia2026-07-21
1004Argentina2026-06-30
1005Japan2026-07-03
1006United Kingdom2026-07-24
1007Australia2026-07-01
1008Russia2026-07-01
1009United Kingdom2026-06-27
1010Canada2026-06-27
1011Japan2026-07-16
1012Spain2026-07-13
1013United Kingdom2026-06-27
1014India2026-07-13
1015Russia2026-07-09
1016Spain2026-06-30
1017Germany2026-07-23
1018Japan2026-07-21
1019Spain2026-07-17
1020India2026-07-14
1021United Kingdom2026-07-15
1022United Kingdom2026-06-27
1023Argentina2026-07-09
1024India2026-07-11
1025Germany2026-07-22
1026France2026-07-12
1027Japan2026-06-30
1028India2026-06-28
1029Italy2026-06-28
1030Russia2026-06-28
1031India2026-07-06
1032India2026-06-30
1033United Kingdom2026-07-20
1034France2026-07-18
1035France2026-07-13
1036Brazil2026-07-20
1037Australia2026-07-13
1038India2026-07-01
1039Canada2026-07-20
1040Germany2026-07-16
1041Germany2026-07-19
1042Italy2026-07-06
1043United Kingdom2026-07-12
1044Brazil2026-06-27
1045Spain2026-06-26
1046Russia2026-07-06
1047India2026-06-30
1048Australia2026-07-20
1049Argentina2026-07-16

On-Demand Data

NameIdCountryDate
Adams L Vocelka1000Russia2026-07-10
Adams K Paprocki1001India2026-07-08
Emily O Garufi1002Germany2026-07-12
Kadeem P Malet1003Australia2026-07-12
Salvatore H Campain1004Brazil2026-07-20
Juan R Bowley1005Canada2026-07-08
Salvatore S Slusarski1006Japan2026-07-06
Misaki V Chui1007Japan2026-07-05
Aika E Slusarski1008Australia2026-07-20
Octavia Q Kusko1009Brazil2026-07-19
Rodrigues D Foller1010Canada2026-06-26
Kaitlin O Gaucho1011Australia2026-07-19
Jones D Inouye1012United Kingdom2026-07-15
Mayumi R Garufi1013India2026-06-28
Octavia V Stockham1014Spain2026-07-17
Leja L Garufi1015Spain2026-07-01
Jeanfrancois X Figeroa1016Canada2026-07-10
Jones R Amigon1017France2026-06-29
Morrow Q Gaucho1018France2026-07-10
Rodrigues F Perin1019Spain2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith H WaycottSpainAnna Fali UNQUALIFIED
Jefferson S AlbaresFranceOnyama Limba NEGOTIATION
James E OstroskyBrazilOnyama Limba QUALIFIED
Kaitlin J BriddickUnited KingdomElwin Sharvill NEW
Ashley I MacleadFranceElwin Sharvill QUALIFIED
Mujtaba X WaycottGermanyIvan Magalhaes UNQUALIFIED
Sinclair N MacleadUnited KingdomAmy Elsner NEGOTIATION
Julie G InouyeAustraliaStephen Shaw QUALIFIED
Leon Z GillianJapanElwin Sharvill PROPOSAL
Wickens V MacleadCanadaIvan Magalhaes RENEWAL
Smith H FlosiGermanyXuxue Feng QUALIFIED
Maria G GillianFranceXuxue Feng RENEWAL
Leon F VenereJapanAsiya Javayant PROPOSAL
Antonio Z GauchoJapanXuxue Feng PROPOSAL
Darci S VocelkaFranceXuxue Feng QUALIFIED
Maria C VocelkaSpainAnna Fali NEGOTIATION
Morrow Y SchemmerJapanIoni Bowcher RENEWAL
Maisha T FigeroaAustraliaIoni Bowcher RENEWAL
Kadeem G BriddickRussiaBernardo Dominic PROPOSAL
Tony T SaylorsGermanyOnyama Limba QUALIFIED
Aruna V GarufiIndiaAnna Fali NEW
Jefferson Q CaldareraJapanAnna Fali PROPOSAL
Adams F SergiCanadaAmy Elsner UNQUALIFIED
Jeanfrancois J AmigonIndiaStephen Shaw NEGOTIATION
Murillo O InouyeFranceElwin Sharvill NEGOTIATION
Antonio N DarakjyFranceAsiya Javayant UNQUALIFIED
Johnson W GarufiFranceElwin Sharvill NEGOTIATION
Juan Q CaldareraFranceIvan Magalhaes NEW
Arvin S SaylorsArgentinaStephen Shaw NEGOTIATION
Jones A InouyeUnited KingdomStephen Shaw PROPOSAL
Misaki M MorascaFranceIoni Bowcher RENEWAL
Ricardo W OldroydArgentinaAnna Fali NEW
Maisha W InouyeItalyStephen Shaw RENEWAL
Deepesh Z GarufiAustraliaAmy Elsner NEGOTIATION
Kadeem C WaycottGermanyElwin Sharvill NEGOTIATION
Alejandro Y CaldareraIndiaIvan Magalhaes NEGOTIATION
Julie M RutaBrazilBernardo Dominic NEGOTIATION
Kadeem Q AmigonJapanIvan Magalhaes RENEWAL
Mayumi N DilliardBrazilAnna Fali NEGOTIATION
Jones B FlosiGermanyAmy Elsner 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>