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
Salvatore H ChuiRussiaStephen Shaw PROPOSAL
Darci U SaylorsRussiaStephen Shaw NEGOTIATION
Murillo L PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Cody D TollnerUnited KingdomAmy Elsner QUALIFIED
Arvin N CampainArgentinaAsiya Javayant UNQUALIFIED
Leon V KuskoCanadaAsiya Javayant QUALIFIED
Antonio U RoysterCanadaIvan Magalhaes UNQUALIFIED
Morrow J AlbaresAustraliaBernardo Dominic QUALIFIED
Tony N RutaGermanyAsiya Javayant NEW
Cody R GauchoFranceAnna Fali QUALIFIED
Chavez A VenereBrazilOnyama Limba RENEWAL
Faith N OstroskyFranceElwin Sharvill QUALIFIED
Misaki U CampainItalyOnyama Limba QUALIFIED
Ashley C GauchoRussiaIvan Magalhaes NEGOTIATION
Maria O WaycottAustraliaOnyama Limba PROPOSAL
Wickens Z AlbaresJapanAsiya Javayant PROPOSAL
Mujtaba O KuskoAustraliaXuxue Feng QUALIFIED
James D GlickJapanIoni Bowcher NEW
Mayumi Z ChuiAustraliaAsiya Javayant UNQUALIFIED
David M SergiAustraliaXuxue Feng RENEWAL
Chavez V GillianUnited KingdomAsiya Javayant NEGOTIATION
Mayumi D WhobreyCanadaAsiya Javayant PROPOSAL
Darci K AmigonAustraliaElwin Sharvill QUALIFIED
Antonio O SchemmerRussiaOnyama Limba QUALIFIED
Greenwood Z GlickArgentinaAsiya Javayant PROPOSAL
Juan R VocelkaJapanAmy Elsner UNQUALIFIED
Jennifer V BowleyArgentinaIvan Magalhaes QUALIFIED
Stacey F GarufiRussiaIvan Magalhaes UNQUALIFIED
Stacey P PaprockiIndiaAsiya Javayant QUALIFIED
Nicolas Z NickaJapanBernardo Dominic PROPOSAL
Stacey M CampainUnited KingdomElwin Sharvill QUALIFIED
Leja M ChuiAustraliaOnyama Limba QUALIFIED
Costa Y FlosiBrazilXuxue Feng QUALIFIED
David C GarufiSpainAmy Elsner RENEWAL
Aruna K StockhamBrazilOnyama Limba QUALIFIED
Chavez L SergiFranceXuxue Feng PROPOSAL
Jennifer F CaudyUnited KingdomAnna Fali NEW
Aika U RoysterFranceIvan Magalhaes QUALIFIED
Deepesh C OldroydArgentinaXuxue Feng QUALIFIED
Darci H FollerArgentinaAmy Elsner NEGOTIATION
Greenwood D MorascaItalyAmy Elsner PROPOSAL
Julie J FigeroaArgentinaIoni Bowcher PROPOSAL
Maisha Q StockhamSpainStephen Shaw NEW
James B ShinkoAustraliaXuxue Feng NEW
Arvin H GauchoGermanyStephen Shaw NEW
Jefferson D StockhamItalyXuxue Feng UNQUALIFIED
Cody E GarufiArgentinaIvan Magalhaes QUALIFIED
Misaki L SergiItalyAsiya Javayant NEGOTIATION
Adams W CaldareraCanadaElwin Sharvill NEGOTIATION
Aruna G MarrierCanadaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody G FerenczBrazilStephen Shaw UNQUALIFIED
Jefferson P CaldareraUnited KingdomAsiya Javayant RENEWAL
Morrow D KuskoSpainOnyama Limba UNQUALIFIED
Wickens V VocelkaGermanyBernardo Dominic RENEWAL
Munro D CampainBrazilOnyama Limba NEW
Morrow T MacleadRussiaBernardo Dominic UNQUALIFIED
Morrow C CampainJapanStephen Shaw PROPOSAL
Salvatore O PerinBrazilXuxue Feng UNQUALIFIED
Chavez N RoysterCanadaAnna Fali PROPOSAL
Clifford N NestleIndiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues E OstroskyAustralia2026-07-12Feiner Bros PROPOSAL4Bernardo Dominic
1001Silvio C StockhamIndia2026-06-19Rangoni Of Florence UNQUALIFIED47Bernardo Dominic
1002Aika P ChuiRussia2026-06-21Feltz Printing Service QUALIFIED62Anna Fali
1003Jennifer Z AmigonItaly2026-07-15Buckley Miller Wright QUALIFIED40Onyama Limba
1004Wickens M GillianCanada2026-07-04Dorl, James J Esq UNQUALIFIED82Onyama Limba
1005Faith X BriddickAustralia2026-07-04Buckley Miller Wright NEGOTIATION6Onyama Limba
1006Juan C GauchoCanada2026-07-07Rangoni Of Florence NEGOTIATION27Elwin Sharvill
1007Jeanfrancois J CampainUnited Kingdom2026-07-07Truhlar And Truhlar Attys NEW32Anna Fali
1008Ivar V CampainUnited Kingdom2026-07-01Printing Dimensions QUALIFIED59Amy Elsner
1009Darci Q StensethItaly2026-07-03Rangoni Of Florence UNQUALIFIED29Ivan Magalhaes
1010Misaki H SergiCanada2026-07-06King, Christopher A Esq NEW98Onyama Limba
1011Arvin Q FollerRussia2026-06-22Truhlar And Truhlar Attys UNQUALIFIED29Elwin Sharvill
1012James U PaprockiSpain2026-06-28Commercial Press NEW51Stephen Shaw
1013Juan T CaudyJapan2026-06-21Morlong Associates NEGOTIATION27Anna Fali
1014Johnson U MacleadCanada2026-06-25Commercial Press NEGOTIATION81Bernardo Dominic
1015Francesco U KuskoJapan2026-07-11Feiner Bros UNQUALIFIED69Stephen Shaw
1016Maisha X RoysterSpain2026-06-22Dorl, James J Esq PROPOSAL64Asiya Javayant
1017Emily E StensethArgentina2026-07-12Chanay, Jeffrey A Esq QUALIFIED29Stephen Shaw
1018Ivar U GillianRussia2026-07-08Truhlar And Truhlar Attys UNQUALIFIED44Ivan Magalhaes
1019Jennifer F KuskoGermany2026-07-06Chanay, Jeffrey A Esq PROPOSAL23Onyama Limba
1020Jones S DarakjyUnited Kingdom2026-07-11Dorl, James J Esq UNQUALIFIED55Onyama Limba
1021David X PerinArgentina2026-06-29Rangoni Of Florence QUALIFIED16Ivan Magalhaes
1022Mayumi P MarrierRussia2026-06-29Feltz Printing Service UNQUALIFIED96Onyama Limba
1023Misaki T CaldareraItaly2026-07-01Rangoni Of Florence RENEWAL37Anna Fali
1024Wickens R RutaGermany2026-07-11Chanay, Jeffrey A Esq RENEWAL21Xuxue Feng
1025Murillo J DoeBrazil2026-06-18Truhlar And Truhlar Attys QUALIFIED29Asiya Javayant
1026Munro M OldroydArgentina2026-06-25Rousseaux, Michael Esq UNQUALIFIED15Asiya Javayant
1027Maisha W StensethItaly2026-07-11Dorl, James J Esq RENEWAL88Amy Elsner
1028Nicolas I AlbaresFrance2026-07-12Feiner Bros NEW6Elwin Sharvill
1029Stacey B SergiRussia2026-07-04Feltz Printing Service QUALIFIED59Elwin Sharvill
1030Murillo S BologniaJapan2026-06-27Rangoni Of Florence QUALIFIED63Stephen Shaw
1031Jefferson O ChuiAustralia2026-07-10Printing Dimensions QUALIFIED44Xuxue Feng
1032Ricardo U AlbaresJapan2026-06-28Rousseaux, Michael Esq NEGOTIATION72Xuxue Feng
1033Morrow A FigeroaItaly2026-06-23Buckley Miller Wright QUALIFIED73Stephen Shaw
1034Emily O GauchoSpain2026-06-25Chemel, James L Cpa PROPOSAL69Amy Elsner
1035Greenwood X CaudyIndia2026-07-03Benton, John B Jr RENEWAL60Anna Fali
1036Ivar H RoysterUnited Kingdom2026-06-23Rousseaux, Michael Esq PROPOSAL23Elwin Sharvill
1037Aditya S MarrierIndia2026-06-20Commercial Press PROPOSAL76Xuxue Feng
1038Cody D NickaSpain2026-07-09Benton, John B Jr NEGOTIATION11Amy Elsner
1039Cody T CampainSpain2026-06-22Chanay, Jeffrey A Esq RENEWAL32Asiya Javayant
1040Emily U VocelkaFrance2026-06-18Benton, John B Jr QUALIFIED89Amy Elsner
1041Salvatore U KuskoBrazil2026-07-05Rousseaux, Michael Esq PROPOSAL5Xuxue Feng
1042Ricardo U StockhamIndia2026-06-30Chapman, Ross E Esq RENEWAL56Ioni Bowcher
1043Julie H IturbideRussia2026-07-14Feiner Bros PROPOSAL4Ivan Magalhaes
1044Antonio I AlbaresSpain2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED47Onyama Limba
1045Mujtaba T NickaJapan2026-06-22Chemel, James L Cpa PROPOSAL21Onyama Limba
1046Cody Y PaprockiUnited Kingdom2026-07-05Chanay, Jeffrey A Esq PROPOSAL48Onyama Limba
1047Ashley V StensethRussia2026-07-01Rousseaux, Michael Esq RENEWAL18Asiya Javayant
1048Murillo Z OldroydSpain2026-06-17Chanay, Jeffrey A Esq PROPOSAL62Stephen Shaw
1049Munro P KolmetzItaly2026-06-22Commercial Press PROPOSAL95Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan L BologniaGermanyIoni Bowcher QUALIFIED
Sinclair N TollnerIndiaIoni Bowcher NEGOTIATION
Francesco I GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Julie U SchemmerGermanyElwin Sharvill NEGOTIATION
Emily H PaprockiAustraliaXuxue Feng QUALIFIED
Adams U CampainJapanOnyama Limba NEW
Munro Q RulapaughAustraliaBernardo Dominic NEGOTIATION
Costa F ShinkoRussiaBernardo Dominic NEGOTIATION
Leon R TollnerItalyBernardo Dominic RENEWAL
Juan P SergiUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh Z StensethFranceXuxue Feng QUALIFIED
Ashley Y CaldareraUnited KingdomOnyama Limba PROPOSAL
Claire O MorascaJapanAmy Elsner PROPOSAL
Mayumi Y SaylorsSpainAmy Elsner PROPOSAL
Rodrigues G CampainBrazilBernardo Dominic UNQUALIFIED
Tony P GarufiJapanAsiya Javayant NEW
Rodrigues R SergiBrazilAnna Fali QUALIFIED
Jones N NickaItalyElwin Sharvill QUALIFIED
Aika O SlusarskiCanadaAnna Fali PROPOSAL
Emily X KolmetzCanadaIoni Bowcher NEW
Silvio W ShinkoFranceIvan Magalhaes NEW
Jones L SaylorsItalyIvan Magalhaes UNQUALIFIED
Aika P RimCanadaAmy Elsner QUALIFIED
Smith C MacleadIndiaIoni Bowcher NEGOTIATION
Ricardo T TollnerJapanXuxue Feng RENEWAL
Nicolas F PaprockiArgentinaIvan Magalhaes NEGOTIATION
Izzy U OldroydFranceStephen Shaw QUALIFIED
Darci U AlbaresSpainIoni Bowcher PROPOSAL
Adams S MarrierRussiaIoni Bowcher QUALIFIED
Jennifer C SaylorsGermanyXuxue Feng QUALIFIED
Morrow Q MaletCanadaAmy Elsner PROPOSAL
Deepesh Y CampainJapanXuxue Feng PROPOSAL
Claire I VenereUnited KingdomAsiya Javayant NEW
Silvio K RoysterAustraliaAnna Fali NEW
Smith B FerenczUnited KingdomXuxue Feng PROPOSAL
Silvio E MarrierArgentinaAmy Elsner NEGOTIATION
Leon Z MarrierFranceIoni Bowcher RENEWAL
Aika A OldroydIndiaStephen Shaw QUALIFIED
Jefferson R NickaFranceStephen Shaw PROPOSAL
Leon E SaylorsJapanIvan Magalhaes QUALIFIED
Munro M StensethSpainXuxue Feng NEW
Smith M KolmetzIndiaAnna Fali QUALIFIED
Sinclair J KuskoJapanStephen Shaw QUALIFIED
Aditya J ButtSpainAnna Fali NEGOTIATION
Arvin B RutaIndiaAnna Fali NEW
Jones X MorascaGermanyAnna Fali RENEWAL
Claire N PoquetteRussiaBernardo Dominic QUALIFIED
David P GlickRussiaAsiya Javayant NEGOTIATION
Mayumi L GlickSpainAsiya Javayant NEGOTIATION
Aruna X SlusarskiFranceStephen Shaw UNQUALIFIED
Frozen Columns
Name
Antonio T Figeroa
Juan W Rim
Faith S Poquette
Darci U Gillian
Stacey B Malet
Adams I Nicka
Silvio P Ferencz
Stacey V Caudy
Cody J Foller
Kadeem C Bolognia
Ivar R Rulapaugh
Octavia W Tollner
Francesco B Kolmetz
Misaki R Maclead
Julie D Ferencz
Murillo A Briddick
Aika P Gillian
Leon S Poquette
Clifford X Glick
Johnson M Gillian
Maisha N Rulapaugh
Julie H Gillian
James R Sergi
Isabel P Kusko
Kadeem G Bowley
Adams V Malet
Rodrigues J Bolognia
Smith K Nicka
Clifford V Kusko
Leon K Venere
Nicolas V Flosi
Maria F Maclead
Ivar B Butt
Clifford O Morasca
Leja R Ostrosky
Salvatore X Marrier
Leon B Doe
Adams C Morasca
Smith X Shinko
Francesco R Paprocki
Ricardo X Vocelka
Antonio X Stockham
Mujtaba C Darakjy
Costa Q Briddick
Deepesh W Stenseth
Izzy D Gaucho
Faith U Perin
Clifford A Bowley
Wickens F Morasca
Arvin M Caldarera
IdCountryDate
1000Australia2026-06-24
1001Japan2026-06-23
1002Japan2026-07-04
1003Russia2026-06-29
1004Argentina2026-07-01
1005India2026-07-15
1006France2026-07-08
1007India2026-06-29
1008Italy2026-06-29
1009Italy2026-07-10
1010Italy2026-06-27
1011Germany2026-07-10
1012Germany2026-06-20
1013United Kingdom2026-06-16
1014Canada2026-07-15
1015Canada2026-07-10
1016Argentina2026-06-18
1017Argentina2026-07-09
1018Russia2026-07-11
1019United Kingdom2026-06-17
1020United Kingdom2026-07-05
1021Russia2026-06-27
1022Spain2026-07-06
1023Brazil2026-06-30
1024Japan2026-06-30
1025Russia2026-06-24
1026Germany2026-07-10
1027Argentina2026-06-17
1028Italy2026-06-23
1029Japan2026-06-25
1030Canada2026-06-29
1031Japan2026-07-07
1032Brazil2026-06-17
1033Japan2026-06-24
1034Japan2026-07-06
1035Brazil2026-07-02
1036United Kingdom2026-06-27
1037India2026-07-06
1038United Kingdom2026-07-11
1039Germany2026-06-29
1040Canada2026-06-16
1041Russia2026-07-12
1042Brazil2026-06-22
1043Russia2026-06-19
1044Canada2026-07-04
1045Argentina2026-07-12
1046Argentina2026-07-09
1047Germany2026-07-04
1048Spain2026-07-12
1049Brazil2026-06-24

On-Demand Data

NameIdCountryDate
Ashley L Caudy1000Canada2026-07-04
Morrow D Dilliard1001Japan2026-07-03
Isabel G Venere1002Japan2026-07-12
Darci K Briddick1003Australia2026-06-23
Mayumi Z Shinko1004Italy2026-07-11
Morrow U Kusko1005Canada2026-07-01
Greenwood W Malet1006United Kingdom2026-06-27
Izzy K Ostrosky1007France2026-07-14
Nicolas P Nicka1008India2026-06-26
Izzy B Rim1009Russia2026-07-06
Greenwood Q Oldroyd1010France2026-07-01
Misaki Y Albares1011Germany2026-06-20
Julie R Marrier1012Argentina2026-06-27
Arvin U Venere1013India2026-07-14
Costa F Perin1014Italy2026-06-22
Ivar G Stenseth1015Canada2026-06-19
Sinclair T Amigon1016Japan2026-06-16
Rodrigues V Chui1017Australia2026-07-04
Octavia Z Flosi1018Germany2026-06-23
Murillo U Maclead1019Italy2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois X RoysterJapanOnyama Limba NEW
Costa G WieserItalyAsiya Javayant QUALIFIED
Izzy X StensethItalyIvan Magalhaes RENEWAL
Nicolas C MacleadCanadaXuxue Feng PROPOSAL
Arvin L VocelkaAustraliaAsiya Javayant UNQUALIFIED
Jones O GlickJapanOnyama Limba UNQUALIFIED
Leja G GarufiIndiaIoni Bowcher PROPOSAL
Emily W DoeSpainXuxue Feng QUALIFIED
Wickens L KuskoIndiaAmy Elsner RENEWAL
Chavez O WhobreyJapanAmy Elsner PROPOSAL
Emily N WhobreyArgentinaAnna Fali NEGOTIATION
Aika J VenereCanadaStephen Shaw NEW
Kaitlin V NickaArgentinaAmy Elsner PROPOSAL
Murillo X SaylorsFranceAmy Elsner RENEWAL
Mujtaba D AlbaresItalyAsiya Javayant UNQUALIFIED
Antonio V MorascaFranceXuxue Feng UNQUALIFIED
Aika I KuskoCanadaIvan Magalhaes QUALIFIED
Antonio A FigeroaGermanyAnna Fali UNQUALIFIED
Adams U WaycottJapanAnna Fali QUALIFIED
Sinclair E SergiRussiaXuxue Feng UNQUALIFIED
Wickens L WhobreyUnited KingdomStephen Shaw QUALIFIED
Octavia Q ChuiBrazilAnna Fali UNQUALIFIED
Wickens C MarrierSpainIoni Bowcher PROPOSAL
Clifford V WhobreyIndiaAsiya Javayant NEGOTIATION
Adams B OstroskyCanadaXuxue Feng NEW
Emily Y SlusarskiItalyStephen Shaw NEW
Isabel E GlickIndiaIoni Bowcher NEW
Mujtaba B GlickRussiaIvan Magalhaes QUALIFIED
Jeanfrancois P RulapaughCanadaIoni Bowcher NEW
Maisha P SaylorsItalyIoni Bowcher RENEWAL
Deepesh C RoysterSpainAsiya Javayant UNQUALIFIED
Ivar A AmigonFranceStephen Shaw RENEWAL
Deepesh J ShinkoUnited KingdomIvan Magalhaes QUALIFIED
David K MaletFranceXuxue Feng NEGOTIATION
Costa Q ButtAustraliaOnyama Limba NEGOTIATION
Salvatore T BowleyItalyXuxue Feng RENEWAL
Misaki F KuskoSpainIvan Magalhaes PROPOSAL
Tony L CampainUnited KingdomAnna Fali UNQUALIFIED
Kadeem P FigeroaAustraliaBernardo Dominic NEW
Mujtaba E GauchoItalyIvan Magalhaes 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>