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
Jones X FollerCanadaIvan Magalhaes QUALIFIED
Kadeem J GillianGermanyIoni Bowcher UNQUALIFIED
Jones M MarrierAustraliaIvan Magalhaes PROPOSAL
Misaki K WaycottUnited KingdomXuxue Feng NEGOTIATION
Ivar D StockhamAustraliaIvan Magalhaes RENEWAL
Munro F FerenczRussiaXuxue Feng UNQUALIFIED
Kaitlin J FlosiArgentinaBernardo Dominic UNQUALIFIED
Jefferson I StockhamSpainElwin Sharvill NEGOTIATION
Stacey Q SlusarskiFranceAmy Elsner NEW
Ivar P MaletGermanyAsiya Javayant UNQUALIFIED
Isabel X MacleadUnited KingdomOnyama Limba UNQUALIFIED
Munro V FerenczSpainElwin Sharvill QUALIFIED
David I VenereBrazilIvan Magalhaes NEGOTIATION
Izzy C MorascaJapanAmy Elsner PROPOSAL
Stacey J SchemmerItalyAmy Elsner NEW
Silvio R VenereRussiaIoni Bowcher QUALIFIED
James H MarrierCanadaAsiya Javayant NEGOTIATION
Clifford P MarrierBrazilBernardo Dominic NEW
Jeanfrancois A DoeRussiaStephen Shaw RENEWAL
Maisha W StensethAustraliaStephen Shaw QUALIFIED
Munro O StensethCanadaAsiya Javayant RENEWAL
Johnson M SchemmerSpainStephen Shaw PROPOSAL
Ricardo P SaylorsCanadaAnna Fali PROPOSAL
Cody F BowleyIndiaAsiya Javayant NEW
Wickens M SlusarskiFranceXuxue Feng NEW
Arvin V RutaFranceAmy Elsner QUALIFIED
Aika P SchemmerJapanStephen Shaw QUALIFIED
Aruna A MaletFranceIvan Magalhaes PROPOSAL
Leja N BologniaUnited KingdomBernardo Dominic QUALIFIED
Wickens A BriddickItalyStephen Shaw PROPOSAL
Deepesh J WhobreyBrazilAmy Elsner UNQUALIFIED
Mayumi J FigeroaAustraliaAmy Elsner RENEWAL
Darci Y MorascaAustraliaIoni Bowcher NEGOTIATION
Darci T GauchoIndiaAmy Elsner UNQUALIFIED
Nicolas L BriddickBrazilIvan Magalhaes NEGOTIATION
Adams B MaletBrazilIvan Magalhaes PROPOSAL
James S SlusarskiIndiaAsiya Javayant UNQUALIFIED
Arvin S OldroydGermanyAmy Elsner UNQUALIFIED
Jeanfrancois S IturbideFranceAnna Fali QUALIFIED
Ashley L KuskoIndiaAmy Elsner QUALIFIED
Kaitlin F BologniaBrazilXuxue Feng RENEWAL
Emily V IturbideBrazilAmy Elsner UNQUALIFIED
Morrow S ButtIndiaIoni Bowcher NEW
Jeanfrancois Y KuskoGermanyAmy Elsner QUALIFIED
Leon M MacleadAustraliaAsiya Javayant RENEWAL
Izzy G StockhamItalyOnyama Limba UNQUALIFIED
Ricardo Y RimUnited KingdomAmy Elsner NEW
Rodrigues O SaylorsCanadaStephen Shaw QUALIFIED
Juan K GarufiGermanyXuxue Feng NEW
Jefferson A RimRussiaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois R DoeFranceIvan Magalhaes NEGOTIATION
Adams O CampainSpainXuxue Feng QUALIFIED
Cody R MacleadArgentinaXuxue Feng PROPOSAL
Smith H FollerJapanIoni Bowcher NEW
Emily J KolmetzArgentinaIoni Bowcher QUALIFIED
Munro B GarufiJapanElwin Sharvill NEGOTIATION
Cody P WieserRussiaElwin Sharvill NEGOTIATION
Kaitlin D AlbaresItalyElwin Sharvill RENEWAL
Arvin L StensethCanadaAnna Fali NEW
Salvatore I WaycottArgentinaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo O SaylorsJapan2026-08-08Rangoni Of Florence NEW71Xuxue Feng
1001Aika C FlosiGermany2026-08-06Buckley Miller Wright UNQUALIFIED0Elwin Sharvill
1002Faith H KuskoItaly2026-08-01Rangoni Of Florence PROPOSAL49Ioni Bowcher
1003Tony N PoquetteGermany2026-08-25Chapman, Ross E Esq QUALIFIED22Xuxue Feng
1004Jennifer J ShinkoUnited Kingdom2026-08-03King, Christopher A Esq PROPOSAL81Onyama Limba
1005Deepesh Y SlusarskiFrance2026-08-26Morlong Associates RENEWAL8Ioni Bowcher
1006Munro P BriddickItaly2026-08-21Feiner Bros QUALIFIED40Ivan Magalhaes
1007Costa E ShinkoArgentina2026-08-16Buckley Miller Wright PROPOSAL56Elwin Sharvill
1008Julie Z KuskoUnited Kingdom2026-07-30Benton, John B Jr PROPOSAL62Ioni Bowcher
1009Kaitlin F ChuiJapan2026-08-11Chemel, James L Cpa QUALIFIED19Xuxue Feng
1010Cody K DilliardSpain2026-08-08Buckley Miller Wright PROPOSAL75Onyama Limba
1011Emily U StockhamUnited Kingdom2026-08-07Feiner Bros UNQUALIFIED30Stephen Shaw
1012Faith O GauchoFrance2026-08-01Rousseaux, Michael Esq NEGOTIATION67Stephen Shaw
1013Greenwood J BriddickFrance2026-08-10Rangoni Of Florence PROPOSAL24Elwin Sharvill
1014Isabel H PerinAustralia2026-08-05Chemel, James L Cpa RENEWAL49Amy Elsner
1015Jennifer V FigeroaCanada2026-08-15Rousseaux, Michael Esq RENEWAL86Ioni Bowcher
1016Cody X KuskoIndia2026-08-09Chemel, James L Cpa PROPOSAL0Anna Fali
1017Arvin P SergiRussia2026-08-06Truhlar And Truhlar Attys NEGOTIATION48Bernardo Dominic
1018Kadeem X WhobreyJapan2026-08-24Rousseaux, Michael Esq QUALIFIED8Onyama Limba
1019Sinclair Z StockhamCanada2026-07-31Rangoni Of Florence RENEWAL46Stephen Shaw
1020Johnson V GarufiJapan2026-08-14Morlong Associates UNQUALIFIED69Ioni Bowcher
1021Smith R StockhamCanada2026-08-10Printing Dimensions PROPOSAL3Ioni Bowcher
1022Jefferson E IturbideCanada2026-08-12Buckley Miller Wright RENEWAL92Ioni Bowcher
1023Murillo C SlusarskiCanada2026-07-29Rousseaux, Michael Esq NEW68Ivan Magalhaes
1024Nicolas O BologniaCanada2026-08-01Feltz Printing Service NEGOTIATION53Asiya Javayant
1025Francesco H GarufiJapan2026-08-07Chemel, James L Cpa UNQUALIFIED1Asiya Javayant
1026Jennifer L BriddickCanada2026-08-21King, Christopher A Esq QUALIFIED77Ivan Magalhaes
1027Salvatore C WieserSpain2026-08-17Rangoni Of Florence QUALIFIED59Elwin Sharvill
1028Ashley N OldroydCanada2026-08-27Truhlar And Truhlar Attys RENEWAL45Stephen Shaw
1029Francesco D GarufiFrance2026-08-17Chanay, Jeffrey A Esq UNQUALIFIED66Ioni Bowcher
1030Antonio M RutaItaly2026-08-27Chapman, Ross E Esq PROPOSAL78Onyama Limba
1031Murillo I StockhamBrazil2026-08-19King, Christopher A Esq PROPOSAL59Onyama Limba
1032Maria F RulapaughSpain2026-08-04Benton, John B Jr PROPOSAL68Ioni Bowcher
1033Aruna C BriddickItaly2026-07-30Printing Dimensions RENEWAL3Asiya Javayant
1034Deepesh S SchemmerIndia2026-08-23Truhlar And Truhlar Attys QUALIFIED43Amy Elsner
1035Silvio T ChuiAustralia2026-08-22Feltz Printing Service PROPOSAL48Anna Fali
1036Chavez T SlusarskiJapan2026-08-26Chapman, Ross E Esq QUALIFIED7Bernardo Dominic
1037Claire X RulapaughSpain2026-08-03King, Christopher A Esq NEGOTIATION6Bernardo Dominic
1038Aditya T TollnerFrance2026-08-12Dorl, James J Esq NEW24Anna Fali
1039Aditya N ChuiItaly2026-08-25Chanay, Jeffrey A Esq PROPOSAL58Bernardo Dominic
1040Rodrigues J RoysterGermany2026-07-29Chapman, Ross E Esq RENEWAL5Bernardo Dominic
1041Mayumi T RimSpain2026-08-07Chapman, Ross E Esq RENEWAL13Elwin Sharvill
1042Deepesh H OstroskyRussia2026-08-10Dorl, James J Esq NEGOTIATION92Bernardo Dominic
1043James S SchemmerItaly2026-08-07Morlong Associates NEW91Elwin Sharvill
1044Alejandro P FollerArgentina2026-08-18Rangoni Of Florence NEGOTIATION85Xuxue Feng
1045Johnson A SaylorsIndia2026-08-12Chemel, James L Cpa PROPOSAL39Onyama Limba
1046Adams S GauchoRussia2026-08-20Morlong Associates PROPOSAL77Ivan Magalhaes
1047Greenwood X MacleadFrance2026-08-17Printing Dimensions NEW44Onyama Limba
1048Jones T MaletRussia2026-08-25King, Christopher A Esq RENEWAL87Amy Elsner
1049Jennifer T FlosiAustralia2026-08-16Benton, John B Jr QUALIFIED97Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba H CaldareraUnited KingdomAsiya Javayant QUALIFIED
Kaitlin V BowleyBrazilIoni Bowcher NEGOTIATION
Jones M RutaJapanOnyama Limba UNQUALIFIED
Murillo Y MacleadIndiaOnyama Limba UNQUALIFIED
Aika O DilliardBrazilAnna Fali QUALIFIED
Aika J DarakjyRussiaIoni Bowcher NEGOTIATION
Rodrigues J StensethAustraliaAnna Fali PROPOSAL
Isabel M DarakjySpainIvan Magalhaes UNQUALIFIED
Jefferson P GauchoUnited KingdomElwin Sharvill PROPOSAL
Julie Q FigeroaIndiaAsiya Javayant NEW
Ashley X FlosiRussiaIoni Bowcher RENEWAL
Kadeem A TollnerGermanyIvan Magalhaes RENEWAL
Munro H MarrierAustraliaIvan Magalhaes NEW
Jefferson X MaletFranceAsiya Javayant NEW
Deepesh C MarrierJapanBernardo Dominic RENEWAL
Adams Q NickaGermanyXuxue Feng NEW
Darci J MarrierAustraliaBernardo Dominic UNQUALIFIED
Rodrigues X AmigonSpainIvan Magalhaes NEGOTIATION
Kaitlin S GauchoBrazilStephen Shaw QUALIFIED
Cody E ShinkoFranceIoni Bowcher PROPOSAL
Mayumi S RimFranceIvan Magalhaes RENEWAL
Antonio E CampainArgentinaAnna Fali RENEWAL
Greenwood S CampainSpainElwin Sharvill UNQUALIFIED
Morrow L BowleyFranceElwin Sharvill NEW
Leon U BowleyUnited KingdomAnna Fali PROPOSAL
Tony J PerinFranceStephen Shaw QUALIFIED
Kaitlin G SlusarskiBrazilBernardo Dominic UNQUALIFIED
Clifford F ButtIndiaIvan Magalhaes NEGOTIATION
Nicolas V GarufiJapanOnyama Limba UNQUALIFIED
Deepesh U GillianUnited KingdomOnyama Limba PROPOSAL
Cody M MaletBrazilStephen Shaw PROPOSAL
Isabel I PaprockiJapanBernardo Dominic RENEWAL
Jennifer X DilliardRussiaIoni Bowcher RENEWAL
Faith E ButtAustraliaXuxue Feng QUALIFIED
Darci W SlusarskiIndiaXuxue Feng QUALIFIED
Stacey I WaycottFranceBernardo Dominic NEW
Mujtaba W WhobreyIndiaAnna Fali UNQUALIFIED
Alejandro N SchemmerGermanyIvan Magalhaes PROPOSAL
Chavez H BologniaItalyIvan Magalhaes UNQUALIFIED
David B RutaFranceIvan Magalhaes NEW
Morrow L GlickUnited KingdomAnna Fali PROPOSAL
Adams A VocelkaAustraliaAmy Elsner NEGOTIATION
Isabel O VocelkaBrazilAsiya Javayant NEW
Misaki R BologniaUnited KingdomAmy Elsner NEGOTIATION
Leon D StensethRussiaIoni Bowcher RENEWAL
Tony C GauchoRussiaAnna Fali PROPOSAL
Mayumi B SchemmerUnited KingdomXuxue Feng NEW
Julie M BologniaBrazilIvan Magalhaes NEW
Isabel H RulapaughJapanElwin Sharvill RENEWAL
Emily Q SchemmerCanadaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Jennifer I Paprocki
Greenwood G Paprocki
Tony Y Ostrosky
Silvio H Doe
Maria Z Inouye
Antonio Y Kolmetz
David M Oldroyd
Antonio N Rulapaugh
James K Malet
Jennifer R Oldroyd
Francesco U Inouye
Antonio L Malet
Stacey R Rim
Emily M Saylors
Isabel G Malet
Mujtaba J Venere
Murillo B Marrier
Jennifer Y Paprocki
James M Tollner
Aditya J Ruta
Isabel X Kusko
Julie S Caldarera
Faith G Maclead
Costa R Ruta
Nicolas Y Inouye
Izzy Y Stockham
Jeanfrancois G Malet
Kadeem I Foller
Emily F Iturbide
Adams U Stenseth
Munro F Malet
Izzy L Garufi
Antonio B Vocelka
Kaitlin G Kusko
Greenwood U Darakjy
Smith O Rulapaugh
Isabel N Flosi
Mayumi J Malet
Faith F Malet
Johnson Q Poquette
James I Nestle
Morrow B Glick
Adams G Whobrey
Aruna P Malet
Antonio V Ostrosky
Morrow H Nestle
Deepesh F Chui
Maria H Caudy
Deepesh R Garufi
Morrow X Malet
IdCountryDate
1000Spain2026-08-03
1001Germany2026-08-07
1002Argentina2026-08-19
1003Argentina2026-08-04
1004Canada2026-07-29
1005Canada2026-08-02
1006Australia2026-08-12
1007India2026-08-26
1008Argentina2026-08-13
1009Italy2026-08-06
1010Australia2026-07-29
1011Australia2026-08-25
1012Australia2026-08-08
1013France2026-08-01
1014Canada2026-08-18
1015Germany2026-08-24
1016United Kingdom2026-08-12
1017Canada2026-07-30
1018Italy2026-08-06
1019Japan2026-08-16
1020Spain2026-08-22
1021Russia2026-08-11
1022Brazil2026-08-04
1023Russia2026-08-12
1024Japan2026-08-12
1025France2026-08-13
1026United Kingdom2026-08-10
1027Canada2026-08-09
1028France2026-08-22
1029India2026-08-09
1030Canada2026-08-05
1031France2026-08-20
1032Spain2026-08-26
1033Canada2026-08-13
1034Argentina2026-08-25
1035India2026-08-07
1036France2026-08-13
1037Spain2026-08-22
1038Argentina2026-08-21
1039Canada2026-08-02
1040Argentina2026-08-01
1041India2026-08-08
1042Russia2026-08-11
1043Germany2026-08-20
1044Brazil2026-08-21
1045Russia2026-08-26
1046Australia2026-08-15
1047Russia2026-08-04
1048Japan2026-07-30
1049France2026-08-09

On-Demand Data

NameIdCountryDate
Adams B Royster1000Russia2026-08-13
Jones P Dilliard1001Australia2026-08-25
Antonio U Butt1002Italy2026-08-22
Tony H Caldarera1003Australia2026-08-11
Maisha O Amigon1004Spain2026-08-03
Stacey P Rulapaugh1005Canada2026-08-26
Clifford A Royster1006Italy2026-07-31
Cody I Bolognia1007United Kingdom2026-08-26
Tony A Doe1008Germany2026-08-23
David R Rulapaugh1009United Kingdom2026-08-26
Leon R Nicka1010Canada2026-08-06
Johnson H Darakjy1011Italy2026-08-13
Aika T Oldroyd1012Argentina2026-08-09
James H Paprocki1013France2026-08-22
Murillo I Kolmetz1014France2026-08-24
Julie I Malet1015Japan2026-08-05
Claire W Oldroyd1016Canada2026-08-21
Jeanfrancois V Darakjy1017Japan2026-08-18
Costa Z Whobrey1018Italy2026-08-11
Francesco Y Iturbide1019United Kingdom2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco W ChuiIndiaIvan Magalhaes NEGOTIATION
Emily W NickaIndiaStephen Shaw NEGOTIATION
Mujtaba C CampainJapanIvan Magalhaes UNQUALIFIED
Morrow P SergiFranceBernardo Dominic RENEWAL
Alejandro P OldroydItalyIoni Bowcher NEW
Francesco F KuskoAustraliaIvan Magalhaes QUALIFIED
Aruna V GillianFranceAsiya Javayant UNQUALIFIED
Mayumi G AmigonFranceElwin Sharvill UNQUALIFIED
Rodrigues I VenereUnited KingdomStephen Shaw NEW
James X CaldareraFranceXuxue Feng QUALIFIED
Jennifer E MaletJapanXuxue Feng RENEWAL
Jefferson X GarufiItalyStephen Shaw NEW
Maisha V PerinUnited KingdomOnyama Limba QUALIFIED
Mayumi S TollnerItalyIvan Magalhaes QUALIFIED
Mayumi V BowleyArgentinaBernardo Dominic UNQUALIFIED
Aruna Q DilliardSpainElwin Sharvill NEGOTIATION
Aruna M SergiGermanyStephen Shaw RENEWAL
Nicolas S KuskoAustraliaOnyama Limba QUALIFIED
Greenwood S GarufiFranceBernardo Dominic NEW
Ricardo I BriddickSpainIoni Bowcher NEGOTIATION
Leon I FollerJapanAmy Elsner PROPOSAL
Jones Q KolmetzIndiaBernardo Dominic UNQUALIFIED
Smith B IturbideItalyIvan Magalhaes UNQUALIFIED
Alejandro F PoquetteIndiaStephen Shaw UNQUALIFIED
Jefferson C GillianSpainAnna Fali NEGOTIATION
Smith Z AlbaresJapanBernardo Dominic PROPOSAL
Jennifer K DilliardItalyAmy Elsner UNQUALIFIED
Mayumi E DilliardRussiaIvan Magalhaes UNQUALIFIED
Arvin G MorascaAustraliaIoni Bowcher QUALIFIED
Claire R GarufiFranceOnyama Limba QUALIFIED
Ricardo G MaletFranceOnyama Limba QUALIFIED
Aditya Y GillianAustraliaElwin Sharvill NEW
Aditya N SchemmerJapanStephen Shaw QUALIFIED
Francesco X MaletBrazilElwin Sharvill PROPOSAL
Cody S KuskoJapanIvan Magalhaes NEW
Kadeem P StockhamGermanyOnyama Limba PROPOSAL
Smith I VenereRussiaAnna Fali QUALIFIED
Juan Y InouyeFranceIoni Bowcher UNQUALIFIED
Nicolas F AlbaresArgentinaIvan Magalhaes QUALIFIED
James T OstroskyArgentinaOnyama Limba 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>