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
Arvin A WaycottIndiaAsiya Javayant NEW
Tony V FerenczItalyOnyama Limba QUALIFIED
Adams O CaldareraBrazilIvan Magalhaes QUALIFIED
Clifford T ChuiGermanyAsiya Javayant NEGOTIATION
Greenwood N GlickGermanyXuxue Feng NEGOTIATION
Jones S AmigonIndiaAmy Elsner UNQUALIFIED
Greenwood D FigeroaIndiaIoni Bowcher NEW
Alejandro N StensethItalyElwin Sharvill NEGOTIATION
Darci H GarufiCanadaElwin Sharvill RENEWAL
Octavia I SchemmerAustraliaXuxue Feng RENEWAL
Stacey X PerinCanadaAnna Fali NEGOTIATION
Aditya S SaylorsItalyOnyama Limba UNQUALIFIED
Arvin M MarrierGermanyBernardo Dominic NEW
David S NickaSpainStephen Shaw QUALIFIED
James H ShinkoGermanyOnyama Limba RENEWAL
Smith F SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues S VocelkaSpainAmy Elsner NEW
Darci F DoeGermanyStephen Shaw PROPOSAL
Ivar V CaldareraSpainIvan Magalhaes RENEWAL
Arvin Y MorascaUnited KingdomXuxue Feng RENEWAL
Greenwood J ButtJapanIvan Magalhaes NEW
Stacey F GauchoAustraliaIvan Magalhaes QUALIFIED
Antonio U SergiRussiaBernardo Dominic QUALIFIED
Salvatore Z CampainCanadaIvan Magalhaes PROPOSAL
Cody O MaletRussiaXuxue Feng UNQUALIFIED
Rodrigues I FerenczRussiaAmy Elsner QUALIFIED
Misaki A NickaIndiaStephen Shaw NEW
Jefferson A StensethRussiaAmy Elsner RENEWAL
Isabel S InouyeRussiaOnyama Limba RENEWAL
Julie E IturbideJapanAsiya Javayant NEW
Adams N CampainCanadaXuxue Feng UNQUALIFIED
Munro G NestleIndiaBernardo Dominic NEGOTIATION
Nicolas K GauchoAustraliaAmy Elsner QUALIFIED
Julie S OldroydJapanIvan Magalhaes UNQUALIFIED
Salvatore M CaudyJapanElwin Sharvill NEW
Mujtaba H MorascaRussiaAsiya Javayant UNQUALIFIED
Salvatore O NickaAustraliaStephen Shaw RENEWAL
Aruna P GillianAustraliaStephen Shaw RENEWAL
Ricardo S RulapaughArgentinaBernardo Dominic NEW
Cody T InouyeJapanIoni Bowcher QUALIFIED
Morrow W SaylorsGermanyBernardo Dominic PROPOSAL
Murillo N GillianFranceElwin Sharvill RENEWAL
Rodrigues K StensethBrazilElwin Sharvill QUALIFIED
Sinclair H BologniaSpainIoni Bowcher PROPOSAL
Aditya V FigeroaIndiaIoni Bowcher PROPOSAL
Faith U KolmetzJapanIoni Bowcher PROPOSAL
Cody X AmigonGermanyIvan Magalhaes UNQUALIFIED
Munro H FigeroaAustraliaXuxue Feng UNQUALIFIED
Aika U AlbaresAustraliaBernardo Dominic NEGOTIATION
Clifford Z PoquetteFranceElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson V ChuiBrazilXuxue Feng PROPOSAL
Juan N OldroydItalyBernardo Dominic RENEWAL
Jones B PoquetteAustraliaBernardo Dominic RENEWAL
Tony H GillianArgentinaAmy Elsner QUALIFIED
Jennifer M ShinkoFranceOnyama Limba UNQUALIFIED
Leon D ButtAustraliaBernardo Dominic PROPOSAL
Leja O ShinkoArgentinaAmy Elsner NEW
Isabel F BowleyBrazilBernardo Dominic QUALIFIED
Izzy L OldroydJapanStephen Shaw RENEWAL
Greenwood L MaletAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley A BologniaArgentina2026-07-31Benton, John B Jr NEGOTIATION52Xuxue Feng
1001Maria I StensethAustralia2026-08-19Printing Dimensions NEGOTIATION26Asiya Javayant
1002Aika C OstroskyRussia2026-07-29Feltz Printing Service UNQUALIFIED40Elwin Sharvill
1003Cody G ShinkoSpain2026-08-10Chapman, Ross E Esq PROPOSAL59Asiya Javayant
1004Chavez C DoeRussia2026-07-27Rousseaux, Michael Esq NEW0Xuxue Feng
1005Kadeem H GlickAustralia2026-08-19Chanay, Jeffrey A Esq UNQUALIFIED26Xuxue Feng
1006Aika L InouyeArgentina2026-08-06Rangoni Of Florence NEW65Anna Fali
1007Chavez P AmigonBrazil2026-08-13Commercial Press NEGOTIATION63Stephen Shaw
1008Alejandro U GarufiUnited Kingdom2026-08-13Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1009Jefferson R AmigonBrazil2026-07-25Feiner Bros NEW4Ivan Magalhaes
1010Misaki A TollnerSpain2026-08-03Morlong Associates QUALIFIED73Ivan Magalhaes
1011Aika Z RoysterAustralia2026-08-03Feiner Bros QUALIFIED32Elwin Sharvill
1012Alejandro W DoeJapan2026-08-06Rousseaux, Michael Esq PROPOSAL83Asiya Javayant
1013Maisha V KuskoSpain2026-08-02Chapman, Ross E Esq UNQUALIFIED62Amy Elsner
1014Aditya C NickaBrazil2026-08-10Buckley Miller Wright RENEWAL61Xuxue Feng
1015Aika T AmigonJapan2026-08-06Dorl, James J Esq NEW20Amy Elsner
1016Jones N GlickUnited Kingdom2026-08-11Buckley Miller Wright PROPOSAL60Xuxue Feng
1017Mujtaba I DarakjySpain2026-08-05Printing Dimensions NEGOTIATION83Xuxue Feng
1018Mujtaba G OstroskyGermany2026-07-26King, Christopher A Esq NEGOTIATION43Ioni Bowcher
1019Nicolas A FollerUnited Kingdom2026-08-09Rangoni Of Florence UNQUALIFIED45Bernardo Dominic
1020Darci C VocelkaBrazil2026-08-20Feltz Printing Service NEGOTIATION91Xuxue Feng
1021Stacey B MarrierCanada2026-07-29King, Christopher A Esq QUALIFIED44Ivan Magalhaes
1022Aruna O GarufiBrazil2026-07-27Printing Dimensions RENEWAL26Elwin Sharvill
1023Tony M StockhamRussia2026-08-21Commercial Press RENEWAL12Amy Elsner
1024Alejandro Y SchemmerAustralia2026-08-04Buckley Miller Wright QUALIFIED93Xuxue Feng
1025Greenwood M PoquetteGermany2026-08-14Dorl, James J Esq QUALIFIED93Anna Fali
1026Alejandro Z KuskoRussia2026-08-17Dorl, James J Esq UNQUALIFIED46Onyama Limba
1027Antonio X GarufiUnited Kingdom2026-08-12Dorl, James J Esq UNQUALIFIED72Asiya Javayant
1028David K GarufiUnited Kingdom2026-08-01Chanay, Jeffrey A Esq NEGOTIATION6Onyama Limba
1029Emily C GillianSpain2026-08-07Benton, John B Jr NEW91Anna Fali
1030Mujtaba D GarufiGermany2026-07-29Truhlar And Truhlar Attys QUALIFIED23Onyama Limba
1031Julie S WhobreyItaly2026-08-20Chanay, Jeffrey A Esq PROPOSAL21Xuxue Feng
1032Salvatore Y RulapaughJapan2026-08-16Benton, John B Jr PROPOSAL96Amy Elsner
1033Maisha H MacleadIndia2026-07-30Morlong Associates RENEWAL61Asiya Javayant
1034Aditya J WhobreyIndia2026-08-18Chemel, James L Cpa QUALIFIED20Anna Fali
1035Claire O BriddickIndia2026-07-25Chemel, James L Cpa UNQUALIFIED19Bernardo Dominic
1036Ricardo B PerinItaly2026-08-09Chapman, Ross E Esq NEGOTIATION24Bernardo Dominic
1037Emily Q CaudyFrance2026-07-29Rousseaux, Michael Esq UNQUALIFIED14Onyama Limba
1038Octavia X RulapaughAustralia2026-08-13Printing Dimensions PROPOSAL3Amy Elsner
1039Maria R SergiArgentina2026-08-14Printing Dimensions PROPOSAL59Onyama Limba
1040Claire H BologniaGermany2026-08-10Truhlar And Truhlar Attys PROPOSAL54Anna Fali
1041Morrow T BologniaIndia2026-08-16Feiner Bros NEW82Ivan Magalhaes
1042Alejandro U FollerCanada2026-08-18Dorl, James J Esq PROPOSAL15Xuxue Feng
1043Silvio K KolmetzIndia2026-08-02Rousseaux, Michael Esq UNQUALIFIED51Ioni Bowcher
1044Tony M GlickIndia2026-08-21Commercial Press QUALIFIED4Anna Fali
1045Arvin D InouyeItaly2026-07-25Benton, John B Jr NEW40Xuxue Feng
1046Ivar X FlosiArgentina2026-07-28Chemel, James L Cpa UNQUALIFIED51Onyama Limba
1047Stacey J MarrierItaly2026-07-29Morlong Associates NEW59Bernardo Dominic
1048Maria D ButtGermany2026-08-08Chemel, James L Cpa QUALIFIED86Stephen Shaw
1049Kadeem T CampainRussia2026-08-07Rangoni Of Florence NEGOTIATION36Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson F CaldareraSpainAmy Elsner RENEWAL
Aruna R WaycottArgentinaAnna Fali QUALIFIED
Aruna K AmigonFranceElwin Sharvill NEGOTIATION
Wickens F NestleRussiaStephen Shaw PROPOSAL
Morrow E DoeItalyStephen Shaw NEW
Alejandro B CaldareraCanadaElwin Sharvill NEW
James K MaletArgentinaOnyama Limba NEGOTIATION
Morrow U KolmetzArgentinaStephen Shaw UNQUALIFIED
Maria N KuskoFranceXuxue Feng PROPOSAL
Izzy V AmigonIndiaAmy Elsner RENEWAL
Murillo Y PoquetteUnited KingdomOnyama Limba PROPOSAL
Aika O RimJapanIvan Magalhaes NEW
Ashley T DarakjyJapanStephen Shaw QUALIFIED
Ricardo E FerenczArgentinaOnyama Limba PROPOSAL
Claire G DoeGermanyElwin Sharvill UNQUALIFIED
Smith U WaycottArgentinaOnyama Limba QUALIFIED
Maisha G GlickCanadaAsiya Javayant RENEWAL
Emily Z GlickItalyBernardo Dominic RENEWAL
Aruna D StensethUnited KingdomElwin Sharvill NEW
Johnson W InouyeIndiaAmy Elsner PROPOSAL
Stacey J GauchoAustraliaIvan Magalhaes UNQUALIFIED
Ricardo D MarrierIndiaAsiya Javayant QUALIFIED
Aika J SergiFranceIvan Magalhaes PROPOSAL
Ivar Q WieserArgentinaOnyama Limba UNQUALIFIED
Jones S CaudyGermanyBernardo Dominic UNQUALIFIED
Rodrigues F PaprockiCanadaAsiya Javayant PROPOSAL
Clifford S BowleySpainAsiya Javayant UNQUALIFIED
Arvin V IturbideIndiaXuxue Feng NEGOTIATION
Ricardo M FigeroaBrazilXuxue Feng UNQUALIFIED
Izzy S FollerUnited KingdomOnyama Limba RENEWAL
Mujtaba B PaprockiArgentinaXuxue Feng RENEWAL
Aika Q PoquetteUnited KingdomOnyama Limba NEW
Leja K AlbaresItalyAsiya Javayant NEGOTIATION
Aika X MarrierBrazilAmy Elsner NEW
Aruna V PoquetteJapanAsiya Javayant RENEWAL
Kaitlin X BriddickArgentinaIvan Magalhaes PROPOSAL
Smith C PaprockiCanadaAmy Elsner RENEWAL
Darci Y FlosiBrazilIvan Magalhaes PROPOSAL
Deepesh J FollerGermanyElwin Sharvill NEW
Maria Q AmigonArgentinaOnyama Limba QUALIFIED
Maisha I AlbaresSpainIvan Magalhaes QUALIFIED
Jeanfrancois I PaprockiBrazilElwin Sharvill QUALIFIED
Adams O MacleadUnited KingdomXuxue Feng NEGOTIATION
Silvio U FlosiCanadaStephen Shaw NEGOTIATION
Isabel O CaldareraBrazilBernardo Dominic RENEWAL
James B NestleSpainOnyama Limba NEW
Jeanfrancois P RutaFranceXuxue Feng NEW
Chavez J SlusarskiItalyIoni Bowcher NEW
Darci C SchemmerItalyElwin Sharvill RENEWAL
James W SergiItalyXuxue Feng RENEWAL
Frozen Columns
Name
Kadeem R Ruta
Kaitlin H Kusko
Costa H Malet
Alejandro U Wieser
Kadeem J Darakjy
Ashley A Foller
David U Poquette
David O Nestle
Izzy V Venere
Salvatore B Ferencz
Maria E Bowley
James B Doe
Jefferson Z Briddick
Deepesh N Foller
Morrow E Butt
Emily S Oldroyd
Jones J Nicka
Aika D Stenseth
Aditya B Caudy
Deepesh X Malet
Arvin F Wieser
Ricardo U Malet
Leja A Butt
Jeanfrancois B Gaucho
Wickens D Foller
Salvatore Y Bowley
Faith G Figeroa
Alejandro D Saylors
Adams Z Venere
Ivar M Kolmetz
Jennifer N Figeroa
Jennifer I Caudy
Ricardo W Morasca
Cody K Nestle
Alejandro M Shinko
Ivar T Rulapaugh
Faith W Venere
Arvin A Schemmer
Smith M Poquette
Deepesh P Darakjy
Jeanfrancois X Doe
Jefferson A Chui
Kadeem N Tollner
Morrow R Ferencz
Misaki Q Inouye
Ashley Z Kusko
Leon B Marrier
Munro R Maclead
Nicolas G Tollner
Octavia Z Butt
IdCountryDate
1000Germany2026-07-27
1001United Kingdom2026-08-02
1002Australia2026-08-07
1003Italy2026-07-26
1004Argentina2026-07-31
1005United Kingdom2026-08-08
1006Canada2026-08-21
1007Japan2026-08-11
1008Canada2026-08-17
1009Germany2026-08-15
1010Germany2026-08-03
1011Russia2026-08-19
1012Canada2026-08-02
1013United Kingdom2026-07-28
1014Australia2026-08-13
1015Australia2026-08-12
1016Brazil2026-08-13
1017Australia2026-07-24
1018India2026-08-08
1019Australia2026-07-27
1020Japan2026-08-19
1021Italy2026-08-02
1022Japan2026-08-15
1023India2026-08-13
1024Spain2026-08-09
1025Germany2026-07-28
1026France2026-07-26
1027Italy2026-07-28
1028Russia2026-07-24
1029Canada2026-07-26
1030Spain2026-08-02
1031India2026-08-16
1032Japan2026-08-17
1033France2026-08-02
1034Argentina2026-08-12
1035Italy2026-08-19
1036Canada2026-08-11
1037Brazil2026-08-05
1038United Kingdom2026-08-02
1039India2026-07-29
1040India2026-08-22
1041Canada2026-07-30
1042Australia2026-07-27
1043Italy2026-08-17
1044France2026-08-10
1045Australia2026-08-14
1046United Kingdom2026-07-30
1047France2026-07-28
1048Germany2026-08-20
1049Germany2026-08-19

On-Demand Data

NameIdCountryDate
Aruna W Foller1000France2026-08-18
James F Albares1001India2026-08-13
Morrow F Vocelka1002Italy2026-07-30
Ashley K Stenseth1003United Kingdom2026-07-29
Antonio I Kolmetz1004Spain2026-08-02
Stacey H Flosi1005Argentina2026-08-22
Ricardo E Morasca1006Japan2026-08-17
Murillo J Foller1007Canada2026-08-05
Wickens T Caldarera1008India2026-07-29
Leja G Poquette1009Argentina2026-08-18
Jones I Marrier1010Italy2026-07-30
Stacey D Stockham1011Spain2026-08-07
Clifford X Stenseth1012Australia2026-08-12
Cody P Morasca1013Japan2026-08-18
Aditya G Royster1014Italy2026-07-25
Silvio C Albares1015India2026-08-07
Darci E Maclead1016Argentina2026-08-21
Antonio P Dilliard1017Germany2026-08-16
Ivar I Rim1018Argentina2026-08-22
Mayumi I Ruta1019Argentina2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley F BologniaIndiaBernardo Dominic QUALIFIED
Salvatore B FollerBrazilBernardo Dominic UNQUALIFIED
Arvin E TollnerItalyElwin Sharvill UNQUALIFIED
Jeanfrancois I AmigonUnited KingdomAnna Fali NEW
Kadeem A OstroskyJapanBernardo Dominic NEGOTIATION
Leja M InouyeAustraliaBernardo Dominic PROPOSAL
Morrow N ShinkoArgentinaBernardo Dominic QUALIFIED
Alejandro X OldroydCanadaAnna Fali UNQUALIFIED
Murillo B FerenczCanadaIoni Bowcher QUALIFIED
Faith U MarrierIndiaXuxue Feng UNQUALIFIED
Murillo N TollnerAustraliaStephen Shaw QUALIFIED
Isabel F DoeFranceIoni Bowcher NEGOTIATION
Aditya N GlickItalyXuxue Feng RENEWAL
Stacey C VocelkaRussiaIvan Magalhaes NEGOTIATION
Johnson G SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Greenwood Q PaprockiAustraliaAmy Elsner UNQUALIFIED
Smith Q WhobreyGermanyAnna Fali NEGOTIATION
Alejandro Z SaylorsCanadaOnyama Limba NEW
Rodrigues H StensethSpainStephen Shaw RENEWAL
Sinclair Y BowleyUnited KingdomAmy Elsner NEW
Deepesh Q FerenczJapanAmy Elsner PROPOSAL
Mayumi G DarakjyGermanyAmy Elsner NEW
Mujtaba Q BriddickUnited KingdomAnna Fali NEGOTIATION
Ashley N FerenczFranceAsiya Javayant UNQUALIFIED
David Q ShinkoUnited KingdomAsiya Javayant QUALIFIED
Murillo S MaletGermanyXuxue Feng RENEWAL
Rodrigues U RimUnited KingdomIvan Magalhaes PROPOSAL
David B SchemmerFranceAsiya Javayant QUALIFIED
Aditya J OldroydUnited KingdomAnna Fali NEW
Ricardo U BologniaJapanBernardo Dominic RENEWAL
Kaitlin I SlusarskiBrazilStephen Shaw NEGOTIATION
Johnson E SchemmerAustraliaIoni Bowcher UNQUALIFIED
Wickens I DarakjySpainAmy Elsner PROPOSAL
Mayumi Y KuskoAustraliaOnyama Limba PROPOSAL
Murillo C WhobreyUnited KingdomBernardo Dominic PROPOSAL
Morrow R MaletIndiaBernardo Dominic NEGOTIATION
Tony K GlickSpainStephen Shaw PROPOSAL
Rodrigues Y MacleadSpainElwin Sharvill PROPOSAL
Faith Q MacleadFranceIvan Magalhaes PROPOSAL
Mujtaba Q MaletRussiaStephen Shaw NEW

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