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
Wickens W MaletJapanAmy Elsner NEGOTIATION
Adams A MacleadCanadaAsiya Javayant NEW
Claire E SergiItalyBernardo Dominic QUALIFIED
Costa I SlusarskiFranceXuxue Feng PROPOSAL
Costa A GillianCanadaOnyama Limba QUALIFIED
Ricardo M BriddickRussiaElwin Sharvill NEW
David D OldroydJapanXuxue Feng QUALIFIED
Tony P InouyeGermanyIvan Magalhaes NEW
Clifford L CampainCanadaElwin Sharvill RENEWAL
Johnson X CampainGermanyAnna Fali NEW
Alejandro E VenereIndiaOnyama Limba QUALIFIED
Clifford Z IturbideSpainAmy Elsner PROPOSAL
Rodrigues Q OstroskyAustraliaStephen Shaw PROPOSAL
Ashley D MaletJapanOnyama Limba QUALIFIED
Jennifer U FollerGermanyAmy Elsner NEGOTIATION
David L TollnerFranceStephen Shaw NEW
Mayumi F DoeIndiaIoni Bowcher UNQUALIFIED
Chavez P OldroydItalyStephen Shaw NEGOTIATION
Aruna P GillianJapanIoni Bowcher NEGOTIATION
Silvio L PoquetteGermanyElwin Sharvill NEGOTIATION
Aika X PaprockiGermanyBernardo Dominic UNQUALIFIED
Ashley L MorascaAustraliaAmy Elsner PROPOSAL
Octavia K BriddickSpainBernardo Dominic NEW
Jefferson W StockhamJapanIoni Bowcher PROPOSAL
James R KuskoBrazilAnna Fali RENEWAL
Ricardo P ButtFranceStephen Shaw NEGOTIATION
Aruna X SergiArgentinaIvan Magalhaes RENEWAL
Cody H NestleSpainAsiya Javayant QUALIFIED
Alejandro M NickaIndiaAmy Elsner QUALIFIED
Arvin B SlusarskiAustraliaAmy Elsner RENEWAL
Alejandro Q NickaIndiaAmy Elsner UNQUALIFIED
Salvatore J TollnerIndiaStephen Shaw RENEWAL
Emily X MacleadCanadaAsiya Javayant RENEWAL
Izzy T SergiRussiaBernardo Dominic NEGOTIATION
Isabel A MacleadUnited KingdomBernardo Dominic NEGOTIATION
Arvin U NestleUnited KingdomXuxue Feng NEW
Leon X GlickRussiaBernardo Dominic PROPOSAL
Murillo U VenereUnited KingdomElwin Sharvill PROPOSAL
Greenwood T KuskoIndiaIoni Bowcher PROPOSAL
Maria D OldroydArgentinaBernardo Dominic QUALIFIED
Aditya M FigeroaGermanyAsiya Javayant QUALIFIED
Alejandro J KolmetzBrazilIoni Bowcher NEGOTIATION
Alejandro E PoquetteFranceIvan Magalhaes RENEWAL
Francesco B IturbideRussiaBernardo Dominic QUALIFIED
Antonio P DoeItalyBernardo Dominic QUALIFIED
Jeanfrancois V MacleadCanadaAmy Elsner NEW
Morrow J DilliardIndiaAnna Fali QUALIFIED
Aika Q MaletGermanyAnna Fali UNQUALIFIED
Jefferson U DarakjyBrazilIvan Magalhaes NEW
Jennifer W GlickUnited KingdomStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody L AmigonIndiaAnna Fali NEW
Johnson V ShinkoIndiaOnyama Limba UNQUALIFIED
Cody L GillianSpainStephen Shaw NEGOTIATION
Julie K MorascaGermanyIoni Bowcher QUALIFIED
Mujtaba U MaletCanadaElwin Sharvill UNQUALIFIED
Faith S RutaFranceIoni Bowcher PROPOSAL
Deepesh C BowleyBrazilAmy Elsner UNQUALIFIED
Wickens B ButtArgentinaAmy Elsner NEW
Rodrigues D ChuiSpainStephen Shaw UNQUALIFIED
Jefferson N BologniaCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David H MaletAustralia2026-07-12King, Christopher A Esq UNQUALIFIED6Asiya Javayant
1001Emily F MaletFrance2026-07-11Dorl, James J Esq NEW26Ivan Magalhaes
1002Jennifer P RulapaughItaly2026-07-27Morlong Associates QUALIFIED98Amy Elsner
1003Costa I KolmetzRussia2026-07-07Chanay, Jeffrey A Esq NEGOTIATION41Anna Fali
1004Maisha Q RutaUnited Kingdom2026-07-14Feiner Bros RENEWAL9Ivan Magalhaes
1005Morrow U NestleJapan2026-07-19Benton, John B Jr NEGOTIATION27Anna Fali
1006Wickens K RimCanada2026-07-28King, Christopher A Esq QUALIFIED95Onyama Limba
1007Maisha Y GauchoArgentina2026-07-12Commercial Press PROPOSAL90Anna Fali
1008Alejandro V AlbaresFrance2026-07-24Rangoni Of Florence PROPOSAL24Elwin Sharvill
1009Rodrigues W FlosiSpain2026-08-03Morlong Associates RENEWAL77Ivan Magalhaes
1010Leja O PaprockiAustralia2026-07-22Rangoni Of Florence NEW18Ioni Bowcher
1011Izzy X GlickRussia2026-07-28Morlong Associates RENEWAL86Amy Elsner
1012Clifford S MaletAustralia2026-07-29Buckley Miller Wright QUALIFIED18Ivan Magalhaes
1013Francesco H IturbideUnited Kingdom2026-07-18Buckley Miller Wright NEGOTIATION74Xuxue Feng
1014Aika B BriddickSpain2026-07-18Chapman, Ross E Esq NEGOTIATION80Anna Fali
1015Jefferson N MarrierJapan2026-07-16King, Christopher A Esq NEGOTIATION51Xuxue Feng
1016Misaki X AlbaresArgentina2026-07-24Rousseaux, Michael Esq UNQUALIFIED98Xuxue Feng
1017Francesco C GlickFrance2026-07-31Feiner Bros RENEWAL58Onyama Limba
1018Mayumi P PoquetteBrazil2026-07-11King, Christopher A Esq UNQUALIFIED85Anna Fali
1019Wickens O MaletIndia2026-08-01Truhlar And Truhlar Attys NEW46Ioni Bowcher
1020Aditya O AlbaresRussia2026-08-03Buckley Miller Wright NEW78Bernardo Dominic
1021Ricardo S RutaUnited Kingdom2026-07-15Morlong Associates QUALIFIED33Bernardo Dominic
1022Johnson J GauchoFrance2026-07-30Printing Dimensions UNQUALIFIED61Stephen Shaw
1023David B BologniaUnited Kingdom2026-07-20Chemel, James L Cpa UNQUALIFIED79Bernardo Dominic
1024Claire G FollerSpain2026-07-08Chapman, Ross E Esq NEGOTIATION49Onyama Limba
1025James X WhobreyUnited Kingdom2026-07-14Commercial Press UNQUALIFIED29Stephen Shaw
1026Alejandro W GarufiItaly2026-07-15Morlong Associates PROPOSAL40Onyama Limba
1027Izzy M RoysterItaly2026-07-29Feiner Bros QUALIFIED51Asiya Javayant
1028Aruna G RulapaughArgentina2026-07-27Feltz Printing Service QUALIFIED21Asiya Javayant
1029Stacey M InouyeRussia2026-07-08Commercial Press NEGOTIATION15Stephen Shaw
1030Kadeem L RulapaughFrance2026-08-02Truhlar And Truhlar Attys NEGOTIATION54Ioni Bowcher
1031Francesco P ButtItaly2026-07-31Printing Dimensions NEW62Stephen Shaw
1032Alejandro E SaylorsItaly2026-07-31Chemel, James L Cpa NEW74Xuxue Feng
1033Chavez B WieserUnited Kingdom2026-07-11Feltz Printing Service RENEWAL14Onyama Limba
1034Adams B WhobreyJapan2026-07-07King, Christopher A Esq PROPOSAL84Asiya Javayant
1035Wickens C DilliardArgentina2026-08-03Feiner Bros UNQUALIFIED24Xuxue Feng
1036Kadeem J FerenczUnited Kingdom2026-08-01Chemel, James L Cpa UNQUALIFIED95Ioni Bowcher
1037Emily W GlickRussia2026-07-28Rangoni Of Florence RENEWAL43Amy Elsner
1038Deepesh B PaprockiItaly2026-07-26Morlong Associates UNQUALIFIED49Elwin Sharvill
1039Leja G SaylorsAustralia2026-07-28Truhlar And Truhlar Attys UNQUALIFIED4Asiya Javayant
1040Clifford Y CaudyIndia2026-07-08Commercial Press RENEWAL77Bernardo Dominic
1041Kaitlin C CaldareraRussia2026-07-28Printing Dimensions RENEWAL25Elwin Sharvill
1042Darci B WhobreyItaly2026-07-10Chemel, James L Cpa QUALIFIED53Anna Fali
1043Jefferson F PaprockiCanada2026-07-28Morlong Associates NEGOTIATION77Asiya Javayant
1044Chavez W InouyeSpain2026-07-12Feltz Printing Service NEW39Stephen Shaw
1045Julie X FlosiUnited Kingdom2026-08-03Truhlar And Truhlar Attys NEW4Onyama Limba
1046Antonio B NickaAustralia2026-08-02Chanay, Jeffrey A Esq NEW42Asiya Javayant
1047Leja C BologniaRussia2026-07-11Printing Dimensions RENEWAL43Onyama Limba
1048Maria G InouyeSpain2026-07-28Buckley Miller Wright NEGOTIATION23Asiya Javayant
1049Leja Z PaprockiAustralia2026-07-08Feltz Printing Service RENEWAL98Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Johnson E SlusarskiBrazilAsiya Javayant NEGOTIATION
Arvin A MacleadAustraliaIoni Bowcher PROPOSAL
Emily K ShinkoGermanyElwin Sharvill PROPOSAL
Misaki X CaldareraItalyIvan Magalhaes PROPOSAL
David I FerenczJapanAmy Elsner PROPOSAL
Munro U MacleadIndiaAsiya Javayant UNQUALIFIED
Faith X FerenczGermanyElwin Sharvill NEGOTIATION
Salvatore I GlickArgentinaIoni Bowcher NEW
Wickens W FlosiSpainAsiya Javayant NEGOTIATION
Ashley P CaudyFranceOnyama Limba PROPOSAL
Cody R TollnerJapanXuxue Feng UNQUALIFIED
Mayumi I InouyeAustraliaIvan Magalhaes RENEWAL
Maisha J ChuiSpainAsiya Javayant NEGOTIATION
Rodrigues T GillianCanadaOnyama Limba NEW
Octavia P BologniaItalyAmy Elsner NEGOTIATION
Wickens I DarakjyJapanIoni Bowcher RENEWAL
Jennifer Y FigeroaJapanOnyama Limba RENEWAL
Ivar Z BologniaUnited KingdomBernardo Dominic NEGOTIATION
Francesco H GlickRussiaXuxue Feng UNQUALIFIED
Octavia Y ButtArgentinaXuxue Feng NEW
Chavez T RulapaughJapanBernardo Dominic RENEWAL
Nicolas Y OldroydFranceAmy Elsner PROPOSAL
Wickens T AlbaresBrazilOnyama Limba NEGOTIATION
Mayumi A MorascaUnited KingdomAmy Elsner NEGOTIATION
Adams C KuskoSpainIvan Magalhaes PROPOSAL
Clifford F VenereSpainIvan Magalhaes PROPOSAL
Rodrigues F PerinAustraliaIvan Magalhaes QUALIFIED
Cody A AlbaresRussiaAnna Fali NEGOTIATION
Maria T ShinkoArgentinaOnyama Limba PROPOSAL
Julie K RulapaughArgentinaAmy Elsner NEGOTIATION
Aika B ChuiItalyOnyama Limba UNQUALIFIED
Deepesh F FigeroaItalyIvan Magalhaes PROPOSAL
Tony C RutaCanadaIoni Bowcher QUALIFIED
Leja Q DarakjyBrazilStephen Shaw NEW
Arvin R SaylorsIndiaXuxue Feng UNQUALIFIED
Julie W VenereItalyOnyama Limba RENEWAL
Leja G VocelkaItalyElwin Sharvill QUALIFIED
James I GillianBrazilStephen Shaw NEGOTIATION
Ricardo K BowleyFranceStephen Shaw QUALIFIED
Nicolas E FollerAustraliaAmy Elsner NEW
Chavez Z KolmetzArgentinaOnyama Limba UNQUALIFIED
Julie M ButtArgentinaElwin Sharvill UNQUALIFIED
Kadeem H VocelkaFranceStephen Shaw NEW
Isabel O ChuiUnited KingdomAnna Fali NEW
Tony H CampainFranceIvan Magalhaes NEGOTIATION
Jones F RulapaughRussiaAmy Elsner UNQUALIFIED
Aruna U BologniaUnited KingdomIoni Bowcher RENEWAL
Kadeem S MaletGermanyBernardo Dominic QUALIFIED
Murillo Y CampainArgentinaAsiya Javayant NEGOTIATION
Costa Q SchemmerJapanElwin Sharvill NEGOTIATION
Frozen Columns
Name
Kaitlin Z Stockham
James J Campain
Morrow S Rim
David A Garufi
Aika K Maclead
Aditya H Royster
Julie I Campain
Nicolas J Marrier
Ricardo J Marrier
Rodrigues R Whobrey
Sinclair V Schemmer
Stacey B Malet
Juan G Stenseth
Francesco N Wieser
Maisha I Paprocki
Tony V Morasca
Clifford C Waycott
Cody P Caudy
Maisha J Rim
Jeanfrancois Y Poquette
Kaitlin T Caudy
Francesco B Tollner
Antonio A Rim
Aruna S Caldarera
Jeanfrancois N Malet
Darci B Kusko
Greenwood S Oldroyd
Silvio R Venere
Misaki W Doe
Ashley B Foller
Stacey X Kusko
Salvatore A Malet
Ricardo G Sergi
Wickens P Rim
Emily M Flosi
Kaitlin T Glick
Costa E Slusarski
Stacey P Perin
Costa X Amigon
Mujtaba J Ruta
Wickens C Stenseth
Izzy S Dilliard
Deepesh S Inouye
James J Stenseth
Alejandro K Paprocki
Jennifer F Whobrey
Faith I Amigon
Kaitlin B Poquette
Mayumi L Vocelka
Ricardo C Wieser
IdCountryDate
1000Russia2026-07-10
1001United Kingdom2026-07-10
1002Canada2026-07-21
1003Argentina2026-07-29
1004India2026-07-06
1005France2026-07-21
1006United Kingdom2026-07-18
1007Argentina2026-07-19
1008Argentina2026-07-24
1009France2026-08-03
1010Spain2026-07-29
1011Russia2026-07-26
1012France2026-07-08
1013Japan2026-08-03
1014Russia2026-07-29
1015Argentina2026-07-23
1016Spain2026-07-22
1017Russia2026-08-02
1018Brazil2026-07-23
1019Brazil2026-07-23
1020Australia2026-07-12
1021United Kingdom2026-08-02
1022Australia2026-07-23
1023India2026-08-03
1024United Kingdom2026-07-12
1025Russia2026-07-30
1026Australia2026-07-30
1027Canada2026-07-08
1028India2026-07-29
1029Canada2026-07-24
1030Brazil2026-07-25
1031France2026-07-06
1032Italy2026-07-24
1033Spain2026-07-13
1034Argentina2026-08-03
1035Argentina2026-07-13
1036Spain2026-08-01
1037Japan2026-07-30
1038Australia2026-07-17
1039Canada2026-07-16
1040Australia2026-07-15
1041France2026-07-27
1042Italy2026-08-03
1043Germany2026-07-13
1044France2026-07-25
1045Spain2026-07-07
1046Japan2026-07-21
1047Italy2026-07-19
1048Germany2026-07-24
1049France2026-07-08

On-Demand Data

NameIdCountryDate
Maisha T Venere1000Brazil2026-07-17
Chavez T Flosi1001Germany2026-07-15
Maisha H Bowley1002United Kingdom2026-07-27
Ricardo E Chui1003Australia2026-07-21
Leon E Tollner1004Italy2026-07-15
Rodrigues K Bolognia1005United Kingdom2026-07-09
Claire I Ruta1006Japan2026-07-05
Octavia W Foller1007Canada2026-07-07
Octavia W Nestle1008Argentina2026-07-24
Nicolas Q Caudy1009India2026-07-10
Johnson G Poquette1010Argentina2026-07-19
Maria X Bolognia1011United Kingdom2026-07-29
Jeanfrancois J Caldarera1012Russia2026-07-23
Chavez G Malet1013Spain2026-07-10
Aditya C Stenseth1014Italy2026-07-09
Johnson C Whobrey1015Russia2026-08-02
Deepesh R Gillian1016United Kingdom2026-07-25
Jefferson R Garufi1017United Kingdom2026-07-17
Silvio Z Vocelka1018India2026-07-25
Aika N Inouye1019Canada2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio J CaudySpainAmy Elsner QUALIFIED
Emily A VenereUnited KingdomOnyama Limba UNQUALIFIED
Morrow E BologniaCanadaXuxue Feng PROPOSAL
Murillo U VenereFranceAnna Fali NEW
Faith N SchemmerJapanElwin Sharvill NEGOTIATION
Smith H AlbaresIndiaAnna Fali RENEWAL
Juan K SchemmerGermanyIoni Bowcher RENEWAL
Leja B SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Alejandro G WaycottRussiaIoni Bowcher NEGOTIATION
Faith T SchemmerCanadaOnyama Limba NEGOTIATION
Isabel R IturbideArgentinaIvan Magalhaes RENEWAL
Stacey V SlusarskiRussiaElwin Sharvill RENEWAL
Rodrigues B StensethFranceElwin Sharvill RENEWAL
Stacey P RimFranceElwin Sharvill UNQUALIFIED
Darci B GarufiCanadaBernardo Dominic PROPOSAL
Francesco U MorascaUnited KingdomElwin Sharvill NEW
Deepesh U OstroskyUnited KingdomXuxue Feng NEW
Aika P OstroskySpainBernardo Dominic UNQUALIFIED
Greenwood R VenereFranceIvan Magalhaes PROPOSAL
Costa Z AmigonFranceAmy Elsner NEGOTIATION
Isabel U MaletUnited KingdomIvan Magalhaes QUALIFIED
Leja A TollnerUnited KingdomIvan Magalhaes RENEWAL
Deepesh R KolmetzArgentinaIoni Bowcher QUALIFIED
Antonio Y MarrierCanadaAsiya Javayant NEW
Aika M BriddickBrazilBernardo Dominic RENEWAL
Alejandro N FlosiBrazilStephen Shaw NEGOTIATION
Jefferson M DoeRussiaBernardo Dominic RENEWAL
Julie B FigeroaBrazilAnna Fali NEGOTIATION
Chavez R DoeSpainBernardo Dominic UNQUALIFIED
Salvatore D CaudyIndiaAnna Fali NEGOTIATION
Arvin E TollnerUnited KingdomElwin Sharvill RENEWAL
Darci V MaletIndiaStephen Shaw UNQUALIFIED
Maisha V DoeCanadaElwin Sharvill NEGOTIATION
Darci Y MaletRussiaStephen Shaw NEGOTIATION
Darci D FlosiAustraliaAsiya Javayant PROPOSAL
Morrow A SaylorsIndiaAsiya Javayant RENEWAL
Cody A PerinItalyIoni Bowcher NEW
Rodrigues I KuskoUnited KingdomAmy Elsner NEW
Silvio Z VenereArgentinaOnyama Limba UNQUALIFIED
Octavia O MacleadArgentinaBernardo Dominic RENEWAL

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