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
Darci I AlbaresSpainOnyama Limba NEW
Munro R CampainArgentinaAnna Fali RENEWAL
Kaitlin J DoeSpainOnyama Limba PROPOSAL
Francesco U RimGermanyAsiya Javayant PROPOSAL
Juan B MorascaUnited KingdomStephen Shaw UNQUALIFIED
Costa B StockhamRussiaBernardo Dominic NEW
Munro G RutaGermanyIvan Magalhaes PROPOSAL
Leja A RulapaughFranceElwin Sharvill NEW
Smith U MarrierBrazilOnyama Limba RENEWAL
Aruna L SchemmerFranceAsiya Javayant RENEWAL
Arvin V PaprockiIndiaXuxue Feng UNQUALIFIED
Ashley K FerenczUnited KingdomXuxue Feng QUALIFIED
Nicolas F ButtCanadaIoni Bowcher QUALIFIED
Isabel B CampainArgentinaElwin Sharvill NEGOTIATION
Juan A BologniaFranceIvan Magalhaes PROPOSAL
Leon A SlusarskiIndiaStephen Shaw NEGOTIATION
Nicolas O KuskoArgentinaAsiya Javayant UNQUALIFIED
Faith C DilliardGermanyXuxue Feng NEGOTIATION
Murillo Z FerenczIndiaIvan Magalhaes NEGOTIATION
Greenwood A RutaBrazilIvan Magalhaes QUALIFIED
Aika M BowleyIndiaAnna Fali PROPOSAL
Alejandro A OstroskyGermanyIoni Bowcher NEGOTIATION
Ricardo H PaprockiItalyElwin Sharvill NEGOTIATION
Leja S GarufiArgentinaIoni Bowcher UNQUALIFIED
Leon G SchemmerItalyAmy Elsner RENEWAL
Stacey O OldroydSpainXuxue Feng PROPOSAL
Faith W KolmetzBrazilElwin Sharvill RENEWAL
Francesco V InouyeItalyAsiya Javayant RENEWAL
Izzy H StensethIndiaXuxue Feng NEW
Leon N FollerIndiaOnyama Limba NEW
Morrow C SergiJapanIoni Bowcher NEW
Johnson P DarakjyIndiaElwin Sharvill QUALIFIED
Stacey W CaldareraSpainAmy Elsner NEW
Murillo Z NickaArgentinaBernardo Dominic RENEWAL
Octavia U AlbaresArgentinaIoni Bowcher NEGOTIATION
Alejandro K RoysterFranceElwin Sharvill NEW
Mayumi W PaprockiSpainStephen Shaw RENEWAL
Aditya D CaudyArgentinaXuxue Feng NEW
Francesco M RulapaughRussiaIvan Magalhaes UNQUALIFIED
Jones T DoeGermanyOnyama Limba QUALIFIED
Leon U DoeRussiaAmy Elsner NEGOTIATION
Smith I OstroskyCanadaIoni Bowcher PROPOSAL
Sinclair B GauchoBrazilAsiya Javayant NEW
Octavia A BowleyIndiaOnyama Limba UNQUALIFIED
Cody M FerenczItalyOnyama Limba NEGOTIATION
Izzy C RoysterArgentinaIvan Magalhaes RENEWAL
Greenwood N MaletAustraliaXuxue Feng RENEWAL
Smith X ChuiFranceElwin Sharvill NEGOTIATION
Munro M NestleRussiaIoni Bowcher NEW
Ivar D ChuiFranceIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba H GauchoFranceOnyama Limba RENEWAL
Maria E InouyeAustraliaAmy Elsner NEGOTIATION
Isabel M FerenczBrazilAsiya Javayant RENEWAL
Smith J WhobreyIndiaOnyama Limba PROPOSAL
Rodrigues C ShinkoJapanAmy Elsner UNQUALIFIED
Jefferson Z FollerBrazilIoni Bowcher QUALIFIED
Adams J MorascaItalyBernardo Dominic NEGOTIATION
Mujtaba B MarrierIndiaAsiya Javayant QUALIFIED
Octavia O FerenczRussiaAsiya Javayant NEGOTIATION
Smith D DilliardAustraliaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David M GarufiArgentina2026-06-14Commercial Press NEW96Elwin Sharvill
1001Francesco F MaletArgentina2026-07-08Truhlar And Truhlar Attys QUALIFIED55Amy Elsner
1002Maisha K RulapaughRussia2026-07-08Feiner Bros NEGOTIATION75Elwin Sharvill
1003Deepesh P CaudyUnited Kingdom2026-06-11Morlong Associates NEGOTIATION26Amy Elsner
1004Nicolas G WhobreyRussia2026-06-27Rangoni Of Florence NEW71Xuxue Feng
1005Antonio V CaldareraJapan2026-07-01Dorl, James J Esq NEGOTIATION3Xuxue Feng
1006Wickens E OstroskyBrazil2026-06-24Commercial Press RENEWAL15Bernardo Dominic
1007Kadeem Q PaprockiIndia2026-06-25Truhlar And Truhlar Attys QUALIFIED12Elwin Sharvill
1008Munro K FollerGermany2026-06-12Morlong Associates NEGOTIATION94Amy Elsner
1009Murillo N AmigonArgentina2026-06-13Buckley Miller Wright NEGOTIATION61Ioni Bowcher
1010Darci A NestleRussia2026-07-02Feiner Bros NEGOTIATION5Xuxue Feng
1011Francesco B DoeSpain2026-07-01Benton, John B Jr NEW53Anna Fali
1012Silvio C BriddickCanada2026-06-25Truhlar And Truhlar Attys UNQUALIFIED56Ivan Magalhaes
1013Francesco V BologniaGermany2026-06-20Dorl, James J Esq UNQUALIFIED4Anna Fali
1014Salvatore R PerinJapan2026-06-22Rousseaux, Michael Esq NEW63Stephen Shaw
1015Jeanfrancois M IturbideIndia2026-07-01King, Christopher A Esq RENEWAL26Xuxue Feng
1016Nicolas E TollnerAustralia2026-06-12Chapman, Ross E Esq RENEWAL37Elwin Sharvill
1017Salvatore Q IturbideJapan2026-06-10Commercial Press UNQUALIFIED83Anna Fali
1018Wickens P PaprockiGermany2026-06-15Printing Dimensions RENEWAL81Xuxue Feng
1019Munro Z ButtRussia2026-07-06Dorl, James J Esq NEGOTIATION86Stephen Shaw
1020Julie B InouyeUnited Kingdom2026-07-02Rousseaux, Michael Esq PROPOSAL37Amy Elsner
1021Aditya M CampainArgentina2026-07-04Printing Dimensions PROPOSAL7Bernardo Dominic
1022Arvin C PaprockiArgentina2026-07-01Printing Dimensions NEW95Ivan Magalhaes
1023Adams A MorascaUnited Kingdom2026-07-03Benton, John B Jr RENEWAL53Onyama Limba
1024Ashley P ShinkoRussia2026-06-12Feiner Bros NEW0Elwin Sharvill
1025Arvin E MaletCanada2026-06-14Printing Dimensions NEGOTIATION61Ioni Bowcher
1026Cody D RutaUnited Kingdom2026-07-03Commercial Press PROPOSAL74Asiya Javayant
1027Leja V MaletUnited Kingdom2026-07-08Feltz Printing Service NEW51Asiya Javayant
1028Faith B OstroskyIndia2026-06-14Chapman, Ross E Esq QUALIFIED12Elwin Sharvill
1029Leja B ChuiGermany2026-06-25Buckley Miller Wright NEW72Ioni Bowcher
1030Leja W GlickIndia2026-07-04Rousseaux, Michael Esq RENEWAL67Ivan Magalhaes
1031Smith Q ButtIndia2026-07-07Feiner Bros NEGOTIATION82Asiya Javayant
1032Murillo O FigeroaUnited Kingdom2026-06-28Dorl, James J Esq QUALIFIED34Amy Elsner
1033Maria P FlosiIndia2026-07-03Feltz Printing Service UNQUALIFIED71Ivan Magalhaes
1034Faith Q GarufiIndia2026-06-26Buckley Miller Wright PROPOSAL66Asiya Javayant
1035Izzy V FollerSpain2026-06-27Rangoni Of Florence RENEWAL12Amy Elsner
1036Ivar J KuskoGermany2026-06-28Rangoni Of Florence PROPOSAL56Ioni Bowcher
1037Greenwood O GillianRussia2026-07-05Printing Dimensions NEW55Elwin Sharvill
1038Leja U VocelkaUnited Kingdom2026-07-01Rangoni Of Florence UNQUALIFIED71Amy Elsner
1039James D KuskoGermany2026-06-12Morlong Associates PROPOSAL72Asiya Javayant
1040Aditya V ShinkoArgentina2026-06-17Feltz Printing Service NEGOTIATION98Asiya Javayant
1041Maria M MorascaIndia2026-07-02Chanay, Jeffrey A Esq QUALIFIED41Asiya Javayant
1042Leon D WhobreyRussia2026-07-03Feiner Bros NEGOTIATION60Anna Fali
1043Greenwood H WhobreyUnited Kingdom2026-06-23Truhlar And Truhlar Attys QUALIFIED73Ioni Bowcher
1044Nicolas H WhobreyUnited Kingdom2026-07-01Truhlar And Truhlar Attys RENEWAL66Amy Elsner
1045Ricardo U MarrierSpain2026-06-25Feltz Printing Service UNQUALIFIED72Onyama Limba
1046Morrow D DarakjyItaly2026-07-07Rangoni Of Florence NEW18Elwin Sharvill
1047Deepesh J FollerRussia2026-06-27Feltz Printing Service QUALIFIED37Ioni Bowcher
1048Antonio Q RutaIndia2026-06-16Morlong Associates UNQUALIFIED24Bernardo Dominic
1049Kaitlin M CaldareraItaly2026-07-06Feltz Printing Service QUALIFIED80Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Z MorascaGermanyXuxue Feng PROPOSAL
Misaki K VocelkaItalyStephen Shaw NEW
Nicolas E GauchoArgentinaAmy Elsner NEW
Deepesh S WhobreyRussiaAnna Fali RENEWAL
Clifford T MaletGermanyXuxue Feng NEW
Jefferson Z StockhamUnited KingdomXuxue Feng NEGOTIATION
Kadeem E ShinkoFranceStephen Shaw RENEWAL
Julie M StockhamIndiaStephen Shaw NEGOTIATION
David A SchemmerJapanIoni Bowcher RENEWAL
Deepesh M RoysterIndiaIoni Bowcher UNQUALIFIED
Deepesh C MarrierItalyAnna Fali NEW
Tony N VenereSpainElwin Sharvill PROPOSAL
Smith R PaprockiArgentinaBernardo Dominic QUALIFIED
Aruna B NickaCanadaElwin Sharvill UNQUALIFIED
Sinclair K WieserJapanIoni Bowcher NEW
Mujtaba W MaletUnited KingdomAsiya Javayant QUALIFIED
Aruna L CaldareraArgentinaXuxue Feng RENEWAL
David Q DarakjyArgentinaBernardo Dominic RENEWAL
Sinclair K ChuiRussiaIvan Magalhaes QUALIFIED
Tony T WaycottBrazilXuxue Feng NEGOTIATION
Aditya A PaprockiArgentinaAmy Elsner RENEWAL
Jeanfrancois H CaudyArgentinaAsiya Javayant QUALIFIED
Francesco H MorascaJapanAmy Elsner PROPOSAL
Julie H KuskoGermanyElwin Sharvill NEW
Munro L WhobreyJapanStephen Shaw NEGOTIATION
Aika C WhobreyItalyStephen Shaw PROPOSAL
Faith S ShinkoBrazilElwin Sharvill UNQUALIFIED
Murillo H RoysterUnited KingdomElwin Sharvill RENEWAL
Tony O CaudyUnited KingdomElwin Sharvill NEGOTIATION
Aditya R IturbideRussiaAsiya Javayant QUALIFIED
Nicolas J BologniaGermanyXuxue Feng RENEWAL
Tony H BowleySpainAsiya Javayant QUALIFIED
Costa B ChuiBrazilElwin Sharvill NEGOTIATION
Aika B MarrierSpainElwin Sharvill NEGOTIATION
James E RutaAustraliaStephen Shaw UNQUALIFIED
Leon P MacleadGermanyOnyama Limba RENEWAL
Aruna U CampainArgentinaIoni Bowcher UNQUALIFIED
Maria S WaycottBrazilXuxue Feng UNQUALIFIED
Morrow U DarakjyRussiaAmy Elsner QUALIFIED
Maisha Y GillianIndiaAsiya Javayant NEGOTIATION
Juan Z GarufiCanadaAnna Fali UNQUALIFIED
Greenwood E NickaGermanyIvan Magalhaes NEW
Antonio H RoysterUnited KingdomAsiya Javayant RENEWAL
Salvatore X WaycottAustraliaAnna Fali QUALIFIED
Ashley E WaycottGermanyIvan Magalhaes NEW
Kadeem O RulapaughRussiaStephen Shaw PROPOSAL
Chavez B OstroskyItalyIoni Bowcher QUALIFIED
Jennifer Q GillianSpainAnna Fali UNQUALIFIED
Leon E FollerJapanStephen Shaw QUALIFIED
Clifford X MorascaBrazilXuxue Feng QUALIFIED
Frozen Columns
Name
Deepesh G Doe
Izzy U Kusko
Misaki E Darakjy
James F Nicka
Juan H Ferencz
Aditya S Gaucho
Munro X Nestle
Kadeem V Flosi
Misaki H Dilliard
Costa V Vocelka
Morrow P Marrier
Johnson Q Morasca
Cody T Waycott
Chavez D Malet
Smith T Caudy
Wickens K Venere
Chavez D Sergi
Adams R Poquette
Ivar P Rulapaugh
Ivar L Vocelka
Murillo U Iturbide
Sinclair Q Perin
Salvatore J Butt
Sinclair I Nicka
David H Royster
Salvatore G Vocelka
Kaitlin P Garufi
Claire R Albares
Cody M Vocelka
Leja N Malet
Rodrigues V Rulapaugh
Sinclair I Malet
Isabel J Dilliard
Tony L Flosi
Darci U Wieser
Jefferson S Campain
Darci M Bolognia
Smith X Stenseth
Cody Q Maclead
Salvatore Q Nicka
Francesco Z Wieser
Leja A Ferencz
Kaitlin E Saylors
Kaitlin C Vocelka
Arvin H Dilliard
Morrow R Amigon
Costa M Ruta
Leja N Shinko
Juan G Doe
Smith E Oldroyd
IdCountryDate
1000Japan2026-06-21
1001France2026-06-14
1002Spain2026-06-14
1003Germany2026-06-29
1004United Kingdom2026-07-08
1005Brazil2026-07-06
1006France2026-06-19
1007Spain2026-07-02
1008India2026-06-13
1009Germany2026-07-04
1010India2026-06-11
1011Japan2026-06-22
1012Russia2026-06-24
1013Italy2026-07-03
1014United Kingdom2026-06-17
1015Argentina2026-06-23
1016Italy2026-06-28
1017Canada2026-06-11
1018Brazil2026-07-02
1019Russia2026-06-09
1020Italy2026-06-20
1021Spain2026-07-03
1022Australia2026-07-05
1023Australia2026-06-09
1024Argentina2026-07-06
1025Australia2026-06-28
1026United Kingdom2026-06-28
1027Spain2026-06-15
1028Russia2026-06-15
1029India2026-06-25
1030Australia2026-06-26
1031Brazil2026-06-25
1032Brazil2026-06-26
1033France2026-06-30
1034Japan2026-06-15
1035Japan2026-06-22
1036Canada2026-06-27
1037Brazil2026-06-11
1038India2026-06-21
1039United Kingdom2026-07-01
1040Italy2026-06-12
1041Germany2026-06-28
1042India2026-06-09
1043Italy2026-06-17
1044Spain2026-06-27
1045Canada2026-07-02
1046India2026-06-25
1047Japan2026-06-16
1048Australia2026-06-30
1049Spain2026-06-21

On-Demand Data

NameIdCountryDate
Aruna K Kusko1000India2026-06-30
Johnson Z Flosi1001Japan2026-06-29
Greenwood F Campain1002Spain2026-06-30
Faith Y Foller1003Russia2026-07-08
Claire A Stenseth1004India2026-06-20
Maisha Q Chui1005Canada2026-06-24
Sinclair Z Caudy1006India2026-06-27
Stacey T Morasca1007Russia2026-07-06
Francesco M Dilliard1008Brazil2026-06-13
Alejandro U Stockham1009Russia2026-06-28
Mujtaba T Maclead1010Italy2026-06-18
Deepesh X Stockham1011Spain2026-06-26
Isabel B Gaucho1012Brazil2026-06-15
Costa V Wieser1013India2026-06-12
Adams J Saylors1014Argentina2026-07-08
Ashley Z Malet1015Australia2026-06-21
Munro N Darakjy1016Italy2026-06-19
David G Tollner1017Italy2026-07-04
Costa N Bolognia1018Japan2026-06-16
Maisha A Oldroyd1019Canada2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi X VenereArgentinaBernardo Dominic RENEWAL
James C GauchoArgentinaAsiya Javayant PROPOSAL
Francesco S CaldareraJapanIvan Magalhaes NEGOTIATION
Clifford X OstroskyRussiaIoni Bowcher UNQUALIFIED
Rodrigues O RimGermanyXuxue Feng UNQUALIFIED
Kaitlin J RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Morrow Y DoeArgentinaOnyama Limba UNQUALIFIED
Smith R FigeroaFranceOnyama Limba NEGOTIATION
Jefferson L PaprockiFranceXuxue Feng UNQUALIFIED
Mayumi F BologniaArgentinaIoni Bowcher NEGOTIATION
Jennifer A RutaJapanAsiya Javayant NEGOTIATION
Clifford V MarrierArgentinaBernardo Dominic NEW
Clifford T RimAustraliaIvan Magalhaes PROPOSAL
Stacey K ChuiFranceBernardo Dominic QUALIFIED
Chavez W SchemmerUnited KingdomAnna Fali RENEWAL
Greenwood S DarakjyCanadaIvan Magalhaes NEW
Chavez F IturbideIndiaAsiya Javayant PROPOSAL
Francesco E AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair K GillianArgentinaXuxue Feng RENEWAL
Arvin O PoquetteJapanXuxue Feng UNQUALIFIED
Emily E SchemmerGermanyIvan Magalhaes RENEWAL
Antonio I AmigonIndiaXuxue Feng PROPOSAL
Costa X RoysterUnited KingdomBernardo Dominic NEGOTIATION
Jones O OstroskyArgentinaXuxue Feng NEGOTIATION
Jones T WieserBrazilAmy Elsner NEW
Munro C AmigonItalyStephen Shaw NEGOTIATION
Aditya Q ShinkoIndiaStephen Shaw UNQUALIFIED
Izzy J RulapaughIndiaStephen Shaw NEW
Deepesh U OstroskyJapanAsiya Javayant RENEWAL
Antonio L FollerRussiaElwin Sharvill NEGOTIATION
Claire J BowleyItalyIvan Magalhaes PROPOSAL
Arvin T StensethGermanyBernardo Dominic NEGOTIATION
Mayumi T SaylorsCanadaBernardo Dominic NEW
Costa H TollnerCanadaAnna Fali PROPOSAL
Salvatore Y RulapaughGermanyStephen Shaw UNQUALIFIED
Murillo J AmigonJapanAnna Fali NEGOTIATION
Julie F ButtAustraliaBernardo Dominic PROPOSAL
Maisha D GarufiBrazilStephen Shaw PROPOSAL
Jones E OldroydCanadaXuxue Feng NEGOTIATION
Leon B KolmetzSpainAnna Fali 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>