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
Claire N BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Leja Z ShinkoGermanyIvan Magalhaes PROPOSAL
Adams U ButtGermanyXuxue Feng NEGOTIATION
Clifford I FlosiUnited KingdomStephen Shaw RENEWAL
Octavia C FollerJapanBernardo Dominic NEGOTIATION
Kadeem Q SaylorsJapanAnna Fali UNQUALIFIED
Mayumi A MacleadFranceAnna Fali QUALIFIED
Mujtaba X CampainBrazilIoni Bowcher NEW
Antonio N SlusarskiRussiaAsiya Javayant NEGOTIATION
Johnson R InouyeRussiaAmy Elsner UNQUALIFIED
Leja Z RimIndiaXuxue Feng PROPOSAL
Ashley Y SchemmerBrazilAmy Elsner NEGOTIATION
Deepesh Y ButtRussiaStephen Shaw NEGOTIATION
Jefferson P FollerBrazilAmy Elsner RENEWAL
Salvatore P BriddickAustraliaAnna Fali NEW
Faith G SlusarskiBrazilXuxue Feng UNQUALIFIED
Darci S MaletGermanyXuxue Feng QUALIFIED
Jeanfrancois E SchemmerArgentinaBernardo Dominic NEGOTIATION
Sinclair X RutaFranceAnna Fali UNQUALIFIED
Aruna R VocelkaBrazilAsiya Javayant NEW
Ivar E SlusarskiRussiaAmy Elsner QUALIFIED
Maria A FlosiBrazilBernardo Dominic QUALIFIED
James J MaletAustraliaStephen Shaw NEW
Francesco L CaldareraIndiaXuxue Feng NEW
Johnson K WhobreyAustraliaBernardo Dominic NEGOTIATION
Silvio K ButtIndiaAsiya Javayant UNQUALIFIED
Alejandro R SaylorsFranceOnyama Limba QUALIFIED
Tony U InouyeJapanElwin Sharvill QUALIFIED
Stacey K DilliardJapanAmy Elsner UNQUALIFIED
Costa P CaldareraGermanyIvan Magalhaes UNQUALIFIED
Ivar H CaldareraArgentinaOnyama Limba UNQUALIFIED
Cody T NickaArgentinaIoni Bowcher UNQUALIFIED
Ricardo Y TollnerAustraliaAsiya Javayant PROPOSAL
Aruna H WhobreyArgentinaStephen Shaw NEW
Juan R VenereUnited KingdomOnyama Limba PROPOSAL
Chavez I FollerRussiaStephen Shaw NEGOTIATION
Salvatore C OldroydCanadaAsiya Javayant NEW
Tony N InouyeAustraliaOnyama Limba QUALIFIED
Julie E BologniaSpainAsiya Javayant UNQUALIFIED
Emily N GauchoRussiaElwin Sharvill UNQUALIFIED
Clifford M IturbideJapanAmy Elsner NEW
Smith A DilliardFranceAmy Elsner RENEWAL
Johnson R MacleadSpainIoni Bowcher RENEWAL
Rodrigues M WhobreyUnited KingdomElwin Sharvill UNQUALIFIED
Aika F BologniaIndiaXuxue Feng NEW
Izzy I MarrierJapanStephen Shaw QUALIFIED
Nicolas U VocelkaFranceAnna Fali NEGOTIATION
Clifford T FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Deepesh Q FollerBrazilIvan Magalhaes PROPOSAL
Faith J AlbaresRussiaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley H AmigonIndiaStephen Shaw PROPOSAL
Stacey V MaletFranceElwin Sharvill QUALIFIED
Mayumi O DarakjyRussiaStephen Shaw RENEWAL
Cody G DoeIndiaOnyama Limba QUALIFIED
Arvin A CaldareraGermanyAmy Elsner NEW
Aditya S DarakjyBrazilAnna Fali RENEWAL
Costa N NestleBrazilIoni Bowcher NEW
Mayumi E WieserBrazilStephen Shaw RENEWAL
Rodrigues Z TollnerCanadaIoni Bowcher PROPOSAL
Ivar G CampainRussiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois U MorascaCanada2026-08-09Benton, John B Jr PROPOSAL50Onyama Limba
1001Ashley H MaletArgentina2026-08-15Printing Dimensions RENEWAL22Amy Elsner
1002Adams K VenereAustralia2026-08-16Benton, John B Jr UNQUALIFIED52Ioni Bowcher
1003Jefferson U NestleIndia2026-08-26Feiner Bros PROPOSAL81Bernardo Dominic
1004Isabel J NestleBrazil2026-08-09Printing Dimensions NEW60Ivan Magalhaes
1005Maria N IturbideIndia2026-08-18King, Christopher A Esq UNQUALIFIED70Asiya Javayant
1006Claire F AmigonAustralia2026-08-14Benton, John B Jr QUALIFIED75Elwin Sharvill
1007Salvatore T BowleyUnited Kingdom2026-08-23Feiner Bros RENEWAL5Bernardo Dominic
1008Maria M MorascaAustralia2026-08-01Benton, John B Jr NEGOTIATION94Onyama Limba
1009Leja N CaudyAustralia2026-08-03Printing Dimensions NEGOTIATION97Bernardo Dominic
1010Sinclair O ShinkoFrance2026-08-10Feltz Printing Service NEW38Bernardo Dominic
1011David F MacleadBrazil2026-08-13Buckley Miller Wright RENEWAL13Amy Elsner
1012Chavez U NickaArgentina2026-08-23Chapman, Ross E Esq PROPOSAL9Bernardo Dominic
1013Ricardo G KuskoItaly2026-08-12Rangoni Of Florence RENEWAL12Asiya Javayant
1014Misaki O VenereItaly2026-08-04Benton, John B Jr PROPOSAL19Ioni Bowcher
1015Isabel G MarrierUnited Kingdom2026-08-19Chemel, James L Cpa RENEWAL9Xuxue Feng
1016Jeanfrancois R MacleadIndia2026-08-27Commercial Press PROPOSAL72Asiya Javayant
1017Mayumi R TollnerFrance2026-08-21Commercial Press PROPOSAL68Ivan Magalhaes
1018Silvio A AmigonUnited Kingdom2026-08-04Feiner Bros PROPOSAL49Elwin Sharvill
1019Francesco O WaycottAustralia2026-07-31Feltz Printing Service PROPOSAL96Elwin Sharvill
1020Darci K MaletRussia2026-08-20Chemel, James L Cpa QUALIFIED6Asiya Javayant
1021Maisha H OstroskyIndia2026-08-13Chapman, Ross E Esq RENEWAL6Elwin Sharvill
1022Francesco M OstroskyUnited Kingdom2026-08-13Chemel, James L Cpa UNQUALIFIED57Ivan Magalhaes
1023Mayumi U InouyeItaly2026-08-15Rousseaux, Michael Esq PROPOSAL35Xuxue Feng
1024Kadeem D IturbideJapan2026-08-02King, Christopher A Esq NEGOTIATION78Onyama Limba
1025Emily U MorascaItaly2026-08-02Dorl, James J Esq UNQUALIFIED11Stephen Shaw
1026Antonio F ShinkoAustralia2026-08-03Dorl, James J Esq UNQUALIFIED89Ivan Magalhaes
1027Adams Y ButtJapan2026-08-15Chemel, James L Cpa PROPOSAL35Xuxue Feng
1028Salvatore V VenereArgentina2026-08-28Commercial Press RENEWAL26Stephen Shaw
1029Octavia P TollnerGermany2026-08-14Chapman, Ross E Esq UNQUALIFIED68Bernardo Dominic
1030Antonio Q KolmetzAustralia2026-08-20Chemel, James L Cpa PROPOSAL94Xuxue Feng
1031Costa S WieserSpain2026-08-09Rangoni Of Florence RENEWAL3Bernardo Dominic
1032Chavez I FlosiAustralia2026-08-04Truhlar And Truhlar Attys NEGOTIATION77Ioni Bowcher
1033Munro E MacleadFrance2026-08-17Chanay, Jeffrey A Esq PROPOSAL4Onyama Limba
1034Murillo A IturbideAustralia2026-08-25Commercial Press RENEWAL1Asiya Javayant
1035Leon C FollerIndia2026-08-07Buckley Miller Wright NEW84Amy Elsner
1036Greenwood U CaldareraBrazil2026-08-08Benton, John B Jr NEGOTIATION10Anna Fali
1037Munro Q KolmetzSpain2026-08-11Buckley Miller Wright QUALIFIED21Bernardo Dominic
1038Stacey O VenereRussia2026-08-14Chapman, Ross E Esq RENEWAL45Onyama Limba
1039Stacey A IturbideAustralia2026-08-17Feltz Printing Service RENEWAL31Onyama Limba
1040Aika S DoeUnited Kingdom2026-08-07Benton, John B Jr QUALIFIED3Ioni Bowcher
1041Sinclair L OstroskyJapan2026-08-02Buckley Miller Wright NEW24Xuxue Feng
1042Alejandro N ButtAustralia2026-08-03Morlong Associates QUALIFIED99Bernardo Dominic
1043Claire S VenereAustralia2026-08-03Rangoni Of Florence NEW12Anna Fali
1044Ivar Z NickaJapan2026-08-07King, Christopher A Esq UNQUALIFIED84Asiya Javayant
1045Isabel S AlbaresCanada2026-08-26King, Christopher A Esq UNQUALIFIED36Elwin Sharvill
1046Wickens R BowleySpain2026-08-29Benton, John B Jr NEGOTIATION31Asiya Javayant
1047Faith T CampainFrance2026-08-01King, Christopher A Esq RENEWAL4Asiya Javayant
1048Leja G StockhamSpain2026-08-13Chanay, Jeffrey A Esq RENEWAL27Anna Fali
1049Murillo G AmigonIndia2026-08-27Chapman, Ross E Esq RENEWAL96Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar E ButtIndiaIvan Magalhaes UNQUALIFIED
Julie H MorascaAustraliaStephen Shaw NEW
James F SaylorsSpainElwin Sharvill NEGOTIATION
Costa Z BriddickUnited KingdomIoni Bowcher QUALIFIED
Smith C TollnerArgentinaElwin Sharvill UNQUALIFIED
Claire J SaylorsRussiaBernardo Dominic NEW
Johnson J KolmetzRussiaAsiya Javayant RENEWAL
Leon K WaycottGermanyOnyama Limba PROPOSAL
Leon U PaprockiGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois L PerinJapanAnna Fali NEW
Rodrigues E ShinkoSpainAsiya Javayant RENEWAL
Clifford T PaprockiItalyAmy Elsner UNQUALIFIED
Maisha T ButtSpainAmy Elsner UNQUALIFIED
Munro Y MaletItalyAmy Elsner NEGOTIATION
Arvin Q IturbideJapanAsiya Javayant NEGOTIATION
Maisha M DarakjyRussiaBernardo Dominic UNQUALIFIED
Antonio K WaycottGermanyStephen Shaw NEW
Francesco J SchemmerAustraliaXuxue Feng PROPOSAL
David L MorascaRussiaAsiya Javayant PROPOSAL
Isabel E DilliardJapanAmy Elsner RENEWAL
Maria P WaycottGermanyStephen Shaw PROPOSAL
Francesco V DilliardIndiaOnyama Limba RENEWAL
Mayumi A NestleAustraliaAnna Fali RENEWAL
Greenwood E AlbaresJapanAsiya Javayant NEGOTIATION
Emily A BologniaGermanyIoni Bowcher RENEWAL
Emily R FigeroaBrazilStephen Shaw NEGOTIATION
Ricardo I MorascaGermanyXuxue Feng NEW
Maria R OldroydUnited KingdomIoni Bowcher NEGOTIATION
Greenwood J ButtItalyAnna Fali RENEWAL
Jennifer Q GarufiAustraliaOnyama Limba NEGOTIATION
Antonio G ButtCanadaElwin Sharvill UNQUALIFIED
Aditya U FigeroaFranceBernardo Dominic UNQUALIFIED
Darci E BologniaItalyOnyama Limba NEW
Mujtaba S OldroydUnited KingdomAsiya Javayant QUALIFIED
Murillo Q GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Izzy S SchemmerIndiaBernardo Dominic NEW
Silvio M VocelkaIndiaIvan Magalhaes NEW
Arvin C AlbaresItalyXuxue Feng QUALIFIED
Greenwood V StockhamRussiaOnyama Limba NEGOTIATION
Salvatore R VenereSpainOnyama Limba UNQUALIFIED
Aruna C MaletItalyIoni Bowcher NEW
Darci L BowleyIndiaElwin Sharvill QUALIFIED
Aruna B WhobreyGermanyAsiya Javayant RENEWAL
Mayumi J BriddickArgentinaAmy Elsner RENEWAL
Aditya E GillianSpainBernardo Dominic NEW
Ricardo V FlosiIndiaBernardo Dominic UNQUALIFIED
Smith R BowleySpainStephen Shaw UNQUALIFIED
Alejandro H CaudyAustraliaAsiya Javayant NEGOTIATION
Wickens E GauchoJapanElwin Sharvill NEGOTIATION
Salvatore H WhobreyGermanyXuxue Feng NEW
Frozen Columns
Name
Isabel I Bowley
Izzy D Paprocki
Leon V Tollner
Munro K Amigon
Izzy C Royster
Ashley L Ostrosky
Greenwood V Marrier
Darci A Stenseth
James M Marrier
Arvin E Flosi
Jefferson P Marrier
Leon I Shinko
David Q Nicka
Wickens N Inouye
Deepesh K Gaucho
Salvatore U Wieser
Aditya I Ruta
Tony S Perin
Isabel F Waycott
Ivar B Wieser
Salvatore K Ferencz
Leon S Malet
Kaitlin Y Bowley
Kadeem Y Rim
Aditya V Maclead
Maria E Tollner
Leon Z Gillian
Smith U Royster
Deepesh X Bowley
Izzy N Briddick
Mujtaba H Ferencz
Leon O Morasca
Kadeem W Stenseth
Jeanfrancois R Ostrosky
Francesco L Gillian
Arvin I Whobrey
Smith N Inouye
Isabel Z Inouye
Clifford Y Paprocki
Izzy C Amigon
Isabel G Marrier
Emily O Gaucho
Stacey L Bowley
Ricardo J Gaucho
Salvatore K Flosi
Darci Y Waycott
Faith C Glick
Mayumi P Malet
Ricardo S Shinko
Ivar T Garufi
IdCountryDate
1000United Kingdom2026-08-22
1001Brazil2026-08-05
1002Canada2026-08-23
1003Italy2026-08-26
1004Canada2026-08-15
1005United Kingdom2026-08-12
1006Germany2026-08-22
1007United Kingdom2026-08-01
1008Brazil2026-08-29
1009United Kingdom2026-08-15
1010Spain2026-08-09
1011Brazil2026-08-27
1012Brazil2026-08-17
1013India2026-08-16
1014Brazil2026-08-02
1015Italy2026-08-23
1016Germany2026-08-04
1017Canada2026-08-22
1018France2026-08-09
1019Canada2026-08-09
1020Australia2026-08-25
1021Brazil2026-08-22
1022Canada2026-08-29
1023Italy2026-08-26
1024United Kingdom2026-08-15
1025Japan2026-08-12
1026Germany2026-08-04
1027Brazil2026-07-31
1028Italy2026-08-04
1029Australia2026-08-25
1030Russia2026-07-31
1031Australia2026-08-07
1032Argentina2026-08-07
1033Argentina2026-08-26
1034Canada2026-08-08
1035Australia2026-08-21
1036Spain2026-08-21
1037France2026-08-19
1038Spain2026-08-09
1039Brazil2026-08-03
1040United Kingdom2026-08-05
1041Brazil2026-08-01
1042India2026-08-09
1043Italy2026-08-06
1044Germany2026-08-29
1045Australia2026-08-29
1046Spain2026-08-03
1047Australia2026-08-07
1048Canada2026-08-03
1049United Kingdom2026-08-09

On-Demand Data

NameIdCountryDate
Leon O Malet1000United Kingdom2026-08-24
Deepesh K Kusko1001Brazil2026-08-26
Leon A Kusko1002Australia2026-08-21
Munro T Venere1003Italy2026-08-29
Faith I Ruta1004India2026-07-31
Greenwood W Garufi1005Japan2026-08-14
Kadeem P Doe1006India2026-08-04
Murillo R Marrier1007Germany2026-08-19
Claire O Waycott1008Australia2026-07-31
Greenwood G Dilliard1009Argentina2026-08-13
Emily Y Gillian1010France2026-08-21
Costa M Doe1011United Kingdom2026-08-01
Francesco A Nestle1012France2026-08-03
Ivar Z Glick1013Argentina2026-08-28
Munro B Marrier1014Argentina2026-08-06
Deepesh G Glick1015Spain2026-07-31
Costa D Campain1016Russia2026-08-16
David X Nicka1017Brazil2026-08-19
Alejandro S Sergi1018United Kingdom2026-08-13
Wickens M Oldroyd1019France2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas W PaprockiIndiaAnna Fali UNQUALIFIED
Jones M SlusarskiAustraliaAnna Fali NEGOTIATION
Claire Y RimUnited KingdomAsiya Javayant PROPOSAL
Rodrigues B MaletUnited KingdomAnna Fali NEW
Jennifer O GlickUnited KingdomIoni Bowcher NEW
Jeanfrancois G TollnerCanadaAnna Fali NEGOTIATION
Nicolas Y GauchoArgentinaElwin Sharvill NEW
Adams V MorascaBrazilAnna Fali NEGOTIATION
Ricardo P BriddickGermanyStephen Shaw NEGOTIATION
Alejandro C GillianUnited KingdomAsiya Javayant NEGOTIATION
Jennifer I OldroydRussiaXuxue Feng QUALIFIED
Silvio Z IturbideItalyXuxue Feng UNQUALIFIED
Smith B RulapaughIndiaBernardo Dominic QUALIFIED
Arvin R InouyeRussiaAnna Fali UNQUALIFIED
Juan J VenereArgentinaStephen Shaw QUALIFIED
Chavez S ButtCanadaStephen Shaw NEW
Mujtaba M KuskoBrazilXuxue Feng NEGOTIATION
Leon A SergiBrazilElwin Sharvill NEGOTIATION
Leja E OstroskyBrazilStephen Shaw QUALIFIED
Darci Q PoquetteGermanyIvan Magalhaes PROPOSAL
Jones Y SchemmerArgentinaElwin Sharvill RENEWAL
Kaitlin T BologniaCanadaIoni Bowcher NEW
Nicolas M MaletCanadaOnyama Limba UNQUALIFIED
Smith E FlosiIndiaIoni Bowcher NEGOTIATION
David R FlosiFranceOnyama Limba QUALIFIED
Julie V WieserSpainStephen Shaw UNQUALIFIED
Johnson F MorascaUnited KingdomOnyama Limba NEW
Faith Y BriddickJapanElwin Sharvill NEW
Juan A AlbaresFranceAnna Fali NEW
Clifford G VenereJapanIvan Magalhaes QUALIFIED
Jeanfrancois O MarrierBrazilAnna Fali RENEWAL
Stacey E BologniaBrazilBernardo Dominic UNQUALIFIED
Adams W TollnerSpainAsiya Javayant NEW
Jefferson C SchemmerAustraliaAnna Fali QUALIFIED
James M VocelkaArgentinaAnna Fali NEW
Mujtaba I GlickItalyOnyama Limba QUALIFIED
Sinclair E RoysterItalyElwin Sharvill UNQUALIFIED
Silvio I TollnerRussiaBernardo Dominic QUALIFIED
Jeanfrancois F TollnerGermanyAsiya Javayant RENEWAL
Darci F IturbideUnited KingdomIvan Magalhaes NEGOTIATION

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