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
Kaitlin I ChuiUnited KingdomBernardo Dominic QUALIFIED
Jefferson M CampainIndiaIvan Magalhaes RENEWAL
Sinclair W FlosiRussiaAsiya Javayant NEW
Silvio C KolmetzItalyAnna Fali UNQUALIFIED
Ivar X WaycottCanadaAsiya Javayant UNQUALIFIED
James E AlbaresItalyXuxue Feng NEW
Cody J PaprockiJapanBernardo Dominic NEGOTIATION
Jefferson Y IturbideFranceBernardo Dominic NEGOTIATION
Julie U PerinSpainXuxue Feng NEW
Aditya L KolmetzIndiaAmy Elsner NEW
Cody B KuskoSpainElwin Sharvill QUALIFIED
Wickens A BowleyCanadaBernardo Dominic QUALIFIED
Clifford A ChuiUnited KingdomStephen Shaw PROPOSAL
Deepesh J GlickArgentinaIvan Magalhaes NEGOTIATION
Octavia W BowleySpainXuxue Feng NEGOTIATION
Faith S RoysterFranceAmy Elsner PROPOSAL
Misaki J KuskoUnited KingdomElwin Sharvill PROPOSAL
Cody O VocelkaAustraliaIvan Magalhaes NEGOTIATION
Ricardo E PerinJapanOnyama Limba NEGOTIATION
Salvatore F PaprockiCanadaBernardo Dominic UNQUALIFIED
Misaki X WieserItalyBernardo Dominic QUALIFIED
Leja A MorascaJapanOnyama Limba QUALIFIED
Maisha I StensethJapanAnna Fali NEGOTIATION
Leja S ChuiSpainAmy Elsner NEGOTIATION
Nicolas H PaprockiBrazilAmy Elsner UNQUALIFIED
Misaki C PerinBrazilAmy Elsner PROPOSAL
Kaitlin W PerinArgentinaXuxue Feng RENEWAL
Ashley X SaylorsIndiaAnna Fali PROPOSAL
Arvin X FigeroaRussiaIvan Magalhaes PROPOSAL
Munro K BologniaAustraliaIvan Magalhaes QUALIFIED
Jones Y VocelkaRussiaBernardo Dominic UNQUALIFIED
Johnson O KuskoCanadaAmy Elsner QUALIFIED
Munro R MaletGermanyXuxue Feng QUALIFIED
Octavia A DilliardGermanyAmy Elsner RENEWAL
Jefferson S GarufiBrazilElwin Sharvill UNQUALIFIED
Juan E ButtFranceIoni Bowcher QUALIFIED
Alejandro F StockhamGermanyAnna Fali NEGOTIATION
Tony L WaycottBrazilOnyama Limba NEGOTIATION
Mayumi P OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Costa B StensethGermanyAsiya Javayant RENEWAL
Tony B CampainSpainStephen Shaw NEGOTIATION
Tony L SaylorsUnited KingdomAmy Elsner PROPOSAL
Stacey A StockhamRussiaStephen Shaw NEGOTIATION
Nicolas R BowleyGermanyOnyama Limba NEGOTIATION
Murillo G PaprockiSpainElwin Sharvill NEW
Mayumi E KolmetzRussiaIvan Magalhaes QUALIFIED
Juan V ShinkoArgentinaElwin Sharvill PROPOSAL
Leja X KolmetzItalyStephen Shaw RENEWAL
Greenwood J StensethIndiaIvan Magalhaes PROPOSAL
Aika Z OldroydRussiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin Y VocelkaBrazilElwin Sharvill QUALIFIED
Misaki C AmigonGermanyBernardo Dominic NEW
Darci H FerenczCanadaOnyama Limba UNQUALIFIED
Munro B SlusarskiAustraliaBernardo Dominic NEGOTIATION
Kaitlin R DarakjyArgentinaAmy Elsner UNQUALIFIED
Morrow J FerenczCanadaIoni Bowcher RENEWAL
Johnson X RimAustraliaStephen Shaw NEW
Clifford X DilliardRussiaXuxue Feng RENEWAL
Darci L AlbaresJapanIvan Magalhaes RENEWAL
Jones L FlosiBrazilBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody P PaprockiAustralia2026-07-06Chanay, Jeffrey A Esq NEW90Amy Elsner
1001Greenwood D PoquetteAustralia2026-07-31Truhlar And Truhlar Attys UNQUALIFIED36Bernardo Dominic
1002Sinclair E ChuiArgentina2026-07-17Chanay, Jeffrey A Esq PROPOSAL55Ioni Bowcher
1003Kaitlin D CampainAustralia2026-07-24Commercial Press UNQUALIFIED31Ivan Magalhaes
1004Aditya B DoeBrazil2026-07-02Morlong Associates NEGOTIATION26Amy Elsner
1005Silvio Q ButtItaly2026-07-30King, Christopher A Esq UNQUALIFIED70Elwin Sharvill
1006James G DilliardArgentina2026-07-12Dorl, James J Esq UNQUALIFIED35Onyama Limba
1007Antonio Z DarakjyJapan2026-07-12Rangoni Of Florence PROPOSAL87Asiya Javayant
1008David A InouyeIndia2026-07-29Rangoni Of Florence RENEWAL46Bernardo Dominic
1009Tony H SlusarskiRussia2026-07-13Feiner Bros NEW25Xuxue Feng
1010Jeanfrancois W InouyeAustralia2026-07-04Morlong Associates UNQUALIFIED19Onyama Limba
1011Cody S BriddickJapan2026-07-18Benton, John B Jr RENEWAL71Elwin Sharvill
1012Clifford J FerenczBrazil2026-07-13Rousseaux, Michael Esq NEW1Xuxue Feng
1013Nicolas R DarakjyRussia2026-07-19Chanay, Jeffrey A Esq QUALIFIED40Asiya Javayant
1014Darci Q CaudyCanada2026-07-23Chemel, James L Cpa PROPOSAL14Asiya Javayant
1015Izzy J WhobreyUnited Kingdom2026-07-09Rangoni Of Florence NEGOTIATION14Ioni Bowcher
1016Jefferson P FerenczFrance2026-07-19Morlong Associates NEGOTIATION59Ivan Magalhaes
1017Julie H PoquetteJapan2026-07-23Feltz Printing Service NEW67Ioni Bowcher
1018Murillo H OldroydSpain2026-07-16Rangoni Of Florence UNQUALIFIED47Stephen Shaw
1019Arvin Q InouyeJapan2026-07-10Rangoni Of Florence NEW20Onyama Limba
1020Mayumi H ShinkoUnited Kingdom2026-07-31Chapman, Ross E Esq UNQUALIFIED49Ioni Bowcher
1021Arvin C StockhamUnited Kingdom2026-07-27Printing Dimensions RENEWAL62Amy Elsner
1022Johnson C AmigonSpain2026-07-18Feiner Bros UNQUALIFIED56Stephen Shaw
1023Jeanfrancois F PaprockiRussia2026-07-04King, Christopher A Esq NEW19Ivan Magalhaes
1024Kaitlin Q GauchoJapan2026-07-12Morlong Associates UNQUALIFIED60Bernardo Dominic
1025Ricardo C BriddickBrazil2026-07-16Morlong Associates PROPOSAL49Stephen Shaw
1026Morrow B TollnerItaly2026-07-02Feltz Printing Service QUALIFIED78Amy Elsner
1027Alejandro V OstroskyBrazil2026-07-27Rangoni Of Florence NEW65Ivan Magalhaes
1028Smith R PerinCanada2026-07-19Chemel, James L Cpa NEW82Xuxue Feng
1029Maisha T CaldareraItaly2026-07-26Rangoni Of Florence QUALIFIED46Bernardo Dominic
1030Sinclair J BriddickFrance2026-07-21Feltz Printing Service NEGOTIATION35Stephen Shaw
1031Claire T StockhamIndia2026-07-15Printing Dimensions NEGOTIATION58Elwin Sharvill
1032Ashley P RulapaughJapan2026-07-14Buckley Miller Wright RENEWAL31Amy Elsner
1033Morrow J FigeroaCanada2026-07-10Rangoni Of Florence UNQUALIFIED13Elwin Sharvill
1034Costa L WaycottArgentina2026-07-12Morlong Associates NEGOTIATION23Anna Fali
1035Munro D DarakjyFrance2026-07-24King, Christopher A Esq QUALIFIED55Amy Elsner
1036Ivar F FerenczCanada2026-07-03Chanay, Jeffrey A Esq NEGOTIATION6Ivan Magalhaes
1037Juan U MacleadJapan2026-07-04Feiner Bros PROPOSAL75Ioni Bowcher
1038Costa X ShinkoBrazil2026-07-19Truhlar And Truhlar Attys NEGOTIATION61Bernardo Dominic
1039Jennifer K OstroskyJapan2026-07-28Truhlar And Truhlar Attys RENEWAL79Onyama Limba
1040Izzy O PerinCanada2026-07-30Rangoni Of Florence UNQUALIFIED80Elwin Sharvill
1041Ashley Z BriddickCanada2026-07-04Chemel, James L Cpa UNQUALIFIED89Ioni Bowcher
1042Aika B CaudyJapan2026-07-31Feltz Printing Service UNQUALIFIED85Ivan Magalhaes
1043Leja M InouyeCanada2026-07-30Chanay, Jeffrey A Esq QUALIFIED55Xuxue Feng
1044Aruna T VenereSpain2026-07-11Feltz Printing Service NEGOTIATION33Xuxue Feng
1045Sinclair S KolmetzGermany2026-07-03Commercial Press RENEWAL85Elwin Sharvill
1046Juan H OldroydUnited Kingdom2026-07-13Printing Dimensions RENEWAL94Asiya Javayant
1047Octavia S DoeJapan2026-07-31Benton, John B Jr PROPOSAL2Amy Elsner
1048Clifford O KolmetzBrazil2026-07-29Truhlar And Truhlar Attys PROPOSAL23Onyama Limba
1049Clifford V VenereArgentina2026-07-11Chanay, Jeffrey A Esq PROPOSAL96Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Darci H GauchoIndiaAnna Fali RENEWAL
Faith E SlusarskiCanadaIvan Magalhaes PROPOSAL
Kadeem E StockhamUnited KingdomStephen Shaw PROPOSAL
Jefferson X CaldareraBrazilXuxue Feng UNQUALIFIED
Silvio S KolmetzBrazilBernardo Dominic NEW
Johnson X DarakjyJapanBernardo Dominic PROPOSAL
Mujtaba J VocelkaCanadaAnna Fali QUALIFIED
Jefferson D DoeIndiaBernardo Dominic QUALIFIED
Munro G FlosiSpainXuxue Feng PROPOSAL
Nicolas N DilliardArgentinaAnna Fali UNQUALIFIED
Nicolas I BowleyIndiaIvan Magalhaes NEW
Aruna B NestleBrazilIvan Magalhaes PROPOSAL
Murillo K OldroydGermanyOnyama Limba QUALIFIED
Adams T CampainBrazilOnyama Limba NEGOTIATION
David M ButtIndiaXuxue Feng PROPOSAL
Izzy K DoeGermanyOnyama Limba RENEWAL
Adams W ChuiCanadaElwin Sharvill NEW
Leon O GlickGermanyOnyama Limba QUALIFIED
Rodrigues L GillianIndiaIvan Magalhaes NEGOTIATION
Morrow N FigeroaGermanyAnna Fali UNQUALIFIED
Ricardo N PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood T SchemmerRussiaIvan Magalhaes UNQUALIFIED
Johnson X VocelkaFranceElwin Sharvill PROPOSAL
Kadeem I GauchoIndiaAnna Fali QUALIFIED
Alejandro L AmigonCanadaIvan Magalhaes NEGOTIATION
Adams A GillianSpainXuxue Feng NEW
Deepesh R SlusarskiJapanAsiya Javayant QUALIFIED
Silvio V GauchoAustraliaBernardo Dominic PROPOSAL
Tony O WaycottSpainAsiya Javayant UNQUALIFIED
Deepesh R PaprockiBrazilStephen Shaw PROPOSAL
Cody K DarakjyJapanAsiya Javayant UNQUALIFIED
Kaitlin U GarufiAustraliaBernardo Dominic UNQUALIFIED
Nicolas C BowleyBrazilXuxue Feng RENEWAL
Leon X FlosiBrazilElwin Sharvill RENEWAL
Maria G IturbideRussiaAnna Fali NEGOTIATION
Aditya G CaudyRussiaIoni Bowcher RENEWAL
Kadeem T FerenczItalyBernardo Dominic QUALIFIED
Salvatore H GarufiCanadaXuxue Feng NEGOTIATION
Stacey J MaletJapanAnna Fali PROPOSAL
Faith Q CaldareraJapanBernardo Dominic PROPOSAL
Ashley W GarufiJapanStephen Shaw UNQUALIFIED
Adams K DoeIndiaXuxue Feng RENEWAL
Aruna Z MorascaCanadaIvan Magalhaes PROPOSAL
Kadeem G BriddickBrazilElwin Sharvill NEGOTIATION
David T AmigonCanadaElwin Sharvill QUALIFIED
Cody G WaycottRussiaAnna Fali RENEWAL
Costa O GlickAustraliaElwin Sharvill UNQUALIFIED
Stacey E OstroskyFranceAmy Elsner UNQUALIFIED
Sinclair W CampainGermanyBernardo Dominic RENEWAL
Murillo V BowleyArgentinaBernardo Dominic QUALIFIED
Frozen Columns
Name
Antonio L Caudy
Antonio O Campain
Izzy J Perin
Izzy W Rim
Tony Q Garufi
Wickens C Darakjy
Isabel L Ostrosky
Stacey J Perin
Kadeem X Rim
Munro Z Foller
Faith R Flosi
Leja S Oldroyd
Aditya X Ostrosky
Ivar E Schemmer
Rodrigues E Butt
Silvio R Vocelka
Costa R Garufi
Leon M Bowley
Greenwood G Ruta
Leja M Waycott
Greenwood Y Caldarera
Murillo N Tollner
Munro U Kusko
Aditya F Whobrey
Ashley E Ruta
Silvio E Darakjy
Rodrigues U Ruta
Antonio D Nestle
Leja V Oldroyd
Isabel Z Kolmetz
Ivar P Flosi
Isabel C Malet
Arvin L Schemmer
James U Venere
Silvio O Waycott
Antonio R Whobrey
Juan G Rim
Costa W Perin
Francesco K Caudy
Ashley X Whobrey
Mujtaba K Caldarera
Rodrigues V Gillian
Chavez Z Darakjy
Greenwood N Bowley
Adams F Chui
Rodrigues J Kolmetz
Leon K Kolmetz
Maisha E Morasca
David O Maclead
Isabel B Darakjy
IdCountryDate
1000India2026-07-16
1001India2026-07-03
1002India2026-07-14
1003Brazil2026-07-13
1004United Kingdom2026-07-08
1005United Kingdom2026-07-15
1006Argentina2026-07-09
1007Japan2026-07-06
1008Italy2026-07-16
1009Spain2026-07-22
1010India2026-07-27
1011Australia2026-07-15
1012Russia2026-07-11
1013India2026-07-14
1014Germany2026-07-02
1015Italy2026-07-12
1016India2026-07-17
1017Argentina2026-07-19
1018Japan2026-07-15
1019United Kingdom2026-07-02
1020Russia2026-07-08
1021Canada2026-07-29
1022Argentina2026-07-02
1023Australia2026-07-08
1024Argentina2026-07-19
1025France2026-07-08
1026Spain2026-07-19
1027Japan2026-07-13
1028Canada2026-07-23
1029Spain2026-07-27
1030Italy2026-07-08
1031United Kingdom2026-07-29
1032France2026-07-03
1033Italy2026-07-24
1034France2026-07-05
1035Germany2026-07-14
1036United Kingdom2026-07-20
1037Argentina2026-07-22
1038Italy2026-07-22
1039Japan2026-07-08
1040Australia2026-07-14
1041Germany2026-07-08
1042Spain2026-07-29
1043Canada2026-07-29
1044Australia2026-07-04
1045Italy2026-07-07
1046Brazil2026-07-07
1047Germany2026-07-30
1048Russia2026-07-04
1049United Kingdom2026-07-31

On-Demand Data

NameIdCountryDate
Jennifer M Kusko1000Germany2026-07-21
Deepesh X Ostrosky1001Italy2026-07-15
Leon X Briddick1002Australia2026-07-16
Ricardo R Bowley1003Spain2026-07-12
Sinclair O Bolognia1004Argentina2026-07-13
Smith O Saylors1005Germany2026-07-21
Tony F Gillian1006Russia2026-07-16
Izzy P Nestle1007Germany2026-07-09
Tony D Marrier1008Japan2026-07-11
Aditya I Foller1009Italy2026-07-19
James U Doe1010Argentina2026-07-08
Juan E Gillian1011United Kingdom2026-07-29
Rodrigues O Figeroa1012Italy2026-07-23
Stacey K Doe1013Italy2026-07-29
Morrow P Iturbide1014Argentina2026-07-27
Silvio C Briddick1015Argentina2026-07-16
Darci X Dilliard1016Spain2026-07-10
Wickens G Tollner1017Argentina2026-07-29
Jeanfrancois F Chui1018Spain2026-07-24
Jennifer K Rim1019Spain2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro S BriddickIndiaStephen Shaw QUALIFIED
Jeanfrancois M NestleUnited KingdomAnna Fali NEW
Nicolas O StensethJapanBernardo Dominic NEGOTIATION
Isabel T PerinJapanElwin Sharvill UNQUALIFIED
Costa G SlusarskiArgentinaElwin Sharvill PROPOSAL
Julie R BowleySpainIoni Bowcher UNQUALIFIED
Isabel O PerinJapanAsiya Javayant QUALIFIED
Jeanfrancois W RulapaughGermanyIoni Bowcher QUALIFIED
Alejandro B GlickAustraliaIoni Bowcher RENEWAL
Francesco Q InouyeJapanIvan Magalhaes NEW
Maria W RutaArgentinaAsiya Javayant RENEWAL
Mujtaba O AmigonSpainIvan Magalhaes PROPOSAL
Faith Z OldroydGermanyElwin Sharvill NEGOTIATION
Maisha R FlosiIndiaXuxue Feng NEGOTIATION
James E KuskoBrazilAnna Fali NEW
Arvin X ButtItalyAnna Fali UNQUALIFIED
Aika K GillianAustraliaAnna Fali RENEWAL
Claire G DilliardGermanyAsiya Javayant QUALIFIED
Adams O DarakjyUnited KingdomStephen Shaw RENEWAL
Jefferson G RoysterArgentinaIoni Bowcher QUALIFIED
Octavia I OldroydBrazilElwin Sharvill PROPOSAL
Jeanfrancois J FigeroaArgentinaAmy Elsner PROPOSAL
Misaki F TollnerGermanyIvan Magalhaes RENEWAL
Darci K ChuiArgentinaAnna Fali PROPOSAL
Cody L SaylorsJapanXuxue Feng NEGOTIATION
Jennifer K BriddickCanadaAmy Elsner PROPOSAL
Greenwood I GlickUnited KingdomElwin Sharvill NEGOTIATION
David Q MacleadJapanIvan Magalhaes NEGOTIATION
Julie R WieserJapanAnna Fali UNQUALIFIED
Smith B RimGermanyIoni Bowcher UNQUALIFIED
Juan W FollerArgentinaAmy Elsner QUALIFIED
Maria E WhobreyAustraliaIoni Bowcher NEGOTIATION
Aika Z CaudyCanadaIoni Bowcher UNQUALIFIED
Julie O PaprockiCanadaXuxue Feng QUALIFIED
Mujtaba D CaldareraArgentinaIvan Magalhaes QUALIFIED
Kaitlin J TollnerArgentinaElwin Sharvill NEGOTIATION
Salvatore B DoeCanadaOnyama Limba RENEWAL
Octavia K VocelkaBrazilAnna Fali UNQUALIFIED
Kadeem L OldroydGermanyAnna Fali RENEWAL
Johnson R StensethSpainAnna Fali 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>