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
David R CaldareraArgentinaAmy Elsner RENEWAL
Munro A InouyeJapanXuxue Feng RENEWAL
Ivar Q CampainSpainBernardo Dominic RENEWAL
Maisha Y GillianJapanIoni Bowcher QUALIFIED
Munro W AlbaresAustraliaAnna Fali RENEWAL
Jefferson N DoeUnited KingdomStephen Shaw NEW
Nicolas S PoquetteFranceStephen Shaw RENEWAL
Silvio E TollnerAustraliaElwin Sharvill UNQUALIFIED
Jennifer F OstroskyBrazilBernardo Dominic QUALIFIED
Arvin J ButtBrazilAsiya Javayant NEW
Munro X RutaSpainAmy Elsner NEGOTIATION
Faith R BowleySpainXuxue Feng RENEWAL
Kaitlin G KuskoRussiaStephen Shaw RENEWAL
Costa B CampainAustraliaAnna Fali NEW
Nicolas S KuskoAustraliaIoni Bowcher QUALIFIED
Francesco Q SergiAustraliaOnyama Limba RENEWAL
Rodrigues V MaletCanadaOnyama Limba RENEWAL
Johnson Z GillianUnited KingdomIvan Magalhaes QUALIFIED
Cody I KolmetzItalyElwin Sharvill NEGOTIATION
Clifford D RulapaughItalyAmy Elsner UNQUALIFIED
Wickens E CampainAustraliaAmy Elsner RENEWAL
Ashley B OstroskyArgentinaStephen Shaw RENEWAL
Jefferson S ChuiBrazilAsiya Javayant QUALIFIED
Julie L FerenczJapanAsiya Javayant RENEWAL
Alejandro B BologniaCanadaOnyama Limba PROPOSAL
Isabel B ShinkoCanadaIvan Magalhaes RENEWAL
Mujtaba M FollerRussiaElwin Sharvill NEW
Adams A AmigonArgentinaElwin Sharvill QUALIFIED
Chavez K WhobreyUnited KingdomOnyama Limba NEGOTIATION
Morrow G VenereSpainIvan Magalhaes NEW
Kaitlin T BologniaSpainOnyama Limba RENEWAL
Kadeem Y SaylorsFranceBernardo Dominic PROPOSAL
Antonio T ShinkoArgentinaAnna Fali QUALIFIED
Jefferson I FigeroaUnited KingdomAnna Fali RENEWAL
James L ChuiIndiaAnna Fali RENEWAL
Leon I MaletFranceAnna Fali QUALIFIED
Kaitlin T BriddickRussiaBernardo Dominic PROPOSAL
Morrow W TollnerItalyStephen Shaw QUALIFIED
Jefferson J SchemmerIndiaIvan Magalhaes UNQUALIFIED
Morrow T FigeroaIndiaIoni Bowcher NEW
Mujtaba I PaprockiIndiaElwin Sharvill NEGOTIATION
Juan O KuskoItalyAnna Fali PROPOSAL
Cody C CaldareraIndiaElwin Sharvill PROPOSAL
Faith K SaylorsIndiaBernardo Dominic PROPOSAL
Sinclair A ChuiJapanOnyama Limba NEGOTIATION
Smith R RimAustraliaElwin Sharvill RENEWAL
Mujtaba K MacleadArgentinaStephen Shaw QUALIFIED
Chavez V GlickArgentinaAnna Fali UNQUALIFIED
David N FigeroaRussiaStephen Shaw RENEWAL
Deepesh E KuskoCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio K SchemmerFranceElwin Sharvill NEW
Alejandro Y NestleRussiaIvan Magalhaes NEGOTIATION
Kaitlin W RulapaughIndiaAnna Fali PROPOSAL
Jefferson W MaletGermanyElwin Sharvill QUALIFIED
Silvio Q StockhamFranceBernardo Dominic NEW
Cody Q OldroydRussiaIoni Bowcher QUALIFIED
Antonio M FigeroaFranceIvan Magalhaes NEW
Wickens C NestleArgentinaAnna Fali PROPOSAL
Faith X VocelkaAustraliaAnna Fali NEGOTIATION
James K NickaGermanyXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James U DarakjyBrazil2026-07-22Morlong Associates PROPOSAL71Asiya Javayant
1001Leja U TollnerUnited Kingdom2026-07-05Feiner Bros QUALIFIED26Amy Elsner
1002Juan L NestleFrance2026-07-25Chemel, James L Cpa RENEWAL57Bernardo Dominic
1003Stacey V BologniaGermany2026-07-07Feltz Printing Service QUALIFIED68Ivan Magalhaes
1004Munro G CaldareraFrance2026-07-19King, Christopher A Esq NEW14Stephen Shaw
1005Octavia L OldroydIndia2026-07-20King, Christopher A Esq UNQUALIFIED11Xuxue Feng
1006Aruna V MaletSpain2026-07-12Printing Dimensions NEGOTIATION65Asiya Javayant
1007James H OstroskyJapan2026-07-07Feltz Printing Service NEGOTIATION60Bernardo Dominic
1008Jennifer Q RimArgentina2026-07-01Chanay, Jeffrey A Esq NEW19Elwin Sharvill
1009Jennifer A InouyeIndia2026-06-28Feltz Printing Service NEW76Xuxue Feng
1010Faith D RimJapan2026-07-20Chanay, Jeffrey A Esq UNQUALIFIED36Onyama Limba
1011Ivar P AmigonItaly2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED99Asiya Javayant
1012Isabel Z OldroydJapan2026-07-22Benton, John B Jr QUALIFIED15Ioni Bowcher
1013Clifford D TollnerGermany2026-07-01Morlong Associates NEW76Elwin Sharvill
1014Cody Z KuskoItaly2026-07-06Chanay, Jeffrey A Esq NEW28Amy Elsner
1015Sinclair W OstroskyCanada2026-07-19Truhlar And Truhlar Attys NEGOTIATION38Amy Elsner
1016Wickens R WaycottArgentina2026-07-17Printing Dimensions RENEWAL51Elwin Sharvill
1017Leja O StockhamRussia2026-07-12Rangoni Of Florence PROPOSAL62Ivan Magalhaes
1018Jefferson V SlusarskiUnited Kingdom2026-07-20Chemel, James L Cpa QUALIFIED14Elwin Sharvill
1019Isabel K FerenczSpain2026-07-17Commercial Press QUALIFIED45Bernardo Dominic
1020Antonio I AmigonRussia2026-07-22Benton, John B Jr PROPOSAL53Amy Elsner
1021Wickens O FerenczArgentina2026-07-18Chapman, Ross E Esq QUALIFIED5Onyama Limba
1022Ivar R MaletJapan2026-06-27Chemel, James L Cpa PROPOSAL47Anna Fali
1023Isabel T CampainSpain2026-07-01Commercial Press UNQUALIFIED3Elwin Sharvill
1024Clifford O SlusarskiGermany2026-07-12Benton, John B Jr UNQUALIFIED42Elwin Sharvill
1025Ashley I PoquetteGermany2026-06-27Commercial Press NEGOTIATION48Ivan Magalhaes
1026Jones V SlusarskiBrazil2026-07-02King, Christopher A Esq UNQUALIFIED45Elwin Sharvill
1027Stacey F WhobreyFrance2026-07-03Rousseaux, Michael Esq PROPOSAL72Amy Elsner
1028Silvio B PoquetteBrazil2026-07-24Benton, John B Jr QUALIFIED74Bernardo Dominic
1029Claire C SlusarskiIndia2026-07-23Commercial Press RENEWAL4Ioni Bowcher
1030James V ShinkoBrazil2026-06-28Rangoni Of Florence QUALIFIED92Ivan Magalhaes
1031Octavia N GillianBrazil2026-07-11Rousseaux, Michael Esq RENEWAL69Onyama Limba
1032Kadeem U MaletJapan2026-07-01Chanay, Jeffrey A Esq PROPOSAL37Asiya Javayant
1033Leon J IturbideRussia2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED91Stephen Shaw
1034Deepesh M KolmetzRussia2026-07-01Dorl, James J Esq UNQUALIFIED0Anna Fali
1035Jennifer Q BowleyBrazil2026-07-08Feltz Printing Service NEGOTIATION44Xuxue Feng
1036Kadeem M WaycottFrance2026-07-16Chapman, Ross E Esq QUALIFIED87Stephen Shaw
1037Johnson D GauchoBrazil2026-07-09Printing Dimensions PROPOSAL56Ioni Bowcher
1038Salvatore N RutaCanada2026-07-21King, Christopher A Esq RENEWAL49Amy Elsner
1039Jefferson Z KuskoSpain2026-06-29Benton, John B Jr PROPOSAL14Ioni Bowcher
1040Kaitlin Q VenereIndia2026-06-29Chemel, James L Cpa PROPOSAL85Ivan Magalhaes
1041Tony I IturbideCanada2026-07-15Printing Dimensions PROPOSAL4Xuxue Feng
1042Cody H SchemmerIndia2026-07-17Chanay, Jeffrey A Esq NEW10Anna Fali
1043Ricardo W VenereIndia2026-07-18Truhlar And Truhlar Attys NEGOTIATION61Onyama Limba
1044Kaitlin B GlickAustralia2026-07-19King, Christopher A Esq PROPOSAL42Ivan Magalhaes
1045Wickens H ShinkoItaly2026-07-06Dorl, James J Esq UNQUALIFIED41Xuxue Feng
1046Clifford E BriddickRussia2026-07-15Rangoni Of Florence UNQUALIFIED11Ioni Bowcher
1047Emily B VenereIndia2026-07-23Feiner Bros QUALIFIED82Xuxue Feng
1048Francesco X RimCanada2026-07-15Printing Dimensions RENEWAL70Bernardo Dominic
1049Nicolas Y CampainRussia2026-07-05Feltz Printing Service QUALIFIED79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Deepesh R NickaArgentinaIoni Bowcher QUALIFIED
James K AlbaresSpainBernardo Dominic QUALIFIED
James X AlbaresAustraliaElwin Sharvill NEW
Salvatore T GarufiItalyAmy Elsner RENEWAL
Deepesh P KuskoBrazilAmy Elsner QUALIFIED
Cody K RulapaughJapanAmy Elsner NEGOTIATION
Misaki Q BowleyFranceIoni Bowcher PROPOSAL
Antonio K GarufiItalyAsiya Javayant PROPOSAL
Izzy Y RutaGermanyElwin Sharvill RENEWAL
Alejandro X CaudyUnited KingdomIvan Magalhaes NEW
Chavez H SchemmerSpainXuxue Feng UNQUALIFIED
Munro E ChuiIndiaElwin Sharvill UNQUALIFIED
Aika K GarufiArgentinaAnna Fali NEGOTIATION
Misaki X AlbaresFranceIoni Bowcher RENEWAL
Costa H AlbaresBrazilAmy Elsner NEW
Ivar M MacleadIndiaAmy Elsner NEGOTIATION
Cody K PaprockiSpainIoni Bowcher NEGOTIATION
Jefferson H OstroskyJapanXuxue Feng NEW
Morrow Y MaletBrazilElwin Sharvill QUALIFIED
Tony K ShinkoSpainAsiya Javayant NEW
Aika C TollnerIndiaOnyama Limba PROPOSAL
Rodrigues K GlickUnited KingdomXuxue Feng NEGOTIATION
Ivar I BriddickArgentinaXuxue Feng UNQUALIFIED
Johnson T FerenczBrazilOnyama Limba RENEWAL
Sinclair C RutaJapanIoni Bowcher RENEWAL
Greenwood J SaylorsGermanyIoni Bowcher NEGOTIATION
Morrow T SchemmerSpainElwin Sharvill NEW
Jennifer O OstroskyAustraliaIoni Bowcher QUALIFIED
Emily T CaudyBrazilStephen Shaw PROPOSAL
Leja O MorascaAustraliaBernardo Dominic RENEWAL
Emily U BowleyJapanElwin Sharvill NEGOTIATION
Emily O RulapaughGermanyXuxue Feng NEGOTIATION
Jones K AlbaresItalyAnna Fali UNQUALIFIED
Darci W InouyeAustraliaStephen Shaw PROPOSAL
Aruna O NestleJapanAmy Elsner QUALIFIED
Cody S PerinJapanBernardo Dominic RENEWAL
Maisha V MorascaCanadaOnyama Limba NEGOTIATION
Misaki K AmigonArgentinaAsiya Javayant QUALIFIED
Tony R OldroydJapanOnyama Limba QUALIFIED
Arvin T DarakjyCanadaElwin Sharvill NEW
Maria Y MaletIndiaStephen Shaw PROPOSAL
Claire Y MaletRussiaXuxue Feng NEGOTIATION
Clifford G TollnerItalyIoni Bowcher PROPOSAL
Antonio I StensethUnited KingdomElwin Sharvill RENEWAL
Stacey R WhobreyBrazilAmy Elsner UNQUALIFIED
Stacey L CaldareraCanadaXuxue Feng PROPOSAL
Murillo H PerinCanadaIvan Magalhaes RENEWAL
Clifford R IturbideAustraliaXuxue Feng NEGOTIATION
Maisha G WieserItalyBernardo Dominic QUALIFIED
Arvin A RutaRussiaAsiya Javayant NEW
Frozen Columns
Name
Aruna J Stenseth
Nicolas U Stenseth
Jeanfrancois J Chui
Stacey M Nicka
Clifford C Flosi
Jeanfrancois E Garufi
Munro D Chui
Leja M Kolmetz
Wickens Y Glick
Murillo B Figeroa
Claire E Wieser
Munro G Flosi
Aika H Slusarski
Tony J Flosi
Emily W Vocelka
Emily S Ferencz
Silvio Y Briddick
Arvin G Gaucho
Emily R Malet
Wickens W Maclead
Isabel F Venere
Jefferson W Kusko
Costa D Ruta
Sinclair G Doe
Claire E Paprocki
Ricardo B Campain
Costa G Figeroa
Jefferson X Marrier
Costa G Caldarera
Mujtaba O Saylors
Sinclair W Sergi
Jefferson D Gaucho
Maria H Campain
Claire V Kusko
Adams Z Garufi
Claire J Schemmer
Morrow S Rim
Murillo G Butt
Sinclair J Sergi
Octavia A Tollner
Murillo U Whobrey
Faith G Whobrey
Maria R Royster
Mayumi X Gaucho
Faith I Gaucho
Arvin E Kusko
Chavez V Rulapaugh
Jefferson Q Slusarski
Deepesh N Foller
Costa N Saylors
IdCountryDate
1000Germany2026-07-14
1001Japan2026-07-08
1002Canada2026-07-11
1003Japan2026-07-17
1004France2026-07-24
1005United Kingdom2026-07-14
1006Spain2026-07-06
1007Russia2026-07-12
1008India2026-06-27
1009Spain2026-07-21
1010Italy2026-07-13
1011France2026-07-10
1012Argentina2026-07-15
1013India2026-07-24
1014Canada2026-07-17
1015Australia2026-07-05
1016Argentina2026-07-17
1017India2026-07-14
1018India2026-07-09
1019United Kingdom2026-07-03
1020Japan2026-07-02
1021Brazil2026-07-13
1022Japan2026-07-03
1023United Kingdom2026-07-06
1024Germany2026-07-24
1025Germany2026-07-16
1026Australia2026-07-07
1027Canada2026-07-16
1028Germany2026-06-27
1029Russia2026-07-21
1030Germany2026-07-17
1031Italy2026-07-16
1032Brazil2026-07-15
1033France2026-07-25
1034Italy2026-06-29
1035Canada2026-07-02
1036Japan2026-07-10
1037Germany2026-07-14
1038Russia2026-07-24
1039Canada2026-07-12
1040Japan2026-07-16
1041United Kingdom2026-07-17
1042Japan2026-07-07
1043Russia2026-07-16
1044Japan2026-07-18
1045Spain2026-06-28
1046Germany2026-07-24
1047United Kingdom2026-06-29
1048United Kingdom2026-07-01
1049Brazil2026-06-27

On-Demand Data

NameIdCountryDate
Cody G Stenseth1000Canada2026-06-30
Maisha H Sergi1001Russia2026-07-22
Clifford A Ruta1002Japan2026-06-28
Jeanfrancois G Royster1003Brazil2026-07-02
Morrow H Ruta1004United Kingdom2026-07-25
Salvatore G Vocelka1005Russia2026-07-21
Juan I Glick1006Italy2026-07-23
Maisha Q Malet1007Germany2026-07-11
Leon U Flosi1008Canada2026-07-08
Juan B Morasca1009United Kingdom2026-07-20
Rodrigues X Sergi1010Japan2026-06-29
Sinclair E Campain1011France2026-07-12
Adams U Caudy1012Spain2026-06-28
Jeanfrancois V Paprocki1013France2026-07-02
James C Stockham1014Russia2026-07-22
Jefferson N Figeroa1015Italy2026-07-07
Costa O Sergi1016Brazil2026-06-27
Misaki G Iturbide1017Italy2026-07-13
Leon U Amigon1018Australia2026-06-26
Misaki E Poquette1019France2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson R ButtGermanyStephen Shaw NEW
Aditya P DoeBrazilStephen Shaw NEW
Jones O DarakjyFranceAmy Elsner NEW
Faith Y SlusarskiGermanyElwin Sharvill NEGOTIATION
Cody D GauchoUnited KingdomIoni Bowcher QUALIFIED
Francesco P BowleyBrazilIvan Magalhaes NEGOTIATION
Adams T GarufiFranceIoni Bowcher UNQUALIFIED
Clifford O CampainSpainXuxue Feng QUALIFIED
Rodrigues X RimGermanyIvan Magalhaes NEGOTIATION
Salvatore U FerenczJapanIoni Bowcher QUALIFIED
Izzy P GarufiRussiaAmy Elsner NEGOTIATION
Juan V GillianSpainElwin Sharvill RENEWAL
Silvio Q BowleyItalyBernardo Dominic RENEWAL
Arvin F DoeUnited KingdomIoni Bowcher RENEWAL
Ricardo O KuskoFranceIoni Bowcher NEW
Antonio S ShinkoItalyElwin Sharvill PROPOSAL
Arvin M NestleFranceAnna Fali NEGOTIATION
David T KolmetzCanadaAnna Fali PROPOSAL
David S SaylorsArgentinaXuxue Feng RENEWAL
Stacey X CaldareraIndiaOnyama Limba RENEWAL
David J BowleyRussiaAsiya Javayant NEGOTIATION
Morrow T BriddickSpainIvan Magalhaes UNQUALIFIED
Clifford A RoysterItalyElwin Sharvill NEGOTIATION
Stacey M OstroskyCanadaOnyama Limba UNQUALIFIED
Munro L KuskoArgentinaElwin Sharvill PROPOSAL
Darci T KuskoRussiaAmy Elsner PROPOSAL
Darci R FerenczIndiaElwin Sharvill UNQUALIFIED
Aika Y CampainCanadaAmy Elsner QUALIFIED
Maisha N GlickSpainOnyama Limba UNQUALIFIED
Clifford O KolmetzUnited KingdomXuxue Feng RENEWAL
Aditya G FerenczJapanIvan Magalhaes PROPOSAL
Costa G VocelkaJapanAnna Fali NEGOTIATION
Wickens P RutaIndiaAsiya Javayant UNQUALIFIED
Faith E InouyeBrazilOnyama Limba NEGOTIATION
Nicolas K InouyeJapanStephen Shaw PROPOSAL
Francesco T MaletItalyAmy Elsner NEGOTIATION
Isabel L InouyeArgentinaOnyama Limba NEGOTIATION
Adams V SaylorsSpainIvan Magalhaes NEGOTIATION
Juan S WieserGermanyIoni Bowcher NEW
Izzy Q BowleyArgentinaElwin Sharvill QUALIFIED

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