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
Chavez S BriddickAustraliaAsiya Javayant NEGOTIATION
Leja P FlosiUnited KingdomIoni Bowcher NEGOTIATION
Cody U PaprockiSpainIoni Bowcher PROPOSAL
Chavez J VenereJapanXuxue Feng RENEWAL
Aika T CaudySpainStephen Shaw UNQUALIFIED
Wickens D DoeCanadaStephen Shaw UNQUALIFIED
Jeanfrancois K BowleyFranceElwin Sharvill UNQUALIFIED
Jefferson U RoysterJapanOnyama Limba NEW
Chavez E OstroskyArgentinaBernardo Dominic QUALIFIED
Aika P BriddickAustraliaIoni Bowcher NEW
Jefferson W GauchoUnited KingdomOnyama Limba PROPOSAL
Leja C RulapaughCanadaAnna Fali QUALIFIED
Octavia M CaldareraCanadaAnna Fali NEGOTIATION
Ricardo X FlosiRussiaAnna Fali UNQUALIFIED
Jennifer B FigeroaRussiaOnyama Limba UNQUALIFIED
Silvio Q RimJapanElwin Sharvill QUALIFIED
Arvin O ButtJapanElwin Sharvill QUALIFIED
Darci Y KolmetzIndiaIoni Bowcher NEGOTIATION
Leon K ShinkoFranceIoni Bowcher PROPOSAL
Johnson P StensethGermanyAsiya Javayant PROPOSAL
Aika H RulapaughGermanyOnyama Limba NEGOTIATION
Ashley M OldroydJapanAnna Fali PROPOSAL
Adams X CampainIndiaOnyama Limba UNQUALIFIED
Munro X RutaIndiaAnna Fali QUALIFIED
Ashley W GarufiSpainElwin Sharvill UNQUALIFIED
Aditya K BriddickArgentinaOnyama Limba QUALIFIED
Jeanfrancois T AlbaresArgentinaIvan Magalhaes NEGOTIATION
Misaki G DilliardCanadaStephen Shaw UNQUALIFIED
Jennifer Y FerenczJapanXuxue Feng NEW
Cody L GauchoRussiaOnyama Limba NEW
Leja R MaletArgentinaStephen Shaw QUALIFIED
Greenwood K KolmetzSpainIvan Magalhaes PROPOSAL
Smith G RutaAustraliaAmy Elsner RENEWAL
Alejandro M DoeAustraliaIvan Magalhaes NEW
Alejandro N DarakjyIndiaBernardo Dominic UNQUALIFIED
Nicolas M FlosiItalyElwin Sharvill QUALIFIED
Juan I MaletFranceBernardo Dominic QUALIFIED
Antonio K VenereIndiaIoni Bowcher RENEWAL
Ivar G SergiIndiaXuxue Feng UNQUALIFIED
Aruna M InouyeArgentinaXuxue Feng QUALIFIED
Deepesh H MaletBrazilIoni Bowcher PROPOSAL
Silvio T NestleArgentinaBernardo Dominic NEGOTIATION
Johnson Z CaudyAustraliaIvan Magalhaes RENEWAL
Aditya J BowleyCanadaStephen Shaw UNQUALIFIED
Nicolas H RoysterFranceXuxue Feng UNQUALIFIED
Jones X StensethBrazilAnna Fali RENEWAL
Aika W MorascaArgentinaIvan Magalhaes RENEWAL
Leja W FlosiJapanXuxue Feng NEW
Morrow V KolmetzGermanyIoni Bowcher NEW
Darci P GauchoJapanIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Leja F StensethSpainElwin Sharvill QUALIFIED
Deepesh N ButtCanadaOnyama Limba QUALIFIED
Jones M VocelkaSpainIvan Magalhaes QUALIFIED
Adams D BowleyArgentinaStephen Shaw NEW
Ricardo V ButtCanadaIoni Bowcher QUALIFIED
Kaitlin X VenereArgentinaIvan Magalhaes QUALIFIED
Stacey S OstroskyRussiaOnyama Limba NEW
Wickens G FerenczArgentinaAnna Fali NEW
Ricardo T CampainGermanyBernardo Dominic RENEWAL
Johnson Q ChuiJapanAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith Z CaldareraUnited Kingdom2026-08-10Feltz Printing Service NEGOTIATION55Onyama Limba
1001Munro B RulapaughCanada2026-08-08Buckley Miller Wright QUALIFIED69Ivan Magalhaes
1002Stacey W PerinSpain2026-08-31Feltz Printing Service UNQUALIFIED23Stephen Shaw
1003Tony O BologniaAustralia2026-08-29Chanay, Jeffrey A Esq RENEWAL34Amy Elsner
1004Munro G WieserUnited Kingdom2026-08-05Dorl, James J Esq RENEWAL32Xuxue Feng
1005Faith Q InouyeRussia2026-08-18Chapman, Ross E Esq NEGOTIATION51Onyama Limba
1006Wickens O PaprockiSpain2026-08-09Benton, John B Jr NEW34Elwin Sharvill
1007Greenwood H VenereItaly2026-08-21Truhlar And Truhlar Attys NEGOTIATION2Anna Fali
1008Francesco P DarakjyJapan2026-08-07Rousseaux, Michael Esq PROPOSAL27Elwin Sharvill
1009Francesco X VocelkaJapan2026-08-22King, Christopher A Esq UNQUALIFIED79Anna Fali
1010Isabel E InouyeAustralia2026-08-21Chapman, Ross E Esq RENEWAL92Onyama Limba
1011James F FigeroaArgentina2026-08-18Truhlar And Truhlar Attys RENEWAL68Ioni Bowcher
1012Kadeem W StockhamItaly2026-08-14Rousseaux, Michael Esq UNQUALIFIED56Ivan Magalhaes
1013Silvio X MacleadCanada2026-08-12Buckley Miller Wright PROPOSAL21Onyama Limba
1014Mayumi S WieserRussia2026-08-25Buckley Miller Wright NEW7Xuxue Feng
1015Antonio L VocelkaArgentina2026-08-09Buckley Miller Wright RENEWAL31Amy Elsner
1016Johnson M FollerSpain2026-08-13King, Christopher A Esq NEW35Anna Fali
1017Maria Q CampainArgentina2026-08-18Dorl, James J Esq RENEWAL49Anna Fali
1018Greenwood P OstroskyCanada2026-08-25Printing Dimensions PROPOSAL8Amy Elsner
1019Isabel B ButtJapan2026-08-18Dorl, James J Esq PROPOSAL65Asiya Javayant
1020Misaki H BowleyCanada2026-08-24Chemel, James L Cpa NEW86Stephen Shaw
1021Izzy X MaletUnited Kingdom2026-08-17Rangoni Of Florence NEGOTIATION5Amy Elsner
1022Rodrigues U PoquetteFrance2026-08-07Rousseaux, Michael Esq PROPOSAL95Stephen Shaw
1023David S PaprockiAustralia2026-08-06Rousseaux, Michael Esq RENEWAL14Stephen Shaw
1024Deepesh U DilliardCanada2026-08-26Dorl, James J Esq NEW8Onyama Limba
1025Antonio A PerinAustralia2026-08-08Morlong Associates UNQUALIFIED90Asiya Javayant
1026Mujtaba Q SchemmerCanada2026-08-17Chanay, Jeffrey A Esq UNQUALIFIED63Xuxue Feng
1027Octavia Y IturbideCanada2026-08-03Benton, John B Jr QUALIFIED20Ivan Magalhaes
1028Wickens G CampainAustralia2026-08-28King, Christopher A Esq RENEWAL16Elwin Sharvill
1029Chavez N TollnerSpain2026-08-04Commercial Press PROPOSAL49Xuxue Feng
1030Chavez D FerenczArgentina2026-08-14Morlong Associates NEW81Elwin Sharvill
1031Aruna L NickaUnited Kingdom2026-08-05Feiner Bros QUALIFIED33Asiya Javayant
1032Stacey K BriddickAustralia2026-08-22Chanay, Jeffrey A Esq PROPOSAL76Anna Fali
1033Rodrigues E CaldareraAustralia2026-08-17Chemel, James L Cpa NEW2Elwin Sharvill
1034Antonio K KolmetzBrazil2026-08-08Printing Dimensions UNQUALIFIED30Onyama Limba
1035David H GillianGermany2026-08-07Rousseaux, Michael Esq QUALIFIED70Onyama Limba
1036Nicolas E BowleyAustralia2026-08-18Rousseaux, Michael Esq NEW16Anna Fali
1037Salvatore R AlbaresSpain2026-08-07Chemel, James L Cpa NEGOTIATION58Anna Fali
1038Deepesh T SchemmerIndia2026-08-07Feltz Printing Service NEGOTIATION77Anna Fali
1039Sinclair L NickaSpain2026-08-09Chemel, James L Cpa UNQUALIFIED36Elwin Sharvill
1040Jones I GillianItaly2026-08-27Morlong Associates RENEWAL65Amy Elsner
1041Juan A KolmetzUnited Kingdom2026-08-27Feltz Printing Service RENEWAL61Amy Elsner
1042Ashley Z SaylorsSpain2026-08-26Chemel, James L Cpa UNQUALIFIED36Ivan Magalhaes
1043Emily B NestleAustralia2026-08-09Commercial Press NEW42Stephen Shaw
1044Aika G OstroskyArgentina2026-08-21King, Christopher A Esq UNQUALIFIED46Bernardo Dominic
1045Ricardo H BowleyBrazil2026-08-16Benton, John B Jr UNQUALIFIED12Ioni Bowcher
1046Aika Y BowleyArgentina2026-08-25Rousseaux, Michael Esq NEGOTIATION1Ioni Bowcher
1047Greenwood O StockhamRussia2026-08-10Dorl, James J Esq NEW66Anna Fali
1048Nicolas L InouyeRussia2026-08-06Chemel, James L Cpa NEGOTIATION37Xuxue Feng
1049Julie V GarufiJapan2026-08-12Chemel, James L Cpa NEW6Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aditya L ButtBrazilAmy Elsner NEGOTIATION
Ashley K FigeroaJapanXuxue Feng PROPOSAL
Sinclair A MacleadRussiaXuxue Feng NEGOTIATION
Greenwood H SergiUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi G SlusarskiIndiaOnyama Limba NEGOTIATION
Jefferson U IturbideRussiaXuxue Feng UNQUALIFIED
Wickens A AmigonAustraliaAmy Elsner RENEWAL
Mujtaba N SaylorsUnited KingdomElwin Sharvill QUALIFIED
Emily W KolmetzIndiaElwin Sharvill NEW
Emily T TollnerSpainOnyama Limba QUALIFIED
Antonio X TollnerBrazilOnyama Limba UNQUALIFIED
Antonio C AlbaresArgentinaIoni Bowcher NEGOTIATION
Silvio T WhobreyRussiaElwin Sharvill NEW
Octavia P CampainItalyAnna Fali RENEWAL
Jennifer C PoquetteUnited KingdomBernardo Dominic NEW
Costa P DoeFranceStephen Shaw NEGOTIATION
Adams C MorascaBrazilElwin Sharvill QUALIFIED
Mayumi L RulapaughArgentinaIoni Bowcher RENEWAL
Adams F DilliardSpainAmy Elsner NEGOTIATION
Maria E PaprockiCanadaStephen Shaw NEGOTIATION
Smith U MaletRussiaIoni Bowcher NEW
Rodrigues B IturbideGermanyBernardo Dominic QUALIFIED
Claire S FlosiItalyIoni Bowcher RENEWAL
Nicolas X RimCanadaXuxue Feng NEGOTIATION
Isabel E PoquetteSpainAnna Fali RENEWAL
Darci Q BowleySpainStephen Shaw RENEWAL
Misaki G SchemmerCanadaIoni Bowcher QUALIFIED
Claire N MarrierJapanIoni Bowcher UNQUALIFIED
Isabel B GillianBrazilStephen Shaw QUALIFIED
Antonio N FigeroaRussiaAmy Elsner RENEWAL
Tony D KolmetzBrazilIoni Bowcher UNQUALIFIED
Jefferson D ChuiGermanyAmy Elsner PROPOSAL
David O GlickIndiaBernardo Dominic RENEWAL
Silvio M WhobreyArgentinaAnna Fali NEW
Tony F OstroskyArgentinaStephen Shaw NEGOTIATION
Antonio R VenereBrazilAnna Fali NEGOTIATION
Arvin R ShinkoUnited KingdomXuxue Feng QUALIFIED
Morrow R SlusarskiFranceAmy Elsner UNQUALIFIED
Ricardo R SlusarskiGermanyOnyama Limba PROPOSAL
Chavez D FlosiJapanAmy Elsner UNQUALIFIED
Stacey W MorascaRussiaIvan Magalhaes PROPOSAL
Adams J RimUnited KingdomIoni Bowcher RENEWAL
Isabel F ShinkoJapanXuxue Feng NEGOTIATION
Nicolas B MorascaSpainAsiya Javayant RENEWAL
Emily I SlusarskiRussiaAnna Fali NEW
Kadeem X MaletBrazilXuxue Feng PROPOSAL
Ashley I BowleyAustraliaOnyama Limba UNQUALIFIED
Alejandro Q PoquetteSpainElwin Sharvill QUALIFIED
Claire D WieserGermanyAmy Elsner UNQUALIFIED
Munro H DilliardFranceElwin Sharvill PROPOSAL
Frozen Columns
Name
Jefferson D Doe
Costa F Slusarski
Wickens E Slusarski
Darci U Tollner
Faith B Perin
Jefferson H Royster
Maria G Schemmer
Rodrigues U Poquette
Aika L Kolmetz
Rodrigues V Ferencz
Leon L Waycott
Jones U Campain
Faith T Whobrey
Maisha M Malet
Cody Y Shinko
Silvio Y Malet
Misaki J Stenseth
Cody E Albares
Jones W Ferencz
Greenwood Y Glick
Silvio X Doe
Sinclair F Sergi
Silvio Z Caldarera
Aika I Venere
Wickens F Stockham
Mujtaba D Glick
Johnson J Rulapaugh
Mujtaba L Maclead
Nicolas A Kusko
Nicolas K Royster
Alejandro G Schemmer
Chavez O Stenseth
Leja G Stockham
Deepesh W Malet
Leja D Wieser
Alejandro B Chui
Costa I Campain
Sinclair L Venere
Jeanfrancois P Vocelka
Claire T Garufi
Isabel M Amigon
Ricardo C Caldarera
Greenwood O Ferencz
Juan W Kusko
Wickens A Briddick
Wickens L Kusko
Alejandro H Rim
Munro O Campain
Rodrigues Z Amigon
Juan I Marrier
IdCountryDate
1000Argentina2026-08-11
1001France2026-08-31
1002France2026-08-27
1003Argentina2026-08-20
1004Italy2026-08-12
1005India2026-08-07
1006Brazil2026-08-16
1007United Kingdom2026-08-09
1008United Kingdom2026-08-31
1009Russia2026-08-19
1010Germany2026-08-23
1011Germany2026-08-12
1012Germany2026-08-18
1013Spain2026-08-24
1014Germany2026-08-15
1015India2026-08-14
1016Argentina2026-08-10
1017India2026-08-07
1018Russia2026-08-25
1019France2026-08-27
1020Japan2026-08-25
1021Australia2026-08-08
1022Japan2026-08-09
1023India2026-08-23
1024Spain2026-08-12
1025Spain2026-08-27
1026Australia2026-08-05
1027Spain2026-09-01
1028United Kingdom2026-08-10
1029Brazil2026-08-24
1030India2026-08-18
1031Argentina2026-08-20
1032Spain2026-09-01
1033Japan2026-08-13
1034Argentina2026-08-18
1035Australia2026-08-25
1036India2026-08-15
1037Spain2026-08-09
1038Spain2026-08-19
1039Australia2026-08-27
1040Russia2026-08-07
1041Germany2026-08-20
1042Italy2026-08-18
1043France2026-08-26
1044Japan2026-08-30
1045India2026-08-14
1046India2026-08-10
1047Spain2026-08-09
1048Japan2026-08-17
1049Germany2026-08-14

On-Demand Data

NameIdCountryDate
Darci S Waycott1000Australia2026-08-18
Mujtaba Q Albares1001Australia2026-08-16
Juan R Maclead1002India2026-08-15
Costa E Venere1003Spain2026-08-17
Silvio V Oldroyd1004France2026-08-30
Faith F Inouye1005Spain2026-08-12
Johnson Q Doe1006Germany2026-08-30
Smith O Inouye1007Italy2026-08-05
Silvio S Paprocki1008Germany2026-08-16
Wickens V Nicka1009Russia2026-08-07
Leja T Campain1010Canada2026-08-23
Kaitlin M Gaucho1011Italy2026-08-10
James V Albares1012India2026-08-21
Adams G Oldroyd1013Spain2026-08-04
Smith U Perin1014United Kingdom2026-08-26
Ricardo I Vocelka1015Japan2026-08-06
Costa O Rim1016India2026-08-09
Antonio X Paprocki1017Germany2026-08-21
Johnson D Kusko1018Spain2026-08-19
Julie O Sergi1019United Kingdom2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey O MarrierSpainIvan Magalhaes NEGOTIATION
Jennifer W SergiJapanIoni Bowcher NEGOTIATION
Rodrigues X RutaSpainOnyama Limba NEW
Wickens S MacleadSpainOnyama Limba NEW
Jeanfrancois M KolmetzCanadaAnna Fali RENEWAL
Deepesh F PerinGermanyAmy Elsner RENEWAL
Chavez S FerenczFranceBernardo Dominic QUALIFIED
Costa N IturbideItalyAmy Elsner RENEWAL
Mayumi R VenereGermanyXuxue Feng NEGOTIATION
Misaki Q FigeroaSpainXuxue Feng QUALIFIED
Isabel O GauchoRussiaBernardo Dominic NEW
Chavez A FlosiJapanXuxue Feng NEGOTIATION
Deepesh M PerinArgentinaBernardo Dominic NEW
Claire X SchemmerCanadaBernardo Dominic NEW
Salvatore C CampainJapanIvan Magalhaes NEGOTIATION
Deepesh D AlbaresJapanElwin Sharvill NEGOTIATION
Francesco Y SchemmerSpainAnna Fali QUALIFIED
Ricardo R WaycottRussiaBernardo Dominic NEGOTIATION
Isabel Z DarakjyGermanyIvan Magalhaes PROPOSAL
Maisha H MorascaFranceStephen Shaw UNQUALIFIED
Jones H ShinkoFranceIvan Magalhaes RENEWAL
Aditya M PerinRussiaIoni Bowcher RENEWAL
Nicolas K CaldareraItalyAsiya Javayant NEW
Sinclair X RutaUnited KingdomBernardo Dominic NEGOTIATION
Deepesh Z RoysterSpainAnna Fali QUALIFIED
Juan F BologniaAustraliaAnna Fali QUALIFIED
Leja K BowleyUnited KingdomStephen Shaw RENEWAL
Jones W SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Alejandro B NickaRussiaAsiya Javayant RENEWAL
Silvio C MarrierUnited KingdomAmy Elsner RENEWAL
Juan N TollnerJapanAmy Elsner NEGOTIATION
Emily T GlickSpainOnyama Limba UNQUALIFIED
Emily D MorascaCanadaAmy Elsner PROPOSAL
Leja W KolmetzSpainStephen Shaw PROPOSAL
Octavia A RimFranceAsiya Javayant RENEWAL
Claire E VocelkaItalyXuxue Feng PROPOSAL
Cody G MaletSpainOnyama Limba PROPOSAL
Wickens S FerenczRussiaIoni Bowcher PROPOSAL
Emily R OldroydItalyAnna Fali NEGOTIATION
Faith D WieserArgentinaIoni Bowcher PROPOSAL

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