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
Deepesh C MaletGermanyBernardo Dominic NEGOTIATION
Tony F SaylorsArgentinaStephen Shaw UNQUALIFIED
Emily E AmigonRussiaAmy Elsner PROPOSAL
Johnson F KolmetzBrazilAsiya Javayant QUALIFIED
Izzy X VenereRussiaAsiya Javayant PROPOSAL
Emily T IturbideGermanyBernardo Dominic RENEWAL
Wickens P SchemmerAustraliaAmy Elsner UNQUALIFIED
Izzy E FigeroaBrazilAnna Fali QUALIFIED
Francesco Y FollerCanadaAmy Elsner RENEWAL
Deepesh V BowleyGermanyAnna Fali RENEWAL
Maria I MacleadBrazilIvan Magalhaes PROPOSAL
Salvatore G PoquetteItalyIvan Magalhaes NEW
Jefferson W RimFranceElwin Sharvill NEW
Leja C FollerSpainXuxue Feng PROPOSAL
Alejandro D StensethRussiaElwin Sharvill NEGOTIATION
Francesco B OldroydJapanElwin Sharvill RENEWAL
Maria F VocelkaCanadaBernardo Dominic UNQUALIFIED
Deepesh O StockhamRussiaOnyama Limba RENEWAL
Jennifer F RoysterItalyIvan Magalhaes UNQUALIFIED
Mujtaba Y WieserIndiaStephen Shaw NEGOTIATION
Tony I NestleItalyOnyama Limba NEW
Maisha U SergiJapanElwin Sharvill RENEWAL
Aditya K PaprockiArgentinaIvan Magalhaes QUALIFIED
Aika J MaletAustraliaBernardo Dominic NEW
Maisha K VenereRussiaElwin Sharvill PROPOSAL
Kaitlin A InouyeBrazilElwin Sharvill RENEWAL
Aika R NestleIndiaIoni Bowcher UNQUALIFIED
Arvin E WaycottBrazilAmy Elsner QUALIFIED
Arvin A MaletAustraliaElwin Sharvill NEGOTIATION
Julie R PerinUnited KingdomBernardo Dominic NEGOTIATION
Aruna P FollerJapanIoni Bowcher UNQUALIFIED
Greenwood D DoeRussiaIvan Magalhaes NEGOTIATION
Jennifer T PoquetteArgentinaXuxue Feng NEGOTIATION
Leon M CaudyJapanElwin Sharvill QUALIFIED
Alejandro F StockhamItalyAmy Elsner RENEWAL
Tony D MorascaIndiaAmy Elsner QUALIFIED
Adams B InouyeGermanyStephen Shaw RENEWAL
Mayumi L InouyeRussiaBernardo Dominic UNQUALIFIED
Kadeem E SlusarskiItalyElwin Sharvill RENEWAL
Ashley G KuskoRussiaAnna Fali NEW
Wickens L DoeArgentinaIoni Bowcher RENEWAL
Maisha B ChuiSpainOnyama Limba PROPOSAL
Jeanfrancois M DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Cody Q GillianAustraliaBernardo Dominic PROPOSAL
Kadeem D PoquetteItalyElwin Sharvill NEW
Morrow O RutaArgentinaBernardo Dominic PROPOSAL
Wickens X GlickUnited KingdomIoni Bowcher NEGOTIATION
Greenwood U GauchoAustraliaStephen Shaw UNQUALIFIED
Silvio K FollerCanadaIvan Magalhaes NEGOTIATION
Francesco C DilliardAustraliaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem Z NickaFranceBernardo Dominic UNQUALIFIED
Johnson F MarrierRussiaAmy Elsner PROPOSAL
Cody F RutaUnited KingdomAnna Fali NEGOTIATION
Antonio W BriddickBrazilBernardo Dominic PROPOSAL
Deepesh G RoysterFranceAmy Elsner NEW
Julie F VocelkaSpainIoni Bowcher UNQUALIFIED
Julie V TollnerJapanXuxue Feng QUALIFIED
Julie L GauchoSpainIoni Bowcher RENEWAL
Emily N MacleadBrazilIvan Magalhaes NEW
Rodrigues G BologniaJapanXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois H IturbideItaly2025-04-10King, Christopher A Esq PROPOSAL9Bernardo Dominic
1001Chavez W CampainUnited Kingdom2025-04-22Chanay, Jeffrey A Esq PROPOSAL14Ivan Magalhaes
1002Isabel X WieserRussia2025-04-22Dorl, James J Esq RENEWAL76Amy Elsner
1003Ashley V DilliardBrazil2025-04-24Morlong Associates PROPOSAL74Asiya Javayant
1004Isabel Y ButtGermany2025-04-08Buckley Miller Wright PROPOSAL22Bernardo Dominic
1005Clifford R SergiJapan2025-04-03Feiner Bros NEW91Ioni Bowcher
1006Octavia Q TollnerJapan2025-04-15Chapman, Ross E Esq PROPOSAL2Xuxue Feng
1007Jefferson V GauchoIndia2025-04-25Benton, John B Jr RENEWAL70Anna Fali
1008Silvio L MaletBrazil2025-04-20Chanay, Jeffrey A Esq NEGOTIATION76Bernardo Dominic
1009Costa N SergiFrance2025-04-24Chanay, Jeffrey A Esq RENEWAL6Ivan Magalhaes
1010Darci O PaprockiBrazil2025-04-05Benton, John B Jr NEW36Xuxue Feng
1011Tony Z NickaBrazil2025-04-20Benton, John B Jr NEGOTIATION23Ivan Magalhaes
1012Octavia I MaletAustralia2025-04-27Rousseaux, Michael Esq RENEWAL68Onyama Limba
1013Salvatore W StockhamUnited Kingdom2025-04-20Dorl, James J Esq RENEWAL36Onyama Limba
1014Salvatore B CampainItaly2025-04-25Printing Dimensions UNQUALIFIED10Ioni Bowcher
1015Aruna S GillianIndia2025-04-25Feltz Printing Service QUALIFIED83Ivan Magalhaes
1016Kadeem O RulapaughGermany2025-04-25Truhlar And Truhlar Attys RENEWAL54Stephen Shaw
1017Ricardo A GlickCanada2025-04-13Chapman, Ross E Esq QUALIFIED54Xuxue Feng
1018Emily B DarakjyIndia2025-04-21Commercial Press QUALIFIED23Ioni Bowcher
1019David K WhobreyBrazil2025-04-16Feltz Printing Service UNQUALIFIED15Elwin Sharvill
1020Jennifer T CampainArgentina2025-04-04Feltz Printing Service NEW80Elwin Sharvill
1021James X SchemmerFrance2025-04-22Chapman, Ross E Esq QUALIFIED0Amy Elsner
1022Francesco X CaldareraAustralia2025-04-14Rangoni Of Florence RENEWAL13Asiya Javayant
1023Emily D OstroskyBrazil2025-04-22Benton, John B Jr QUALIFIED7Anna Fali
1024Leon A WaycottJapan2025-04-20Truhlar And Truhlar Attys NEW84Asiya Javayant
1025Rodrigues H BowleyFrance2025-04-20Commercial Press UNQUALIFIED14Onyama Limba
1026Leja Q PoquetteRussia2025-04-23Feiner Bros PROPOSAL28Bernardo Dominic
1027Jeanfrancois K RulapaughIndia2025-04-20Chanay, Jeffrey A Esq RENEWAL23Ivan Magalhaes
1028Chavez S InouyeFrance2025-04-01King, Christopher A Esq QUALIFIED50Asiya Javayant
1029Murillo E MorascaFrance2025-04-28Buckley Miller Wright QUALIFIED24Xuxue Feng
1030Jefferson L MorascaUnited Kingdom2025-04-05Rousseaux, Michael Esq QUALIFIED49Xuxue Feng
1031Leja O InouyeRussia2025-04-08Truhlar And Truhlar Attys PROPOSAL32Ioni Bowcher
1032Greenwood Q DilliardBrazil2025-04-23Truhlar And Truhlar Attys QUALIFIED5Xuxue Feng
1033Deepesh W DoeRussia2025-04-22Morlong Associates UNQUALIFIED68Onyama Limba
1034Aruna M CaudyUnited Kingdom2025-04-22Chemel, James L Cpa NEGOTIATION61Anna Fali
1035Isabel F SaylorsItaly2025-04-15Dorl, James J Esq NEGOTIATION94Amy Elsner
1036Claire G MaletItaly2025-04-27Dorl, James J Esq NEGOTIATION50Bernardo Dominic
1037Ivar Y SchemmerItaly2025-04-06Chemel, James L Cpa RENEWAL41Asiya Javayant
1038David H NestleUnited Kingdom2025-04-29Morlong Associates NEW8Onyama Limba
1039Francesco Y CaldareraUnited Kingdom2025-04-07Commercial Press QUALIFIED89Ioni Bowcher
1040David K VocelkaUnited Kingdom2025-04-05Benton, John B Jr NEGOTIATION26Anna Fali
1041Misaki W WhobreyUnited Kingdom2025-04-30Feltz Printing Service NEW17Bernardo Dominic
1042Rodrigues W GauchoArgentina2025-04-01King, Christopher A Esq NEGOTIATION10Elwin Sharvill
1043Maria O FigeroaCanada2025-04-14Rangoni Of Florence PROPOSAL13Xuxue Feng
1044Ashley V FigeroaCanada2025-04-26Benton, John B Jr QUALIFIED96Asiya Javayant
1045Julie C WaycottCanada2025-04-29Feltz Printing Service QUALIFIED22Anna Fali
1046Arvin N ChuiIndia2025-04-30Chapman, Ross E Esq NEW21Stephen Shaw
1047James H RulapaughGermany2025-04-26Chapman, Ross E Esq PROPOSAL62Ioni Bowcher
1048Stacey V RoysterBrazil2025-04-12Printing Dimensions UNQUALIFIED0Ioni Bowcher
1049Francesco G GillianArgentina2025-04-05Truhlar And Truhlar Attys QUALIFIED78Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues P CampainGermanyAnna Fali NEGOTIATION
Kaitlin R GauchoGermanyAnna Fali UNQUALIFIED
Sinclair R GillianRussiaElwin Sharvill QUALIFIED
Octavia T WhobreyIndiaXuxue Feng NEGOTIATION
Smith Q StockhamAustraliaElwin Sharvill UNQUALIFIED
Kadeem K SlusarskiItalyBernardo Dominic QUALIFIED
Rodrigues E ButtBrazilAmy Elsner RENEWAL
Darci M ButtItalyIvan Magalhaes QUALIFIED
Deepesh N GillianIndiaStephen Shaw PROPOSAL
Jeanfrancois A RutaFranceElwin Sharvill PROPOSAL
Tony P BriddickAustraliaBernardo Dominic RENEWAL
Antonio R FerenczArgentinaIvan Magalhaes UNQUALIFIED
Aditya X BowleyArgentinaElwin Sharvill PROPOSAL
David G DarakjyFranceElwin Sharvill QUALIFIED
Stacey T StockhamJapanXuxue Feng QUALIFIED
Octavia G StensethBrazilIvan Magalhaes QUALIFIED
Jones X MorascaArgentinaOnyama Limba NEW
Jones D GauchoFranceXuxue Feng PROPOSAL
Sinclair O CaudyUnited KingdomBernardo Dominic RENEWAL
Jefferson L PaprockiItalyIoni Bowcher NEGOTIATION
Costa R AmigonIndiaOnyama Limba NEGOTIATION
Maisha L AlbaresItalyIoni Bowcher QUALIFIED
Octavia D OldroydCanadaElwin Sharvill QUALIFIED
Maisha O NestleGermanyAmy Elsner UNQUALIFIED
Darci C OstroskyAustraliaStephen Shaw PROPOSAL
Leon J KolmetzBrazilAsiya Javayant NEW
Mujtaba A RoysterIndiaBernardo Dominic UNQUALIFIED
Octavia X WaycottSpainBernardo Dominic RENEWAL
Clifford D StensethRussiaOnyama Limba UNQUALIFIED
Emily Y BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Isabel I MacleadItalyAnna Fali NEGOTIATION
Aditya E FlosiGermanyXuxue Feng UNQUALIFIED
Clifford U StockhamItalyAmy Elsner PROPOSAL
Misaki H SergiFranceIvan Magalhaes PROPOSAL
Maisha G DoeUnited KingdomAnna Fali QUALIFIED
Cody W ShinkoArgentinaOnyama Limba NEGOTIATION
Leja M WaycottItalyBernardo Dominic NEW
Kaitlin F MarrierRussiaAmy Elsner NEGOTIATION
Juan X KuskoCanadaXuxue Feng QUALIFIED
Greenwood X WaycottGermanyAnna Fali NEW
Julie F AlbaresIndiaBernardo Dominic NEW
Stacey D FerenczGermanyXuxue Feng RENEWAL
Alejandro M GillianArgentinaIvan Magalhaes RENEWAL
Wickens W RoysterJapanOnyama Limba NEGOTIATION
Tony I NickaArgentinaAsiya Javayant RENEWAL
Sinclair B AlbaresAustraliaIvan Magalhaes RENEWAL
Stacey E GarufiArgentinaIoni Bowcher UNQUALIFIED
Ivar R RutaIndiaXuxue Feng NEGOTIATION
Jones D PerinJapanIoni Bowcher NEGOTIATION
Sinclair G SergiRussiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Johnson J Bolognia
Mayumi G Morasca
Jones S Stockham
Greenwood R Schemmer
Mayumi V Butt
Adams G Whobrey
Maisha Z Slusarski
Munro G Nestle
Munro S Glick
Jefferson P Sergi
Johnson C Chui
Maria V Briddick
Octavia T Darakjy
Aruna I Garufi
David U Kolmetz
Rodrigues C Vocelka
Darci J Bolognia
Johnson R Malet
Alejandro E Paprocki
Murillo N Bolognia
Maisha Q Whobrey
Leon A Venere
Emily T Oldroyd
Darci B Slusarski
Silvio Y Figeroa
Ricardo U Bowley
Jeanfrancois G Waycott
Jones Z Caudy
Ashley Y Sergi
Munro Y Gaucho
Costa Q Morasca
Cody E Kolmetz
Kadeem O Caldarera
Sinclair P Maclead
Ricardo O Venere
Johnson L Venere
Leja Q Garufi
Jennifer E Bolognia
Antonio T Waycott
Antonio C Marrier
Rodrigues X Perin
Jeanfrancois M Tollner
Aditya S Doe
Emily Q Butt
Adams F Figeroa
Munro C Gillian
Smith G Venere
Darci I Bolognia
Maria O Gillian
Jefferson C Malet
IdCountryDate
1000Australia2025-04-29
1001United Kingdom2025-04-15
1002Russia2025-04-14
1003India2025-04-14
1004Brazil2025-04-26
1005France2025-04-17
1006Russia2025-04-05
1007Japan2025-04-26
1008India2025-04-29
1009Japan2025-04-01
1010United Kingdom2025-04-26
1011Argentina2025-04-24
1012India2025-04-06
1013Germany2025-04-04
1014United Kingdom2025-04-20
1015Argentina2025-04-02
1016Australia2025-04-17
1017France2025-04-17
1018Canada2025-04-14
1019United Kingdom2025-04-08
1020Australia2025-04-16
1021Brazil2025-04-28
1022Argentina2025-04-11
1023United Kingdom2025-04-08
1024United Kingdom2025-04-04
1025Australia2025-04-23
1026France2025-04-13
1027Japan2025-04-04
1028India2025-04-09
1029Canada2025-04-06
1030Japan2025-04-25
1031Russia2025-04-23
1032Russia2025-04-28
1033Canada2025-04-29
1034Argentina2025-04-12
1035United Kingdom2025-04-03
1036Italy2025-04-10
1037India2025-04-27
1038Spain2025-04-14
1039Australia2025-04-14
1040France2025-04-12
1041Canada2025-04-20
1042United Kingdom2025-04-16
1043Germany2025-04-18
1044Spain2025-04-26
1045United Kingdom2025-04-03
1046United Kingdom2025-04-29
1047Canada2025-04-27
1048Germany2025-04-01
1049Italy2025-04-25

On-Demand Data

NameIdCountryDate
Juan F Whobrey1000Canada2025-04-28
Ivar W Stenseth1001Brazil2025-04-19
Jeanfrancois D Ruta1002Spain2025-04-06
Deepesh F Morasca1003Brazil2025-04-28
Stacey J Ferencz1004Russia2025-04-21
Chavez T Inouye1005France2025-04-12
Emily J Slusarski1006Spain2025-04-02
Misaki E Vocelka1007Brazil2025-04-22
Adams S Slusarski1008Germany2025-04-02
James S Slusarski1009Canada2025-04-26
Adams M Sergi1010Australia2025-04-08
Mayumi G Sergi1011Spain2025-04-29
Munro Y Nestle1012Argentina2025-04-24
Jeanfrancois T Bowley1013Italy2025-04-16
Izzy X Shinko1014Russia2025-04-19
Kaitlin T Saylors1015Australia2025-04-11
Rodrigues C Bolognia1016Japan2025-04-05
Faith M Butt1017Argentina2025-04-23
Ashley G Campain1018Canada2025-04-12
Sinclair M Stenseth1019Japan2025-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel S SergiBrazilIvan Magalhaes PROPOSAL
Jennifer I RutaFranceIoni Bowcher NEW
Silvio B MaletIndiaBernardo Dominic QUALIFIED
Francesco X FigeroaCanadaIvan Magalhaes UNQUALIFIED
Mujtaba O MarrierJapanAnna Fali UNQUALIFIED
Kadeem O GillianCanadaAmy Elsner RENEWAL
Ricardo G PerinCanadaXuxue Feng RENEWAL
Johnson H CampainIndiaStephen Shaw NEGOTIATION
Alejandro U DarakjyUnited KingdomElwin Sharvill RENEWAL
Juan G GlickIndiaBernardo Dominic PROPOSAL
Jones H VenereFranceIoni Bowcher UNQUALIFIED
Jeanfrancois Q VocelkaFranceAsiya Javayant NEGOTIATION
Francesco N DilliardBrazilXuxue Feng NEGOTIATION
Costa X PaprockiIndiaElwin Sharvill RENEWAL
Claire E MarrierFranceBernardo Dominic QUALIFIED
Ricardo U FollerAustraliaAsiya Javayant RENEWAL
Munro Q BologniaSpainIoni Bowcher NEGOTIATION
Ricardo V SlusarskiItalyOnyama Limba RENEWAL
James S WaycottRussiaOnyama Limba QUALIFIED
Juan D ShinkoRussiaAnna Fali PROPOSAL
Juan D ShinkoCanadaIvan Magalhaes RENEWAL
Emily T RutaJapanBernardo Dominic UNQUALIFIED
Izzy B KuskoUnited KingdomAmy Elsner QUALIFIED
Leon V SchemmerAustraliaAnna Fali QUALIFIED
Jones D GlickSpainOnyama Limba NEGOTIATION
Deepesh P OstroskyIndiaAmy Elsner UNQUALIFIED
Smith R FigeroaSpainOnyama Limba RENEWAL
Izzy I RimRussiaAmy Elsner UNQUALIFIED
Nicolas R MorascaBrazilElwin Sharvill QUALIFIED
Octavia S DoeCanadaStephen Shaw NEW
Mujtaba G MarrierAustraliaXuxue Feng NEW
Silvio B FigeroaSpainStephen Shaw NEGOTIATION
Kaitlin F RutaIndiaAmy Elsner PROPOSAL
Maisha H InouyeJapanBernardo Dominic QUALIFIED
Silvio P MacleadSpainElwin Sharvill NEGOTIATION
Morrow S CaudyCanadaBernardo Dominic NEGOTIATION
Murillo H RoysterSpainIvan Magalhaes PROPOSAL
Jeanfrancois M GillianBrazilAnna Fali RENEWAL
Jennifer H AlbaresIndiaOnyama Limba UNQUALIFIED
Kaitlin A PoquetteGermanyIoni Bowcher RENEWAL

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