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 H DoeArgentinaStephen Shaw NEW
Aditya K CampainGermanyOnyama Limba UNQUALIFIED
Cody U BriddickIndiaAmy Elsner PROPOSAL
Ivar A AlbaresArgentinaOnyama Limba UNQUALIFIED
Jones K DoeIndiaAmy Elsner NEW
Kadeem E MarrierBrazilIoni Bowcher NEW
Maria H MaletIndiaAnna Fali PROPOSAL
Maisha M FigeroaGermanyXuxue Feng NEGOTIATION
Octavia Z KolmetzItalyOnyama Limba NEW
Arvin B ButtRussiaXuxue Feng UNQUALIFIED
Alejandro R ShinkoCanadaAsiya Javayant QUALIFIED
Jones F OstroskyJapanAmy Elsner UNQUALIFIED
Salvatore B RoysterArgentinaIoni Bowcher RENEWAL
Antonio E StockhamItalyXuxue Feng PROPOSAL
Johnson M GarufiGermanyAmy Elsner NEW
Murillo C NestleArgentinaAnna Fali NEGOTIATION
David F SlusarskiJapanAnna Fali RENEWAL
Claire F ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Cody W FerenczJapanStephen Shaw PROPOSAL
Misaki R BologniaJapanIvan Magalhaes RENEWAL
Jennifer M WaycottCanadaBernardo Dominic UNQUALIFIED
Silvio Y ShinkoRussiaXuxue Feng NEGOTIATION
Jeanfrancois L CaudyJapanAnna Fali PROPOSAL
Ricardo U PerinSpainAnna Fali PROPOSAL
Jennifer D BologniaBrazilBernardo Dominic PROPOSAL
Claire D InouyeJapanElwin Sharvill UNQUALIFIED
Antonio K ButtFranceBernardo Dominic NEGOTIATION
Kadeem O OldroydRussiaElwin Sharvill NEW
David Y OldroydAustraliaXuxue Feng PROPOSAL
James V WaycottBrazilBernardo Dominic UNQUALIFIED
Deepesh N IturbideGermanyIvan Magalhaes UNQUALIFIED
Alejandro Q SchemmerIndiaBernardo Dominic NEGOTIATION
Julie R VenereFranceAmy Elsner NEGOTIATION
Chavez Y GillianUnited KingdomAnna Fali QUALIFIED
Leja Z OldroydIndiaIvan Magalhaes QUALIFIED
Greenwood C WieserCanadaAsiya Javayant NEGOTIATION
Antonio U DarakjyGermanyStephen Shaw UNQUALIFIED
Emily Q GauchoFranceXuxue Feng NEGOTIATION
Silvio A WaycottFranceAsiya Javayant QUALIFIED
Salvatore E DarakjyItalyElwin Sharvill UNQUALIFIED
James W RutaGermanyIvan Magalhaes NEGOTIATION
Jennifer J BriddickRussiaOnyama Limba NEGOTIATION
Tony F InouyeFranceIoni Bowcher PROPOSAL
Greenwood C WieserRussiaAnna Fali NEW
Rodrigues N NickaFranceAmy Elsner NEW
Emily F MorascaSpainBernardo Dominic PROPOSAL
Maria Z ShinkoRussiaAmy Elsner QUALIFIED
Darci V MaletIndiaIoni Bowcher UNQUALIFIED
Deepesh Q RutaUnited KingdomOnyama Limba UNQUALIFIED
Leja M ShinkoUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Juan I VenereSpainAsiya Javayant RENEWAL
Arvin Y WhobreySpainBernardo Dominic QUALIFIED
Adams Y BowleyRussiaXuxue Feng NEW
Salvatore L BologniaRussiaAsiya Javayant UNQUALIFIED
Mujtaba O RoysterGermanyOnyama Limba NEW
Smith U ChuiCanadaAnna Fali RENEWAL
Antonio Y CaldareraIndiaBernardo Dominic PROPOSAL
Salvatore R MacleadRussiaAmy Elsner UNQUALIFIED
Munro X BowleyBrazilIvan Magalhaes NEW
Adams K FerenczFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja C BriddickItaly2024-06-11Morlong Associates QUALIFIED20Amy Elsner
1001Morrow D FigeroaFrance2024-05-28Chemel, James L Cpa UNQUALIFIED64Onyama Limba
1002Maria S PaprockiUnited Kingdom2024-06-15Chemel, James L Cpa NEGOTIATION93Elwin Sharvill
1003Stacey Q WhobreyUnited Kingdom2024-05-25King, Christopher A Esq QUALIFIED23Elwin Sharvill
1004Deepesh X MaletItaly2024-06-09Commercial Press NEGOTIATION10Onyama Limba
1005Morrow I KolmetzJapan2024-05-24Chanay, Jeffrey A Esq QUALIFIED77Stephen Shaw
1006Darci U WaycottGermany2024-05-28Feltz Printing Service UNQUALIFIED40Asiya Javayant
1007Silvio Y VocelkaUnited Kingdom2024-06-04Chanay, Jeffrey A Esq QUALIFIED11Ioni Bowcher
1008Antonio H BologniaJapan2024-06-08Buckley Miller Wright NEGOTIATION73Xuxue Feng
1009Izzy C GlickGermany2024-06-18Chanay, Jeffrey A Esq NEW54Bernardo Dominic
1010Kaitlin H OldroydCanada2024-05-27Rousseaux, Michael Esq UNQUALIFIED63Stephen Shaw
1011Mayumi F GillianFrance2024-06-07Benton, John B Jr RENEWAL9Xuxue Feng
1012Johnson F CaldareraFrance2024-06-01Dorl, James J Esq QUALIFIED78Stephen Shaw
1013Mayumi U RutaItaly2024-06-07Feltz Printing Service NEGOTIATION36Xuxue Feng
1014Morrow B PerinFrance2024-05-26Chemel, James L Cpa NEW54Ivan Magalhaes
1015Stacey R BologniaItaly2024-06-12Rangoni Of Florence PROPOSAL12Ivan Magalhaes
1016Francesco A RulapaughJapan2024-06-01Chemel, James L Cpa RENEWAL13Ivan Magalhaes
1017Clifford K DilliardJapan2024-06-20Truhlar And Truhlar Attys NEW24Bernardo Dominic
1018Murillo P InouyeJapan2024-06-21Commercial Press UNQUALIFIED34Stephen Shaw
1019Leon P FollerRussia2024-06-19King, Christopher A Esq UNQUALIFIED23Amy Elsner
1020Chavez V ShinkoCanada2024-06-20Morlong Associates NEW34Bernardo Dominic
1021Wickens L RulapaughItaly2024-06-19King, Christopher A Esq RENEWAL45Stephen Shaw
1022Silvio E OstroskyIndia2024-06-21Rousseaux, Michael Esq NEGOTIATION0Amy Elsner
1023Jones S NickaUnited Kingdom2024-06-22Rangoni Of Florence NEGOTIATION67Xuxue Feng
1024Murillo A MaletBrazil2024-06-09Benton, John B Jr QUALIFIED93Elwin Sharvill
1025Tony M RimFrance2024-05-31Chanay, Jeffrey A Esq QUALIFIED53Bernardo Dominic
1026Kadeem R AlbaresSpain2024-06-10Feiner Bros PROPOSAL77Onyama Limba
1027Greenwood E WhobreyIndia2024-05-24Rangoni Of Florence RENEWAL87Elwin Sharvill
1028Ivar Q RoysterCanada2024-06-05Chemel, James L Cpa QUALIFIED19Stephen Shaw
1029Rodrigues A MorascaBrazil2024-06-04Feltz Printing Service NEGOTIATION70Amy Elsner
1030Nicolas C AmigonCanada2024-06-10Chapman, Ross E Esq NEGOTIATION26Ivan Magalhaes
1031Smith G MacleadItaly2024-06-14Buckley Miller Wright NEW2Stephen Shaw
1032Munro Z FlosiFrance2024-06-22Truhlar And Truhlar Attys QUALIFIED60Asiya Javayant
1033Juan I IturbideSpain2024-06-13Chanay, Jeffrey A Esq QUALIFIED6Ioni Bowcher
1034Octavia I OldroydUnited Kingdom2024-06-13Chemel, James L Cpa NEW6Asiya Javayant
1035Ivar Q RulapaughArgentina2024-06-17Chanay, Jeffrey A Esq RENEWAL52Ioni Bowcher
1036Murillo D MaletAustralia2024-06-18Feltz Printing Service UNQUALIFIED12Ivan Magalhaes
1037Misaki T OstroskyUnited Kingdom2024-06-17Truhlar And Truhlar Attys NEW97Asiya Javayant
1038Wickens Q CampainItaly2024-06-11Morlong Associates PROPOSAL22Elwin Sharvill
1039Mujtaba F ChuiJapan2024-06-02Feltz Printing Service UNQUALIFIED57Asiya Javayant
1040Ricardo T SergiAustralia2024-06-09Printing Dimensions QUALIFIED97Asiya Javayant
1041Clifford F GauchoGermany2024-06-01Buckley Miller Wright PROPOSAL95Bernardo Dominic
1042Jeanfrancois V BologniaIndia2024-06-16Chapman, Ross E Esq RENEWAL78Xuxue Feng
1043Jones V NickaGermany2024-06-11Feiner Bros QUALIFIED19Ioni Bowcher
1044Adams N GlickFrance2024-05-27Truhlar And Truhlar Attys NEGOTIATION28Anna Fali
1045Alejandro K GauchoUnited Kingdom2024-06-10Benton, John B Jr NEGOTIATION77Stephen Shaw
1046David Q FlosiFrance2024-06-15Feltz Printing Service PROPOSAL38Ivan Magalhaes
1047Deepesh Q KuskoBrazil2024-06-03King, Christopher A Esq RENEWAL46Xuxue Feng
1048Ricardo O OldroydBrazil2024-06-18Dorl, James J Esq PROPOSAL2Ivan Magalhaes
1049Rodrigues H RoysterGermany2024-05-26Feltz Printing Service QUALIFIED36Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan M SaylorsBrazilAsiya Javayant PROPOSAL
Aditya E StockhamFranceAmy Elsner QUALIFIED
Wickens H InouyeGermanyStephen Shaw UNQUALIFIED
Izzy C BologniaGermanyAmy Elsner PROPOSAL
Tony B VenereAustraliaAsiya Javayant RENEWAL
Nicolas K BologniaUnited KingdomAsiya Javayant PROPOSAL
Darci D PaprockiJapanIvan Magalhaes UNQUALIFIED
Greenwood E WhobreyItalyStephen Shaw NEGOTIATION
Aditya P GillianRussiaXuxue Feng RENEWAL
Jefferson I KuskoGermanyAmy Elsner NEGOTIATION
Kadeem C OldroydRussiaStephen Shaw RENEWAL
James O KolmetzFranceAnna Fali NEW
Kadeem T CaldareraSpainElwin Sharvill NEGOTIATION
Kadeem L OstroskyArgentinaXuxue Feng RENEWAL
Rodrigues B CaudyRussiaElwin Sharvill QUALIFIED
Faith E BologniaCanadaStephen Shaw NEW
Greenwood H RoysterArgentinaAnna Fali RENEWAL
Sinclair R CampainSpainOnyama Limba QUALIFIED
Faith T SergiItalyStephen Shaw RENEWAL
Mujtaba A WhobreyRussiaOnyama Limba QUALIFIED
Jennifer K DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Tony P DoeJapanIoni Bowcher UNQUALIFIED
Mayumi Y RimSpainXuxue Feng NEGOTIATION
Faith E MacleadAustraliaAsiya Javayant QUALIFIED
Morrow Y DarakjySpainAnna Fali NEW
Mujtaba D OstroskySpainAmy Elsner UNQUALIFIED
Maria U SchemmerAustraliaXuxue Feng NEW
Tony R VenereCanadaStephen Shaw NEGOTIATION
Faith P CaldareraJapanOnyama Limba QUALIFIED
Clifford C SchemmerCanadaOnyama Limba QUALIFIED
Izzy O PoquetteSpainIoni Bowcher PROPOSAL
Wickens W OstroskyItalyAsiya Javayant NEW
Antonio E MorascaAustraliaElwin Sharvill NEGOTIATION
Ricardo G NestleFranceElwin Sharvill UNQUALIFIED
Sinclair C ShinkoGermanyBernardo Dominic QUALIFIED
Claire T SaylorsArgentinaIoni Bowcher RENEWAL
Aditya X StensethItalyAsiya Javayant NEGOTIATION
Murillo H MaletBrazilAnna Fali NEW
Mayumi A SlusarskiGermanyStephen Shaw PROPOSAL
Jones V CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Costa O GauchoGermanyBernardo Dominic UNQUALIFIED
Arvin Z SlusarskiIndiaAmy Elsner QUALIFIED
Ivar G PoquetteIndiaIvan Magalhaes NEW
Emily I PaprockiAustraliaIvan Magalhaes PROPOSAL
Ivar W PaprockiSpainIoni Bowcher RENEWAL
James V BriddickJapanStephen Shaw NEGOTIATION
Clifford L AlbaresItalyOnyama Limba RENEWAL
James V OstroskyFranceStephen Shaw PROPOSAL
Morrow X PaprockiUnited KingdomAsiya Javayant QUALIFIED
Izzy I ChuiSpainIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Emily R Morasca
Salvatore V Malet
Antonio F Amigon
Sinclair K Flosi
Leon D Wieser
Munro F Paprocki
Aika I Inouye
Stacey R Iturbide
Izzy A Figeroa
Jennifer O Stockham
Kadeem L Slusarski
Leon A Gillian
Maria P Nicka
Aditya Y Figeroa
Maisha T Ferencz
Antonio J Morasca
Antonio U Marrier
Kaitlin P Garufi
David F Sergi
Ivar Z Venere
Kadeem G Nicka
Jeanfrancois O Amigon
Munro W Kusko
Darci S Paprocki
Faith L Oldroyd
Cody Y Garufi
Rodrigues L Figeroa
Munro G Waycott
David S Flosi
Kaitlin Y Poquette
Arvin L Oldroyd
Emily T Caldarera
Aika K Slusarski
Antonio C Glick
Munro O Vocelka
Salvatore F Gaucho
Darci P Waycott
Chavez Y Foller
Wickens A Doe
Tony J Morasca
Greenwood I Campain
David Q Dilliard
Jeanfrancois I Figeroa
Adams P Slusarski
Aruna S Stenseth
Greenwood G Malet
Munro R Rim
Aditya I Flosi
Clifford C Caudy
Rodrigues X Caldarera
IdCountryDate
1000Spain2024-06-21
1001Argentina2024-06-21
1002Germany2024-06-17
1003Japan2024-06-17
1004Russia2024-06-20
1005Russia2024-05-25
1006Argentina2024-06-08
1007Germany2024-06-14
1008Germany2024-06-06
1009Italy2024-06-11
1010Canada2024-06-03
1011Japan2024-06-03
1012Germany2024-06-11
1013Russia2024-06-05
1014France2024-06-02
1015France2024-05-28
1016Australia2024-06-21
1017Italy2024-06-22
1018Spain2024-05-28
1019Canada2024-06-21
1020Italy2024-06-03
1021Canada2024-06-01
1022Australia2024-06-10
1023Australia2024-06-01
1024India2024-06-13
1025Germany2024-06-22
1026Australia2024-06-17
1027Canada2024-06-05
1028Italy2024-06-08
1029Brazil2024-05-29
1030Japan2024-06-19
1031Canada2024-06-19
1032Italy2024-05-29
1033Italy2024-05-28
1034Japan2024-06-07
1035Australia2024-06-11
1036Brazil2024-06-13
1037Germany2024-06-06
1038United Kingdom2024-06-16
1039Russia2024-05-28
1040Germany2024-06-19
1041Spain2024-06-16
1042Spain2024-06-12
1043Brazil2024-06-22
1044Canada2024-05-26
1045Canada2024-05-31
1046Russia2024-05-24
1047Canada2024-05-24
1048United Kingdom2024-06-21
1049United Kingdom2024-05-30

On-Demand Data

NameIdCountryDate
Octavia Z Ferencz1000India2024-05-28
Smith F Stenseth1001Italy2024-06-07
Kadeem C Vocelka1002United Kingdom2024-06-05
Francesco T Paprocki1003United Kingdom2024-06-22
Octavia X Iturbide1004Spain2024-06-12
Chavez M Marrier1005Argentina2024-05-24
Morrow K Sergi1006India2024-06-20
Jefferson P Amigon1007Italy2024-06-18
Kadeem P Caldarera1008Canada2024-06-03
Chavez S Kusko1009Argentina2024-05-30
Deepesh G Morasca1010Spain2024-06-04
Kadeem Y Malet1011Germany2024-06-12
Sinclair L Shinko1012Italy2024-05-28
Chavez Q Perin1013Canada2024-06-14
Leja Y Rulapaugh1014Argentina2024-06-13
Leon T Chui1015Australia2024-05-28
Nicolas X Kolmetz1016Russia2024-06-18
Mayumi Q Marrier1017Spain2024-05-30
Tony D Venere1018United Kingdom2024-06-12
Silvio R Glick1019Brazil2024-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford V KuskoGermanyAnna Fali UNQUALIFIED
Maisha F GarufiBrazilIoni Bowcher QUALIFIED
Jefferson G KolmetzItalyIvan Magalhaes UNQUALIFIED
David Y SlusarskiBrazilElwin Sharvill PROPOSAL
Emily A IturbideFranceIvan Magalhaes NEGOTIATION
Misaki E SergiCanadaOnyama Limba UNQUALIFIED
Emily K FerenczJapanIvan Magalhaes NEW
Adams E DoeBrazilAmy Elsner QUALIFIED
Jefferson E DilliardBrazilElwin Sharvill NEGOTIATION
Mujtaba V StockhamFranceIvan Magalhaes NEW
Leja U RoysterArgentinaAmy Elsner NEGOTIATION
Aika P MacleadRussiaAsiya Javayant PROPOSAL
Leja I GauchoGermanyIoni Bowcher NEGOTIATION
Smith B GlickIndiaIvan Magalhaes RENEWAL
Ricardo U MarrierUnited KingdomElwin Sharvill PROPOSAL
Clifford C BriddickCanadaStephen Shaw PROPOSAL
Munro K DoeJapanAnna Fali PROPOSAL
Rodrigues S GillianFranceIoni Bowcher RENEWAL
Chavez Y MacleadJapanAmy Elsner NEGOTIATION
Misaki I MaletCanadaElwin Sharvill NEGOTIATION
Stacey N RutaBrazilIvan Magalhaes PROPOSAL
Octavia F MacleadFranceAnna Fali QUALIFIED
Emily P MorascaFranceXuxue Feng PROPOSAL
Ivar A DilliardJapanXuxue Feng RENEWAL
Stacey T VenereItalyAmy Elsner NEW
Sinclair Z OldroydCanadaElwin Sharvill PROPOSAL
Jeanfrancois S BriddickArgentinaAmy Elsner RENEWAL
Morrow I KolmetzFranceIoni Bowcher RENEWAL
Isabel P GlickRussiaIoni Bowcher RENEWAL
Sinclair J RulapaughIndiaAmy Elsner PROPOSAL
James R GlickBrazilAsiya Javayant RENEWAL
Leon Y NickaIndiaIvan Magalhaes PROPOSAL
Munro Y RoysterAustraliaAnna Fali NEGOTIATION
Kadeem F PaprockiBrazilOnyama Limba PROPOSAL
Juan J StockhamIndiaBernardo Dominic PROPOSAL
Juan L RulapaughRussiaAsiya Javayant QUALIFIED
Emily H SaylorsFranceAnna Fali NEGOTIATION
Kadeem K MacleadCanadaOnyama Limba QUALIFIED
Sinclair Q BologniaCanadaBernardo Dominic NEGOTIATION
Emily Q ChuiJapanElwin Sharvill 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>