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
Darci L FlosiAustraliaElwin Sharvill RENEWAL
Francesco C TollnerBrazilStephen Shaw PROPOSAL
Alejandro Q OldroydCanadaAsiya Javayant QUALIFIED
Chavez B IturbideIndiaAmy Elsner PROPOSAL
Stacey P NestleAustraliaIvan Magalhaes NEGOTIATION
Mujtaba R GillianJapanAnna Fali NEGOTIATION
Claire M GlickUnited KingdomIoni Bowcher PROPOSAL
Tony Y SchemmerCanadaAsiya Javayant PROPOSAL
Chavez V PerinArgentinaXuxue Feng UNQUALIFIED
Clifford W GauchoBrazilAmy Elsner RENEWAL
Silvio Z BologniaJapanStephen Shaw QUALIFIED
Munro U MaletSpainIoni Bowcher NEGOTIATION
David M PoquetteIndiaXuxue Feng UNQUALIFIED
Wickens F CaudyUnited KingdomAnna Fali QUALIFIED
Leja Z RoysterItalyElwin Sharvill UNQUALIFIED
Jefferson X SlusarskiCanadaAmy Elsner UNQUALIFIED
Izzy W InouyeFranceAmy Elsner QUALIFIED
Costa I ButtBrazilBernardo Dominic NEW
Wickens Z SlusarskiIndiaElwin Sharvill QUALIFIED
Ashley G BologniaAustraliaIvan Magalhaes QUALIFIED
Adams E ButtArgentinaAsiya Javayant QUALIFIED
Nicolas C FlosiRussiaOnyama Limba QUALIFIED
Claire H IturbideUnited KingdomAsiya Javayant QUALIFIED
Mujtaba Y DilliardSpainXuxue Feng PROPOSAL
Munro Y RutaGermanyStephen Shaw QUALIFIED
Tony H IturbideJapanStephen Shaw UNQUALIFIED
Cody Z PerinFranceIoni Bowcher QUALIFIED
Antonio N GlickRussiaAnna Fali RENEWAL
Wickens L DarakjyBrazilElwin Sharvill UNQUALIFIED
Clifford Q VocelkaItalyStephen Shaw QUALIFIED
Silvio M GarufiJapanIvan Magalhaes QUALIFIED
Isabel H BriddickFranceAmy Elsner RENEWAL
Emily S MaletRussiaAnna Fali UNQUALIFIED
Kaitlin M SlusarskiBrazilElwin Sharvill RENEWAL
Mujtaba T GillianBrazilAnna Fali UNQUALIFIED
Ivar L SlusarskiAustraliaAnna Fali QUALIFIED
Faith O SchemmerIndiaAsiya Javayant UNQUALIFIED
Emily O SchemmerBrazilAmy Elsner PROPOSAL
Darci Q ChuiItalyIoni Bowcher NEW
Tony X RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya Z TollnerJapanIvan Magalhaes UNQUALIFIED
David D MacleadArgentinaAsiya Javayant NEGOTIATION
Wickens Y RutaSpainAmy Elsner PROPOSAL
Rodrigues S DilliardSpainAnna Fali NEGOTIATION
Maisha D GlickCanadaAnna Fali PROPOSAL
Chavez G CaldareraSpainAmy Elsner RENEWAL
Alejandro M AmigonJapanBernardo Dominic NEW
Ricardo S NestleUnited KingdomAmy Elsner NEGOTIATION
Clifford D GillianUnited KingdomBernardo Dominic RENEWAL
Greenwood X BowleyRussiaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood W InouyeGermanyOnyama Limba PROPOSAL
Wickens W DilliardJapanAnna Fali RENEWAL
David W BologniaSpainAnna Fali NEGOTIATION
Sinclair R DoeArgentinaIoni Bowcher QUALIFIED
Mujtaba X MorascaIndiaStephen Shaw PROPOSAL
Stacey S WhobreyFranceAmy Elsner QUALIFIED
Clifford O GauchoRussiaAmy Elsner PROPOSAL
Leja C SergiItalyXuxue Feng PROPOSAL
Arvin E PerinGermanyOnyama Limba RENEWAL
Chavez E StockhamIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco Y ButtItaly2026-06-14Dorl, James J Esq QUALIFIED44Ivan Magalhaes
1001Smith B PaprockiUnited Kingdom2026-06-18Printing Dimensions NEGOTIATION83Onyama Limba
1002Sinclair D NestleItaly2026-06-20Commercial Press QUALIFIED42Xuxue Feng
1003Francesco Q MaletArgentina2026-06-30Commercial Press NEGOTIATION16Amy Elsner
1004Izzy M NestleAustralia2026-06-21Dorl, James J Esq NEGOTIATION23Elwin Sharvill
1005Wickens P BriddickIndia2026-06-24Chapman, Ross E Esq RENEWAL88Asiya Javayant
1006Munro K CampainItaly2026-06-16Chanay, Jeffrey A Esq NEGOTIATION34Elwin Sharvill
1007Murillo N VocelkaGermany2026-07-03Buckley Miller Wright NEGOTIATION17Ivan Magalhaes
1008Alejandro G SlusarskiItaly2026-06-17Morlong Associates RENEWAL34Asiya Javayant
1009Adams T MacleadArgentina2026-06-13Commercial Press NEW87Ivan Magalhaes
1010Claire R SchemmerAustralia2026-07-04Benton, John B Jr NEGOTIATION91Onyama Limba
1011Jefferson U SergiGermany2026-07-04Feiner Bros NEW82Onyama Limba
1012Sinclair L RoysterGermany2026-06-28Printing Dimensions RENEWAL78Amy Elsner
1013Maisha F StockhamRussia2026-06-22Dorl, James J Esq NEW74Asiya Javayant
1014Kadeem F StockhamGermany2026-06-06Dorl, James J Esq QUALIFIED3Stephen Shaw
1015Misaki T IturbideUnited Kingdom2026-07-02Chapman, Ross E Esq RENEWAL3Asiya Javayant
1016Tony H SchemmerIndia2026-06-24Chemel, James L Cpa NEGOTIATION54Xuxue Feng
1017Emily A CaldareraArgentina2026-06-15Printing Dimensions RENEWAL50Stephen Shaw
1018Rodrigues H AmigonIndia2026-06-29Rangoni Of Florence UNQUALIFIED8Anna Fali
1019Aditya C KuskoItaly2026-06-30Morlong Associates NEW69Asiya Javayant
1020Smith B FigeroaCanada2026-06-13Chemel, James L Cpa UNQUALIFIED45Asiya Javayant
1021Julie J SlusarskiSpain2026-06-21Dorl, James J Esq PROPOSAL84Bernardo Dominic
1022Deepesh D AlbaresGermany2026-06-27Commercial Press UNQUALIFIED21Ivan Magalhaes
1023Murillo M PaprockiFrance2026-06-21Chapman, Ross E Esq UNQUALIFIED22Bernardo Dominic
1024Silvio I RoysterUnited Kingdom2026-06-21King, Christopher A Esq NEGOTIATION78Bernardo Dominic
1025Aditya E MaletJapan2026-06-28Benton, John B Jr RENEWAL23Anna Fali
1026Emily I FollerGermany2026-06-28Chanay, Jeffrey A Esq NEGOTIATION6Xuxue Feng
1027Ricardo J ButtIndia2026-06-15Chapman, Ross E Esq UNQUALIFIED96Anna Fali
1028Juan W FollerItaly2026-06-20Feiner Bros NEW86Xuxue Feng
1029Jennifer I AmigonCanada2026-06-06Benton, John B Jr RENEWAL44Amy Elsner
1030Adams T GauchoSpain2026-06-20Chanay, Jeffrey A Esq PROPOSAL74Asiya Javayant
1031Silvio G StockhamJapan2026-06-21Truhlar And Truhlar Attys UNQUALIFIED17Elwin Sharvill
1032Darci R RoysterJapan2026-06-19Truhlar And Truhlar Attys NEGOTIATION33Bernardo Dominic
1033Misaki H CampainAustralia2026-06-27Printing Dimensions QUALIFIED66Elwin Sharvill
1034Murillo L VenereJapan2026-06-05Chapman, Ross E Esq PROPOSAL25Bernardo Dominic
1035Adams V SaylorsAustralia2026-07-03Feiner Bros UNQUALIFIED52Amy Elsner
1036Octavia G MorascaSpain2026-06-05Feiner Bros UNQUALIFIED81Anna Fali
1037Isabel Q MaletGermany2026-06-07Commercial Press PROPOSAL31Elwin Sharvill
1038Faith S OstroskyJapan2026-06-11Chemel, James L Cpa NEW76Xuxue Feng
1039Wickens P BologniaBrazil2026-06-05Feltz Printing Service UNQUALIFIED16Stephen Shaw
1040Kadeem Z FigeroaRussia2026-06-05Rousseaux, Michael Esq NEGOTIATION23Onyama Limba
1041Cody M MaletBrazil2026-06-25Chapman, Ross E Esq QUALIFIED99Onyama Limba
1042Claire Y AlbaresItaly2026-06-22Chemel, James L Cpa UNQUALIFIED62Asiya Javayant
1043Tony F VenereBrazil2026-06-21Rangoni Of Florence NEGOTIATION7Ivan Magalhaes
1044Aruna X InouyeAustralia2026-06-21Feltz Printing Service NEW97Onyama Limba
1045Stacey N IturbideAustralia2026-06-17King, Christopher A Esq PROPOSAL58Stephen Shaw
1046Darci R SchemmerGermany2026-06-14Chanay, Jeffrey A Esq NEGOTIATION40Asiya Javayant
1047James W CampainItaly2026-06-12Feiner Bros NEGOTIATION67Anna Fali
1048Emily E RulapaughFrance2026-06-15Chapman, Ross E Esq RENEWAL78Elwin Sharvill
1049Maisha O KolmetzArgentina2026-06-06Morlong Associates NEW59Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley M IturbideAustraliaAsiya Javayant RENEWAL
Morrow Y MorascaSpainOnyama Limba UNQUALIFIED
Kaitlin J AlbaresCanadaBernardo Dominic QUALIFIED
James A DarakjyJapanElwin Sharvill PROPOSAL
Deepesh Z OstroskyAustraliaIvan Magalhaes UNQUALIFIED
David G CaldareraAustraliaAsiya Javayant NEW
Aika Z CampainGermanyAsiya Javayant UNQUALIFIED
Jefferson Z RimRussiaAnna Fali RENEWAL
Julie R PaprockiAustraliaAsiya Javayant QUALIFIED
Izzy E CaldareraGermanyBernardo Dominic UNQUALIFIED
Octavia V SchemmerRussiaAmy Elsner UNQUALIFIED
Morrow D WaycottSpainAnna Fali QUALIFIED
Aika C SlusarskiItalyElwin Sharvill RENEWAL
Aruna J MaletFranceAnna Fali UNQUALIFIED
Misaki Y CaudyArgentinaIoni Bowcher NEGOTIATION
Greenwood F VocelkaArgentinaXuxue Feng RENEWAL
Julie R IturbideRussiaXuxue Feng UNQUALIFIED
Julie R DarakjyCanadaXuxue Feng RENEWAL
Aditya Z GauchoUnited KingdomOnyama Limba NEGOTIATION
Munro T ShinkoUnited KingdomXuxue Feng PROPOSAL
Tony L MorascaBrazilXuxue Feng PROPOSAL
Deepesh D KolmetzJapanIvan Magalhaes NEW
Mayumi P FerenczSpainOnyama Limba NEW
Leja X PerinIndiaIoni Bowcher UNQUALIFIED
Sinclair B KuskoJapanStephen Shaw UNQUALIFIED
Ashley W PaprockiArgentinaStephen Shaw RENEWAL
Ivar Z RutaGermanyBernardo Dominic NEGOTIATION
Sinclair V GarufiItalyBernardo Dominic RENEWAL
Jefferson H NestleUnited KingdomStephen Shaw PROPOSAL
Mayumi L RulapaughGermanyAnna Fali PROPOSAL
Jeanfrancois O NickaSpainAnna Fali QUALIFIED
Isabel Q MarrierAustraliaBernardo Dominic PROPOSAL
Mujtaba M SlusarskiRussiaIvan Magalhaes RENEWAL
Munro O ButtFranceIoni Bowcher PROPOSAL
Darci X KolmetzJapanOnyama Limba NEGOTIATION
Ivar B FerenczItalyXuxue Feng NEW
Wickens O PoquetteJapanBernardo Dominic QUALIFIED
Jefferson X NestleAustraliaIvan Magalhaes UNQUALIFIED
Murillo A MorascaCanadaStephen Shaw RENEWAL
Claire S PoquetteSpainAnna Fali PROPOSAL
Nicolas T OldroydBrazilOnyama Limba NEGOTIATION
Mayumi N DilliardJapanAnna Fali UNQUALIFIED
Aika H IturbideFranceOnyama Limba PROPOSAL
Darci B CaldareraFranceIvan Magalhaes NEGOTIATION
Faith T GillianBrazilAnna Fali QUALIFIED
Costa N FlosiSpainStephen Shaw NEW
Julie W RimItalyStephen Shaw NEGOTIATION
Arvin S SaylorsFranceAnna Fali NEW
Costa Y TollnerCanadaAmy Elsner NEW
Juan C StensethArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Greenwood K Darakjy
Claire V Campain
Morrow T Caldarera
Clifford C Bowley
Jeanfrancois S Sergi
Kadeem Z Caudy
Stacey E Ostrosky
Antonio G Maclead
Antonio F Rulapaugh
Arvin T Poquette
Arvin S Oldroyd
Leon C Ruta
Greenwood E Butt
Octavia L Kolmetz
Darci Q Morasca
Ricardo X Rim
Mayumi L Foller
Clifford G Gillian
Jones A Gillian
Salvatore S Iturbide
Juan N Butt
Francesco R Caldarera
Aditya Q Rulapaugh
Julie J Caldarera
Leja S Kolmetz
Wickens I Sergi
Morrow V Garufi
Arvin A Nicka
Claire V Gaucho
Leon M Briddick
Aruna V Nicka
Nicolas L Amigon
Alejandro G Malet
Francesco L Oldroyd
Ashley H Paprocki
Darci S Gaucho
Munro A Stockham
Maisha R Campain
Izzy Q Rim
Antonio T Shinko
Faith C Paprocki
Stacey X Caldarera
Greenwood O Slusarski
Cody V Oldroyd
Adams E Foller
Wickens A Chui
Munro N Caldarera
Claire C Saylors
Emily S Nicka
Cody D Stenseth
IdCountryDate
1000Spain2026-06-16
1001Spain2026-06-16
1002Spain2026-06-28
1003France2026-06-12
1004Argentina2026-06-18
1005United Kingdom2026-06-22
1006Italy2026-06-24
1007Australia2026-06-12
1008Brazil2026-06-07
1009Argentina2026-06-26
1010Australia2026-06-30
1011Canada2026-06-30
1012India2026-06-06
1013Argentina2026-06-25
1014Spain2026-06-08
1015Canada2026-07-03
1016Argentina2026-06-29
1017Spain2026-07-01
1018Japan2026-06-15
1019Japan2026-06-06
1020India2026-06-30
1021Spain2026-06-09
1022Germany2026-07-01
1023United Kingdom2026-06-25
1024Italy2026-06-11
1025Spain2026-06-13
1026Italy2026-06-13
1027Russia2026-06-11
1028Germany2026-06-20
1029Australia2026-06-25
1030India2026-06-20
1031Germany2026-06-25
1032Russia2026-06-14
1033Spain2026-06-22
1034Germany2026-06-19
1035Canada2026-06-28
1036Italy2026-06-06
1037Spain2026-06-13
1038Germany2026-07-03
1039Italy2026-06-22
1040Italy2026-06-24
1041Australia2026-06-30
1042Italy2026-06-27
1043France2026-06-20
1044Canada2026-06-10
1045Italy2026-06-11
1046Australia2026-06-13
1047France2026-06-07
1048Germany2026-06-23
1049Russia2026-06-13

On-Demand Data

NameIdCountryDate
Munro H Venere1000Spain2026-06-07
Mayumi S Ruta1001Australia2026-06-29
Isabel T Kolmetz1002Spain2026-07-03
Claire F Tollner1003Canada2026-06-22
Clifford K Gaucho1004Italy2026-06-22
Aruna I Caudy1005Japan2026-06-07
Juan O Perin1006Germany2026-06-27
Jefferson W Ferencz1007Argentina2026-06-09
Jennifer H Butt1008Spain2026-06-08
Arvin W Malet1009Italy2026-07-02
Aditya I Oldroyd1010Australia2026-06-07
Greenwood F Rulapaugh1011United Kingdom2026-06-08
David C Maclead1012Japan2026-06-05
Stacey I Chui1013Japan2026-06-24
Jennifer Q Poquette1014Germany2026-06-13
Smith E Nicka1015France2026-06-25
Mujtaba M Ruta1016United Kingdom2026-06-11
Mujtaba S Butt1017Canada2026-06-12
Mayumi V Malet1018Italy2026-07-04
Ashley G Perin1019Russia2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika T MorascaBrazilBernardo Dominic UNQUALIFIED
Sinclair O ChuiSpainAmy Elsner NEGOTIATION
Antonio M NickaUnited KingdomIvan Magalhaes NEGOTIATION
David O GlickJapanAmy Elsner PROPOSAL
Munro U RutaUnited KingdomIvan Magalhaes NEW
Antonio C SaylorsUnited KingdomBernardo Dominic NEW
Jones W OstroskyItalyXuxue Feng NEW
Tony T BriddickGermanyStephen Shaw NEGOTIATION
Stacey J InouyeUnited KingdomAmy Elsner QUALIFIED
Stacey F BriddickAustraliaIvan Magalhaes NEGOTIATION
James V TollnerSpainAnna Fali UNQUALIFIED
Misaki V GarufiSpainIvan Magalhaes UNQUALIFIED
Antonio A MacleadCanadaXuxue Feng QUALIFIED
Antonio E MaletArgentinaAmy Elsner RENEWAL
Mujtaba Z MaletCanadaAmy Elsner RENEWAL
Costa M SlusarskiFranceAnna Fali QUALIFIED
Octavia P GlickBrazilAsiya Javayant NEGOTIATION
Nicolas T FlosiFranceIvan Magalhaes UNQUALIFIED
Leja L OstroskyCanadaOnyama Limba QUALIFIED
Maisha G ButtBrazilXuxue Feng NEGOTIATION
Arvin A GarufiGermanyIoni Bowcher NEGOTIATION
Leja B WhobreyFranceAmy Elsner NEGOTIATION
Arvin B WaycottIndiaStephen Shaw UNQUALIFIED
Clifford X WaycottSpainAnna Fali RENEWAL
Stacey B NickaBrazilIoni Bowcher QUALIFIED
Isabel I KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh M GlickFranceAnna Fali UNQUALIFIED
Claire T RimCanadaAmy Elsner UNQUALIFIED
Adams O PerinRussiaAnna Fali NEW
Leon I KolmetzJapanOnyama Limba PROPOSAL
Octavia N StockhamRussiaAnna Fali NEW
Alejandro B BologniaItalyBernardo Dominic NEGOTIATION
Faith Y GarufiArgentinaIoni Bowcher RENEWAL
Salvatore X DarakjyUnited KingdomElwin Sharvill RENEWAL
Claire J GarufiArgentinaIvan Magalhaes PROPOSAL
Juan T AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Sinclair R WhobreySpainAmy Elsner RENEWAL
Aruna W AlbaresRussiaAsiya Javayant NEGOTIATION
Izzy U CaudyArgentinaBernardo Dominic PROPOSAL
Izzy N PaprockiArgentinaAnna Fali NEGOTIATION

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