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
Maria X CaudyUnited KingdomAnna Fali QUALIFIED
Mayumi Q MaletCanadaAnna Fali RENEWAL
Mayumi W ButtCanadaElwin Sharvill UNQUALIFIED
Wickens M AlbaresItalyOnyama Limba UNQUALIFIED
Stacey I GlickIndiaIoni Bowcher RENEWAL
Alejandro I ButtUnited KingdomBernardo Dominic PROPOSAL
Smith W DarakjyCanadaStephen Shaw RENEWAL
Aruna H BriddickJapanBernardo Dominic NEW
David L AmigonGermanyOnyama Limba RENEWAL
Mujtaba G ButtIndiaOnyama Limba QUALIFIED
Greenwood C GarufiAustraliaBernardo Dominic NEGOTIATION
Arvin T KolmetzGermanyAsiya Javayant PROPOSAL
Maisha G TollnerJapanIvan Magalhaes UNQUALIFIED
Jefferson V GillianGermanyBernardo Dominic QUALIFIED
Morrow I CaldareraBrazilXuxue Feng QUALIFIED
Cody U DarakjyRussiaAnna Fali QUALIFIED
Stacey Q InouyeFranceOnyama Limba UNQUALIFIED
Faith F FigeroaAustraliaAnna Fali NEW
Ivar W KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Stacey O SchemmerAustraliaOnyama Limba PROPOSAL
Smith T WhobreyRussiaXuxue Feng UNQUALIFIED
Juan Y SergiArgentinaElwin Sharvill UNQUALIFIED
Adams Z TollnerRussiaBernardo Dominic PROPOSAL
Greenwood Q WieserCanadaIvan Magalhaes PROPOSAL
Chavez L PaprockiCanadaAmy Elsner QUALIFIED
Maria L DarakjyAustraliaStephen Shaw PROPOSAL
Octavia S RulapaughArgentinaAmy Elsner QUALIFIED
Maria Y GarufiSpainStephen Shaw QUALIFIED
Juan E WieserJapanAnna Fali UNQUALIFIED
Julie P DilliardArgentinaIoni Bowcher PROPOSAL
Ricardo X PoquetteArgentinaAsiya Javayant NEW
Jones O InouyeArgentinaAnna Fali RENEWAL
Mayumi F RoysterRussiaElwin Sharvill UNQUALIFIED
Aruna M PaprockiIndiaIoni Bowcher UNQUALIFIED
Adams B NickaBrazilBernardo Dominic PROPOSAL
Silvio B RutaFranceElwin Sharvill RENEWAL
Wickens J WaycottBrazilAsiya Javayant QUALIFIED
Claire S MaletAustraliaAnna Fali PROPOSAL
Izzy Z SchemmerIndiaBernardo Dominic RENEWAL
Rodrigues M ChuiRussiaElwin Sharvill NEW
Aika A KuskoAustraliaAsiya Javayant QUALIFIED
Julie L OldroydGermanyStephen Shaw RENEWAL
Kaitlin S PoquetteFranceIoni Bowcher NEW
Maria D MaletIndiaStephen Shaw PROPOSAL
Arvin M PerinUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin F CampainAustraliaAnna Fali NEGOTIATION
Jennifer G KuskoJapanIvan Magalhaes UNQUALIFIED
Darci S WhobreyJapanXuxue Feng NEGOTIATION
Smith B WaycottJapanIoni Bowcher NEW
Murillo P VenereItalyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer J SergiFranceIvan Magalhaes UNQUALIFIED
Misaki W CaudyGermanyBernardo Dominic UNQUALIFIED
Stacey U DilliardFranceAnna Fali PROPOSAL
Sinclair M PerinFranceOnyama Limba PROPOSAL
Francesco C RulapaughFranceStephen Shaw NEGOTIATION
Ivar N ChuiIndiaStephen Shaw QUALIFIED
Izzy Q KolmetzRussiaAnna Fali PROPOSAL
Aditya J MorascaSpainBernardo Dominic UNQUALIFIED
Jefferson J KuskoItalyOnyama Limba PROPOSAL
Jones W ButtJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki H VocelkaSpain2024-05-18Chanay, Jeffrey A Esq PROPOSAL48Ivan Magalhaes
1001Salvatore G SergiRussia2024-05-09Rousseaux, Michael Esq NEW4Xuxue Feng
1002Wickens J FigeroaItaly2024-05-03Feiner Bros NEGOTIATION70Ioni Bowcher
1003Aditya M StockhamCanada2024-05-08Buckley Miller Wright NEGOTIATION12Bernardo Dominic
1004Julie F IturbideGermany2024-05-14King, Christopher A Esq RENEWAL79Xuxue Feng
1005Aruna I MarrierGermany2024-04-30Chemel, James L Cpa QUALIFIED14Anna Fali
1006Francesco S RulapaughJapan2024-05-04Benton, John B Jr UNQUALIFIED47Elwin Sharvill
1007Leja L DarakjySpain2024-05-12King, Christopher A Esq RENEWAL85Ioni Bowcher
1008Claire H AlbaresCanada2024-05-24Rangoni Of Florence NEW54Amy Elsner
1009Cody H VocelkaBrazil2024-05-16Printing Dimensions NEGOTIATION43Asiya Javayant
1010Juan L FlosiBrazil2024-04-29Feltz Printing Service RENEWAL44Ioni Bowcher
1011Wickens C FlosiUnited Kingdom2024-04-30Chapman, Ross E Esq PROPOSAL93Ioni Bowcher
1012Claire S InouyeUnited Kingdom2024-05-06Morlong Associates PROPOSAL92Xuxue Feng
1013Emily M PoquetteIndia2024-05-16Chanay, Jeffrey A Esq UNQUALIFIED74Xuxue Feng
1014Jennifer U WhobreyAustralia2024-05-25Buckley Miller Wright NEGOTIATION8Ivan Magalhaes
1015Maria T NickaGermany2024-05-20Truhlar And Truhlar Attys NEW44Stephen Shaw
1016Ricardo W ShinkoCanada2024-05-02Rangoni Of Florence QUALIFIED82Bernardo Dominic
1017Ivar R WhobreyGermany2024-05-26Feltz Printing Service NEW61Onyama Limba
1018Smith H VenereCanada2024-05-01Chapman, Ross E Esq NEGOTIATION54Ioni Bowcher
1019Stacey A DoeGermany2024-05-24Chanay, Jeffrey A Esq RENEWAL47Ivan Magalhaes
1020Smith E WhobreyBrazil2024-05-10Printing Dimensions NEW50Elwin Sharvill
1021Jones N FollerRussia2024-05-01Dorl, James J Esq QUALIFIED29Elwin Sharvill
1022Johnson U IturbideFrance2024-05-05Rangoni Of Florence NEW37Amy Elsner
1023Costa W StockhamArgentina2024-05-24Buckley Miller Wright NEW64Anna Fali
1024Sinclair I CaudyAustralia2024-05-26Rousseaux, Michael Esq NEGOTIATION12Bernardo Dominic
1025Chavez J CaudyCanada2024-05-22Rousseaux, Michael Esq PROPOSAL61Bernardo Dominic
1026Mujtaba S RutaRussia2024-04-27Chapman, Ross E Esq NEGOTIATION2Elwin Sharvill
1027Sinclair T StockhamArgentina2024-05-15Rousseaux, Michael Esq UNQUALIFIED5Elwin Sharvill
1028Jennifer V WieserRussia2024-05-11Feiner Bros NEGOTIATION9Ivan Magalhaes
1029Mujtaba F IturbideJapan2024-05-18Chemel, James L Cpa NEGOTIATION50Bernardo Dominic
1030Mayumi B GauchoRussia2024-05-08Dorl, James J Esq RENEWAL22Xuxue Feng
1031Ashley I VocelkaCanada2024-05-25Rangoni Of Florence UNQUALIFIED84Xuxue Feng
1032Tony O MorascaJapan2024-05-08King, Christopher A Esq PROPOSAL52Onyama Limba
1033David Z DarakjyJapan2024-04-29Chapman, Ross E Esq NEW80Onyama Limba
1034Isabel E FlosiArgentina2024-04-28Rangoni Of Florence RENEWAL0Asiya Javayant
1035Octavia P WhobreyBrazil2024-05-07Rousseaux, Michael Esq NEW30Stephen Shaw
1036Maria U MaletUnited Kingdom2024-05-10Benton, John B Jr RENEWAL51Xuxue Feng
1037Morrow S DarakjyUnited Kingdom2024-05-15Printing Dimensions RENEWAL84Stephen Shaw
1038Wickens J FigeroaItaly2024-05-25Commercial Press RENEWAL97Xuxue Feng
1039Jones L VocelkaAustralia2024-05-23Feltz Printing Service QUALIFIED49Xuxue Feng
1040Chavez Z ShinkoIndia2024-04-29King, Christopher A Esq PROPOSAL61Ivan Magalhaes
1041Aika J AlbaresJapan2024-05-03Printing Dimensions RENEWAL29Anna Fali
1042Izzy G StockhamCanada2024-05-18Chapman, Ross E Esq QUALIFIED98Stephen Shaw
1043Salvatore D ButtCanada2024-05-10Chemel, James L Cpa UNQUALIFIED32Ioni Bowcher
1044Mujtaba W GillianGermany2024-05-21Truhlar And Truhlar Attys RENEWAL82Asiya Javayant
1045Jeanfrancois P CaudyFrance2024-05-25Dorl, James J Esq NEW53Xuxue Feng
1046Kadeem V BowleyFrance2024-05-21Dorl, James J Esq UNQUALIFIED24Ioni Bowcher
1047Emily J FigeroaGermany2024-05-07Commercial Press UNQUALIFIED70Anna Fali
1048Claire Q NestleFrance2024-05-01Feltz Printing Service QUALIFIED28Elwin Sharvill
1049Tony G ChuiGermany2024-05-19Benton, John B Jr NEGOTIATION4Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar L KolmetzCanadaElwin Sharvill NEW
Cody K SergiAustraliaBernardo Dominic RENEWAL
Mayumi F RutaArgentinaXuxue Feng UNQUALIFIED
Ivar M BologniaGermanyOnyama Limba NEW
David R PaprockiIndiaIoni Bowcher NEGOTIATION
Izzy Z WaycottFranceAnna Fali PROPOSAL
Nicolas Y CaldareraItalyIvan Magalhaes PROPOSAL
Aruna N ShinkoSpainIvan Magalhaes PROPOSAL
Juan F MacleadArgentinaIvan Magalhaes QUALIFIED
Ashley X AmigonCanadaAsiya Javayant NEGOTIATION
David S WhobreyBrazilIoni Bowcher NEW
Darci I WhobreyIndiaStephen Shaw RENEWAL
Jennifer F StockhamJapanBernardo Dominic PROPOSAL
Sinclair H DarakjyBrazilAmy Elsner UNQUALIFIED
Izzy V GillianBrazilAmy Elsner NEGOTIATION
Izzy E CaudyUnited KingdomIvan Magalhaes NEW
Maria C DilliardAustraliaElwin Sharvill NEW
Rodrigues B ShinkoGermanyXuxue Feng UNQUALIFIED
Chavez X GarufiItalyBernardo Dominic PROPOSAL
Murillo U WieserItalyAnna Fali QUALIFIED
Jefferson T ChuiArgentinaOnyama Limba UNQUALIFIED
Leja G DilliardCanadaAnna Fali RENEWAL
Johnson K MacleadUnited KingdomAmy Elsner UNQUALIFIED
Alejandro L SlusarskiFranceElwin Sharvill RENEWAL
Rodrigues Q DarakjySpainIvan Magalhaes PROPOSAL
Salvatore E FlosiFranceStephen Shaw QUALIFIED
Aika T KolmetzArgentinaOnyama Limba NEGOTIATION
Claire P StockhamCanadaAnna Fali NEW
Arvin P MaletFranceIvan Magalhaes NEGOTIATION
Maisha D BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois V GauchoUnited KingdomAsiya Javayant UNQUALIFIED
James E FigeroaUnited KingdomStephen Shaw NEW
Julie U AlbaresCanadaStephen Shaw UNQUALIFIED
Ashley K RimArgentinaOnyama Limba NEGOTIATION
Rodrigues P FlosiRussiaXuxue Feng NEGOTIATION
Mayumi D NestleFranceAnna Fali NEW
Leja I MorascaIndiaXuxue Feng UNQUALIFIED
Silvio Q PerinRussiaIvan Magalhaes RENEWAL
Claire Z SlusarskiGermanyAmy Elsner QUALIFIED
Rodrigues S DoeFranceAsiya Javayant QUALIFIED
Ivar E RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas N ShinkoItalyXuxue Feng PROPOSAL
Octavia K GarufiCanadaAnna Fali PROPOSAL
Leja O NickaUnited KingdomBernardo Dominic QUALIFIED
Aruna T RutaBrazilBernardo Dominic QUALIFIED
Emily G StockhamArgentinaOnyama Limba NEW
Kadeem T FlosiSpainElwin Sharvill NEGOTIATION
Cody F IturbideCanadaBernardo Dominic UNQUALIFIED
Maria S VenereCanadaElwin Sharvill UNQUALIFIED
Jefferson T ChuiRussiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Francesco R Ruta
Jeanfrancois I Perin
Nicolas J Bolognia
Jennifer Y Kolmetz
Aruna Z Rim
Francesco O Wieser
Maria C Schemmer
Juan R Perin
Sinclair Q Nestle
Leja K Briddick
Julie K Oldroyd
Mujtaba I Glick
Jefferson M Poquette
Salvatore Z Flosi
Ashley R Kusko
Aika I Whobrey
Leja V Figeroa
Leja J Paprocki
Arvin E Ferencz
Ashley S Tollner
Maria U Ruta
Emily T Paprocki
Darci N Poquette
Izzy I Chui
Leja C Inouye
Jefferson Z Dilliard
Clifford P Oldroyd
Arvin K Butt
Murillo I Inouye
Julie E Bolognia
Antonio R Ruta
Stacey V Kusko
Leon N Royster
David T Kusko
Stacey F Flosi
Nicolas O Foller
Ricardo V Venere
Octavia W Malet
David Y Slusarski
Salvatore K Figeroa
Julie V Inouye
Leon U Waycott
Aika J Royster
Leon N Sergi
Octavia P Iturbide
Chavez J Waycott
Costa G Rim
Darci O Paprocki
Maria R Ruta
Wickens D Whobrey
IdCountryDate
1000Brazil2024-05-16
1001Spain2024-05-24
1002Italy2024-05-01
1003Australia2024-05-06
1004Russia2024-05-21
1005Italy2024-05-10
1006Japan2024-05-07
1007India2024-05-05
1008Canada2024-05-13
1009United Kingdom2024-05-11
1010Canada2024-04-28
1011Italy2024-05-24
1012Spain2024-05-10
1013France2024-05-16
1014Australia2024-05-20
1015India2024-05-08
1016Australia2024-05-17
1017Argentina2024-05-13
1018Spain2024-04-27
1019France2024-05-04
1020United Kingdom2024-05-17
1021Russia2024-05-19
1022Russia2024-05-01
1023Russia2024-05-04
1024India2024-05-09
1025India2024-05-08
1026Spain2024-04-30
1027Japan2024-05-12
1028Russia2024-05-20
1029United Kingdom2024-05-03
1030France2024-05-01
1031Italy2024-05-11
1032Australia2024-04-28
1033Russia2024-05-09
1034Russia2024-05-13
1035Canada2024-05-05
1036Brazil2024-05-09
1037Russia2024-05-24
1038Canada2024-05-16
1039Canada2024-05-24
1040Brazil2024-05-08
1041Argentina2024-05-25
1042Japan2024-05-09
1043Argentina2024-05-11
1044Argentina2024-05-11
1045Spain2024-05-11
1046Canada2024-05-12
1047Brazil2024-04-28
1048Japan2024-05-24
1049Japan2024-04-27

On-Demand Data

NameIdCountryDate
Arvin C Rulapaugh1000Spain2024-05-21
Johnson J Whobrey1001Canada2024-05-02
Greenwood O Perin1002Italy2024-05-19
Murillo H Waycott1003Brazil2024-05-15
Antonio T Amigon1004Spain2024-05-18
Jones Q Briddick1005France2024-05-21
Maria B Flosi1006Argentina2024-05-24
Ivar W Bolognia1007Italy2024-05-17
Octavia J Maclead1008France2024-05-26
Silvio C Bolognia1009Japan2024-05-17
Kaitlin Y Inouye1010Brazil2024-05-05
Rodrigues F Malet1011Canada2024-05-16
Aika B Paprocki1012Spain2024-05-09
Leja Z Paprocki1013Spain2024-04-28
Morrow N Ostrosky1014Australia2024-05-03
Leon Y Dilliard1015United Kingdom2024-05-07
Emily A Flosi1016India2024-05-09
Octavia O Sergi1017United Kingdom2024-05-14
Jennifer R Poquette1018Russia2024-05-03
Izzy Z Ruta1019France2024-05-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin U PaprockiSpainIvan Magalhaes UNQUALIFIED
Rodrigues X SaylorsRussiaElwin Sharvill NEGOTIATION
Faith H KuskoSpainElwin Sharvill QUALIFIED
Salvatore I KuskoSpainIvan Magalhaes RENEWAL
Kaitlin I OldroydBrazilAsiya Javayant NEW
Kadeem F ShinkoFranceBernardo Dominic QUALIFIED
Aruna A SaylorsSpainStephen Shaw NEGOTIATION
Aditya X ChuiArgentinaIvan Magalhaes NEGOTIATION
Murillo O PoquetteBrazilAsiya Javayant RENEWAL
Wickens R NestleBrazilXuxue Feng RENEWAL
Faith N VocelkaAustraliaElwin Sharvill RENEWAL
Salvatore L BowleyItalyAmy Elsner UNQUALIFIED
Jeanfrancois Y ShinkoCanadaOnyama Limba QUALIFIED
Johnson E FigeroaFranceAnna Fali NEW
Smith R MaletItalyElwin Sharvill NEGOTIATION
Ricardo F DarakjyIndiaElwin Sharvill RENEWAL
Nicolas D SchemmerCanadaIoni Bowcher NEGOTIATION
Aruna I AmigonGermanyElwin Sharvill NEGOTIATION
Silvio Q MacleadCanadaIvan Magalhaes NEGOTIATION
Ashley H AlbaresIndiaIvan Magalhaes UNQUALIFIED
Smith C PerinGermanyAsiya Javayant PROPOSAL
Morrow D BologniaJapanElwin Sharvill NEGOTIATION
Maisha T NestleCanadaAnna Fali RENEWAL
Jefferson O MaletBrazilXuxue Feng UNQUALIFIED
Isabel P AmigonArgentinaIvan Magalhaes NEW
Maisha X OldroydCanadaAsiya Javayant QUALIFIED
Silvio F IturbideCanadaBernardo Dominic QUALIFIED
Leon S FlosiRussiaElwin Sharvill UNQUALIFIED
David F BologniaIndiaBernardo Dominic NEGOTIATION
Kadeem M StensethArgentinaBernardo Dominic RENEWAL
James Y AlbaresAustraliaAmy Elsner NEGOTIATION
Mayumi L FerenczUnited KingdomElwin Sharvill QUALIFIED
Morrow W AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas Z IturbideBrazilXuxue Feng PROPOSAL
Aruna K ChuiGermanyAsiya Javayant QUALIFIED
Jefferson E OldroydCanadaIoni Bowcher NEGOTIATION
Ricardo H BologniaRussiaAsiya Javayant PROPOSAL
Salvatore R DilliardUnited KingdomAsiya Javayant NEW
Emily J NestleCanadaAmy Elsner UNQUALIFIED
Ricardo Y StensethUnited 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>