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
Leja I CampainArgentinaIvan Magalhaes UNQUALIFIED
Silvio Q MaletRussiaStephen Shaw PROPOSAL
Costa C DarakjyJapanXuxue Feng NEGOTIATION
Greenwood Q CaudyUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba P SaylorsAustraliaIoni Bowcher RENEWAL
Sinclair L ButtArgentinaOnyama Limba QUALIFIED
Tony B DilliardGermanyBernardo Dominic UNQUALIFIED
Juan X RimRussiaAsiya Javayant NEW
Mujtaba G FerenczUnited KingdomBernardo Dominic NEW
Tony G KuskoRussiaXuxue Feng UNQUALIFIED
Juan B StockhamRussiaIoni Bowcher UNQUALIFIED
Jefferson D PaprockiCanadaIvan Magalhaes PROPOSAL
Salvatore A GauchoSpainElwin Sharvill RENEWAL
Jefferson R DilliardGermanyIvan Magalhaes RENEWAL
Sinclair F ChuiItalyAsiya Javayant UNQUALIFIED
Jeanfrancois L MacleadArgentinaAmy Elsner NEW
Leon D VenereGermanyOnyama Limba NEGOTIATION
Leja U SergiCanadaAnna Fali UNQUALIFIED
Juan N AmigonUnited KingdomAsiya Javayant RENEWAL
Salvatore E SaylorsGermanyStephen Shaw NEW
Ashley A AmigonIndiaIvan Magalhaes QUALIFIED
Smith D MorascaBrazilXuxue Feng PROPOSAL
Misaki A SergiArgentinaStephen Shaw NEW
Faith I SergiItalyIoni Bowcher PROPOSAL
Octavia S SaylorsFranceXuxue Feng NEGOTIATION
Francesco R CaldareraSpainStephen Shaw RENEWAL
Rodrigues M DilliardFranceXuxue Feng NEGOTIATION
Leja L ShinkoCanadaAnna Fali PROPOSAL
Wickens K RutaBrazilBernardo Dominic PROPOSAL
Costa C AlbaresCanadaOnyama Limba QUALIFIED
Jeanfrancois F OldroydFranceBernardo Dominic UNQUALIFIED
Rodrigues T SergiAustraliaAsiya Javayant RENEWAL
Costa D RimFranceAmy Elsner NEW
Emily A MarrierGermanyElwin Sharvill UNQUALIFIED
Murillo A NestleJapanAmy Elsner NEGOTIATION
Kaitlin S RoysterItalyAmy Elsner RENEWAL
Misaki D RoysterGermanyOnyama Limba QUALIFIED
Mujtaba X NestleRussiaOnyama Limba UNQUALIFIED
Antonio O WaycottAustraliaIvan Magalhaes UNQUALIFIED
Ivar Y PerinJapanElwin Sharvill RENEWAL
Misaki S PaprockiItalyOnyama Limba QUALIFIED
Alejandro V ButtBrazilXuxue Feng NEW
Faith X RulapaughIndiaBernardo Dominic RENEWAL
Sinclair R NickaBrazilStephen Shaw PROPOSAL
Francesco Y MarrierBrazilXuxue Feng UNQUALIFIED
Greenwood D WhobreyBrazilElwin Sharvill UNQUALIFIED
Ivar M DarakjyCanadaAnna Fali UNQUALIFIED
Clifford Z IturbideSpainStephen Shaw RENEWAL
Darci G FerenczArgentinaOnyama Limba QUALIFIED
Kaitlin O DilliardCanadaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody I FigeroaAustraliaAsiya Javayant NEGOTIATION
Morrow R BologniaJapanElwin Sharvill NEW
Leon B FlosiAustraliaStephen Shaw RENEWAL
James T IturbideRussiaAmy Elsner RENEWAL
Ricardo F MarrierCanadaElwin Sharvill PROPOSAL
Claire A RimFranceAsiya Javayant RENEWAL
Costa N DilliardUnited KingdomIoni Bowcher QUALIFIED
Darci G FlosiIndiaStephen Shaw NEW
Kadeem T MorascaFranceIoni Bowcher QUALIFIED
Salvatore V SaylorsSpainIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika C NickaGermany2026-07-12Feiner Bros PROPOSAL5Asiya Javayant
1001Sinclair W KuskoIndia2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED56Bernardo Dominic
1002James H MacleadCanada2026-06-24Chapman, Ross E Esq UNQUALIFIED21Onyama Limba
1003Darci X SaylorsUnited Kingdom2026-07-04Morlong Associates NEGOTIATION93Ivan Magalhaes
1004Maria Z FigeroaItaly2026-07-20King, Christopher A Esq NEW65Xuxue Feng
1005Chavez T DarakjyBrazil2026-07-15Chemel, James L Cpa RENEWAL36Elwin Sharvill
1006Ricardo T ChuiUnited Kingdom2026-07-13King, Christopher A Esq NEW25Amy Elsner
1007Jones S BologniaUnited Kingdom2026-07-15Chemel, James L Cpa PROPOSAL43Elwin Sharvill
1008Aruna B StensethCanada2026-07-01Feiner Bros NEGOTIATION23Bernardo Dominic
1009Faith L CaldareraBrazil2026-07-20Truhlar And Truhlar Attys NEGOTIATION35Ivan Magalhaes
1010Murillo M KuskoSpain2026-07-05Rousseaux, Michael Esq QUALIFIED93Xuxue Feng
1011David G MaletArgentina2026-07-06Buckley Miller Wright QUALIFIED57Bernardo Dominic
1012Aika V CampainRussia2026-07-01Chapman, Ross E Esq QUALIFIED30Ivan Magalhaes
1013Jeanfrancois Y KolmetzIndia2026-07-21Truhlar And Truhlar Attys UNQUALIFIED14Elwin Sharvill
1014Ricardo Y NickaIndia2026-06-28Rousseaux, Michael Esq QUALIFIED67Elwin Sharvill
1015Munro P NickaArgentina2026-07-14Dorl, James J Esq UNQUALIFIED73Xuxue Feng
1016Emily X TollnerArgentina2026-06-22Chapman, Ross E Esq UNQUALIFIED93Stephen Shaw
1017Greenwood H VocelkaUnited Kingdom2026-07-21Feiner Bros UNQUALIFIED30Anna Fali
1018Octavia M IturbideJapan2026-07-09Dorl, James J Esq NEW75Asiya Javayant
1019Murillo N BologniaBrazil2026-06-30Rangoni Of Florence RENEWAL10Xuxue Feng
1020Jones P AmigonCanada2026-07-18Chemel, James L Cpa NEW23Ivan Magalhaes
1021Tony P MacleadSpain2026-07-21Feiner Bros UNQUALIFIED39Bernardo Dominic
1022Tony Q IturbideGermany2026-06-27Benton, John B Jr PROPOSAL84Ivan Magalhaes
1023Stacey S TollnerArgentina2026-07-01Feiner Bros UNQUALIFIED57Amy Elsner
1024Julie H BologniaAustralia2026-07-01Benton, John B Jr QUALIFIED24Elwin Sharvill
1025Adams R SlusarskiUnited Kingdom2026-07-08King, Christopher A Esq QUALIFIED39Anna Fali
1026Jennifer A SergiJapan2026-06-26Rousseaux, Michael Esq RENEWAL17Amy Elsner
1027Clifford R SchemmerBrazil2026-07-17Printing Dimensions RENEWAL63Bernardo Dominic
1028Emily M CaudyJapan2026-07-21Rangoni Of Florence NEW55Amy Elsner
1029Jones H InouyeAustralia2026-07-13Rousseaux, Michael Esq PROPOSAL81Onyama Limba
1030Chavez Q BowleyFrance2026-06-30Benton, John B Jr RENEWAL88Onyama Limba
1031Julie R GarufiRussia2026-07-17Buckley Miller Wright RENEWAL34Amy Elsner
1032Chavez N FollerItaly2026-07-01Truhlar And Truhlar Attys NEGOTIATION92Asiya Javayant
1033Smith B StensethFrance2026-07-11Truhlar And Truhlar Attys NEW8Ioni Bowcher
1034Maisha I SaylorsIndia2026-07-15Chapman, Ross E Esq UNQUALIFIED63Xuxue Feng
1035Wickens K ChuiJapan2026-06-23Buckley Miller Wright NEW74Anna Fali
1036Smith A AlbaresArgentina2026-07-13Commercial Press QUALIFIED69Asiya Javayant
1037Kadeem N DarakjyAustralia2026-07-19Benton, John B Jr PROPOSAL32Amy Elsner
1038Greenwood K KolmetzFrance2026-07-17Morlong Associates NEW45Ivan Magalhaes
1039Maria K SchemmerFrance2026-07-16Rangoni Of Florence PROPOSAL19Anna Fali
1040Darci T IturbideCanada2026-07-06Chanay, Jeffrey A Esq NEW57Ivan Magalhaes
1041Mujtaba Q BologniaAustralia2026-07-03Buckley Miller Wright RENEWAL74Asiya Javayant
1042Ivar B MaletRussia2026-07-21Truhlar And Truhlar Attys NEW68Stephen Shaw
1043Leja R PoquetteGermany2026-07-10Feltz Printing Service UNQUALIFIED60Onyama Limba
1044Cody F FlosiIndia2026-07-09Chemel, James L Cpa NEW6Elwin Sharvill
1045Jennifer M VenereAustralia2026-07-14Buckley Miller Wright RENEWAL77Onyama Limba
1046Jefferson R BriddickSpain2026-07-21Feiner Bros UNQUALIFIED65Bernardo Dominic
1047Ivar T TollnerAustralia2026-07-17Feiner Bros QUALIFIED21Anna Fali
1048Silvio N StockhamArgentina2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED91Bernardo Dominic
1049Julie L IturbideAustralia2026-07-08King, Christopher A Esq NEW22Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody K ShinkoGermanyStephen Shaw QUALIFIED
Murillo C TollnerFranceBernardo Dominic RENEWAL
Jennifer Y WieserItalyAnna Fali PROPOSAL
Kadeem D PoquetteBrazilAnna Fali RENEWAL
Aditya D DoeSpainOnyama Limba RENEWAL
Maria L GlickCanadaAmy Elsner QUALIFIED
Smith R PerinGermanyOnyama Limba RENEWAL
Silvio C AlbaresRussiaAmy Elsner RENEWAL
Jones Y SchemmerRussiaAnna Fali QUALIFIED
Ashley H BriddickJapanXuxue Feng NEW
Darci Q WaycottSpainBernardo Dominic NEGOTIATION
Octavia T NestleRussiaIvan Magalhaes NEW
Adams Z BowleyAustraliaElwin Sharvill PROPOSAL
Ivar M TollnerAustraliaAmy Elsner PROPOSAL
Aditya U DoeSpainBernardo Dominic RENEWAL
Ashley H RoysterRussiaIoni Bowcher PROPOSAL
Tony W BowleyBrazilOnyama Limba NEGOTIATION
Misaki T InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Tony X NickaIndiaElwin Sharvill PROPOSAL
Murillo K GillianIndiaBernardo Dominic RENEWAL
Wickens K OstroskyJapanStephen Shaw QUALIFIED
Jones V MacleadBrazilAsiya Javayant UNQUALIFIED
David P GlickArgentinaAmy Elsner NEW
Wickens E AlbaresFranceOnyama Limba NEGOTIATION
Juan B TollnerArgentinaOnyama Limba NEW
Nicolas H ChuiJapanAnna Fali PROPOSAL
Francesco Q InouyeCanadaIoni Bowcher NEW
Arvin O CaldareraJapanAsiya Javayant RENEWAL
Claire Y RimGermanyAnna Fali NEW
Leja Y RutaSpainIvan Magalhaes PROPOSAL
Adams L ChuiRussiaXuxue Feng QUALIFIED
Emily G StockhamBrazilBernardo Dominic UNQUALIFIED
Ricardo N SlusarskiFranceIvan Magalhaes NEW
Julie N IturbideArgentinaBernardo Dominic NEGOTIATION
Juan Z RulapaughCanadaAnna Fali UNQUALIFIED
Murillo X StockhamBrazilIoni Bowcher PROPOSAL
Munro A GauchoCanadaStephen Shaw NEW
Sinclair Q PaprockiSpainIvan Magalhaes UNQUALIFIED
Stacey N MacleadArgentinaAsiya Javayant QUALIFIED
Salvatore V CampainIndiaOnyama Limba PROPOSAL
Deepesh X NestleArgentinaStephen Shaw PROPOSAL
Murillo K SchemmerRussiaAsiya Javayant RENEWAL
Deepesh Q RutaUnited KingdomStephen Shaw QUALIFIED
Nicolas X WhobreyUnited KingdomBernardo Dominic RENEWAL
Darci O GarufiArgentinaBernardo Dominic NEGOTIATION
Ashley Q VocelkaArgentinaAnna Fali UNQUALIFIED
Stacey K StensethJapanStephen Shaw NEGOTIATION
Greenwood Z WaycottRussiaAsiya Javayant NEW
Antonio K CaudyJapanXuxue Feng NEW
Mujtaba B VenereFranceElwin Sharvill RENEWAL
Frozen Columns
Name
Cody H Tollner
Misaki G Slusarski
Adams J Malet
Kaitlin G Albares
David M Shinko
Maria W Figeroa
Deepesh G Royster
Julie O Tollner
Maisha O Chui
Darci Z Kusko
Francesco L Nicka
Costa H Saylors
Chavez D Oldroyd
Adams O Darakjy
Faith L Butt
Costa N Saylors
David Z Malet
Emily D Butt
Stacey J Oldroyd
Stacey G Albares
Silvio N Sergi
Rodrigues N Caldarera
Leja A Malet
Kaitlin J Sergi
Tony Y Oldroyd
Isabel U Tollner
Maisha D Caldarera
Jones T Waycott
James V Kusko
Leon I Paprocki
Sinclair O Perin
Ivar Y Rulapaugh
Stacey N Waycott
Darci D Schemmer
Morrow T Inouye
Smith X Ruta
Darci C Vocelka
Faith P Venere
Rodrigues F Gaucho
Smith L Ferencz
Isabel E Ostrosky
Jeanfrancois Q Caudy
Jones Q Schemmer
Salvatore S Figeroa
Ashley J Caldarera
Aruna F Glick
Maria A Shinko
Arvin X Caudy
Murillo J Bolognia
Smith Z Marrier
IdCountryDate
1000Russia2026-07-17
1001Germany2026-07-11
1002Australia2026-06-27
1003Argentina2026-06-30
1004Spain2026-07-06
1005Canada2026-07-19
1006Germany2026-06-27
1007Italy2026-07-07
1008Canada2026-06-28
1009Germany2026-06-22
1010Germany2026-07-10
1011Germany2026-07-09
1012Brazil2026-06-29
1013Canada2026-07-14
1014Germany2026-06-23
1015United Kingdom2026-07-10
1016France2026-07-21
1017Italy2026-06-25
1018Canada2026-06-23
1019Spain2026-07-17
1020Italy2026-07-10
1021United Kingdom2026-07-14
1022United Kingdom2026-07-03
1023Canada2026-07-12
1024Canada2026-07-21
1025Spain2026-07-02
1026India2026-06-28
1027Germany2026-06-28
1028Germany2026-07-04
1029India2026-07-19
1030Italy2026-07-08
1031Italy2026-07-01
1032France2026-07-20
1033Brazil2026-06-23
1034Russia2026-06-24
1035Russia2026-07-19
1036India2026-07-12
1037France2026-07-19
1038Italy2026-07-21
1039United Kingdom2026-07-10
1040Australia2026-07-07
1041Brazil2026-07-21
1042Germany2026-07-12
1043Japan2026-07-12
1044Italy2026-07-14
1045Brazil2026-06-25
1046United Kingdom2026-07-16
1047Japan2026-07-08
1048United Kingdom2026-07-11
1049Germany2026-07-07

On-Demand Data

NameIdCountryDate
Wickens S Whobrey1000United Kingdom2026-07-18
Jennifer R Whobrey1001Australia2026-07-13
Jeanfrancois W Caudy1002Russia2026-07-12
Tony G Darakjy1003Italy2026-07-07
Izzy N Chui1004Brazil2026-07-04
Salvatore K Poquette1005Russia2026-07-19
Chavez L Malet1006Japan2026-07-16
Morrow L Doe1007United Kingdom2026-06-30
Chavez X Bowley1008Japan2026-07-07
Silvio P Wieser1009Brazil2026-07-10
Ricardo O Sergi1010United Kingdom2026-06-27
Kaitlin P Inouye1011Brazil2026-07-14
Rodrigues T Waycott1012Italy2026-07-05
Jefferson K Shinko1013Germany2026-06-28
Antonio B Chui1014Japan2026-07-16
Leon A Sergi1015Japan2026-07-16
Francesco E Oldroyd1016Argentina2026-06-30
Leon P Doe1017United Kingdom2026-06-30
Maria G Poquette1018Japan2026-07-01
Leja R Gillian1019Brazil2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio H GauchoFranceBernardo Dominic NEW
Sinclair H NestleBrazilXuxue Feng PROPOSAL
Chavez I GlickCanadaXuxue Feng NEGOTIATION
Cody A MacleadSpainAnna Fali UNQUALIFIED
Maisha F MorascaFranceOnyama Limba QUALIFIED
Juan Q DoeSpainAmy Elsner RENEWAL
Salvatore Y PaprockiUnited KingdomAmy Elsner QUALIFIED
Mujtaba U IturbideCanadaAsiya Javayant RENEWAL
Mujtaba U WaycottJapanOnyama Limba NEW
Adams O WhobreyGermanyOnyama Limba NEW
Rodrigues J DarakjyArgentinaBernardo Dominic PROPOSAL
Antonio Y WhobreyJapanElwin Sharvill PROPOSAL
Ashley E PaprockiIndiaOnyama Limba UNQUALIFIED
Alejandro L ChuiItalyIvan Magalhaes PROPOSAL
Isabel B FigeroaItalyElwin Sharvill UNQUALIFIED
Kadeem X SchemmerFranceElwin Sharvill NEGOTIATION
Salvatore F RutaRussiaIvan Magalhaes QUALIFIED
David P AmigonAustraliaElwin Sharvill PROPOSAL
Adams R BologniaBrazilOnyama Limba PROPOSAL
Octavia I ChuiRussiaBernardo Dominic PROPOSAL
Arvin R MacleadItalyOnyama Limba UNQUALIFIED
Clifford I OldroydRussiaBernardo Dominic NEGOTIATION
Leon Z OldroydAustraliaAsiya Javayant NEW
Juan O MarrierArgentinaAnna Fali PROPOSAL
Jones J VenereUnited KingdomIvan Magalhaes RENEWAL
Maria B ShinkoIndiaIoni Bowcher PROPOSAL
Ricardo C MaletJapanIoni Bowcher QUALIFIED
Alejandro S MorascaUnited KingdomIoni Bowcher RENEWAL
Aika X DarakjyArgentinaStephen Shaw QUALIFIED
Darci K ShinkoIndiaOnyama Limba PROPOSAL
Wickens O SergiRussiaIoni Bowcher NEGOTIATION
Darci Y CaldareraAustraliaXuxue Feng RENEWAL
Darci R PoquetteBrazilAnna Fali NEW
Deepesh F WhobreyFranceIoni Bowcher UNQUALIFIED
Jones I RulapaughAustraliaIoni Bowcher NEW
Mayumi P RoysterAustraliaAsiya Javayant RENEWAL
Isabel G KolmetzArgentinaIvan Magalhaes QUALIFIED
Leon A SlusarskiRussiaXuxue Feng UNQUALIFIED
Julie Q RutaArgentinaAsiya Javayant QUALIFIED
Ivar B WieserUnited KingdomIoni Bowcher 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>