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
James Z PerinRussiaBernardo Dominic QUALIFIED
Emily U BriddickIndiaAmy Elsner UNQUALIFIED
Leja X TollnerItalyIoni Bowcher QUALIFIED
Deepesh J WieserBrazilIoni Bowcher QUALIFIED
Wickens A CaldareraItalyStephen Shaw NEGOTIATION
Aruna G GlickJapanIvan Magalhaes NEW
Clifford D CampainSpainStephen Shaw UNQUALIFIED
Sinclair H KuskoSpainStephen Shaw QUALIFIED
Jeanfrancois I MaletSpainBernardo Dominic QUALIFIED
Murillo J MaletCanadaAnna Fali QUALIFIED
Isabel J StockhamSpainAsiya Javayant RENEWAL
Mujtaba J MaletRussiaIvan Magalhaes PROPOSAL
Maisha W VocelkaGermanyXuxue Feng UNQUALIFIED
Juan P DoeAustraliaIoni Bowcher QUALIFIED
Arvin L RimRussiaIoni Bowcher UNQUALIFIED
Misaki B GauchoItalyIvan Magalhaes NEGOTIATION
Ivar L OstroskyCanadaBernardo Dominic PROPOSAL
Isabel Y FlosiAustraliaStephen Shaw UNQUALIFIED
Izzy U InouyeAustraliaAnna Fali PROPOSAL
Jeanfrancois V MorascaGermanyAnna Fali PROPOSAL
Leja S RutaJapanBernardo Dominic UNQUALIFIED
Antonio U MaletAustraliaAmy Elsner PROPOSAL
Nicolas K OldroydSpainIoni Bowcher NEW
Francesco G AmigonFranceStephen Shaw PROPOSAL
Deepesh D MacleadArgentinaOnyama Limba NEW
Morrow N GillianJapanXuxue Feng QUALIFIED
Misaki W FollerAustraliaBernardo Dominic QUALIFIED
Murillo U NestleIndiaOnyama Limba QUALIFIED
David S NickaIndiaBernardo Dominic NEGOTIATION
Chavez J MorascaArgentinaAnna Fali UNQUALIFIED
Antonio D BowleyFranceStephen Shaw RENEWAL
Misaki A WieserSpainBernardo Dominic NEGOTIATION
Claire E RulapaughFranceElwin Sharvill UNQUALIFIED
Costa Z AmigonGermanyIvan Magalhaes UNQUALIFIED
Isabel C BowleyArgentinaBernardo Dominic NEGOTIATION
Tony K GarufiFranceBernardo Dominic NEGOTIATION
Faith N FollerArgentinaAmy Elsner NEW
Julie E FlosiBrazilIvan Magalhaes PROPOSAL
Aditya V DoeJapanElwin Sharvill UNQUALIFIED
Aditya L DilliardUnited KingdomIvan Magalhaes QUALIFIED
Izzy U ButtJapanOnyama Limba NEW
Jefferson P InouyeIndiaAsiya Javayant NEW
Aika S NestleJapanOnyama Limba RENEWAL
Alejandro F OldroydGermanyElwin Sharvill NEW
Nicolas H GlickCanadaAmy Elsner PROPOSAL
Clifford O RutaJapanIvan Magalhaes UNQUALIFIED
Maisha L GarufiAustraliaAmy Elsner QUALIFIED
Faith O BriddickGermanyBernardo Dominic QUALIFIED
Ashley Y FollerCanadaIvan Magalhaes NEGOTIATION
Tony X FerenczBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Tony G ChuiBrazilBernardo Dominic PROPOSAL
Faith U ButtBrazilIoni Bowcher UNQUALIFIED
Nicolas N MarrierBrazilStephen Shaw NEW
Claire P StockhamJapanIoni Bowcher UNQUALIFIED
Stacey H MorascaAustraliaOnyama Limba NEGOTIATION
Antonio D PoquetteFranceStephen Shaw UNQUALIFIED
Isabel A OldroydSpainXuxue Feng NEW
Alejandro W WieserAustraliaIoni Bowcher RENEWAL
Adams G BowleyFranceAnna Fali UNQUALIFIED
Jones T NickaAustraliaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith N ChuiIndia2026-08-02Chemel, James L Cpa UNQUALIFIED31Elwin Sharvill
1001Rodrigues U SchemmerCanada2026-07-30Chemel, James L Cpa PROPOSAL63Asiya Javayant
1002Antonio G MarrierUnited Kingdom2026-08-09Chemel, James L Cpa PROPOSAL14Xuxue Feng
1003Juan B FlosiJapan2026-08-14Buckley Miller Wright UNQUALIFIED27Asiya Javayant
1004Chavez H InouyeCanada2026-08-04Morlong Associates QUALIFIED84Stephen Shaw
1005Emily V CaudyArgentina2026-08-25Commercial Press PROPOSAL51Bernardo Dominic
1006James J ShinkoCanada2026-08-21Chapman, Ross E Esq NEGOTIATION76Anna Fali
1007Silvio H SlusarskiItaly2026-08-19Feiner Bros QUALIFIED24Amy Elsner
1008James Z SlusarskiSpain2026-08-04Feiner Bros RENEWAL48Xuxue Feng
1009Rodrigues K NestleGermany2026-08-26Morlong Associates QUALIFIED88Xuxue Feng
1010Deepesh N RimArgentina2026-08-01King, Christopher A Esq UNQUALIFIED33Amy Elsner
1011Kadeem A StensethJapan2026-08-05Feiner Bros NEGOTIATION70Bernardo Dominic
1012Salvatore N OldroydItaly2026-08-07Morlong Associates PROPOSAL15Anna Fali
1013Alejandro P IturbideUnited Kingdom2026-08-23Feltz Printing Service RENEWAL79Elwin Sharvill
1014Murillo S SlusarskiUnited Kingdom2026-08-20Truhlar And Truhlar Attys RENEWAL47Ivan Magalhaes
1015James J BowleyAustralia2026-07-31Benton, John B Jr NEW44Elwin Sharvill
1016Kaitlin O IturbideJapan2026-08-22Chapman, Ross E Esq RENEWAL20Asiya Javayant
1017Ashley E MacleadFrance2026-07-31Morlong Associates NEGOTIATION59Anna Fali
1018Tony R KolmetzFrance2026-08-01Morlong Associates UNQUALIFIED80Amy Elsner
1019Maria M AlbaresBrazil2026-08-24Printing Dimensions PROPOSAL82Ivan Magalhaes
1020Leja M VenereBrazil2026-08-03Chapman, Ross E Esq NEGOTIATION89Anna Fali
1021Aditya Z DoeCanada2026-08-10Commercial Press QUALIFIED20Elwin Sharvill
1022David I GarufiAustralia2026-08-03Morlong Associates NEW83Elwin Sharvill
1023Salvatore O StensethArgentina2026-08-16Truhlar And Truhlar Attys PROPOSAL80Ioni Bowcher
1024Morrow C CaldareraFrance2026-08-03Commercial Press NEW1Amy Elsner
1025Emily B NestleUnited Kingdom2026-08-12Dorl, James J Esq QUALIFIED85Ivan Magalhaes
1026Mujtaba I GillianAustralia2026-08-23Chanay, Jeffrey A Esq UNQUALIFIED53Onyama Limba
1027Leon D BowleyGermany2026-08-01King, Christopher A Esq QUALIFIED66Bernardo Dominic
1028Adams A BologniaBrazil2026-08-27Chapman, Ross E Esq QUALIFIED65Anna Fali
1029Izzy L MacleadItaly2026-08-20Benton, John B Jr UNQUALIFIED25Onyama Limba
1030Emily H MarrierIndia2026-08-27Feltz Printing Service UNQUALIFIED38Asiya Javayant
1031Ricardo M KuskoCanada2026-08-27Rangoni Of Florence PROPOSAL2Bernardo Dominic
1032Faith P NickaGermany2026-08-03Printing Dimensions NEW83Onyama Limba
1033Leja L MaletGermany2026-08-23Commercial Press UNQUALIFIED81Stephen Shaw
1034Kadeem U StockhamUnited Kingdom2026-08-18Commercial Press QUALIFIED27Elwin Sharvill
1035Wickens L MacleadAustralia2026-08-17Printing Dimensions PROPOSAL10Ioni Bowcher
1036Jones N BowleyJapan2026-08-03Printing Dimensions RENEWAL39Anna Fali
1037Alejandro T DoeIndia2026-08-01Chapman, Ross E Esq RENEWAL57Onyama Limba
1038Jones Z VocelkaItaly2026-08-27Chapman, Ross E Esq PROPOSAL74Anna Fali
1039Adams L PaprockiJapan2026-08-19Chanay, Jeffrey A Esq PROPOSAL93Asiya Javayant
1040Murillo L BologniaCanada2026-08-01Feiner Bros RENEWAL35Onyama Limba
1041Johnson M GarufiAustralia2026-08-02Rangoni Of Florence UNQUALIFIED0Stephen Shaw
1042Juan J SaylorsRussia2026-08-01Dorl, James J Esq NEGOTIATION41Xuxue Feng
1043Ricardo D DarakjyBrazil2026-08-13Chemel, James L Cpa UNQUALIFIED61Ivan Magalhaes
1044Aika N InouyeRussia2026-08-15Chanay, Jeffrey A Esq NEGOTIATION23Elwin Sharvill
1045Deepesh B AmigonCanada2026-08-13Chemel, James L Cpa PROPOSAL75Stephen Shaw
1046Costa G MaletItaly2026-08-28Chanay, Jeffrey A Esq UNQUALIFIED4Asiya Javayant
1047Isabel I ChuiFrance2026-08-22Chanay, Jeffrey A Esq UNQUALIFIED29Xuxue Feng
1048Jennifer X NestleBrazil2026-08-20Rangoni Of Florence PROPOSAL5Bernardo Dominic
1049Leja E KuskoUnited Kingdom2026-08-25Printing Dimensions UNQUALIFIED30Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Morrow T BologniaBrazilXuxue Feng NEW
Jennifer B DarakjyItalyOnyama Limba PROPOSAL
Arvin C WhobreyCanadaBernardo Dominic PROPOSAL
Claire V NickaJapanIoni Bowcher NEW
Jeanfrancois W StensethArgentinaXuxue Feng NEW
Adams Q GarufiIndiaXuxue Feng PROPOSAL
Tony L RoysterArgentinaBernardo Dominic UNQUALIFIED
David O ShinkoCanadaOnyama Limba PROPOSAL
Aika M GarufiAustraliaAmy Elsner NEW
Mujtaba K GarufiArgentinaAsiya Javayant RENEWAL
Stacey K BriddickUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba D WhobreyRussiaOnyama Limba NEW
Greenwood U SchemmerFranceStephen Shaw NEW
James U OldroydItalyAnna Fali UNQUALIFIED
Salvatore J MorascaArgentinaAnna Fali QUALIFIED
Jeanfrancois Q PoquetteJapanBernardo Dominic UNQUALIFIED
Jennifer A SergiArgentinaAmy Elsner NEGOTIATION
Silvio P DarakjyCanadaIoni Bowcher QUALIFIED
Rodrigues E WaycottUnited KingdomXuxue Feng UNQUALIFIED
Tony G CaldareraGermanyOnyama Limba QUALIFIED
Emily M PoquetteFranceXuxue Feng QUALIFIED
Leon N PaprockiFranceAnna Fali QUALIFIED
Leja M MorascaSpainAmy Elsner NEW
Misaki J FerenczSpainElwin Sharvill NEGOTIATION
Cody R KolmetzSpainIoni Bowcher QUALIFIED
Jones J MorascaJapanBernardo Dominic RENEWAL
David M NickaFranceIvan Magalhaes UNQUALIFIED
Stacey E CampainJapanIvan Magalhaes QUALIFIED
Mayumi E KuskoIndiaBernardo Dominic NEGOTIATION
Isabel J FerenczItalyXuxue Feng RENEWAL
Alejandro A TollnerFranceAsiya Javayant QUALIFIED
Jennifer L InouyeCanadaOnyama Limba PROPOSAL
Morrow X KolmetzItalyIoni Bowcher PROPOSAL
Maria J ButtCanadaOnyama Limba NEGOTIATION
Cody Q DoeJapanXuxue Feng UNQUALIFIED
Aditya D StockhamSpainAsiya Javayant NEW
Arvin U MacleadSpainStephen Shaw QUALIFIED
James Q MaletJapanBernardo Dominic QUALIFIED
Cody R GillianRussiaAnna Fali RENEWAL
Stacey P KuskoAustraliaXuxue Feng PROPOSAL
Chavez U FerenczAustraliaAmy Elsner RENEWAL
Misaki D DarakjyJapanBernardo Dominic RENEWAL
Murillo A MaletJapanElwin Sharvill QUALIFIED
Greenwood Z ButtUnited KingdomBernardo Dominic UNQUALIFIED
Aditya Z CampainJapanAmy Elsner NEGOTIATION
Johnson X DarakjyCanadaBernardo Dominic QUALIFIED
Maria K ButtGermanyOnyama Limba NEGOTIATION
Johnson W PerinFranceElwin Sharvill QUALIFIED
Adams Y OstroskySpainAmy Elsner QUALIFIED
Deepesh D KolmetzGermanyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Octavia C Inouye
Arvin M Vocelka
Rodrigues C Venere
Alejandro R Poquette
Aruna W Gaucho
Alejandro O Darakjy
Sinclair S Foller
Octavia G Rulapaugh
Aditya D Morasca
Ashley Q Amigon
Aditya W Waycott
Munro H Garufi
Morrow R Malet
Wickens P Campain
Jeanfrancois Y Caudy
Aika A Schemmer
Johnson W Butt
Costa K Waycott
Silvio J Saylors
Greenwood G Rulapaugh
Chavez K Tollner
Jefferson W Ostrosky
Stacey D Perin
Johnson F Iturbide
Isabel W Bolognia
Silvio F Malet
Isabel U Dilliard
Izzy Q Schemmer
Maria A Iturbide
Octavia R Venere
Sinclair L Maclead
Antonio F Marrier
Juan S Caudy
Juan G Iturbide
Claire N Caudy
Jennifer B Figeroa
Maisha M Shinko
Aruna I Figeroa
Mayumi H Dilliard
Jefferson Q Slusarski
Costa K Malet
Francesco R Bowley
Ashley Y Caudy
Aditya Q Kusko
Kaitlin J Sergi
James Z Briddick
Tony D Iturbide
Deepesh D Caldarera
Silvio X Gaucho
Jones I Rulapaugh
IdCountryDate
1000Brazil2026-08-02
1001France2026-08-07
1002Germany2026-08-19
1003Japan2026-08-16
1004Russia2026-08-14
1005India2026-08-18
1006United Kingdom2026-08-26
1007Brazil2026-08-18
1008France2026-08-17
1009Germany2026-08-02
1010United Kingdom2026-08-11
1011Russia2026-08-22
1012Argentina2026-08-28
1013India2026-08-07
1014Germany2026-08-21
1015Argentina2026-08-23
1016Russia2026-08-06
1017Canada2026-08-10
1018Japan2026-08-15
1019Italy2026-08-26
1020United Kingdom2026-08-25
1021Japan2026-08-11
1022France2026-08-08
1023Brazil2026-08-16
1024Argentina2026-08-14
1025Japan2026-08-11
1026Brazil2026-08-17
1027Brazil2026-08-19
1028Brazil2026-07-30
1029Argentina2026-08-24
1030United Kingdom2026-08-27
1031Italy2026-08-12
1032Japan2026-08-20
1033Brazil2026-08-07
1034Canada2026-08-19
1035United Kingdom2026-08-19
1036Italy2026-08-18
1037Italy2026-08-19
1038Japan2026-08-20
1039Spain2026-08-27
1040United Kingdom2026-08-13
1041Brazil2026-08-17
1042Spain2026-08-05
1043United Kingdom2026-08-08
1044Canada2026-08-14
1045India2026-08-03
1046Spain2026-08-04
1047Brazil2026-08-16
1048Italy2026-08-26
1049Spain2026-08-15

On-Demand Data

NameIdCountryDate
Morrow I Slusarski1000Spain2026-08-10
Chavez F Venere1001France2026-08-04
Tony L Nicka1002Russia2026-08-08
Emily M Kusko1003Germany2026-08-16
Nicolas C Glick1004Canada2026-08-09
Kaitlin O Paprocki1005Spain2026-08-07
Maria P Malet1006Italy2026-08-09
Stacey N Oldroyd1007Canada2026-08-04
Leon A Saylors1008Argentina2026-08-07
Arvin K Foller1009India2026-08-14
Smith U Waycott1010United Kingdom2026-08-21
Silvio S Stockham1011Spain2026-08-04
Deepesh Z Iturbide1012India2026-08-07
Nicolas T Venere1013Russia2026-08-09
Claire D Whobrey1014India2026-08-27
Jones I Oldroyd1015Russia2026-08-12
Chavez K Gillian1016Spain2026-08-03
Jones F Foller1017France2026-08-27
Jefferson I Caldarera1018France2026-08-24
Cody M Campain1019United Kingdom2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin N MarrierCanadaAnna Fali PROPOSAL
Sinclair P IturbideGermanyIvan Magalhaes QUALIFIED
Maria A StensethFranceXuxue Feng QUALIFIED
Maria W DilliardItalyAnna Fali PROPOSAL
Sinclair V PerinAustraliaElwin Sharvill QUALIFIED
Mayumi I MaletIndiaAsiya Javayant NEW
Isabel A BowleySpainOnyama Limba UNQUALIFIED
Francesco J MorascaRussiaXuxue Feng UNQUALIFIED
Leja B GillianRussiaElwin Sharvill NEW
Silvio I WaycottArgentinaBernardo Dominic RENEWAL
Tony V WaycottItalyElwin Sharvill RENEWAL
Emily A FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood T AlbaresAustraliaIoni Bowcher NEGOTIATION
Antonio Q MarrierFranceIvan Magalhaes NEGOTIATION
Isabel O SlusarskiFranceIvan Magalhaes NEW
Faith S MacleadJapanStephen Shaw NEW
Maisha X GlickItalyAmy Elsner RENEWAL
Munro V StensethJapanIoni Bowcher NEGOTIATION
Rodrigues N InouyeItalyAsiya Javayant NEW
Izzy M GillianBrazilStephen Shaw UNQUALIFIED
Leon P KolmetzAustraliaAnna Fali NEW
Julie G KolmetzBrazilAsiya Javayant QUALIFIED
Arvin U IturbideBrazilAsiya Javayant UNQUALIFIED
Costa D OldroydFranceBernardo Dominic UNQUALIFIED
Kaitlin S StensethRussiaIvan Magalhaes NEGOTIATION
Chavez P RoysterSpainStephen Shaw QUALIFIED
Alejandro W ChuiRussiaOnyama Limba UNQUALIFIED
Kadeem Y WieserItalyOnyama Limba PROPOSAL
James V RoysterJapanIoni Bowcher QUALIFIED
Clifford B DarakjyCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois B CaldareraRussiaIvan Magalhaes QUALIFIED
Ivar J CampainUnited KingdomAmy Elsner NEW
Greenwood H VocelkaGermanyIoni Bowcher RENEWAL
Ricardo Q PoquetteGermanyStephen Shaw NEGOTIATION
Cody Y TollnerJapanStephen Shaw UNQUALIFIED
Juan O SaylorsItalyElwin Sharvill NEGOTIATION
Jefferson C CampainAustraliaOnyama Limba NEW
Isabel O NickaIndiaStephen Shaw QUALIFIED
Silvio J GauchoCanadaElwin Sharvill NEW
Jeanfrancois N MaletIndiaAnna Fali NEW

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