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
Silvio A ShinkoItalyBernardo Dominic RENEWAL
Ricardo N FerenczBrazilBernardo Dominic NEGOTIATION
Jennifer P FlosiFranceIoni Bowcher NEW
Mayumi S NickaJapanElwin Sharvill RENEWAL
Francesco V StensethRussiaXuxue Feng QUALIFIED
Clifford I SaylorsIndiaIoni Bowcher NEGOTIATION
Greenwood Q ShinkoArgentinaStephen Shaw QUALIFIED
Mayumi E DilliardJapanBernardo Dominic NEW
Izzy W GlickSpainIvan Magalhaes RENEWAL
Adams G FollerBrazilOnyama Limba PROPOSAL
Sinclair L IturbideArgentinaXuxue Feng RENEWAL
Jones J GlickJapanStephen Shaw PROPOSAL
Jefferson G BologniaBrazilBernardo Dominic QUALIFIED
Rodrigues Y WieserArgentinaIoni Bowcher UNQUALIFIED
Sinclair I WaycottFranceElwin Sharvill UNQUALIFIED
Maria K FlosiAustraliaElwin Sharvill NEGOTIATION
Mujtaba E InouyeCanadaXuxue Feng UNQUALIFIED
Alejandro Y WieserSpainAsiya Javayant RENEWAL
Mujtaba B PaprockiSpainXuxue Feng PROPOSAL
Francesco J ChuiRussiaIvan Magalhaes PROPOSAL
Silvio N GauchoSpainAmy Elsner PROPOSAL
Ashley A ShinkoFranceBernardo Dominic NEGOTIATION
Munro F MarrierItalyOnyama Limba RENEWAL
Ashley Y WieserItalyBernardo Dominic QUALIFIED
Cody W WaycottBrazilXuxue Feng QUALIFIED
Julie S RulapaughBrazilOnyama Limba UNQUALIFIED
Aditya I CampainRussiaOnyama Limba NEGOTIATION
Wickens R InouyeSpainAmy Elsner QUALIFIED
Izzy X CaldareraGermanyBernardo Dominic PROPOSAL
Murillo P OldroydBrazilStephen Shaw QUALIFIED
Tony K SergiRussiaElwin Sharvill UNQUALIFIED
Salvatore H CampainUnited KingdomAmy Elsner PROPOSAL
Jones R OstroskyRussiaAsiya Javayant PROPOSAL
Murillo T FigeroaItalyAnna Fali RENEWAL
Misaki V BriddickItalyXuxue Feng UNQUALIFIED
Maisha A PerinGermanyElwin Sharvill QUALIFIED
Kadeem M MacleadBrazilXuxue Feng NEW
Rodrigues R PerinJapanBernardo Dominic PROPOSAL
Cody X BowleyGermanyBernardo Dominic UNQUALIFIED
Leja D NestleFranceElwin Sharvill UNQUALIFIED
Chavez P RoysterJapanIoni Bowcher UNQUALIFIED
Silvio O PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin E InouyeAustraliaIvan Magalhaes QUALIFIED
Tony F WhobreySpainAnna Fali RENEWAL
Tony Z NestleFranceAnna Fali NEGOTIATION
Ricardo K FlosiBrazilAsiya Javayant NEW
Tony R WieserJapanXuxue Feng QUALIFIED
Rodrigues W FigeroaCanadaIoni Bowcher NEW
Jones G FigeroaArgentinaXuxue Feng QUALIFIED
Wickens K InouyeRussiaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas M AmigonItalyAmy Elsner NEW
Antonio C RimCanadaXuxue Feng NEGOTIATION
Clifford S CampainRussiaElwin Sharvill RENEWAL
Aika G MacleadAustraliaElwin Sharvill PROPOSAL
Cody T SlusarskiSpainXuxue Feng NEW
Deepesh Z WaycottJapanXuxue Feng RENEWAL
Mujtaba B MarrierArgentinaXuxue Feng NEW
Arvin F SlusarskiIndiaBernardo Dominic NEW
Maisha F AlbaresRussiaIoni Bowcher NEGOTIATION
Julie T DilliardJapanOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford G IturbideBrazil2026-08-06Feiner Bros NEGOTIATION24Ivan Magalhaes
1001Sinclair I WaycottGermany2026-08-14Feltz Printing Service PROPOSAL61Elwin Sharvill
1002Ivar D FigeroaUnited Kingdom2026-08-13Printing Dimensions NEGOTIATION85Xuxue Feng
1003Ivar O CampainBrazil2026-08-07Chanay, Jeffrey A Esq NEGOTIATION0Anna Fali
1004David P TollnerSpain2026-08-17Morlong Associates PROPOSAL18Amy Elsner
1005Morrow Z SergiBrazil2026-08-17Benton, John B Jr PROPOSAL86Stephen Shaw
1006Morrow C BologniaItaly2026-09-02Buckley Miller Wright NEW26Xuxue Feng
1007Maisha M GillianGermany2026-08-14Morlong Associates QUALIFIED37Stephen Shaw
1008Misaki N ShinkoArgentina2026-08-11Morlong Associates QUALIFIED79Onyama Limba
1009Francesco S KolmetzIndia2026-08-10Dorl, James J Esq RENEWAL0Ivan Magalhaes
1010Kadeem B CampainIndia2026-08-28Chanay, Jeffrey A Esq NEW1Asiya Javayant
1011Maria X PaprockiUnited Kingdom2026-08-14Chapman, Ross E Esq RENEWAL65Elwin Sharvill
1012Leon U RimIndia2026-09-03Rangoni Of Florence NEGOTIATION43Asiya Javayant
1013Jeanfrancois H RoysterUnited Kingdom2026-08-30Truhlar And Truhlar Attys NEGOTIATION95Bernardo Dominic
1014Kadeem T BowleyBrazil2026-08-15Benton, John B Jr UNQUALIFIED20Bernardo Dominic
1015Ivar N SchemmerAustralia2026-08-14Truhlar And Truhlar Attys UNQUALIFIED77Amy Elsner
1016Salvatore W NestleItaly2026-08-28Feiner Bros NEGOTIATION53Stephen Shaw
1017Deepesh N DilliardBrazil2026-09-01Benton, John B Jr PROPOSAL63Xuxue Feng
1018Kadeem L SlusarskiFrance2026-08-15Rousseaux, Michael Esq QUALIFIED8Bernardo Dominic
1019Isabel I ShinkoFrance2026-08-19Chemel, James L Cpa NEGOTIATION91Ivan Magalhaes
1020Kaitlin Q ShinkoGermany2026-08-24Rangoni Of Florence NEGOTIATION75Ivan Magalhaes
1021Isabel Z NestleSpain2026-08-26Feiner Bros RENEWAL95Ivan Magalhaes
1022Mujtaba U MacleadArgentina2026-08-19Buckley Miller Wright PROPOSAL99Elwin Sharvill
1023Morrow S PaprockiBrazil2026-08-19Truhlar And Truhlar Attys UNQUALIFIED84Ioni Bowcher
1024Izzy A DarakjyArgentina2026-08-12Chemel, James L Cpa PROPOSAL85Ioni Bowcher
1025Salvatore R RoysterFrance2026-08-28Chemel, James L Cpa QUALIFIED9Anna Fali
1026Nicolas Y BowleyUnited Kingdom2026-08-29Chapman, Ross E Esq NEGOTIATION49Ivan Magalhaes
1027David G FigeroaArgentina2026-08-25Chanay, Jeffrey A Esq NEGOTIATION23Bernardo Dominic
1028Jefferson I BowleyGermany2026-08-15Dorl, James J Esq UNQUALIFIED33Amy Elsner
1029Nicolas P GlickBrazil2026-09-01Chapman, Ross E Esq NEW72Anna Fali
1030Munro M FerenczArgentina2026-08-11Buckley Miller Wright UNQUALIFIED46Ivan Magalhaes
1031Adams N NestleRussia2026-08-23Benton, John B Jr RENEWAL43Anna Fali
1032Jennifer D NickaRussia2026-08-22Chapman, Ross E Esq QUALIFIED67Asiya Javayant
1033Julie M DarakjyGermany2026-08-13Commercial Press NEGOTIATION52Bernardo Dominic
1034Ricardo C GauchoCanada2026-08-31Chemel, James L Cpa PROPOSAL37Asiya Javayant
1035Chavez N NickaBrazil2026-08-21King, Christopher A Esq RENEWAL44Onyama Limba
1036Antonio Q GillianUnited Kingdom2026-08-17Buckley Miller Wright RENEWAL84Xuxue Feng
1037Arvin A PaprockiItaly2026-08-31Truhlar And Truhlar Attys RENEWAL85Anna Fali
1038Francesco V MorascaBrazil2026-08-05Morlong Associates UNQUALIFIED8Ivan Magalhaes
1039Maisha H WaycottIndia2026-08-13Dorl, James J Esq NEGOTIATION82Bernardo Dominic
1040Stacey L NestleJapan2026-08-26Buckley Miller Wright UNQUALIFIED37Anna Fali
1041Adams C WieserAustralia2026-08-08Benton, John B Jr NEGOTIATION3Asiya Javayant
1042Darci C GarufiItaly2026-08-24Rangoni Of Florence PROPOSAL99Ivan Magalhaes
1043Jefferson R DilliardJapan2026-08-30Feiner Bros NEW48Ioni Bowcher
1044Wickens D SaylorsGermany2026-08-08Rangoni Of Florence UNQUALIFIED64Asiya Javayant
1045Juan L VocelkaAustralia2026-08-16Benton, John B Jr NEW94Amy Elsner
1046Greenwood I PerinJapan2026-09-02Chemel, James L Cpa UNQUALIFIED98Stephen Shaw
1047David W RimItaly2026-09-01Truhlar And Truhlar Attys RENEWAL39Anna Fali
1048Smith Y AlbaresIndia2026-08-14Truhlar And Truhlar Attys QUALIFIED51Ioni Bowcher
1049Mujtaba G MaletBrazil2026-08-15Morlong Associates NEGOTIATION51Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jones J ButtAustraliaStephen Shaw QUALIFIED
Emily R AmigonAustraliaIvan Magalhaes UNQUALIFIED
Isabel T IturbideArgentinaBernardo Dominic QUALIFIED
Cody T WhobreyRussiaAmy Elsner RENEWAL
Emily B InouyeBrazilStephen Shaw NEGOTIATION
Greenwood H ButtJapanXuxue Feng NEW
Octavia B FlosiItalyBernardo Dominic RENEWAL
Chavez Z VocelkaRussiaIoni Bowcher RENEWAL
Kadeem Y DoeJapanAsiya Javayant UNQUALIFIED
Rodrigues Q RulapaughUnited KingdomStephen Shaw RENEWAL
Chavez T SergiCanadaAmy Elsner RENEWAL
Deepesh U BologniaFranceAnna Fali RENEWAL
Murillo J RoysterBrazilAnna Fali UNQUALIFIED
Salvatore K ChuiBrazilAnna Fali QUALIFIED
Jeanfrancois S PerinCanadaElwin Sharvill QUALIFIED
James G DarakjyAustraliaStephen Shaw PROPOSAL
Isabel C RutaItalyBernardo Dominic RENEWAL
Silvio S SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Jones Z InouyeUnited KingdomElwin Sharvill QUALIFIED
Adams U StensethRussiaXuxue Feng UNQUALIFIED
Antonio J MacleadGermanyAnna Fali UNQUALIFIED
Leon D MacleadGermanyBernardo Dominic PROPOSAL
Aruna E GlickBrazilAsiya Javayant QUALIFIED
Tony A CaudyUnited KingdomAnna Fali PROPOSAL
Jefferson C AmigonItalyXuxue Feng RENEWAL
Munro I DilliardArgentinaStephen Shaw NEGOTIATION
Ivar C MaletAustraliaAnna Fali PROPOSAL
Arvin Q MorascaUnited KingdomXuxue Feng NEW
Juan A VocelkaItalyIvan Magalhaes PROPOSAL
Ashley T WaycottGermanyAmy Elsner RENEWAL
Juan D SlusarskiBrazilIoni Bowcher PROPOSAL
Emily L AlbaresIndiaXuxue Feng NEW
Deepesh H PaprockiAustraliaOnyama Limba NEW
Ashley E SchemmerIndiaStephen Shaw NEGOTIATION
Mujtaba R AmigonGermanyAsiya Javayant NEGOTIATION
Claire A BologniaBrazilIoni Bowcher PROPOSAL
Ricardo R MaletCanadaIvan Magalhaes NEGOTIATION
Francesco K OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Munro P BowleyRussiaOnyama Limba QUALIFIED
Smith P VenereSpainBernardo Dominic NEW
Sinclair M StensethJapanXuxue Feng NEW
Munro M InouyeGermanyAsiya Javayant NEGOTIATION
Aruna N FollerArgentinaBernardo Dominic UNQUALIFIED
Silvio U AlbaresIndiaStephen Shaw NEGOTIATION
Nicolas B StockhamCanadaStephen Shaw QUALIFIED
Deepesh G NickaArgentinaIoni Bowcher UNQUALIFIED
Rodrigues M SchemmerAustraliaIvan Magalhaes NEGOTIATION
Claire G RulapaughSpainElwin Sharvill NEGOTIATION
Maisha D RimUnited KingdomStephen Shaw NEGOTIATION
Salvatore Z WaycottCanadaAsiya Javayant NEW
Frozen Columns
Name
Deepesh S Shinko
Jeanfrancois D Saylors
Deepesh Y Oldroyd
Izzy H Caudy
Francesco I Briddick
Murillo S Rim
Nicolas E Poquette
Maria E Stenseth
Cody X Dilliard
Cody R Rulapaugh
Claire Q Briddick
Rodrigues V Glick
Darci A Ferencz
Ashley S Inouye
Izzy Y Marrier
Claire F Kolmetz
Adams V Whobrey
Claire L Wieser
Alejandro G Butt
Faith O Iturbide
Tony N Malet
Nicolas K Vocelka
Ricardo N Sergi
Ricardo R Vocelka
Arvin P Royster
James T Ruta
Clifford Z Dilliard
Adams E Malet
Nicolas U Bolognia
Deepesh T Royster
Alejandro I Stenseth
Jennifer X Gillian
Deepesh Q Stenseth
Murillo B Ostrosky
Aruna L Ferencz
Rodrigues L Sergi
Cody O Sergi
Smith N Perin
Kadeem K Royster
Darci C Ostrosky
Alejandro W Oldroyd
Silvio J Gillian
Julie P Marrier
Greenwood Y Foller
Kadeem Q Doe
Maria N Flosi
Morrow H Albares
Leja P Royster
Stacey N Iturbide
Clifford C Albares
IdCountryDate
1000Canada2026-08-17
1001Spain2026-08-09
1002India2026-08-27
1003Canada2026-09-03
1004Italy2026-08-09
1005Germany2026-08-20
1006Germany2026-08-18
1007Italy2026-08-21
1008Brazil2026-08-11
1009United Kingdom2026-08-24
1010United Kingdom2026-08-13
1011France2026-09-02
1012Japan2026-08-22
1013Germany2026-08-29
1014Brazil2026-08-15
1015Spain2026-08-19
1016France2026-08-30
1017France2026-08-21
1018Brazil2026-08-26
1019Japan2026-08-16
1020Japan2026-08-26
1021India2026-08-16
1022Canada2026-08-30
1023Brazil2026-08-20
1024Japan2026-08-27
1025Italy2026-08-19
1026Japan2026-08-12
1027Russia2026-08-29
1028Spain2026-09-01
1029Brazil2026-08-27
1030Brazil2026-09-02
1031Russia2026-08-17
1032Australia2026-08-07
1033Argentina2026-08-09
1034Australia2026-08-17
1035Spain2026-08-14
1036France2026-08-28
1037Argentina2026-08-10
1038Argentina2026-08-17
1039Russia2026-08-23
1040Brazil2026-08-14
1041Japan2026-08-27
1042Japan2026-08-21
1043Spain2026-08-21
1044Spain2026-08-06
1045France2026-08-21
1046Spain2026-08-05
1047Germany2026-08-05
1048Canada2026-08-26
1049Italy2026-08-22

On-Demand Data

NameIdCountryDate
Emily V Bolognia1000India2026-08-26
Nicolas E Butt1001Brazil2026-09-02
Silvio D Tollner1002Japan2026-08-09
Salvatore S Flosi1003Argentina2026-08-20
Emily Y Royster1004India2026-08-07
Isabel W Butt1005Russia2026-08-22
Maria N Perin1006Argentina2026-09-01
Wickens L Figeroa1007United Kingdom2026-08-13
Aditya O Shinko1008India2026-08-29
Ashley T Malet1009Spain2026-08-13
Wickens B Perin1010Canada2026-08-19
Maisha D Shinko1011Australia2026-08-11
Aditya N Schemmer1012Russia2026-09-03
Smith S Perin1013France2026-08-08
Adams G Slusarski1014France2026-08-08
Ashley H Flosi1015Japan2026-08-09
Aika K Caldarera1016Argentina2026-08-26
Claire J Saylors1017Italy2026-08-05
Izzy P Gillian1018Japan2026-08-12
Tony R Slusarski1019Australia2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas C GlickRussiaElwin Sharvill PROPOSAL
Nicolas P ShinkoBrazilAnna Fali NEW
Mayumi F MaletSpainStephen Shaw PROPOSAL
Ashley O CampainArgentinaIvan Magalhaes UNQUALIFIED
Clifford C GillianJapanAsiya Javayant QUALIFIED
Cody V SchemmerItalyStephen Shaw UNQUALIFIED
Deepesh E MaletSpainAsiya Javayant NEGOTIATION
Francesco X ShinkoIndiaOnyama Limba NEW
Maria M NestleArgentinaIvan Magalhaes PROPOSAL
Smith I FollerRussiaAmy Elsner UNQUALIFIED
Kadeem Q FigeroaBrazilAmy Elsner NEGOTIATION
Adams M RoysterSpainElwin Sharvill PROPOSAL
Antonio W SchemmerJapanIvan Magalhaes UNQUALIFIED
Antonio X SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Isabel U DarakjyIndiaIoni Bowcher UNQUALIFIED
Munro B CaudyFranceIoni Bowcher NEGOTIATION
Darci O ChuiFranceIoni Bowcher NEGOTIATION
Misaki L CampainArgentinaOnyama Limba QUALIFIED
Claire D RutaCanadaStephen Shaw QUALIFIED
Murillo M GarufiIndiaBernardo Dominic QUALIFIED
Julie K BologniaItalyStephen Shaw UNQUALIFIED
Jeanfrancois D AlbaresRussiaIvan Magalhaes QUALIFIED
Mujtaba K MacleadRussiaStephen Shaw QUALIFIED
Jones X ShinkoSpainBernardo Dominic UNQUALIFIED
Stacey H FerenczSpainIoni Bowcher NEW
Aika G MacleadJapanAnna Fali RENEWAL
Mayumi J InouyeIndiaIoni Bowcher QUALIFIED
Johnson I FigeroaFranceAsiya Javayant QUALIFIED
Jennifer A PerinIndiaXuxue Feng UNQUALIFIED
Jennifer B WieserCanadaAmy Elsner NEGOTIATION
Jefferson V PaprockiCanadaStephen Shaw NEGOTIATION
Ricardo I FigeroaIndiaAmy Elsner QUALIFIED
Greenwood S SergiItalyAmy Elsner QUALIFIED
Tony A PoquetteFranceBernardo Dominic PROPOSAL
Jones C BowleyAustraliaAsiya Javayant PROPOSAL
Silvio X WieserRussiaAmy Elsner QUALIFIED
Aditya Q DarakjyGermanyIoni Bowcher RENEWAL
Francesco I FerenczJapanAmy Elsner RENEWAL
Leon H AmigonIndiaIoni Bowcher RENEWAL
Sinclair T GauchoCanadaIoni Bowcher 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>