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
Ricardo D NickaUnited KingdomAsiya Javayant RENEWAL
Maisha B IturbideArgentinaAmy Elsner PROPOSAL
Wickens I KolmetzBrazilAsiya Javayant QUALIFIED
Smith O RoysterJapanIvan Magalhaes UNQUALIFIED
Faith P FollerJapanAmy Elsner RENEWAL
Faith T OldroydFranceElwin Sharvill NEW
Munro C BriddickBrazilStephen Shaw NEW
Claire C BologniaArgentinaIoni Bowcher QUALIFIED
Aika Z AmigonIndiaOnyama Limba NEGOTIATION
Murillo M GillianGermanyStephen Shaw NEGOTIATION
Greenwood D BriddickUnited KingdomOnyama Limba NEW
Smith I WaycottGermanyStephen Shaw NEGOTIATION
Julie B NickaArgentinaBernardo Dominic PROPOSAL
Aika E DarakjyBrazilAsiya Javayant NEGOTIATION
Kaitlin M AlbaresSpainOnyama Limba RENEWAL
Arvin X FerenczCanadaElwin Sharvill PROPOSAL
Aditya I CampainCanadaAsiya Javayant PROPOSAL
Ivar L BologniaJapanStephen Shaw UNQUALIFIED
Mujtaba B AmigonBrazilAsiya Javayant RENEWAL
Jefferson Y FollerUnited KingdomAsiya Javayant NEW
Jennifer Z PaprockiCanadaAmy Elsner QUALIFIED
Alejandro T OstroskyGermanyAsiya Javayant RENEWAL
Juan J KuskoBrazilElwin Sharvill QUALIFIED
Faith T RoysterGermanyBernardo Dominic QUALIFIED
Rodrigues A SchemmerCanadaElwin Sharvill NEW
Aditya N VenereFranceAnna Fali PROPOSAL
Nicolas P SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Aruna L SlusarskiUnited KingdomElwin Sharvill NEW
Mayumi O FlosiJapanIoni Bowcher UNQUALIFIED
Clifford F ShinkoCanadaAsiya Javayant NEGOTIATION
Wickens N PaprockiBrazilAmy Elsner NEGOTIATION
Jefferson X MorascaJapanBernardo Dominic UNQUALIFIED
Murillo J SergiRussiaAsiya Javayant RENEWAL
Kaitlin G DoeItalyIoni Bowcher UNQUALIFIED
Julie V MacleadBrazilAmy Elsner RENEWAL
Alejandro J DoeIndiaAsiya Javayant UNQUALIFIED
Alejandro M SchemmerFranceStephen Shaw PROPOSAL
James A RimGermanyAnna Fali PROPOSAL
Juan B ButtItalyStephen Shaw RENEWAL
Aika T NestleGermanyElwin Sharvill NEW
Morrow E MacleadFranceAsiya Javayant UNQUALIFIED
Cody C TollnerItalyAsiya Javayant QUALIFIED
Jeanfrancois Z RulapaughItalyIoni Bowcher UNQUALIFIED
Antonio E ShinkoArgentinaIvan Magalhaes RENEWAL
Maria N DarakjyIndiaIvan Magalhaes QUALIFIED
Clifford Y CampainArgentinaIvan Magalhaes QUALIFIED
Mujtaba S GarufiCanadaAmy Elsner UNQUALIFIED
Maisha S ChuiGermanyAnna Fali PROPOSAL
Silvio P RulapaughIndiaIvan Magalhaes QUALIFIED
Leon L MaletFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro X SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Maria F WhobreyUnited KingdomIoni Bowcher NEW
Ricardo T NickaUnited KingdomIoni Bowcher QUALIFIED
Sinclair J NestleGermanyAnna Fali NEW
Deepesh T FigeroaArgentinaAnna Fali PROPOSAL
Cody T InouyeBrazilXuxue Feng RENEWAL
Octavia F ButtIndiaXuxue Feng NEW
Alejandro O PoquetteIndiaIoni Bowcher RENEWAL
Antonio V KuskoFranceElwin Sharvill RENEWAL
Aruna M SchemmerCanadaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa F CaldareraArgentina2026-06-22Feiner Bros PROPOSAL14Stephen Shaw
1001Leja T VenereJapan2026-06-19Benton, John B Jr PROPOSAL89Anna Fali
1002Alejandro L GauchoBrazil2026-06-25Morlong Associates NEW99Elwin Sharvill
1003Aruna M AmigonIndia2026-07-09Dorl, James J Esq PROPOSAL93Onyama Limba
1004Aruna N GauchoUnited Kingdom2026-06-26Chapman, Ross E Esq NEW36Asiya Javayant
1005Greenwood O FlosiBrazil2026-06-15Rangoni Of Florence QUALIFIED23Asiya Javayant
1006Leja A GillianCanada2026-06-30Commercial Press RENEWAL37Anna Fali
1007Silvio G FerenczSpain2026-06-21Morlong Associates UNQUALIFIED57Ioni Bowcher
1008Sinclair F TollnerIndia2026-06-28Benton, John B Jr UNQUALIFIED95Ivan Magalhaes
1009Jefferson M RutaSpain2026-06-24Buckley Miller Wright UNQUALIFIED44Ioni Bowcher
1010Morrow X OstroskyJapan2026-06-26Dorl, James J Esq UNQUALIFIED28Stephen Shaw
1011Aika K OldroydGermany2026-06-28Chanay, Jeffrey A Esq PROPOSAL14Asiya Javayant
1012David G MarrierGermany2026-06-21Benton, John B Jr RENEWAL36Ioni Bowcher
1013Johnson G CaldareraAustralia2026-06-29Commercial Press NEW48Onyama Limba
1014Alejandro P RulapaughSpain2026-06-21Buckley Miller Wright PROPOSAL82Anna Fali
1015Ivar L PaprockiFrance2026-07-06Morlong Associates UNQUALIFIED94Anna Fali
1016Aika A DilliardArgentina2026-06-28Buckley Miller Wright NEW86Stephen Shaw
1017Sinclair D InouyeRussia2026-07-11Benton, John B Jr QUALIFIED93Onyama Limba
1018Claire Y SlusarskiAustralia2026-07-05Chanay, Jeffrey A Esq QUALIFIED39Stephen Shaw
1019Leja H KolmetzIndia2026-06-15Chemel, James L Cpa QUALIFIED37Asiya Javayant
1020Silvio C SergiAustralia2026-07-07Buckley Miller Wright NEGOTIATION33Xuxue Feng
1021Kadeem G RimSpain2026-06-19Feltz Printing Service PROPOSAL65Bernardo Dominic
1022Aika J GauchoBrazil2026-07-01Rousseaux, Michael Esq NEGOTIATION2Bernardo Dominic
1023Emily D OstroskyGermany2026-07-11Printing Dimensions PROPOSAL89Bernardo Dominic
1024Silvio I SchemmerArgentina2026-06-27Chanay, Jeffrey A Esq QUALIFIED37Asiya Javayant
1025Salvatore U GillianIndia2026-06-28Chemel, James L Cpa QUALIFIED37Asiya Javayant
1026Izzy O CaudyFrance2026-06-23Truhlar And Truhlar Attys UNQUALIFIED25Stephen Shaw
1027Leon I NestleItaly2026-06-29Rangoni Of Florence NEGOTIATION28Onyama Limba
1028Tony N AmigonRussia2026-06-30Printing Dimensions NEW46Ivan Magalhaes
1029Emily Y GarufiItaly2026-06-16Buckley Miller Wright PROPOSAL75Ioni Bowcher
1030Johnson J CaldareraCanada2026-06-27Commercial Press QUALIFIED36Amy Elsner
1031Rodrigues K NestleIndia2026-06-19Rousseaux, Michael Esq PROPOSAL98Ioni Bowcher
1032James G GauchoGermany2026-06-15Chemel, James L Cpa NEGOTIATION70Asiya Javayant
1033Arvin P StockhamItaly2026-06-27Chapman, Ross E Esq NEGOTIATION83Onyama Limba
1034Wickens X GarufiFrance2026-06-29Dorl, James J Esq QUALIFIED0Stephen Shaw
1035Ivar Q KolmetzIndia2026-07-10Commercial Press RENEWAL94Xuxue Feng
1036Wickens U StockhamSpain2026-06-14Dorl, James J Esq RENEWAL36Ioni Bowcher
1037Costa N SaylorsItaly2026-06-30Buckley Miller Wright QUALIFIED62Stephen Shaw
1038Costa R VocelkaBrazil2026-06-16King, Christopher A Esq PROPOSAL93Amy Elsner
1039Izzy K SlusarskiFrance2026-06-25Rangoni Of Florence NEGOTIATION37Ioni Bowcher
1040Salvatore K DoeUnited Kingdom2026-07-07Truhlar And Truhlar Attys PROPOSAL3Onyama Limba
1041Johnson B ShinkoIndia2026-06-26Rousseaux, Michael Esq NEGOTIATION92Stephen Shaw
1042Maria D BowleyItaly2026-06-23Feltz Printing Service QUALIFIED52Elwin Sharvill
1043Deepesh B RimFrance2026-07-08Rangoni Of Florence RENEWAL90Onyama Limba
1044Aruna P InouyeGermany2026-06-25Dorl, James J Esq PROPOSAL28Amy Elsner
1045Stacey V CampainGermany2026-06-24Rangoni Of Florence NEW66Asiya Javayant
1046Leon V OldroydCanada2026-07-08Rangoni Of Florence RENEWAL48Anna Fali
1047Leon C MaletUnited Kingdom2026-07-07Rangoni Of Florence NEW4Bernardo Dominic
1048David X TollnerAustralia2026-07-08Chapman, Ross E Esq QUALIFIED8Onyama Limba
1049Ivar E SergiSpain2026-07-07Rangoni Of Florence UNQUALIFIED80Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie R CampainIndiaElwin Sharvill NEW
Tony X FerenczUnited KingdomBernardo Dominic NEGOTIATION
Kadeem J BologniaGermanyIoni Bowcher UNQUALIFIED
Wickens I DoeArgentinaXuxue Feng NEW
Antonio F DoeIndiaStephen Shaw QUALIFIED
Juan Z MorascaFranceBernardo Dominic UNQUALIFIED
Maria S FigeroaJapanElwin Sharvill NEW
Izzy J PaprockiBrazilBernardo Dominic RENEWAL
Mayumi U PoquetteCanadaAnna Fali QUALIFIED
Jones X OldroydArgentinaAnna Fali UNQUALIFIED
Isabel Y PerinBrazilAsiya Javayant QUALIFIED
Ivar T PoquetteGermanyAnna Fali PROPOSAL
Clifford T GarufiUnited KingdomAnna Fali PROPOSAL
Maria A VenereAustraliaAnna Fali NEGOTIATION
Kadeem Q PerinIndiaStephen Shaw QUALIFIED
Sinclair Y FigeroaIndiaIvan Magalhaes QUALIFIED
Maria N MacleadCanadaAnna Fali PROPOSAL
Costa P InouyeSpainStephen Shaw QUALIFIED
Faith I InouyeIndiaAmy Elsner UNQUALIFIED
Murillo L SlusarskiAustraliaXuxue Feng UNQUALIFIED
Sinclair A PaprockiCanadaBernardo Dominic UNQUALIFIED
Leja S AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Faith H PoquetteGermanyXuxue Feng NEGOTIATION
Isabel H StockhamArgentinaXuxue Feng UNQUALIFIED
Silvio T CaldareraJapanAsiya Javayant UNQUALIFIED
Costa V BriddickCanadaBernardo Dominic QUALIFIED
Clifford Y VenereArgentinaAnna Fali NEW
Claire Q DarakjyAustraliaAsiya Javayant RENEWAL
Alejandro J DilliardSpainOnyama Limba RENEWAL
Costa S FerenczAustraliaElwin Sharvill PROPOSAL
Maria O AlbaresBrazilXuxue Feng PROPOSAL
Jennifer A WieserFranceIvan Magalhaes RENEWAL
Adams G StockhamUnited KingdomIoni Bowcher NEW
Julie V DilliardGermanyBernardo Dominic PROPOSAL
Ricardo I BowleyCanadaXuxue Feng NEGOTIATION
Aditya Z FollerUnited KingdomStephen Shaw PROPOSAL
Julie L GarufiItalyAsiya Javayant PROPOSAL
Nicolas C MaletIndiaOnyama Limba NEW
Nicolas U DilliardFranceAnna Fali NEW
Alejandro D IturbideBrazilIvan Magalhaes PROPOSAL
Kaitlin R MorascaGermanyAmy Elsner RENEWAL
Ricardo N GauchoItalyOnyama Limba QUALIFIED
Clifford D ButtSpainIoni Bowcher QUALIFIED
Tony T GauchoBrazilAmy Elsner PROPOSAL
Arvin S OstroskyCanadaBernardo Dominic RENEWAL
Ashley A FerenczJapanAnna Fali PROPOSAL
Adams Y ChuiArgentinaAnna Fali PROPOSAL
Salvatore S ChuiFranceStephen Shaw QUALIFIED
Ivar W MarrierIndiaOnyama Limba RENEWAL
Isabel D ShinkoJapanAsiya Javayant NEGOTIATION
Frozen Columns
Name
Ivar L Bolognia
Salvatore F Campain
Cody I Kolmetz
Leja W Kolmetz
Chavez E Wieser
Costa P Perin
Ricardo S Shinko
Silvio D Garufi
Jennifer E Ferencz
Rodrigues S Dilliard
Francesco Z Doe
Morrow Q Marrier
Octavia X Whobrey
Leja T Kusko
Jennifer T Rulapaugh
Izzy W Inouye
Salvatore B Gillian
Johnson B Waycott
Silvio W Bolognia
Kadeem J Kusko
Kadeem E Briddick
Sinclair S Gaucho
Leja F Flosi
Maisha X Oldroyd
Francesco K Inouye
Leja D Stenseth
Johnson Q Dilliard
Alejandro F Gillian
Antonio D Caldarera
Jeanfrancois B Vocelka
Maisha T Wieser
Faith H Perin
Tony B Darakjy
Maria H Chui
Tony G Sergi
Emily K Doe
Johnson Z Doe
Salvatore N Doe
Nicolas G Chui
Maria H Inouye
Morrow H Wieser
Jeanfrancois T Tollner
Stacey F Vocelka
Murillo B Sergi
Aika Z Garufi
Deepesh O Sergi
Alejandro M Nestle
Juan E Oldroyd
Isabel Y Sergi
Misaki H Bolognia
IdCountryDate
1000United Kingdom2026-06-17
1001United Kingdom2026-07-04
1002United Kingdom2026-06-17
1003Spain2026-06-29
1004India2026-07-10
1005Brazil2026-07-07
1006United Kingdom2026-06-15
1007United Kingdom2026-06-27
1008Australia2026-06-25
1009Spain2026-07-06
1010United Kingdom2026-06-19
1011Spain2026-06-15
1012Brazil2026-07-11
1013France2026-07-06
1014Japan2026-06-14
1015Germany2026-06-26
1016Argentina2026-06-29
1017Russia2026-07-08
1018Japan2026-06-19
1019Germany2026-07-08
1020United Kingdom2026-07-07
1021Italy2026-06-22
1022Australia2026-07-06
1023Australia2026-06-23
1024Spain2026-07-10
1025United Kingdom2026-07-08
1026Russia2026-07-04
1027Italy2026-06-15
1028Germany2026-07-09
1029France2026-06-22
1030Japan2026-07-09
1031France2026-07-03
1032Australia2026-06-25
1033Australia2026-06-24
1034Australia2026-07-04
1035Australia2026-07-01
1036United Kingdom2026-06-22
1037Japan2026-07-09
1038India2026-06-23
1039Russia2026-06-30
1040Spain2026-06-22
1041Argentina2026-07-05
1042Russia2026-07-08
1043Russia2026-07-03
1044India2026-06-20
1045Brazil2026-07-07
1046Germany2026-06-22
1047Argentina2026-06-27
1048France2026-06-19
1049Germany2026-07-06

On-Demand Data

NameIdCountryDate
Emily L Ostrosky1000Canada2026-06-24
Nicolas G Royster1001Italy2026-06-26
Morrow X Gaucho1002Germany2026-06-30
Arvin O Bowley1003Spain2026-07-11
Leja E Caldarera1004Japan2026-07-11
Claire H Saylors1005Germany2026-06-15
Alejandro C Malet1006United Kingdom2026-06-22
Antonio K Nestle1007Spain2026-06-27
Costa Q Albares1008Japan2026-07-02
Ricardo A Morasca1009Japan2026-06-19
Octavia K Poquette1010Japan2026-07-02
Costa K Sergi1011Canada2026-07-02
Aruna P Gaucho1012Italy2026-06-16
Stacey A Slusarski1013Canada2026-06-24
Octavia O Flosi1014Japan2026-07-03
Misaki V Royster1015Japan2026-07-04
Aika J Butt1016India2026-06-14
Francesco L Chui1017Italy2026-07-09
Juan S Briddick1018Spain2026-06-21
Munro M Garufi1019Japan2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James K MaletSpainAmy Elsner NEGOTIATION
Juan T GarufiFranceStephen Shaw UNQUALIFIED
James L DarakjyCanadaXuxue Feng NEGOTIATION
Mujtaba E VocelkaBrazilIoni Bowcher NEW
Ivar E GillianItalyAmy Elsner NEGOTIATION
Arvin U GillianIndiaAnna Fali UNQUALIFIED
Darci X SaylorsArgentinaAmy Elsner UNQUALIFIED
Costa Y NestleRussiaIvan Magalhaes QUALIFIED
Kaitlin C FerenczUnited KingdomAnna Fali QUALIFIED
Silvio M TollnerSpainIoni Bowcher UNQUALIFIED
Sinclair L MaletItalyElwin Sharvill PROPOSAL
David F SlusarskiArgentinaXuxue Feng UNQUALIFIED
Adams J PerinUnited KingdomAmy Elsner RENEWAL
Kaitlin E GauchoRussiaBernardo Dominic UNQUALIFIED
Johnson H GillianCanadaAnna Fali UNQUALIFIED
Greenwood I TollnerBrazilAsiya Javayant RENEWAL
Isabel V SchemmerRussiaAnna Fali QUALIFIED
Chavez Q AmigonBrazilAmy Elsner UNQUALIFIED
Mujtaba X RulapaughUnited KingdomElwin Sharvill NEGOTIATION
Julie B NestleArgentinaAsiya Javayant NEW
Jefferson Q TollnerBrazilIoni Bowcher NEGOTIATION
Munro A WaycottUnited KingdomStephen Shaw NEW
David I DoeRussiaAmy Elsner NEGOTIATION
David C CaudyItalyIoni Bowcher UNQUALIFIED
Ivar C StockhamArgentinaStephen Shaw PROPOSAL
Greenwood D RoysterGermanyIvan Magalhaes QUALIFIED
Faith G RimBrazilAsiya Javayant UNQUALIFIED
Silvio A PerinFranceAsiya Javayant QUALIFIED
Ricardo E RimGermanyElwin Sharvill QUALIFIED
Ivar E WaycottIndiaAnna Fali QUALIFIED
Aika O PoquetteJapanElwin Sharvill UNQUALIFIED
Francesco B ShinkoUnited KingdomAmy Elsner NEGOTIATION
Stacey Q FerenczFranceXuxue Feng QUALIFIED
Ashley Q CaudyRussiaIoni Bowcher UNQUALIFIED
Kaitlin M WieserJapanElwin Sharvill PROPOSAL
Murillo H DilliardJapanOnyama Limba PROPOSAL
Ivar A PaprockiGermanyBernardo Dominic QUALIFIED
Maria I RoysterIndiaIvan Magalhaes NEW
Arvin K StensethJapanIvan Magalhaes QUALIFIED
Izzy E DarakjyRussiaStephen Shaw PROPOSAL

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