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
Claire H IturbideSpainAmy Elsner UNQUALIFIED
Claire T GillianFranceAmy Elsner NEW
Julie X NickaArgentinaAnna Fali UNQUALIFIED
Maisha X DilliardJapanElwin Sharvill NEGOTIATION
Jones J CampainItalyElwin Sharvill UNQUALIFIED
Cody F RoysterCanadaBernardo Dominic PROPOSAL
Leon S MorascaUnited KingdomBernardo Dominic RENEWAL
Maisha H BowleyAustraliaIvan Magalhaes PROPOSAL
Smith Y BologniaIndiaOnyama Limba QUALIFIED
Jeanfrancois C FerenczSpainStephen Shaw NEW
Jones L FlosiJapanOnyama Limba PROPOSAL
Mayumi B GlickFranceXuxue Feng RENEWAL
Ivar E PaprockiSpainStephen Shaw QUALIFIED
Smith K WaycottCanadaOnyama Limba QUALIFIED
Juan V ShinkoSpainElwin Sharvill NEGOTIATION
Aditya X DilliardSpainElwin Sharvill PROPOSAL
Francesco E VocelkaGermanyXuxue Feng QUALIFIED
Salvatore P ChuiAustraliaOnyama Limba QUALIFIED
Sinclair T BriddickFranceAsiya Javayant NEW
Mujtaba B RulapaughUnited KingdomOnyama Limba QUALIFIED
Sinclair O SchemmerFranceOnyama Limba RENEWAL
Silvio G StensethJapanElwin Sharvill UNQUALIFIED
Salvatore O FerenczArgentinaXuxue Feng QUALIFIED
Silvio L NickaCanadaElwin Sharvill NEW
Faith I MorascaUnited KingdomStephen Shaw UNQUALIFIED
Sinclair P KuskoFranceAnna Fali RENEWAL
David U RimUnited KingdomElwin Sharvill RENEWAL
Antonio N AlbaresFranceBernardo Dominic RENEWAL
Rodrigues D TollnerSpainBernardo Dominic PROPOSAL
Smith M MaletGermanyOnyama Limba UNQUALIFIED
Darci K GauchoFranceAmy Elsner NEGOTIATION
Alejandro W NickaIndiaStephen Shaw NEGOTIATION
Faith V PerinArgentinaXuxue Feng UNQUALIFIED
Kadeem C SergiRussiaIoni Bowcher NEW
Leja D MacleadFranceIoni Bowcher QUALIFIED
Leja N GauchoIndiaAsiya Javayant RENEWAL
Smith O WaycottFranceAsiya Javayant PROPOSAL
Jennifer I SchemmerArgentinaIoni Bowcher PROPOSAL
Maisha J GarufiFranceOnyama Limba QUALIFIED
Julie D InouyeArgentinaIoni Bowcher RENEWAL
Aika O RoysterCanadaBernardo Dominic NEGOTIATION
Emily P RimCanadaXuxue Feng NEW
James B RimArgentinaXuxue Feng UNQUALIFIED
Wickens T ShinkoBrazilXuxue Feng NEW
Murillo F RimJapanIvan Magalhaes NEW
Tony H SlusarskiBrazilElwin Sharvill QUALIFIED
Claire G PerinCanadaXuxue Feng PROPOSAL
Stacey V BowleyRussiaStephen Shaw UNQUALIFIED
Jefferson S IturbideBrazilAmy Elsner NEW
Ashley T BologniaItalyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Julie T PoquetteCanadaIoni Bowcher UNQUALIFIED
Mayumi I TollnerJapanElwin Sharvill RENEWAL
Jefferson D CaudyItalyAmy Elsner QUALIFIED
Juan K GlickGermanyAmy Elsner RENEWAL
Sinclair B RutaFranceElwin Sharvill PROPOSAL
Octavia Z CaudyRussiaIoni Bowcher RENEWAL
Claire E RoysterCanadaElwin Sharvill NEGOTIATION
Faith Q WaycottGermanyAsiya Javayant UNQUALIFIED
Emily V StockhamJapanIvan Magalhaes NEW
Faith X GauchoSpainAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams E OstroskyGermany2026-08-09Chemel, James L Cpa RENEWAL66Ioni Bowcher
1001Jeanfrancois E RoysterGermany2026-07-20Dorl, James J Esq QUALIFIED63Xuxue Feng
1002Antonio P ButtGermany2026-07-26Printing Dimensions QUALIFIED47Amy Elsner
1003Ricardo Z MarrierIndia2026-07-29Feiner Bros UNQUALIFIED96Anna Fali
1004Darci F MacleadGermany2026-07-22Dorl, James J Esq RENEWAL53Ivan Magalhaes
1005Adams U PerinUnited Kingdom2026-07-12Rangoni Of Florence NEW95Ioni Bowcher
1006Aika S GlickIndia2026-07-21Feiner Bros QUALIFIED31Bernardo Dominic
1007Aika I FlosiArgentina2026-07-30Printing Dimensions NEGOTIATION18Amy Elsner
1008Costa L BowleyCanada2026-07-25Truhlar And Truhlar Attys NEGOTIATION38Onyama Limba
1009Jones X VocelkaUnited Kingdom2026-07-13Morlong Associates NEW80Ioni Bowcher
1010Mayumi I ChuiUnited Kingdom2026-08-10Benton, John B Jr RENEWAL46Ioni Bowcher
1011Silvio Q WieserArgentina2026-07-27Rousseaux, Michael Esq QUALIFIED56Ioni Bowcher
1012Aditya X DarakjyUnited Kingdom2026-07-24King, Christopher A Esq NEGOTIATION32Amy Elsner
1013Munro R CampainGermany2026-07-15Benton, John B Jr NEGOTIATION53Ivan Magalhaes
1014Ivar C FigeroaArgentina2026-08-01Morlong Associates PROPOSAL8Onyama Limba
1015Darci Z WaycottRussia2026-07-12Buckley Miller Wright QUALIFIED11Ioni Bowcher
1016Jeanfrancois K StockhamItaly2026-07-22Printing Dimensions NEW39Elwin Sharvill
1017Isabel C WhobreyIndia2026-07-29Morlong Associates NEGOTIATION9Ioni Bowcher
1018Faith Y SaylorsItaly2026-07-16Feltz Printing Service QUALIFIED14Anna Fali
1019Munro B VocelkaRussia2026-07-20Rangoni Of Florence NEW44Amy Elsner
1020Leon X GlickRussia2026-07-12Rousseaux, Michael Esq NEGOTIATION12Ivan Magalhaes
1021Rodrigues U PaprockiRussia2026-07-13Rousseaux, Michael Esq NEW50Ivan Magalhaes
1022Kadeem C GlickItaly2026-07-13Commercial Press NEW48Stephen Shaw
1023Mujtaba M FlosiArgentina2026-07-13Feiner Bros QUALIFIED57Onyama Limba
1024Nicolas N AmigonFrance2026-07-12King, Christopher A Esq UNQUALIFIED27Asiya Javayant
1025Alejandro J ChuiAustralia2026-08-02Feiner Bros PROPOSAL1Ivan Magalhaes
1026Francesco Q RutaArgentina2026-08-01Chapman, Ross E Esq RENEWAL83Xuxue Feng
1027Cody F AmigonBrazil2026-07-26Buckley Miller Wright PROPOSAL2Anna Fali
1028Chavez N TollnerIndia2026-07-15Printing Dimensions PROPOSAL46Xuxue Feng
1029Alejandro L GlickRussia2026-07-26Printing Dimensions UNQUALIFIED22Ioni Bowcher
1030Morrow B RulapaughGermany2026-08-02Truhlar And Truhlar Attys QUALIFIED37Anna Fali
1031James A WieserSpain2026-07-18Benton, John B Jr NEGOTIATION62Anna Fali
1032Antonio I SaylorsSpain2026-07-24Benton, John B Jr NEW57Anna Fali
1033Octavia K DarakjyCanada2026-07-28Morlong Associates PROPOSAL86Bernardo Dominic
1034Darci Y WhobreyGermany2026-07-17Feiner Bros NEW64Onyama Limba
1035Jones G PaprockiItaly2026-07-28Chapman, Ross E Esq NEW36Ivan Magalhaes
1036Wickens T DoeSpain2026-08-08Morlong Associates RENEWAL29Amy Elsner
1037Julie K RoysterFrance2026-07-14Feiner Bros UNQUALIFIED58Onyama Limba
1038Julie F SlusarskiRussia2026-07-25Chapman, Ross E Esq UNQUALIFIED71Onyama Limba
1039Jefferson Y GillianJapan2026-07-31Feiner Bros PROPOSAL95Bernardo Dominic
1040Clifford A NickaSpain2026-08-05Rangoni Of Florence QUALIFIED89Ioni Bowcher
1041Cody C FlosiSpain2026-07-25King, Christopher A Esq UNQUALIFIED27Stephen Shaw
1042Leon P BriddickArgentina2026-07-14Buckley Miller Wright RENEWAL58Ioni Bowcher
1043Francesco Y RulapaughSpain2026-07-21Truhlar And Truhlar Attys UNQUALIFIED47Ioni Bowcher
1044Ashley C CampainArgentina2026-07-23Chapman, Ross E Esq NEW1Amy Elsner
1045Faith S AmigonBrazil2026-07-29Rousseaux, Michael Esq RENEWAL22Amy Elsner
1046Jones A ButtIndia2026-08-02Printing Dimensions RENEWAL24Anna Fali
1047Izzy A MaletBrazil2026-07-22Rangoni Of Florence PROPOSAL83Asiya Javayant
1048Claire E PaprockiJapan2026-07-13Printing Dimensions QUALIFIED55Xuxue Feng
1049Johnson G MaletUnited Kingdom2026-07-17King, Christopher A Esq NEGOTIATION9Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois I BriddickItalyBernardo Dominic NEW
Mayumi F DarakjyFranceIvan Magalhaes QUALIFIED
Morrow N ButtItalyAnna Fali UNQUALIFIED
Cody M KolmetzFranceElwin Sharvill QUALIFIED
Maria X GarufiJapanAsiya Javayant QUALIFIED
Maria W GillianRussiaBernardo Dominic NEGOTIATION
Arvin M VenereCanadaXuxue Feng PROPOSAL
Kaitlin N GarufiFranceElwin Sharvill PROPOSAL
Antonio M DarakjyIndiaAsiya Javayant RENEWAL
Misaki L CampainGermanyIoni Bowcher PROPOSAL
James E RulapaughBrazilAnna Fali RENEWAL
Aika A VenereCanadaElwin Sharvill UNQUALIFIED
Isabel R FigeroaIndiaAsiya Javayant RENEWAL
Antonio G InouyeFranceElwin Sharvill RENEWAL
Rodrigues Z DoeRussiaXuxue Feng PROPOSAL
Jennifer G ShinkoArgentinaAsiya Javayant RENEWAL
Munro C NickaUnited KingdomAmy Elsner NEGOTIATION
Aditya Y PerinBrazilAmy Elsner NEGOTIATION
Deepesh C MaletCanadaAnna Fali NEW
Kaitlin F CaldareraAustraliaIvan Magalhaes NEW
Darci X MaletRussiaAnna Fali PROPOSAL
Jefferson M PoquetteArgentinaIoni Bowcher NEGOTIATION
Aditya D AmigonFranceIvan Magalhaes PROPOSAL
Isabel N FlosiBrazilAnna Fali QUALIFIED
Costa P BriddickItalyAsiya Javayant UNQUALIFIED
Chavez S MarrierGermanyXuxue Feng RENEWAL
Maisha V FollerFranceAmy Elsner NEW
Munro E KolmetzFranceAnna Fali UNQUALIFIED
Faith O StockhamGermanyXuxue Feng PROPOSAL
Julie L FollerArgentinaXuxue Feng QUALIFIED
Smith E DilliardCanadaAsiya Javayant UNQUALIFIED
Mujtaba I GauchoSpainIoni Bowcher UNQUALIFIED
Greenwood K OstroskyBrazilAnna Fali UNQUALIFIED
James B KuskoSpainAsiya Javayant NEGOTIATION
Jefferson K ShinkoBrazilAmy Elsner PROPOSAL
Isabel Z TollnerAustraliaOnyama Limba NEGOTIATION
Alejandro V PerinJapanBernardo Dominic NEW
Deepesh D GarufiFranceElwin Sharvill QUALIFIED
Aditya K StockhamItalyIoni Bowcher QUALIFIED
Maisha V SergiRussiaAsiya Javayant UNQUALIFIED
Cody Z StensethAustraliaIvan Magalhaes NEGOTIATION
Ivar L PaprockiFranceAmy Elsner UNQUALIFIED
Adams U RutaUnited KingdomIvan Magalhaes NEW
David C CaldareraGermanyIvan Magalhaes NEW
Murillo G PerinGermanyAsiya Javayant PROPOSAL
Juan E GauchoCanadaElwin Sharvill QUALIFIED
Morrow O DilliardBrazilElwin Sharvill UNQUALIFIED
James U VocelkaItalyXuxue Feng RENEWAL
Aruna B MacleadAustraliaIvan Magalhaes PROPOSAL
Salvatore X RimFranceAmy Elsner QUALIFIED
Frozen Columns
Name
Jeanfrancois F Darakjy
Stacey K Chui
Deepesh M Saylors
Faith G Waycott
Francesco M Campain
Claire K Butt
Rodrigues G Garufi
Stacey R Briddick
Emily R Bolognia
Jennifer D Kolmetz
Kadeem G Gillian
Darci X Bolognia
Salvatore X Caudy
Mujtaba C Tollner
Misaki Y Glick
Stacey C Perin
Aika J Glick
Morrow Q Chui
Francesco U Nicka
Chavez U Foller
James W Gaucho
Misaki K Albares
Darci T Caudy
James O Chui
Ashley L Malet
Mayumi J Poquette
Clifford N Rulapaugh
Mujtaba T Stenseth
Jones J Tollner
Stacey T Briddick
Clifford D Ruta
Jennifer P Kusko
Ivar Q Vocelka
David I Garufi
Darci T Bolognia
Nicolas W Maclead
Stacey V Bolognia
Morrow G Shinko
Morrow A Whobrey
Johnson G Darakjy
Chavez D Gillian
David B Bowley
Misaki V Vocelka
Leon L Foller
Silvio L Darakjy
Maria D Glick
Octavia Q Albares
Misaki W Nestle
Cody N Chui
Izzy H Malet
IdCountryDate
1000Brazil2026-07-15
1001Italy2026-07-28
1002Japan2026-08-04
1003Australia2026-08-07
1004Germany2026-07-20
1005India2026-08-10
1006Italy2026-07-22
1007Australia2026-08-06
1008Italy2026-08-08
1009India2026-07-26
1010Canada2026-08-04
1011Brazil2026-07-27
1012Japan2026-07-27
1013Argentina2026-08-03
1014Australia2026-08-07
1015United Kingdom2026-07-22
1016Canada2026-07-20
1017Germany2026-07-23
1018Spain2026-07-20
1019Russia2026-07-26
1020Spain2026-07-26
1021India2026-07-28
1022Spain2026-07-13
1023Germany2026-08-04
1024Canada2026-07-21
1025Australia2026-07-12
1026Canada2026-08-07
1027Canada2026-07-20
1028Spain2026-07-28
1029Argentina2026-08-01
1030Canada2026-07-23
1031Canada2026-07-28
1032Italy2026-08-04
1033Canada2026-08-09
1034Australia2026-08-05
1035Canada2026-07-31
1036France2026-07-18
1037Argentina2026-08-01
1038Spain2026-07-25
1039Brazil2026-07-14
1040Germany2026-07-19
1041Spain2026-08-10
1042Argentina2026-08-03
1043India2026-07-17
1044Russia2026-07-24
1045Canada2026-08-10
1046Australia2026-07-24
1047Russia2026-08-01
1048Argentina2026-07-29
1049Germany2026-07-25

On-Demand Data

NameIdCountryDate
Chavez F Rulapaugh1000India2026-07-27
Johnson B Doe1001United Kingdom2026-08-07
Juan U Rulapaugh1002Spain2026-07-23
Clifford C Rim1003Argentina2026-07-22
Ivar G Venere1004Spain2026-07-14
Maria V Flosi1005United Kingdom2026-08-05
Smith R Doe1006Italy2026-07-15
Emily U Marrier1007Italy2026-07-18
Mayumi H Poquette1008Argentina2026-07-13
Ivar U Saylors1009Argentina2026-08-10
Sinclair W Gillian1010Italy2026-07-24
Wickens X Ruta1011France2026-07-28
Munro N Whobrey1012Germany2026-07-12
Leon S Tollner1013Australia2026-07-20
Aditya A Ruta1014Germany2026-07-27
Stacey G Caldarera1015Russia2026-07-15
Clifford R Maclead1016Argentina2026-08-03
Jennifer Q Figeroa1017France2026-07-18
Morrow C Whobrey1018Australia2026-08-05
Morrow N Gaucho1019Spain2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie P PoquetteJapanIvan Magalhaes NEW
Aruna F GauchoJapanStephen Shaw PROPOSAL
Morrow I PerinSpainElwin Sharvill RENEWAL
Tony Z WhobreyGermanyAsiya Javayant UNQUALIFIED
Johnson Q BologniaArgentinaAmy Elsner PROPOSAL
David M FerenczAustraliaIoni Bowcher NEGOTIATION
Tony Z RutaUnited KingdomStephen Shaw NEGOTIATION
Ivar R SergiCanadaBernardo Dominic NEGOTIATION
Jennifer P BriddickItalyXuxue Feng NEW
Rodrigues E PaprockiBrazilAsiya Javayant PROPOSAL
Juan D RimAustraliaElwin Sharvill QUALIFIED
Tony P FollerFranceAsiya Javayant QUALIFIED
Nicolas M PaprockiAustraliaOnyama Limba RENEWAL
Julie Z WaycottGermanyAnna Fali NEW
Cody T RoysterFranceAnna Fali QUALIFIED
Jennifer X VocelkaSpainOnyama Limba RENEWAL
Ricardo T FollerIndiaAmy Elsner PROPOSAL
Murillo U GillianAustraliaXuxue Feng RENEWAL
Rodrigues I NestleIndiaBernardo Dominic RENEWAL
Deepesh G NestleItalyIoni Bowcher UNQUALIFIED
Francesco P FigeroaIndiaAsiya Javayant NEGOTIATION
David B AlbaresBrazilAsiya Javayant UNQUALIFIED
Sinclair R MacleadItalyElwin Sharvill RENEWAL
Ashley L NestleAustraliaAnna Fali NEGOTIATION
Smith H SlusarskiIndiaIoni Bowcher NEGOTIATION
Ricardo M RimItalyXuxue Feng PROPOSAL
Munro W KolmetzBrazilOnyama Limba PROPOSAL
Sinclair C GillianAustraliaOnyama Limba NEGOTIATION
Chavez I GarufiGermanyElwin Sharvill RENEWAL
David Q VenereItalyOnyama Limba PROPOSAL
Jones Y WhobreyJapanAnna Fali RENEWAL
Munro O InouyeRussiaStephen Shaw RENEWAL
Sinclair Q SaylorsRussiaIoni Bowcher RENEWAL
Maisha V KuskoCanadaElwin Sharvill NEGOTIATION
Izzy D GillianJapanStephen Shaw QUALIFIED
Silvio D KuskoFranceBernardo Dominic PROPOSAL
David A BowleyGermanyBernardo Dominic QUALIFIED
Jennifer N ButtSpainAsiya Javayant NEW
Aditya W TollnerFranceAmy Elsner NEW
Johnson P CaldareraCanadaOnyama Limba 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>