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
Jefferson P FigeroaArgentinaBernardo Dominic RENEWAL
Costa R FigeroaSpainIvan Magalhaes NEW
Antonio B MarrierJapanOnyama Limba PROPOSAL
Jones I RutaJapanElwin Sharvill NEGOTIATION
Smith U SergiCanadaAmy Elsner QUALIFIED
Francesco U FollerSpainAsiya Javayant RENEWAL
Leja K AmigonFranceXuxue Feng NEGOTIATION
Clifford A CampainAustraliaBernardo Dominic NEGOTIATION
Jennifer Q StockhamFranceAmy Elsner QUALIFIED
Faith D PoquetteJapanIvan Magalhaes QUALIFIED
Jennifer K NickaJapanAsiya Javayant NEGOTIATION
Octavia M MaletCanadaAmy Elsner RENEWAL
Isabel L ChuiAustraliaAmy Elsner QUALIFIED
Juan F CaldareraItalyElwin Sharvill NEGOTIATION
Isabel G DoeJapanAsiya Javayant UNQUALIFIED
Cody P SlusarskiSpainXuxue Feng QUALIFIED
Juan Z NestleFranceAsiya Javayant QUALIFIED
Julie T NickaRussiaElwin Sharvill RENEWAL
Kadeem R FerenczItalyXuxue Feng NEGOTIATION
Deepesh G FollerCanadaXuxue Feng NEW
David K SchemmerUnited KingdomStephen Shaw NEGOTIATION
Antonio I BriddickRussiaAmy Elsner QUALIFIED
Mujtaba L CampainCanadaElwin Sharvill NEGOTIATION
Sinclair G SchemmerRussiaBernardo Dominic NEW
Ricardo D RutaIndiaIvan Magalhaes NEGOTIATION
Izzy O DarakjyArgentinaIoni Bowcher NEGOTIATION
Costa G WaycottJapanStephen Shaw PROPOSAL
Rodrigues Y SaylorsGermanyStephen Shaw UNQUALIFIED
Deepesh E PerinIndiaElwin Sharvill UNQUALIFIED
Aditya O BowleyUnited KingdomBernardo Dominic QUALIFIED
Adams H InouyeIndiaAmy Elsner NEW
Aika B BologniaSpainAsiya Javayant QUALIFIED
Jeanfrancois F BologniaUnited KingdomXuxue Feng PROPOSAL
Adams R AmigonCanadaAmy Elsner NEGOTIATION
Mujtaba Z DoeIndiaAnna Fali PROPOSAL
Ivar J CaudySpainStephen Shaw UNQUALIFIED
Smith L RoysterJapanXuxue Feng PROPOSAL
Jones N KolmetzItalyElwin Sharvill QUALIFIED
Salvatore W SchemmerCanadaAmy Elsner PROPOSAL
Alejandro T KolmetzFranceElwin Sharvill QUALIFIED
Ashley Y SlusarskiIndiaAmy Elsner RENEWAL
Mujtaba M TollnerArgentinaIvan Magalhaes NEW
Aditya D BologniaItalyAsiya Javayant QUALIFIED
Aika J FerenczSpainAsiya Javayant QUALIFIED
Faith K DoeRussiaElwin Sharvill QUALIFIED
Ashley I VenereItalyXuxue Feng NEW
Jefferson U AmigonSpainOnyama Limba QUALIFIED
Francesco U RutaGermanyStephen Shaw QUALIFIED
Maria X RoysterArgentinaOnyama Limba UNQUALIFIED
Francesco X CaldareraAustraliaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson L NestleCanadaIvan Magalhaes RENEWAL
Nicolas J SaylorsFranceStephen Shaw RENEWAL
Isabel T BowleyIndiaAsiya Javayant NEGOTIATION
Rodrigues Z FollerCanadaAmy Elsner QUALIFIED
Jefferson I NestleRussiaAsiya Javayant NEGOTIATION
Izzy X OstroskyCanadaBernardo Dominic NEGOTIATION
Ivar I WaycottFranceBernardo Dominic NEGOTIATION
Octavia B InouyeCanadaOnyama Limba QUALIFIED
Juan O SchemmerFranceOnyama Limba NEGOTIATION
Tony G ChuiArgentinaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya I WaycottAustralia2026-08-25Buckley Miller Wright QUALIFIED43Stephen Shaw
1001Claire X MarrierRussia2026-08-08Dorl, James J Esq PROPOSAL0Stephen Shaw
1002Kadeem Q SlusarskiGermany2026-08-22King, Christopher A Esq RENEWAL53Elwin Sharvill
1003Mayumi Q FollerFrance2026-08-21Truhlar And Truhlar Attys QUALIFIED88Elwin Sharvill
1004Deepesh Y WieserIndia2026-08-08Feltz Printing Service NEW47Amy Elsner
1005Deepesh C VenereFrance2026-08-05Morlong Associates QUALIFIED59Xuxue Feng
1006Munro C StockhamFrance2026-08-02Chapman, Ross E Esq PROPOSAL66Xuxue Feng
1007Maisha I BowleySpain2026-08-28Dorl, James J Esq QUALIFIED30Ivan Magalhaes
1008Faith S DarakjyItaly2026-08-05Morlong Associates QUALIFIED4Stephen Shaw
1009David G MarrierItaly2026-08-14Chapman, Ross E Esq NEW57Elwin Sharvill
1010Ricardo S WieserRussia2026-08-15Morlong Associates UNQUALIFIED8Amy Elsner
1011Julie N KuskoIndia2026-08-22Chapman, Ross E Esq QUALIFIED96Elwin Sharvill
1012Ivar L ButtJapan2026-08-22Feltz Printing Service QUALIFIED76Asiya Javayant
1013Smith I BologniaBrazil2026-08-01Rangoni Of Florence PROPOSAL94Amy Elsner
1014Misaki B FollerIndia2026-08-08Buckley Miller Wright QUALIFIED98Ivan Magalhaes
1015Ivar L FerenczRussia2026-07-31Rousseaux, Michael Esq NEW83Onyama Limba
1016Nicolas A SaylorsBrazil2026-08-03Feltz Printing Service NEW6Elwin Sharvill
1017Mayumi J MaletFrance2026-08-24Feiner Bros UNQUALIFIED42Xuxue Feng
1018Isabel M FollerAustralia2026-08-07Rangoni Of Florence NEW14Ioni Bowcher
1019Izzy F WieserArgentina2026-08-07Buckley Miller Wright RENEWAL70Amy Elsner
1020Costa E VocelkaJapan2026-08-26Chemel, James L Cpa NEW78Asiya Javayant
1021Maria G BologniaRussia2026-08-04Chanay, Jeffrey A Esq NEW71Amy Elsner
1022Emily T FerenczItaly2026-08-15Chemel, James L Cpa UNQUALIFIED22Onyama Limba
1023Mujtaba Q SaylorsFrance2026-08-20Chapman, Ross E Esq RENEWAL34Ivan Magalhaes
1024Aditya C WaycottSpain2026-08-20Truhlar And Truhlar Attys RENEWAL26Ioni Bowcher
1025Clifford E NestleItaly2026-08-03Buckley Miller Wright NEGOTIATION90Asiya Javayant
1026Jefferson I GarufiUnited Kingdom2026-08-25Chanay, Jeffrey A Esq RENEWAL2Xuxue Feng
1027Antonio H RutaJapan2026-08-26Commercial Press UNQUALIFIED91Onyama Limba
1028Adams M RoysterUnited Kingdom2026-08-02Rousseaux, Michael Esq NEW44Ivan Magalhaes
1029Costa J TollnerFrance2026-08-21Feltz Printing Service PROPOSAL10Onyama Limba
1030Nicolas G StensethFrance2026-08-06Commercial Press QUALIFIED10Ioni Bowcher
1031Emily B PaprockiUnited Kingdom2026-08-01Dorl, James J Esq PROPOSAL43Onyama Limba
1032Jennifer P CaudyJapan2026-08-15Morlong Associates NEGOTIATION92Bernardo Dominic
1033James Z IturbideIndia2026-08-28Chanay, Jeffrey A Esq NEW1Elwin Sharvill
1034Nicolas N MaletFrance2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED93Xuxue Feng
1035Jones W FlosiBrazil2026-08-11King, Christopher A Esq UNQUALIFIED88Anna Fali
1036Izzy Y BowleyArgentina2026-08-29Commercial Press NEW54Asiya Javayant
1037Juan K AlbaresFrance2026-08-07Feiner Bros NEW45Amy Elsner
1038Maria B StensethFrance2026-08-12Rousseaux, Michael Esq RENEWAL32Xuxue Feng
1039Maisha V RoysterCanada2026-08-06Chanay, Jeffrey A Esq PROPOSAL21Ioni Bowcher
1040Claire Z GauchoBrazil2026-08-25Morlong Associates NEW69Ioni Bowcher
1041Maisha K CampainIndia2026-08-19Rangoni Of Florence QUALIFIED7Xuxue Feng
1042Aika H AlbaresCanada2026-08-07Chapman, Ross E Esq UNQUALIFIED18Ioni Bowcher
1043Arvin A CaldareraGermany2026-08-10Rangoni Of Florence NEW89Onyama Limba
1044Murillo Y ButtSpain2026-08-21Chanay, Jeffrey A Esq NEW33Anna Fali
1045Jeanfrancois T MaletArgentina2026-08-06Buckley Miller Wright UNQUALIFIED12Elwin Sharvill
1046Maria E RutaIndia2026-08-11Benton, John B Jr PROPOSAL11Asiya Javayant
1047Clifford P RoysterArgentina2026-08-02Truhlar And Truhlar Attys QUALIFIED73Ivan Magalhaes
1048Morrow N FollerRussia2026-08-14King, Christopher A Esq NEGOTIATION11Onyama Limba
1049Stacey M BologniaArgentina2026-08-03Printing Dimensions PROPOSAL17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya Z CaldareraGermanyAsiya Javayant UNQUALIFIED
Antonio M WieserJapanIvan Magalhaes RENEWAL
Jeanfrancois Z RutaArgentinaBernardo Dominic NEGOTIATION
Emily R GauchoItalyElwin Sharvill NEW
Deepesh A SchemmerAustraliaIoni Bowcher RENEWAL
Isabel Q SlusarskiIndiaBernardo Dominic UNQUALIFIED
Salvatore R SlusarskiUnited KingdomOnyama Limba RENEWAL
Smith Y DilliardGermanyOnyama Limba RENEWAL
Nicolas Y WhobreyBrazilBernardo Dominic QUALIFIED
Sinclair Z RoysterAustraliaBernardo Dominic NEGOTIATION
Aditya M SaylorsUnited KingdomStephen Shaw NEGOTIATION
James D BologniaJapanElwin Sharvill UNQUALIFIED
Kaitlin L VocelkaCanadaElwin Sharvill NEW
Morrow T CaudyRussiaAsiya Javayant NEW
Murillo L CaudyArgentinaIoni Bowcher UNQUALIFIED
Jennifer Z PaprockiSpainStephen Shaw QUALIFIED
Mayumi H OldroydAustraliaAnna Fali PROPOSAL
Clifford R FlosiCanadaIvan Magalhaes QUALIFIED
Munro M NestleGermanyAnna Fali NEGOTIATION
Ivar Y ButtArgentinaXuxue Feng NEW
Alejandro O RulapaughRussiaElwin Sharvill NEGOTIATION
Clifford T KolmetzCanadaAsiya Javayant NEGOTIATION
Ivar I DarakjyGermanyElwin Sharvill NEW
Jones Y DarakjyGermanyAnna Fali RENEWAL
Tony C GillianGermanyAmy Elsner NEGOTIATION
Izzy R BriddickArgentinaBernardo Dominic UNQUALIFIED
Munro F AmigonAustraliaIoni Bowcher PROPOSAL
Greenwood H MarrierSpainAmy Elsner QUALIFIED
Jefferson E MorascaJapanXuxue Feng UNQUALIFIED
Maria N SlusarskiJapanAsiya Javayant NEW
Ashley P OldroydIndiaElwin Sharvill PROPOSAL
Maisha Q NestleUnited KingdomBernardo Dominic NEGOTIATION
Deepesh Q DilliardRussiaAsiya Javayant RENEWAL
Sinclair B CampainUnited KingdomXuxue Feng QUALIFIED
Johnson T StockhamIndiaXuxue Feng NEGOTIATION
Juan X FlosiJapanIvan Magalhaes NEW
Jennifer P RimIndiaIvan Magalhaes UNQUALIFIED
Izzy I PaprockiCanadaAsiya Javayant NEW
Emily T DoeCanadaXuxue Feng UNQUALIFIED
Smith H SchemmerAustraliaStephen Shaw QUALIFIED
Smith N SchemmerBrazilIvan Magalhaes NEGOTIATION
Adams B GarufiAustraliaAmy Elsner UNQUALIFIED
Emily D IturbideSpainStephen Shaw QUALIFIED
Darci O KolmetzArgentinaElwin Sharvill NEGOTIATION
Jones W SergiBrazilOnyama Limba PROPOSAL
Salvatore D SchemmerRussiaAnna Fali NEGOTIATION
Julie V FigeroaCanadaIoni Bowcher QUALIFIED
Isabel O DarakjyItalyStephen Shaw RENEWAL
Aditya C RulapaughAustraliaStephen Shaw PROPOSAL
Aditya U CaudySpainStephen Shaw QUALIFIED
Frozen Columns
Name
Morrow C Rulapaugh
Isabel C Sergi
Munro C Ferencz
Juan A Bowley
Salvatore N Tollner
Munro Q Bolognia
Chavez X Glick
James A Butt
Cody C Inouye
Aruna B Rulapaugh
Mujtaba Q Shinko
Murillo C Chui
Emily C Stockham
Arvin K Figeroa
Costa C Venere
Ricardo Z Venere
Rodrigues K Saylors
Aika K Foller
Leja Q Chui
Octavia Y Wieser
Morrow X Bowley
Jennifer Y Flosi
Wickens L Stenseth
Greenwood I Figeroa
Tony E Briddick
Greenwood A Inouye
Jennifer J Flosi
Sinclair K Sergi
Leja Q Shinko
Leja Q Wieser
Clifford O Maclead
Costa P Rulapaugh
Mujtaba N Rim
Isabel D Briddick
Silvio Q Saylors
Costa K Maclead
Costa E Garufi
Mayumi E Chui
Jones L Amigon
Cody C Iturbide
Salvatore W Stenseth
Kaitlin C Venere
Ivar F Morasca
Adams J Whobrey
Stacey N Gaucho
Aruna E Bolognia
Wickens H Morasca
Salvatore R Campain
Isabel F Paprocki
Jennifer E Kolmetz
IdCountryDate
1000France2026-08-21
1001Germany2026-08-12
1002United Kingdom2026-08-16
1003United Kingdom2026-08-27
1004India2026-08-06
1005France2026-08-04
1006Brazil2026-08-19
1007Russia2026-08-23
1008Italy2026-08-25
1009Canada2026-08-14
1010France2026-08-09
1011Argentina2026-08-06
1012Spain2026-08-05
1013Japan2026-08-03
1014United Kingdom2026-08-10
1015Argentina2026-08-03
1016Spain2026-08-27
1017Italy2026-08-19
1018Italy2026-08-22
1019Italy2026-08-29
1020Canada2026-08-01
1021Argentina2026-08-29
1022Argentina2026-08-28
1023India2026-08-03
1024Japan2026-08-03
1025Spain2026-08-16
1026Italy2026-08-01
1027Italy2026-08-06
1028Spain2026-08-17
1029Brazil2026-08-13
1030Brazil2026-08-18
1031Brazil2026-08-05
1032United Kingdom2026-08-06
1033India2026-08-04
1034Argentina2026-08-06
1035Italy2026-08-26
1036Brazil2026-08-18
1037Germany2026-08-16
1038Russia2026-08-11
1039United Kingdom2026-08-09
1040Russia2026-08-18
1041Russia2026-08-02
1042Australia2026-08-04
1043France2026-08-08
1044Argentina2026-08-25
1045Italy2026-08-19
1046Japan2026-08-14
1047United Kingdom2026-08-05
1048Argentina2026-08-26
1049Australia2026-08-05

On-Demand Data

NameIdCountryDate
Ivar H Flosi1000Japan2026-08-23
Munro T Malet1001Australia2026-08-23
Morrow X Stenseth1002France2026-08-25
Antonio T Wieser1003Italy2026-08-24
Misaki D Tollner1004France2026-08-26
Julie N Dilliard1005Australia2026-08-22
Salvatore B Bowley1006Russia2026-08-03
Ivar T Flosi1007Germany2026-08-26
Tony E Campain1008Germany2026-08-29
Juan K Garufi1009India2026-08-17
Mayumi U Briddick1010Spain2026-08-08
Kaitlin I Rulapaugh1011United Kingdom2026-08-03
Aditya N Iturbide1012Spain2026-08-13
Darci Z Figeroa1013Germany2026-08-19
Emily Y Ruta1014Argentina2026-07-31
Clifford T Poquette1015Spain2026-08-26
Claire Q Iturbide1016India2026-08-17
Tony M Ruta1017France2026-08-12
Deepesh Q Darakjy1018Italy2026-08-19
Isabel Z Bowley1019Spain2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar K FigeroaItalyAnna Fali PROPOSAL
Isabel F SchemmerGermanyOnyama Limba UNQUALIFIED
Kaitlin S IturbideItalyAsiya Javayant NEGOTIATION
Murillo E PaprockiAustraliaBernardo Dominic RENEWAL
Clifford V ButtSpainBernardo Dominic RENEWAL
James N WhobreyRussiaOnyama Limba QUALIFIED
Mayumi Z KuskoBrazilAnna Fali QUALIFIED
Sinclair V StockhamUnited KingdomStephen Shaw QUALIFIED
Greenwood J BologniaFranceXuxue Feng NEGOTIATION
Kaitlin A DilliardJapanOnyama Limba QUALIFIED
Johnson P MaletAustraliaAsiya Javayant NEW
Nicolas L StockhamSpainElwin Sharvill UNQUALIFIED
Adams Q FlosiRussiaIoni Bowcher UNQUALIFIED
Ashley X CaldareraUnited KingdomAmy Elsner NEGOTIATION
Tony C MacleadRussiaAsiya Javayant RENEWAL
Silvio W CampainArgentinaAnna Fali NEW
Maisha L PaprockiUnited KingdomBernardo Dominic PROPOSAL
James F MorascaUnited KingdomAnna Fali QUALIFIED
Greenwood K MaletIndiaAmy Elsner NEGOTIATION
Greenwood D CaldareraItalyXuxue Feng RENEWAL
Munro S FigeroaBrazilAsiya Javayant NEGOTIATION
Mayumi D NickaArgentinaAnna Fali PROPOSAL
Smith I AmigonItalyBernardo Dominic PROPOSAL
Aditya M MorascaJapanXuxue Feng RENEWAL
Sinclair G ButtIndiaBernardo Dominic QUALIFIED
Claire V FerenczGermanyIvan Magalhaes RENEWAL
Aruna T CaldareraItalyAsiya Javayant NEW
Mayumi E MorascaBrazilOnyama Limba RENEWAL
David T SlusarskiSpainElwin Sharvill NEGOTIATION
Ashley V CaudyFranceAsiya Javayant NEW
Jefferson T GarufiBrazilElwin Sharvill PROPOSAL
Ivar X StockhamGermanyStephen Shaw QUALIFIED
Costa R BriddickCanadaStephen Shaw NEW
Jennifer H MacleadArgentinaOnyama Limba RENEWAL
Jones Z SergiIndiaIvan Magalhaes UNQUALIFIED
Francesco I OldroydIndiaAmy Elsner QUALIFIED
Emily B WieserUnited KingdomOnyama Limba UNQUALIFIED
Juan D PoquetteAustraliaAnna Fali UNQUALIFIED
Murillo F StockhamSpainXuxue Feng UNQUALIFIED
Aruna B KuskoFranceElwin Sharvill 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>