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
Cody D RulapaughArgentinaAnna Fali UNQUALIFIED
Kaitlin V FerenczBrazilStephen Shaw NEW
Greenwood F RutaRussiaAsiya Javayant RENEWAL
Salvatore Y CampainGermanyElwin Sharvill PROPOSAL
Aruna Q CaldareraIndiaIvan Magalhaes UNQUALIFIED
Chavez A ButtBrazilElwin Sharvill PROPOSAL
Julie U KuskoJapanStephen Shaw UNQUALIFIED
Mujtaba K FerenczIndiaBernardo Dominic NEW
Julie O SchemmerFranceStephen Shaw NEGOTIATION
Deepesh U ShinkoSpainXuxue Feng NEW
Jeanfrancois W GauchoBrazilAmy Elsner UNQUALIFIED
Leon Z FigeroaJapanXuxue Feng RENEWAL
Alejandro C IturbideRussiaOnyama Limba NEGOTIATION
Greenwood C FollerUnited KingdomStephen Shaw RENEWAL
Rodrigues H WaycottGermanyIoni Bowcher NEGOTIATION
Smith R StensethIndiaAnna Fali PROPOSAL
Jones Y DoeArgentinaXuxue Feng QUALIFIED
Darci Z TollnerSpainAsiya Javayant NEW
Smith F PerinCanadaElwin Sharvill PROPOSAL
Izzy J GillianUnited KingdomIoni Bowcher RENEWAL
Aruna Z MaletRussiaStephen Shaw QUALIFIED
Maria M GarufiSpainAmy Elsner UNQUALIFIED
Nicolas L DarakjyItalyAmy Elsner PROPOSAL
Kaitlin N NestleSpainBernardo Dominic NEGOTIATION
Tony Y OstroskyJapanAnna Fali NEGOTIATION
Johnson D FigeroaFranceAnna Fali NEW
Aruna P DilliardGermanyElwin Sharvill NEGOTIATION
Stacey N AmigonUnited KingdomOnyama Limba QUALIFIED
Johnson T WaycottArgentinaAmy Elsner PROPOSAL
Ivar U GarufiBrazilStephen Shaw RENEWAL
David E SergiCanadaStephen Shaw QUALIFIED
Rodrigues R AmigonJapanBernardo Dominic QUALIFIED
Jones P CaldareraFranceAnna Fali NEW
Leja H NestleCanadaAmy Elsner UNQUALIFIED
Isabel L RoysterFranceBernardo Dominic UNQUALIFIED
Costa Q KuskoBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois Y KolmetzJapanElwin Sharvill NEGOTIATION
Jefferson D InouyeRussiaAsiya Javayant RENEWAL
Arvin U SchemmerBrazilBernardo Dominic NEW
Arvin X StensethCanadaBernardo Dominic QUALIFIED
Kaitlin O StensethItalyAmy Elsner NEW
Murillo C FollerRussiaStephen Shaw UNQUALIFIED
Ivar A OldroydItalyAmy Elsner RENEWAL
Izzy N FigeroaItalyXuxue Feng NEGOTIATION
Misaki F MarrierCanadaAmy Elsner PROPOSAL
Morrow H PaprockiJapanBernardo Dominic UNQUALIFIED
Alejandro B GauchoRussiaStephen Shaw UNQUALIFIED
Mayumi U AmigonFranceOnyama Limba UNQUALIFIED
Juan H SchemmerJapanStephen Shaw PROPOSAL
Arvin G ShinkoRussiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody B DilliardCanadaStephen Shaw RENEWAL
Ricardo A ButtUnited KingdomIvan Magalhaes QUALIFIED
David N MaletArgentinaStephen Shaw UNQUALIFIED
Isabel R RutaGermanyElwin Sharvill RENEWAL
Silvio A MaletIndiaOnyama Limba QUALIFIED
Mujtaba Q PoquetteRussiaOnyama Limba UNQUALIFIED
Isabel M MaletRussiaOnyama Limba NEGOTIATION
Faith W CampainAustraliaStephen Shaw NEGOTIATION
Izzy Q CaudyItalyIoni Bowcher RENEWAL
Izzy B WieserGermanyAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo S VocelkaFrance2025-05-21Truhlar And Truhlar Attys UNQUALIFIED62Anna Fali
1001Rodrigues K MaletAustralia2025-06-02Rousseaux, Michael Esq NEW45Xuxue Feng
1002Sinclair L GlickItaly2025-06-14Morlong Associates UNQUALIFIED28Elwin Sharvill
1003Costa S BologniaSpain2025-06-02King, Christopher A Esq UNQUALIFIED33Xuxue Feng
1004Maria K PoquetteJapan2025-05-27Chanay, Jeffrey A Esq QUALIFIED20Ioni Bowcher
1005Mayumi O RoysterGermany2025-06-12Rangoni Of Florence NEGOTIATION26Stephen Shaw
1006Ricardo C BowleyJapan2025-06-07King, Christopher A Esq NEW96Xuxue Feng
1007Smith M NickaGermany2025-06-06Feiner Bros RENEWAL91Asiya Javayant
1008David Z GarufiRussia2025-06-02Dorl, James J Esq NEGOTIATION29Amy Elsner
1009David Z BriddickArgentina2025-06-13Printing Dimensions UNQUALIFIED51Ioni Bowcher
1010Izzy M AmigonJapan2025-06-10Commercial Press NEW11Ioni Bowcher
1011Munro A SaylorsUnited Kingdom2025-06-13Benton, John B Jr UNQUALIFIED18Onyama Limba
1012Smith R StensethRussia2025-05-31Rousseaux, Michael Esq RENEWAL42Ivan Magalhaes
1013Morrow X FerenczAustralia2025-06-10Rousseaux, Michael Esq PROPOSAL0Bernardo Dominic
1014Maisha A NestleGermany2025-06-03Chanay, Jeffrey A Esq NEW81Xuxue Feng
1015Arvin J WaycottUnited Kingdom2025-06-01Morlong Associates RENEWAL14Stephen Shaw
1016Alejandro D FerenczCanada2025-06-01Feltz Printing Service UNQUALIFIED3Ivan Magalhaes
1017Misaki R MacleadRussia2025-05-18Rangoni Of Florence UNQUALIFIED88Bernardo Dominic
1018Greenwood D MorascaJapan2025-06-13Commercial Press RENEWAL72Onyama Limba
1019Kaitlin C RutaArgentina2025-06-08Printing Dimensions UNQUALIFIED91Ioni Bowcher
1020Johnson X AlbaresUnited Kingdom2025-06-03Chapman, Ross E Esq RENEWAL17Elwin Sharvill
1021Johnson S ChuiJapan2025-05-29Chanay, Jeffrey A Esq PROPOSAL98Anna Fali
1022Ricardo T DarakjyBrazil2025-06-14Buckley Miller Wright PROPOSAL9Ioni Bowcher
1023Claire J PoquetteArgentina2025-06-07Chapman, Ross E Esq RENEWAL77Ioni Bowcher
1024Adams J WieserFrance2025-06-01Feltz Printing Service UNQUALIFIED70Ioni Bowcher
1025Salvatore E DarakjyRussia2025-05-29King, Christopher A Esq QUALIFIED83Bernardo Dominic
1026Ashley J InouyeSpain2025-06-05Benton, John B Jr NEW45Elwin Sharvill
1027Munro W KolmetzJapan2025-05-17Feiner Bros UNQUALIFIED36Anna Fali
1028Sinclair C FollerCanada2025-05-21King, Christopher A Esq UNQUALIFIED7Amy Elsner
1029James R NestleUnited Kingdom2025-06-05Commercial Press PROPOSAL80Onyama Limba
1030Mayumi Q ButtCanada2025-06-11Buckley Miller Wright QUALIFIED81Xuxue Feng
1031Octavia W CaldareraFrance2025-06-13Commercial Press NEGOTIATION73Ivan Magalhaes
1032Murillo Q TollnerBrazil2025-05-29Chanay, Jeffrey A Esq NEGOTIATION5Ioni Bowcher
1033Costa E CaudyFrance2025-05-30Dorl, James J Esq RENEWAL63Anna Fali
1034Mayumi W NickaItaly2025-05-16Feiner Bros RENEWAL91Onyama Limba
1035Emily O GillianJapan2025-06-05Morlong Associates RENEWAL86Anna Fali
1036Mayumi T ChuiJapan2025-05-23Dorl, James J Esq RENEWAL5Xuxue Feng
1037Arvin Z CaldareraCanada2025-06-05Buckley Miller Wright RENEWAL59Xuxue Feng
1038Wickens V OstroskyAustralia2025-05-30Printing Dimensions NEGOTIATION95Elwin Sharvill
1039Maria T KolmetzItaly2025-05-27Chemel, James L Cpa RENEWAL97Ioni Bowcher
1040Clifford H DarakjyAustralia2025-05-27Truhlar And Truhlar Attys QUALIFIED73Amy Elsner
1041Izzy R CampainItaly2025-05-21Truhlar And Truhlar Attys QUALIFIED25Xuxue Feng
1042Izzy D TollnerAustralia2025-05-19Truhlar And Truhlar Attys QUALIFIED35Asiya Javayant
1043Costa M MaletArgentina2025-05-24Feltz Printing Service NEW58Asiya Javayant
1044Tony A TollnerIndia2025-06-12Rangoni Of Florence PROPOSAL2Xuxue Feng
1045Stacey L InouyeUnited Kingdom2025-05-22Feiner Bros RENEWAL89Elwin Sharvill
1046Cody T WieserSpain2025-05-21Feltz Printing Service NEGOTIATION45Bernardo Dominic
1047Maria O SlusarskiUnited Kingdom2025-06-10Printing Dimensions PROPOSAL59Ioni Bowcher
1048Leon P VenereSpain2025-05-17Truhlar And Truhlar Attys NEW22Elwin Sharvill
1049Faith K CaldareraBrazil2025-05-24Benton, John B Jr RENEWAL95Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens X BriddickJapanOnyama Limba NEGOTIATION
Costa O SlusarskiArgentinaBernardo Dominic NEGOTIATION
James J StockhamItalyStephen Shaw NEW
Chavez C FigeroaBrazilStephen Shaw RENEWAL
Jones U AlbaresGermanyIoni Bowcher UNQUALIFIED
Morrow C PoquetteAustraliaStephen Shaw PROPOSAL
Aruna K MaletJapanXuxue Feng PROPOSAL
Tony V FlosiRussiaIoni Bowcher NEW
Mujtaba M IturbideIndiaOnyama Limba QUALIFIED
Clifford F WieserArgentinaElwin Sharvill RENEWAL
David M FerenczGermanyAmy Elsner PROPOSAL
Tony V CampainJapanXuxue Feng RENEWAL
Octavia G FollerSpainBernardo Dominic NEW
Kadeem G GarufiJapanIvan Magalhaes NEGOTIATION
Clifford T PaprockiSpainXuxue Feng QUALIFIED
Greenwood X DarakjyBrazilAsiya Javayant PROPOSAL
Maisha G BriddickJapanAnna Fali UNQUALIFIED
Juan V MacleadRussiaAsiya Javayant UNQUALIFIED
Jefferson X GarufiGermanyIoni Bowcher NEGOTIATION
Nicolas T FollerSpainOnyama Limba QUALIFIED
Sinclair D VocelkaUnited KingdomIvan Magalhaes RENEWAL
Leon I FollerAustraliaStephen Shaw NEGOTIATION
Johnson K GarufiGermanyAsiya Javayant RENEWAL
Johnson K CampainSpainAsiya Javayant UNQUALIFIED
Sinclair G GillianJapanAsiya Javayant PROPOSAL
Chavez T MaletBrazilOnyama Limba UNQUALIFIED
Rodrigues I RimAustraliaIoni Bowcher PROPOSAL
Kadeem J OldroydArgentinaIoni Bowcher QUALIFIED
Murillo W GarufiArgentinaIoni Bowcher UNQUALIFIED
Jones D VenereUnited KingdomElwin Sharvill NEGOTIATION
Izzy H SchemmerRussiaOnyama Limba QUALIFIED
Tony I VocelkaBrazilStephen Shaw QUALIFIED
Octavia X NickaGermanyOnyama Limba QUALIFIED
Darci W AmigonSpainBernardo Dominic NEGOTIATION
Emily O BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore R NickaFranceOnyama Limba PROPOSAL
Tony P PoquetteFranceElwin Sharvill RENEWAL
Adams J AlbaresGermanyAmy Elsner RENEWAL
Ivar T NickaAustraliaAmy Elsner NEW
Juan Q RoysterArgentinaIoni Bowcher NEGOTIATION
Leja X FollerCanadaAnna Fali NEW
Leon D WaycottUnited KingdomAnna Fali NEGOTIATION
Aruna T OldroydSpainAmy Elsner RENEWAL
Sinclair M MacleadBrazilAnna Fali QUALIFIED
Mujtaba Z SchemmerRussiaAsiya Javayant UNQUALIFIED
Antonio E MorascaRussiaIoni Bowcher UNQUALIFIED
Juan D PerinFranceStephen Shaw QUALIFIED
Morrow T DarakjyJapanIoni Bowcher UNQUALIFIED
Morrow B PoquetteFranceAsiya Javayant UNQUALIFIED
Munro I IturbideGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Leon H Garufi
Murillo P Gillian
Kadeem K Ferencz
Costa V Whobrey
Costa E Darakjy
Silvio W Stockham
Izzy Y Foller
Adams L Stockham
Claire I Stenseth
Faith Y Bowley
Aruna I Wieser
Kaitlin Q Sergi
Maria S Poquette
Juan N Inouye
Jefferson G Caudy
Salvatore D Poquette
Rodrigues V Slusarski
Jones H Bowley
Juan C Nestle
Sinclair M Butt
Alejandro Q Wieser
Nicolas L Inouye
Sinclair D Ferencz
Mayumi U Caldarera
Arvin D Stenseth
Isabel Z Caldarera
Maria S Paprocki
Darci Q Caldarera
Darci H Nicka
Julie G Whobrey
Jones V Garufi
Jefferson F Maclead
Stacey J Figeroa
Antonio G Vocelka
Leon N Amigon
Rodrigues A Malet
Claire V Tollner
Francesco J Glick
Jones Q Morasca
Claire H Flosi
Maria W Stenseth
Rodrigues S Foller
Tony N Tollner
Chavez N Whobrey
Ricardo N Stockham
Deepesh P Stockham
Kadeem X Gillian
Clifford N Malet
Costa J Glick
Salvatore K Bowley
IdCountryDate
1000Brazil2025-05-22
1001Germany2025-06-01
1002India2025-06-12
1003United Kingdom2025-05-25
1004India2025-06-05
1005France2025-05-27
1006Argentina2025-06-13
1007Germany2025-05-21
1008Brazil2025-05-27
1009India2025-06-03
1010Germany2025-06-04
1011France2025-06-12
1012Russia2025-05-21
1013Argentina2025-06-03
1014United Kingdom2025-06-01
1015Australia2025-05-17
1016Japan2025-06-04
1017Germany2025-05-28
1018Argentina2025-06-08
1019United Kingdom2025-05-31
1020Brazil2025-06-07
1021Australia2025-05-25
1022Russia2025-05-22
1023India2025-06-01
1024France2025-05-28
1025Spain2025-05-19
1026Argentina2025-06-08
1027Japan2025-06-14
1028Japan2025-05-17
1029Australia2025-05-29
1030Spain2025-05-20
1031Japan2025-05-25
1032France2025-06-14
1033India2025-05-23
1034United Kingdom2025-06-04
1035Argentina2025-06-13
1036Germany2025-05-25
1037Canada2025-05-18
1038Russia2025-05-24
1039Germany2025-05-27
1040Spain2025-06-11
1041Brazil2025-05-16
1042Australia2025-06-10
1043France2025-05-17
1044Canada2025-06-06
1045Australia2025-05-16
1046Argentina2025-06-14
1047United Kingdom2025-05-26
1048Canada2025-06-13
1049Canada2025-05-28

On-Demand Data

NameIdCountryDate
Kaitlin D Dilliard1000Italy2025-05-21
Sinclair S Ruta1001Germany2025-05-16
Izzy M Malet1002India2025-06-01
Jefferson N Stenseth1003Spain2025-05-16
Deepesh K Poquette1004Japan2025-06-07
Johnson C Morasca1005France2025-06-02
Jones V Nicka1006Canada2025-05-26
Octavia Q Venere1007United Kingdom2025-06-05
Nicolas H Chui1008Australia2025-06-08
Stacey H Poquette1009Spain2025-06-08
Cody M Albares1010United Kingdom2025-06-05
Greenwood X Bowley1011France2025-05-27
Smith G Malet1012Russia2025-05-26
Rodrigues P Flosi1013Spain2025-06-03
Faith I Malet1014Russia2025-06-13
Julie G Chui1015Germany2025-05-27
Julie F Gillian1016Brazil2025-05-16
Ashley X Ferencz1017Germany2025-06-10
Francesco U Oldroyd1018Brazil2025-05-30
Francesco Z Tollner1019Russia2025-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar I MacleadJapanXuxue Feng NEW
Claire B VenereIndiaOnyama Limba UNQUALIFIED
Juan J DilliardCanadaIoni Bowcher UNQUALIFIED
Ivar K FerenczUnited KingdomAmy Elsner QUALIFIED
Jennifer G PaprockiAustraliaStephen Shaw NEGOTIATION
Izzy W StockhamIndiaStephen Shaw PROPOSAL
Antonio O CaldareraUnited KingdomAmy Elsner PROPOSAL
Nicolas I FlosiItalyAmy Elsner UNQUALIFIED
Octavia U BologniaUnited KingdomAsiya Javayant NEW
Leon G VocelkaAustraliaIvan Magalhaes RENEWAL
Cody D RutaUnited KingdomAsiya Javayant PROPOSAL
Greenwood K RimUnited KingdomIvan Magalhaes RENEWAL
Juan J RutaGermanyStephen Shaw UNQUALIFIED
Jennifer I CaldareraIndiaIoni Bowcher NEGOTIATION
Aditya B GauchoUnited KingdomStephen Shaw QUALIFIED
Leon D StockhamJapanAsiya Javayant RENEWAL
Johnson J MorascaBrazilAsiya Javayant RENEWAL
Salvatore K NestleUnited KingdomStephen Shaw PROPOSAL
Arvin S KuskoItalyIvan Magalhaes PROPOSAL
Nicolas A WaycottCanadaOnyama Limba RENEWAL
Tony W GillianGermanyAsiya Javayant NEW
Claire W OldroydAustraliaElwin Sharvill NEW
David R MorascaAustraliaAnna Fali NEGOTIATION
Munro V ShinkoSpainIvan Magalhaes RENEWAL
Ricardo M GlickAustraliaElwin Sharvill PROPOSAL
Izzy W MarrierBrazilIvan Magalhaes QUALIFIED
Mayumi M BowleyRussiaBernardo Dominic PROPOSAL
Deepesh V GillianItalyElwin Sharvill QUALIFIED
Emily F FlosiCanadaOnyama Limba UNQUALIFIED
Maria W PaprockiIndiaBernardo Dominic NEGOTIATION
Misaki A FerenczArgentinaIvan Magalhaes NEW
Tony P ButtArgentinaBernardo Dominic UNQUALIFIED
Aditya O MarrierBrazilAnna Fali NEW
Darci T MorascaGermanyXuxue Feng UNQUALIFIED
Mayumi I FlosiIndiaBernardo Dominic NEW
Jeanfrancois H GlickRussiaAmy Elsner QUALIFIED
Aditya H SlusarskiCanadaIoni Bowcher QUALIFIED
Antonio B ChuiUnited KingdomBernardo Dominic QUALIFIED
Faith F VenereAustraliaIvan Magalhaes QUALIFIED
Costa P MaletJapanAsiya Javayant QUALIFIED

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