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
Jennifer A KuskoBrazilAnna Fali QUALIFIED
Aditya S NestleFranceAmy Elsner UNQUALIFIED
Maria J AlbaresAustraliaAnna Fali PROPOSAL
Alejandro P SlusarskiFranceAmy Elsner PROPOSAL
Isabel E InouyeRussiaElwin Sharvill QUALIFIED
Aika E BowleySpainAmy Elsner RENEWAL
Silvio U OldroydFranceBernardo Dominic NEGOTIATION
Izzy U PoquetteSpainStephen Shaw NEW
Maisha D WhobreyJapanIoni Bowcher PROPOSAL
Juan U CampainUnited KingdomElwin Sharvill UNQUALIFIED
Silvio B RoysterItalyIoni Bowcher NEGOTIATION
Leon D MaletArgentinaElwin Sharvill UNQUALIFIED
Kaitlin A FollerBrazilStephen Shaw RENEWAL
Ashley H KuskoItalyStephen Shaw RENEWAL
Aruna F WieserCanadaElwin Sharvill PROPOSAL
Stacey K IturbideUnited KingdomStephen Shaw UNQUALIFIED
Leon T FerenczJapanOnyama Limba PROPOSAL
James O WieserBrazilBernardo Dominic RENEWAL
Jeanfrancois D StensethAustraliaStephen Shaw NEGOTIATION
Rodrigues Q FollerJapanStephen Shaw RENEWAL
Sinclair Z IturbideRussiaIvan Magalhaes NEW
Juan Z StensethJapanAmy Elsner RENEWAL
Nicolas B ShinkoFranceElwin Sharvill QUALIFIED
Darci L ShinkoBrazilOnyama Limba NEGOTIATION
Aika B SchemmerGermanyAmy Elsner NEGOTIATION
Kadeem S OstroskyGermanyAmy Elsner PROPOSAL
Emily F StockhamAustraliaOnyama Limba UNQUALIFIED
Leon D GillianBrazilBernardo Dominic RENEWAL
Rodrigues S WaycottIndiaAmy Elsner UNQUALIFIED
Isabel Z ButtCanadaAsiya Javayant UNQUALIFIED
Maisha M WieserRussiaAnna Fali NEW
Ashley O OldroydIndiaOnyama Limba UNQUALIFIED
Jones Z MorascaJapanAsiya Javayant NEGOTIATION
Jones T PerinCanadaAmy Elsner NEGOTIATION
Ricardo A ButtUnited KingdomElwin Sharvill NEW
Jeanfrancois N KuskoUnited KingdomXuxue Feng UNQUALIFIED
David W StockhamBrazilAnna Fali PROPOSAL
Silvio C CampainBrazilBernardo Dominic NEW
Johnson R MaletJapanElwin Sharvill NEGOTIATION
Emily X ChuiFranceStephen Shaw PROPOSAL
Adams F MarrierSpainElwin Sharvill NEW
Rodrigues A DilliardSpainIvan Magalhaes UNQUALIFIED
Smith C StensethIndiaOnyama Limba RENEWAL
Mujtaba G MaletItalyIoni Bowcher QUALIFIED
Octavia S SergiSpainBernardo Dominic QUALIFIED
Clifford Y MorascaIndiaAsiya Javayant UNQUALIFIED
Juan Y GauchoAustraliaElwin Sharvill RENEWAL
Greenwood N TollnerUnited KingdomOnyama Limba NEW
Antonio W FigeroaSpainIoni Bowcher RENEWAL
Izzy X FlosiBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio P NestleAustraliaElwin Sharvill PROPOSAL
Cody B CaldareraCanadaElwin Sharvill NEGOTIATION
Isabel U NickaFranceXuxue Feng PROPOSAL
Clifford D KuskoBrazilAsiya Javayant UNQUALIFIED
Jefferson C RulapaughBrazilIvan Magalhaes RENEWAL
Morrow P OstroskyCanadaAsiya Javayant NEGOTIATION
James Q BowleyFranceIoni Bowcher RENEWAL
Isabel O NickaUnited KingdomOnyama Limba UNQUALIFIED
Darci H PoquetteFranceBernardo Dominic PROPOSAL
Aika H AmigonUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood Z NestleItaly2025-04-21Rangoni Of Florence NEW47Ioni Bowcher
1001Jones H CaudyBrazil2025-04-03Rousseaux, Michael Esq QUALIFIED21Onyama Limba
1002Juan T SaylorsJapan2025-04-26Rangoni Of Florence NEW61Ivan Magalhaes
1003Smith P FollerRussia2025-04-11Truhlar And Truhlar Attys UNQUALIFIED91Asiya Javayant
1004Claire M ShinkoAustralia2025-04-12Printing Dimensions NEW59Ioni Bowcher
1005Misaki S FollerJapan2025-04-11Rangoni Of Florence NEGOTIATION95Amy Elsner
1006Kadeem J GillianSpain2025-04-25Feltz Printing Service PROPOSAL24Amy Elsner
1007Tony B PoquetteJapan2025-04-10Truhlar And Truhlar Attys QUALIFIED52Bernardo Dominic
1008Ricardo S GillianFrance2025-04-13Chapman, Ross E Esq UNQUALIFIED81Asiya Javayant
1009Johnson S DoeItaly2025-04-03Dorl, James J Esq NEW63Asiya Javayant
1010Jones I TollnerBrazil2025-04-25Chanay, Jeffrey A Esq RENEWAL7Onyama Limba
1011Costa T RutaAustralia2025-04-19Chapman, Ross E Esq PROPOSAL8Anna Fali
1012Jeanfrancois C DarakjyRussia2025-04-06Rousseaux, Michael Esq QUALIFIED93Bernardo Dominic
1013Ricardo R FollerUnited Kingdom2025-04-11Dorl, James J Esq RENEWAL45Ioni Bowcher
1014Maisha W VocelkaSpain2025-04-07Chemel, James L Cpa RENEWAL86Amy Elsner
1015Sinclair M PoquetteCanada2025-04-25Dorl, James J Esq RENEWAL54Stephen Shaw
1016Aika V FollerUnited Kingdom2025-04-05Feiner Bros NEGOTIATION29Ioni Bowcher
1017Nicolas B RoysterSpain2025-04-26King, Christopher A Esq NEW0Xuxue Feng
1018Claire P BologniaJapan2025-04-23Dorl, James J Esq RENEWAL10Elwin Sharvill
1019Tony S GauchoBrazil2025-04-02Chemel, James L Cpa PROPOSAL69Bernardo Dominic
1020Rodrigues U StockhamGermany2025-04-19Chemel, James L Cpa NEGOTIATION25Stephen Shaw
1021Jefferson P CaudyAustralia2025-04-23Chemel, James L Cpa RENEWAL30Ivan Magalhaes
1022Aruna D MarrierSpain2025-04-20Chanay, Jeffrey A Esq UNQUALIFIED77Xuxue Feng
1023Smith S PerinCanada2025-04-18Feiner Bros UNQUALIFIED9Ioni Bowcher
1024Kaitlin Z RulapaughIndia2025-04-21King, Christopher A Esq QUALIFIED58Ioni Bowcher
1025Emily J MaletItaly2025-04-29Dorl, James J Esq QUALIFIED47Ioni Bowcher
1026Antonio T SchemmerItaly2025-04-03Buckley Miller Wright QUALIFIED40Xuxue Feng
1027Silvio Y SergiArgentina2025-04-20Rangoni Of Florence UNQUALIFIED15Anna Fali
1028Maisha L MacleadGermany2025-04-10Morlong Associates QUALIFIED47Ioni Bowcher
1029Alejandro C ButtFrance2025-04-06Truhlar And Truhlar Attys QUALIFIED85Stephen Shaw
1030Jefferson I SergiFrance2025-04-10Rangoni Of Florence QUALIFIED39Xuxue Feng
1031Isabel I OstroskyFrance2025-04-08Rangoni Of Florence RENEWAL87Anna Fali
1032Smith Q MacleadJapan2025-04-12Feiner Bros NEGOTIATION66Elwin Sharvill
1033Ashley E VenereRussia2025-04-13Printing Dimensions UNQUALIFIED41Ioni Bowcher
1034Alejandro I DarakjyFrance2025-04-26Dorl, James J Esq QUALIFIED51Ioni Bowcher
1035Jennifer E KuskoRussia2025-04-30King, Christopher A Esq NEW83Amy Elsner
1036Izzy E DarakjyBrazil2025-04-12Dorl, James J Esq UNQUALIFIED87Ioni Bowcher
1037Jennifer J OldroydBrazil2025-04-18Dorl, James J Esq NEW49Stephen Shaw
1038Aditya M StensethSpain2025-04-30Dorl, James J Esq UNQUALIFIED57Ivan Magalhaes
1039Leja O CampainRussia2025-04-12King, Christopher A Esq PROPOSAL56Ioni Bowcher
1040Johnson Q NestleJapan2025-04-10Printing Dimensions PROPOSAL23Anna Fali
1041Cody B OstroskyIndia2025-04-02Buckley Miller Wright NEW71Amy Elsner
1042Julie E MacleadItaly2025-04-29Feiner Bros NEGOTIATION79Anna Fali
1043Deepesh M FigeroaAustralia2025-04-26Dorl, James J Esq QUALIFIED39Ioni Bowcher
1044Clifford H KuskoUnited Kingdom2025-04-24Truhlar And Truhlar Attys QUALIFIED56Amy Elsner
1045Munro C WieserSpain2025-04-17Benton, John B Jr RENEWAL44Amy Elsner
1046Juan O DilliardArgentina2025-04-03Rousseaux, Michael Esq NEGOTIATION39Anna Fali
1047Emily Z OstroskySpain2025-04-17Chemel, James L Cpa UNQUALIFIED47Onyama Limba
1048Adams Y StockhamCanada2025-04-23Feiner Bros QUALIFIED41Ivan Magalhaes
1049Ricardo T FigeroaGermany2025-04-01Commercial Press NEW98Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody T StockhamGermanyOnyama Limba UNQUALIFIED
Cody L RimIndiaOnyama Limba UNQUALIFIED
Ricardo C RulapaughIndiaIvan Magalhaes RENEWAL
Smith A VenereGermanyAmy Elsner NEGOTIATION
Francesco L DilliardUnited KingdomAmy Elsner QUALIFIED
Jennifer F ChuiIndiaOnyama Limba PROPOSAL
Kaitlin W DilliardSpainAmy Elsner RENEWAL
Leja W RoysterIndiaIoni Bowcher QUALIFIED
Mujtaba A CaldareraItalyAnna Fali QUALIFIED
Murillo M VocelkaItalyAsiya Javayant RENEWAL
Jefferson O PerinItalyOnyama Limba RENEWAL
Jones F BowleyJapanStephen Shaw NEW
Tony X WieserIndiaOnyama Limba NEGOTIATION
Greenwood M TollnerBrazilXuxue Feng UNQUALIFIED
Julie R GauchoSpainStephen Shaw NEGOTIATION
Murillo Q GarufiIndiaBernardo Dominic NEGOTIATION
Leja U ChuiIndiaElwin Sharvill NEGOTIATION
Clifford P MacleadFranceAnna Fali RENEWAL
Rodrigues N DilliardCanadaIoni Bowcher NEW
Chavez K RimSpainAsiya Javayant NEGOTIATION
Misaki U GlickUnited KingdomIvan Magalhaes PROPOSAL
Ashley B CaudyItalyIoni Bowcher RENEWAL
Greenwood C PerinAustraliaAnna Fali NEGOTIATION
Johnson R AmigonBrazilStephen Shaw QUALIFIED
Alejandro H ShinkoUnited KingdomAmy Elsner PROPOSAL
Morrow R StensethFranceAsiya Javayant RENEWAL
Octavia Z DarakjyRussiaBernardo Dominic QUALIFIED
Murillo K DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Maria D AmigonSpainIoni Bowcher NEW
Antonio V MarrierJapanAnna Fali QUALIFIED
Munro U CaldareraJapanAnna Fali RENEWAL
Aditya X OldroydGermanyElwin Sharvill NEW
Antonio W NickaUnited KingdomAsiya Javayant NEGOTIATION
Francesco C StockhamSpainAnna Fali NEGOTIATION
Antonio W DilliardJapanAnna Fali NEW
Kaitlin U RoysterAustraliaElwin Sharvill UNQUALIFIED
Juan M SlusarskiAustraliaAmy Elsner UNQUALIFIED
Darci D DarakjyItalyIoni Bowcher UNQUALIFIED
Kaitlin S RimRussiaOnyama Limba QUALIFIED
Faith D AlbaresBrazilAsiya Javayant UNQUALIFIED
Maisha U MorascaFranceBernardo Dominic NEW
Ashley M WieserFranceIvan Magalhaes QUALIFIED
Julie B StockhamRussiaAsiya Javayant RENEWAL
Ricardo X VocelkaSpainIvan Magalhaes QUALIFIED
Maisha S PaprockiSpainAmy Elsner RENEWAL
Aruna T OldroydItalyBernardo Dominic RENEWAL
Jeanfrancois R PaprockiRussiaOnyama Limba QUALIFIED
Cody U InouyeAustraliaAmy Elsner NEW
Isabel A IturbideFranceOnyama Limba RENEWAL
Nicolas D MorascaAustraliaBernardo Dominic PROPOSAL
Frozen Columns
Name
Chavez V Stockham
David O Ruta
Alejandro I Flosi
Chavez B Marrier
Arvin W Ferencz
Smith M Ferencz
Clifford S Bowley
Kadeem U Bolognia
Emily B Kusko
Izzy F Malet
Mayumi E Bolognia
Arvin X Gaucho
Antonio Q Rulapaugh
Cody S Gillian
Silvio K Venere
Jeanfrancois K Figeroa
Johnson S Caldarera
Mujtaba Q Caldarera
Deepesh V Inouye
Leja E Tollner
Octavia B Malet
Wickens B Whobrey
Alejandro Z Caldarera
Stacey E Campain
Nicolas F Doe
Faith H Doe
Antonio B Ostrosky
Kaitlin N Sergi
Kadeem L Shinko
Ashley I Campain
Faith I Slusarski
Francesco Y Chui
James S Glick
Aditya P Bowley
Jones H Ruta
Aika M Figeroa
Adams F Slusarski
Silvio B Poquette
Ivar C Nicka
Maisha S Flosi
Maisha G Venere
Jennifer D Saylors
Arvin R Ferencz
Leja A Figeroa
Rodrigues H Gaucho
Jennifer B Caudy
James Z Saylors
David A Ostrosky
Darci D Sergi
Greenwood K Stockham
IdCountryDate
1000Spain2025-04-15
1001Australia2025-04-01
1002Argentina2025-04-21
1003Japan2025-04-13
1004Spain2025-04-30
1005Russia2025-04-25
1006France2025-04-09
1007Russia2025-04-19
1008Argentina2025-04-27
1009United Kingdom2025-04-21
1010Australia2025-04-24
1011Canada2025-04-19
1012Japan2025-04-08
1013India2025-04-29
1014Spain2025-04-10
1015Argentina2025-04-07
1016Germany2025-04-09
1017Germany2025-04-29
1018Brazil2025-04-03
1019United Kingdom2025-04-08
1020Argentina2025-04-04
1021France2025-04-20
1022India2025-04-04
1023Australia2025-04-09
1024Germany2025-04-04
1025United Kingdom2025-04-25
1026Argentina2025-04-20
1027Italy2025-04-19
1028Spain2025-04-21
1029France2025-04-03
1030United Kingdom2025-04-02
1031Spain2025-04-29
1032Canada2025-04-01
1033Spain2025-04-20
1034Russia2025-04-06
1035United Kingdom2025-04-16
1036Australia2025-04-09
1037Japan2025-04-02
1038Canada2025-04-27
1039United Kingdom2025-04-24
1040Japan2025-04-13
1041Argentina2025-04-22
1042Russia2025-04-09
1043United Kingdom2025-04-07
1044Canada2025-04-19
1045Argentina2025-04-16
1046Japan2025-04-14
1047Canada2025-04-19
1048Argentina2025-04-10
1049Germany2025-04-09

On-Demand Data

NameIdCountryDate
Antonio L Garufi1000Russia2025-04-17
Aruna H Malet1001Spain2025-04-25
Emily Y Flosi1002Italy2025-04-01
Aditya M Flosi1003United Kingdom2025-04-04
Leja V Caldarera1004Germany2025-04-27
Smith V Marrier1005Japan2025-04-26
Claire W Butt1006Canada2025-04-20
Faith E Perin1007Germany2025-04-14
Rodrigues M Paprocki1008Germany2025-04-11
Morrow S Schemmer1009France2025-04-22
Sinclair S Shinko1010India2025-04-27
Izzy V Wieser1011Spain2025-04-27
Kaitlin B Waycott1012Brazil2025-04-26
Greenwood O Bolognia1013Germany2025-04-21
Aika O Caldarera1014Brazil2025-04-27
Kadeem R Dilliard1015Russia2025-04-18
Cody J Butt1016India2025-04-07
Emily P Vocelka1017Japan2025-04-04
Ricardo E Campain1018Russia2025-04-20
Izzy A Shinko1019Japan2025-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey U RulapaughFranceAmy Elsner PROPOSAL
Greenwood E GillianBrazilIvan Magalhaes NEGOTIATION
Maria O CaudyRussiaIoni Bowcher NEGOTIATION
Silvio I NickaIndiaBernardo Dominic UNQUALIFIED
Maria F CampainUnited KingdomStephen Shaw UNQUALIFIED
Munro D FollerGermanyStephen Shaw NEGOTIATION
Adams W RulapaughUnited KingdomIoni Bowcher RENEWAL
Julie Z FollerItalyStephen Shaw QUALIFIED
Tony O FlosiBrazilElwin Sharvill RENEWAL
Cody O CaudyBrazilOnyama Limba RENEWAL
Aika L DarakjyArgentinaAsiya Javayant QUALIFIED
Salvatore S SchemmerIndiaAmy Elsner PROPOSAL
Sinclair R CampainUnited KingdomAnna Fali PROPOSAL
Smith K VocelkaSpainStephen Shaw PROPOSAL
Mujtaba R CaldareraAustraliaAmy Elsner RENEWAL
Munro G TollnerAustraliaOnyama Limba NEW
Salvatore O SlusarskiItalyIoni Bowcher QUALIFIED
Nicolas B GlickFranceStephen Shaw NEGOTIATION
Ivar E OldroydCanadaXuxue Feng UNQUALIFIED
Clifford K BriddickSpainIvan Magalhaes NEW
Francesco G WieserCanadaIoni Bowcher RENEWAL
Costa L VocelkaBrazilOnyama Limba UNQUALIFIED
Wickens S WaycottAustraliaOnyama Limba NEGOTIATION
Chavez U WaycottSpainElwin Sharvill PROPOSAL
Antonio L AlbaresCanadaIvan Magalhaes RENEWAL
Sinclair J CaudySpainIoni Bowcher PROPOSAL
Rodrigues N OldroydGermanyAmy Elsner QUALIFIED
Antonio N RoysterItalyAnna Fali NEW
Maisha F NickaFranceBernardo Dominic UNQUALIFIED
Darci Q KolmetzSpainIvan Magalhaes NEW
Salvatore X SchemmerArgentinaBernardo Dominic NEW
Aika C VocelkaArgentinaStephen Shaw QUALIFIED
Leja X GlickAustraliaBernardo Dominic QUALIFIED
Kaitlin D SaylorsIndiaOnyama Limba UNQUALIFIED
Maria X GarufiRussiaBernardo Dominic QUALIFIED
Juan J IturbideCanadaIoni Bowcher NEW
David Y DoeBrazilAnna Fali RENEWAL
Rodrigues E AlbaresUnited KingdomStephen Shaw RENEWAL
Kaitlin H BologniaFranceElwin Sharvill NEW
Adams X SlusarskiGermanyStephen Shaw 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>