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 K FollerArgentinaIoni Bowcher RENEWAL
Clifford R DoeSpainOnyama Limba NEW
Faith H FigeroaUnited KingdomBernardo Dominic NEW
Chavez D IturbideIndiaIoni Bowcher RENEWAL
Jeanfrancois I GarufiRussiaElwin Sharvill NEGOTIATION
Cody K PaprockiFranceIvan Magalhaes NEGOTIATION
Kadeem E RulapaughUnited KingdomBernardo Dominic NEW
Leon O OstroskyAustraliaElwin Sharvill PROPOSAL
Izzy J IturbideUnited KingdomAnna Fali PROPOSAL
Murillo W CaudyRussiaElwin Sharvill NEW
Tony W StensethRussiaStephen Shaw RENEWAL
Jeanfrancois V MorascaCanadaStephen Shaw NEW
Aditya S GauchoUnited KingdomAnna Fali UNQUALIFIED
Maisha Z OstroskyJapanElwin Sharvill RENEWAL
Wickens Y BowleyArgentinaAmy Elsner UNQUALIFIED
Arvin V BriddickSpainAnna Fali QUALIFIED
Chavez U FlosiArgentinaXuxue Feng NEW
Juan S IturbideFranceBernardo Dominic QUALIFIED
Silvio A PaprockiAustraliaAsiya Javayant UNQUALIFIED
Chavez R ButtAustraliaAsiya Javayant RENEWAL
Mujtaba F CaldareraJapanIoni Bowcher UNQUALIFIED
Deepesh O GlickCanadaIvan Magalhaes UNQUALIFIED
Silvio H GarufiGermanyIvan Magalhaes NEW
Clifford E IturbideBrazilAnna Fali QUALIFIED
Chavez H PerinArgentinaBernardo Dominic RENEWAL
Stacey S GauchoSpainBernardo Dominic NEW
Ivar Y PerinItalyIoni Bowcher NEW
James X FerenczSpainOnyama Limba QUALIFIED
Clifford A FerenczGermanyAmy Elsner NEW
Maisha H CaudyRussiaIvan Magalhaes PROPOSAL
Adams Q RulapaughAustraliaXuxue Feng QUALIFIED
Izzy W SaylorsBrazilBernardo Dominic QUALIFIED
Emily V PaprockiUnited KingdomStephen Shaw RENEWAL
Kaitlin U MarrierRussiaAnna Fali PROPOSAL
Rodrigues T PaprockiJapanAnna Fali RENEWAL
Sinclair M MacleadAustraliaIvan Magalhaes RENEWAL
Ashley O InouyeUnited KingdomIoni Bowcher PROPOSAL
Costa R ChuiBrazilBernardo Dominic RENEWAL
Stacey Q MarrierIndiaBernardo Dominic PROPOSAL
Cody N GillianArgentinaIoni Bowcher NEGOTIATION
Stacey C OldroydUnited KingdomIvan Magalhaes RENEWAL
Izzy S BowleyArgentinaIoni Bowcher NEW
Octavia O VocelkaArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois H RimRussiaElwin Sharvill UNQUALIFIED
Alejandro E AlbaresArgentinaIvan Magalhaes PROPOSAL
Arvin A WaycottSpainStephen Shaw RENEWAL
Tony F InouyeBrazilAsiya Javayant NEW
Kaitlin B CampainCanadaXuxue Feng UNQUALIFIED
Aditya T CaldareraSpainElwin Sharvill NEW
Mujtaba J AmigonSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore D IturbideGermanyElwin Sharvill NEGOTIATION
Jefferson F DilliardJapanIvan Magalhaes RENEWAL
Adams P RulapaughBrazilAnna Fali NEGOTIATION
Francesco F MorascaFranceIvan Magalhaes UNQUALIFIED
David O DarakjyBrazilOnyama Limba UNQUALIFIED
Salvatore B PerinRussiaAmy Elsner UNQUALIFIED
Julie U BriddickFranceAnna Fali PROPOSAL
Jennifer V MacleadAustraliaXuxue Feng RENEWAL
Jennifer N RimArgentinaAnna Fali NEGOTIATION
David Z FerenczGermanyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David Q TollnerRussia2026-06-29Chemel, James L Cpa NEGOTIATION44Onyama Limba
1001Clifford I SlusarskiSpain2026-06-30Commercial Press PROPOSAL22Amy Elsner
1002Silvio Y MorascaIndia2026-06-14Commercial Press NEW21Onyama Limba
1003Leon P FerenczAustralia2026-06-28Feiner Bros NEW50Stephen Shaw
1004Ricardo K GauchoFrance2026-06-23Printing Dimensions PROPOSAL66Onyama Limba
1005Faith R FlosiGermany2026-06-16King, Christopher A Esq RENEWAL91Ioni Bowcher
1006David N ChuiArgentina2026-06-14Commercial Press NEGOTIATION3Ivan Magalhaes
1007Silvio C GauchoAustralia2026-07-02King, Christopher A Esq PROPOSAL43Asiya Javayant
1008Leon Q MorascaJapan2026-06-24Truhlar And Truhlar Attys UNQUALIFIED69Amy Elsner
1009Munro S SergiUnited Kingdom2026-06-21Benton, John B Jr QUALIFIED75Bernardo Dominic
1010Mujtaba U SergiItaly2026-06-19Chemel, James L Cpa QUALIFIED68Onyama Limba
1011Wickens Y GauchoBrazil2026-06-11Buckley Miller Wright QUALIFIED3Onyama Limba
1012Wickens S FigeroaItaly2026-06-26Commercial Press QUALIFIED24Elwin Sharvill
1013Octavia V OstroskyFrance2026-06-27Benton, John B Jr PROPOSAL23Ivan Magalhaes
1014Chavez D StockhamJapan2026-06-27Morlong Associates UNQUALIFIED89Anna Fali
1015Maisha T InouyeRussia2026-07-06Truhlar And Truhlar Attys PROPOSAL33Anna Fali
1016Claire A ShinkoRussia2026-06-18Rousseaux, Michael Esq UNQUALIFIED43Onyama Limba
1017Munro L FigeroaItaly2026-06-12Buckley Miller Wright RENEWAL32Ivan Magalhaes
1018Leon N AmigonArgentina2026-06-24Feltz Printing Service UNQUALIFIED79Bernardo Dominic
1019Cody K PerinSpain2026-07-06Truhlar And Truhlar Attys UNQUALIFIED24Onyama Limba
1020Kaitlin Q PerinArgentina2026-06-19Feiner Bros NEW72Ivan Magalhaes
1021Maisha D VenereItaly2026-07-06Buckley Miller Wright PROPOSAL80Asiya Javayant
1022Deepesh J VenereRussia2026-06-29Truhlar And Truhlar Attys QUALIFIED91Xuxue Feng
1023Aruna D CaldareraUnited Kingdom2026-06-11King, Christopher A Esq NEGOTIATION35Onyama Limba
1024Jefferson B FerenczSpain2026-07-05Benton, John B Jr RENEWAL81Stephen Shaw
1025Deepesh T WaycottUnited Kingdom2026-06-15Rangoni Of Florence NEW21Stephen Shaw
1026Ashley Y GlickArgentina2026-06-13Printing Dimensions PROPOSAL75Asiya Javayant
1027Francesco X PaprockiUnited Kingdom2026-07-03Feiner Bros NEGOTIATION69Asiya Javayant
1028Octavia C MaletFrance2026-06-22Buckley Miller Wright PROPOSAL1Ioni Bowcher
1029Ricardo U StensethSpain2026-06-13Chapman, Ross E Esq UNQUALIFIED37Ivan Magalhaes
1030Faith B MorascaGermany2026-07-09Chanay, Jeffrey A Esq QUALIFIED63Ivan Magalhaes
1031Izzy Z WhobreyItaly2026-06-14Chemel, James L Cpa NEW98Ivan Magalhaes
1032Smith P WhobreyCanada2026-06-25Morlong Associates NEGOTIATION75Xuxue Feng
1033James Z ChuiJapan2026-06-13Rousseaux, Michael Esq QUALIFIED19Stephen Shaw
1034Isabel P BriddickFrance2026-06-26Commercial Press UNQUALIFIED69Onyama Limba
1035Misaki U SaylorsRussia2026-06-11Dorl, James J Esq RENEWAL92Anna Fali
1036Jennifer Q TollnerFrance2026-06-28Dorl, James J Esq RENEWAL45Asiya Javayant
1037Mujtaba U CaudyUnited Kingdom2026-06-24Truhlar And Truhlar Attys QUALIFIED8Bernardo Dominic
1038James I DarakjyUnited Kingdom2026-07-10Feiner Bros NEW35Stephen Shaw
1039Darci T CampainItaly2026-06-23Feiner Bros RENEWAL89Asiya Javayant
1040Emily R MacleadAustralia2026-06-26King, Christopher A Esq RENEWAL42Xuxue Feng
1041Jones F ChuiBrazil2026-06-15King, Christopher A Esq NEGOTIATION50Amy Elsner
1042Chavez C WhobreyIndia2026-06-23Commercial Press RENEWAL68Anna Fali
1043Kadeem S NestleGermany2026-06-15Chanay, Jeffrey A Esq NEW35Asiya Javayant
1044Wickens B FigeroaArgentina2026-06-20Dorl, James J Esq RENEWAL4Xuxue Feng
1045Juan O RoysterItaly2026-07-03Feiner Bros PROPOSAL31Stephen Shaw
1046Faith T SchemmerCanada2026-06-14Benton, John B Jr QUALIFIED0Bernardo Dominic
1047Claire A MorascaGermany2026-06-28Feltz Printing Service PROPOSAL66Amy Elsner
1048Ashley L OstroskyFrance2026-07-05Rousseaux, Michael Esq UNQUALIFIED36Onyama Limba
1049Deepesh K RutaSpain2026-06-23Feltz Printing Service PROPOSAL85Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Maisha S NestleCanadaAmy Elsner NEW
Adams E SergiUnited KingdomAnna Fali RENEWAL
Jennifer Z PerinCanadaStephen Shaw QUALIFIED
Johnson C MorascaFranceIvan Magalhaes QUALIFIED
Mujtaba V RulapaughSpainIoni Bowcher UNQUALIFIED
Arvin D KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna L DarakjyArgentinaIvan Magalhaes NEGOTIATION
Isabel K StockhamGermanyAnna Fali RENEWAL
Deepesh D DarakjyGermanyIvan Magalhaes NEGOTIATION
James N VenereSpainOnyama Limba PROPOSAL
Emily J MorascaFranceStephen Shaw PROPOSAL
Salvatore P CaudyGermanyAmy Elsner NEGOTIATION
Aditya B CaldareraAustraliaStephen Shaw NEGOTIATION
Sinclair T ChuiIndiaAmy Elsner NEW
Leon E FigeroaJapanAsiya Javayant RENEWAL
Leon K StensethBrazilStephen Shaw NEW
Maria V WaycottUnited KingdomXuxue Feng NEW
Salvatore R PoquetteArgentinaIvan Magalhaes RENEWAL
Kaitlin G SaylorsIndiaStephen Shaw NEGOTIATION
Kaitlin V VocelkaFranceElwin Sharvill UNQUALIFIED
Arvin I SaylorsArgentinaOnyama Limba NEW
Wickens O FerenczItalyIoni Bowcher PROPOSAL
Kaitlin P SchemmerItalyAmy Elsner PROPOSAL
James J CaudyUnited KingdomOnyama Limba RENEWAL
Sinclair J BowleyCanadaOnyama Limba NEGOTIATION
Jennifer L FerenczRussiaStephen Shaw QUALIFIED
Leja L SergiSpainAnna Fali NEW
Jennifer O GillianSpainBernardo Dominic UNQUALIFIED
Salvatore C DarakjyArgentinaAmy Elsner RENEWAL
Octavia L ChuiAustraliaIoni Bowcher PROPOSAL
Leja S MaletCanadaAnna Fali RENEWAL
Mujtaba Q StensethBrazilAnna Fali PROPOSAL
Jennifer T StockhamIndiaAnna Fali UNQUALIFIED
Arvin U FlosiGermanyOnyama Limba NEGOTIATION
Jeanfrancois N SlusarskiRussiaBernardo Dominic UNQUALIFIED
Wickens E ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Sinclair M ChuiSpainIvan Magalhaes NEW
Leja B MacleadArgentinaStephen Shaw UNQUALIFIED
Juan R KolmetzJapanIoni Bowcher NEW
Isabel G WieserArgentinaIvan Magalhaes UNQUALIFIED
Misaki D CaldareraSpainStephen Shaw UNQUALIFIED
Mujtaba Y StockhamItalyOnyama Limba UNQUALIFIED
Greenwood O VenereJapanAmy Elsner RENEWAL
Mayumi P OldroydRussiaAnna Fali QUALIFIED
Julie J RulapaughCanadaAnna Fali RENEWAL
Wickens Q RoysterFranceOnyama Limba UNQUALIFIED
Wickens Q CaldareraUnited KingdomAmy Elsner NEW
Costa U CampainRussiaIoni Bowcher NEW
Stacey O FollerCanadaAsiya Javayant PROPOSAL
Cody Y SaylorsAustraliaAmy Elsner QUALIFIED
Frozen Columns
Name
Alejandro M Stenseth
Claire T Butt
Jeanfrancois N Bowley
Rodrigues A Perin
Morrow O Garufi
Misaki V Kusko
Jones Z Kusko
Arvin D Paprocki
Alejandro G Paprocki
Mayumi Z Whobrey
Aika O Waycott
Octavia R Flosi
Tony I Marrier
Wickens F Waycott
Sinclair W Caudy
Ricardo F Ferencz
Ivar X Campain
Faith N Rim
Faith J Caudy
Munro L Perin
Aruna Q Kusko
Murillo E Marrier
Jennifer S Stockham
James I Albares
Mayumi L Wieser
Sinclair L Paprocki
Tony E Maclead
James J Paprocki
Ashley V Caudy
Aika A Chui
James D Darakjy
Leon E Inouye
Morrow F Chui
David M Rulapaugh
Leon Z Dilliard
Aruna O Kusko
Johnson T Malet
Jeanfrancois Q Wieser
Leja R Morasca
Faith Q Figeroa
Smith Y Paprocki
Kadeem E Schemmer
Francesco U Wieser
Salvatore L Doe
Leja K Bolognia
Ricardo M Shinko
Salvatore E Inouye
Kadeem V Wieser
Johnson E Inouye
Alejandro H Tollner
IdCountryDate
1000Italy2026-06-15
1001Australia2026-07-09
1002Brazil2026-06-20
1003France2026-07-01
1004Russia2026-06-14
1005Russia2026-06-14
1006Spain2026-07-05
1007Russia2026-06-22
1008Australia2026-07-05
1009France2026-06-21
1010Brazil2026-06-14
1011France2026-07-08
1012Germany2026-06-25
1013India2026-06-29
1014Japan2026-06-21
1015Germany2026-07-03
1016France2026-07-04
1017Germany2026-07-09
1018United Kingdom2026-06-21
1019United Kingdom2026-06-19
1020Spain2026-07-03
1021Japan2026-07-02
1022Spain2026-06-27
1023Russia2026-06-22
1024Spain2026-06-27
1025Japan2026-06-29
1026Japan2026-06-12
1027Russia2026-06-21
1028Spain2026-06-22
1029Australia2026-06-30
1030India2026-07-03
1031Brazil2026-06-21
1032Spain2026-06-13
1033Brazil2026-06-22
1034Argentina2026-06-17
1035Brazil2026-07-04
1036Japan2026-06-26
1037France2026-06-21
1038Russia2026-06-18
1039France2026-07-01
1040Canada2026-07-03
1041Germany2026-06-27
1042Italy2026-06-21
1043Italy2026-07-03
1044France2026-07-04
1045Japan2026-07-03
1046Spain2026-06-24
1047Spain2026-07-07
1048Argentina2026-06-26
1049United Kingdom2026-06-30

On-Demand Data

NameIdCountryDate
Greenwood R Vocelka1000Italy2026-07-06
Ivar Q Inouye1001France2026-06-22
Kadeem B Saylors1002Japan2026-07-08
Clifford X Chui1003Brazil2026-07-06
Ivar K Stenseth1004India2026-06-23
Kaitlin I Chui1005Russia2026-06-24
Aruna I Saylors1006Australia2026-06-28
Johnson N Nicka1007Russia2026-07-05
Morrow Y Rim1008India2026-07-04
Munro Z Morasca1009Argentina2026-07-06
Francesco O Schemmer1010Russia2026-06-26
Emily J Dilliard1011Spain2026-06-26
Adams C Tollner1012Australia2026-06-12
Darci B Garufi1013Germany2026-06-20
Leja O Poquette1014Japan2026-06-16
Ricardo H Royster1015Germany2026-07-02
Julie G Iturbide1016Spain2026-06-11
Salvatore Y Nestle1017Spain2026-07-04
Leja Q Albares1018Japan2026-07-04
Morrow I Sergi1019Japan2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues R MaletGermanyBernardo Dominic RENEWAL
Isabel B StockhamBrazilOnyama Limba NEW
Arvin S BriddickSpainIvan Magalhaes RENEWAL
Tony D GlickUnited KingdomAmy Elsner UNQUALIFIED
Antonio G AlbaresAustraliaBernardo Dominic NEW
Jennifer C NestleSpainIvan Magalhaes NEW
Octavia R SchemmerItalyAnna Fali NEGOTIATION
Tony W WhobreyJapanStephen Shaw UNQUALIFIED
Emily P FlosiBrazilElwin Sharvill UNQUALIFIED
Munro R WaycottUnited KingdomElwin Sharvill QUALIFIED
Darci X CampainUnited KingdomAsiya Javayant RENEWAL
Aika I PoquetteCanadaXuxue Feng NEW
Francesco D TollnerJapanIvan Magalhaes UNQUALIFIED
Antonio R DilliardUnited KingdomIoni Bowcher PROPOSAL
David D SchemmerIndiaXuxue Feng NEW
Chavez R WaycottFranceOnyama Limba QUALIFIED
Leon W AmigonIndiaBernardo Dominic UNQUALIFIED
Francesco W InouyeArgentinaAmy Elsner NEW
Darci G GauchoAustraliaAsiya Javayant QUALIFIED
Kaitlin A MorascaSpainBernardo Dominic UNQUALIFIED
Stacey D GauchoBrazilAmy Elsner RENEWAL
Johnson U ShinkoFranceXuxue Feng UNQUALIFIED
Clifford I OstroskySpainIvan Magalhaes RENEWAL
Silvio O MorascaIndiaAmy Elsner UNQUALIFIED
Jennifer B CaldareraIndiaIoni Bowcher NEGOTIATION
Izzy X RimSpainXuxue Feng UNQUALIFIED
Smith Z SaylorsArgentinaAmy Elsner QUALIFIED
Jennifer X VenereSpainAnna Fali RENEWAL
Tony A MacleadBrazilIvan Magalhaes NEW
Adams N ChuiRussiaOnyama Limba UNQUALIFIED
Chavez I PaprockiSpainElwin Sharvill QUALIFIED
Adams T SchemmerGermanyAnna Fali NEW
Ashley R BowleyCanadaAmy Elsner QUALIFIED
Kadeem S AmigonBrazilXuxue Feng NEW
Munro I VenereGermanyAsiya Javayant NEGOTIATION
Deepesh W CampainAustraliaIvan Magalhaes RENEWAL
Johnson G SaylorsBrazilIvan Magalhaes NEGOTIATION
Juan P MorascaSpainIoni Bowcher NEGOTIATION
Chavez D FollerIndiaStephen Shaw NEGOTIATION
Alejandro A MorascaUnited KingdomBernardo Dominic UNQUALIFIED

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