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
Ivar T DilliardRussiaIvan Magalhaes RENEWAL
Izzy I WhobreyFranceXuxue Feng RENEWAL
Izzy A CampainGermanyAmy Elsner PROPOSAL
Kaitlin P GillianSpainIoni Bowcher NEGOTIATION
Alejandro T MorascaGermanyAnna Fali UNQUALIFIED
Isabel U DoeJapanBernardo Dominic UNQUALIFIED
Maisha Y DarakjyCanadaBernardo Dominic NEW
Johnson Z OldroydItalyAsiya Javayant PROPOSAL
Clifford G OstroskyFranceIoni Bowcher UNQUALIFIED
Aruna V RoysterFranceBernardo Dominic RENEWAL
Antonio A GarufiCanadaXuxue Feng QUALIFIED
Cody I PaprockiUnited KingdomAnna Fali RENEWAL
Izzy O CaudySpainOnyama Limba RENEWAL
Adams D ButtRussiaAsiya Javayant RENEWAL
Leja U RulapaughItalyOnyama Limba QUALIFIED
Jennifer R PoquetteIndiaAnna Fali NEGOTIATION
Jefferson M MacleadRussiaIoni Bowcher QUALIFIED
Jeanfrancois W DoeGermanyOnyama Limba NEGOTIATION
Ricardo Z OstroskyCanadaElwin Sharvill QUALIFIED
Alejandro S ShinkoCanadaElwin Sharvill UNQUALIFIED
Chavez H PaprockiAustraliaOnyama Limba RENEWAL
Ashley Z ChuiCanadaIoni Bowcher NEGOTIATION
Nicolas Y KolmetzBrazilElwin Sharvill PROPOSAL
Alejandro J MarrierBrazilOnyama Limba RENEWAL
Kadeem Z OldroydAustraliaOnyama Limba QUALIFIED
Maria J WaycottItalyOnyama Limba QUALIFIED
Munro K NestleArgentinaAnna Fali UNQUALIFIED
Clifford R GauchoGermanyXuxue Feng PROPOSAL
Murillo C GauchoIndiaBernardo Dominic PROPOSAL
Ashley T SlusarskiIndiaXuxue Feng NEGOTIATION
James D DarakjyRussiaIoni Bowcher NEW
Antonio A InouyeRussiaXuxue Feng RENEWAL
Claire K MarrierItalyElwin Sharvill UNQUALIFIED
Costa I StensethItalyBernardo Dominic QUALIFIED
Jennifer S NestleUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore T ShinkoArgentinaElwin Sharvill RENEWAL
Costa D SchemmerFranceOnyama Limba PROPOSAL
Kaitlin S PaprockiUnited KingdomOnyama Limba PROPOSAL
Juan K FlosiSpainIvan Magalhaes RENEWAL
Leon V IturbideCanadaElwin Sharvill UNQUALIFIED
Julie X WieserBrazilXuxue Feng PROPOSAL
Costa Q WhobreyIndiaOnyama Limba NEW
Ivar C BowleyUnited KingdomAnna Fali NEW
Ricardo P DilliardUnited KingdomOnyama Limba PROPOSAL
Murillo V CampainIndiaXuxue Feng UNQUALIFIED
Kaitlin M NestleBrazilAmy Elsner PROPOSAL
Arvin S OstroskyRussiaAsiya Javayant NEGOTIATION
Murillo E OstroskyRussiaXuxue Feng NEW
Greenwood W PaprockiGermanyBernardo Dominic PROPOSAL
Maria E InouyeRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Smith A MacleadIndiaOnyama Limba NEGOTIATION
Nicolas C SchemmerGermanyAmy Elsner NEGOTIATION
Aika N MaletSpainAmy Elsner QUALIFIED
Darci Z MacleadIndiaElwin Sharvill RENEWAL
Antonio E StockhamArgentinaAmy Elsner RENEWAL
Ashley Y WhobreyCanadaAmy Elsner RENEWAL
Morrow L GlickArgentinaIvan Magalhaes NEGOTIATION
Aika Q DarakjyIndiaAsiya Javayant PROPOSAL
Costa G OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Faith X OldroydItalyXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody R WhobreyItaly2026-07-18Chanay, Jeffrey A Esq RENEWAL56Ivan Magalhaes
1001Chavez B ChuiGermany2026-08-07Truhlar And Truhlar Attys NEW74Asiya Javayant
1002Darci E SaylorsBrazil2026-07-17Morlong Associates NEW36Onyama Limba
1003Misaki Q NestleAustralia2026-08-13King, Christopher A Esq UNQUALIFIED88Elwin Sharvill
1004Aditya G SergiSpain2026-08-13Dorl, James J Esq UNQUALIFIED89Anna Fali
1005Misaki F PerinArgentina2026-08-13King, Christopher A Esq QUALIFIED55Ivan Magalhaes
1006Francesco J ShinkoIndia2026-08-14King, Christopher A Esq UNQUALIFIED19Stephen Shaw
1007Adams H SchemmerIndia2026-08-02Truhlar And Truhlar Attys RENEWAL58Ivan Magalhaes
1008Jefferson C MaletUnited Kingdom2026-08-11Printing Dimensions RENEWAL38Ivan Magalhaes
1009Rodrigues A KuskoBrazil2026-08-02Rousseaux, Michael Esq NEW13Ioni Bowcher
1010Nicolas O MaletUnited Kingdom2026-08-04Feiner Bros UNQUALIFIED30Xuxue Feng
1011Arvin E SchemmerUnited Kingdom2026-07-19King, Christopher A Esq NEGOTIATION91Amy Elsner
1012Aika T WieserRussia2026-08-02Benton, John B Jr RENEWAL84Ioni Bowcher
1013Jefferson T ShinkoArgentina2026-07-28Buckley Miller Wright UNQUALIFIED52Asiya Javayant
1014Octavia V GillianCanada2026-08-08Rangoni Of Florence QUALIFIED46Ioni Bowcher
1015Johnson E NestleFrance2026-07-26Morlong Associates NEGOTIATION90Asiya Javayant
1016Maria Y FerenczCanada2026-07-27Chapman, Ross E Esq RENEWAL95Bernardo Dominic
1017Jeanfrancois U FollerIndia2026-07-30Morlong Associates NEW2Anna Fali
1018Adams B MaletSpain2026-08-12Chanay, Jeffrey A Esq RENEWAL41Ivan Magalhaes
1019Leja X GillianBrazil2026-07-30Buckley Miller Wright PROPOSAL11Xuxue Feng
1020Johnson U RulapaughGermany2026-07-24Chemel, James L Cpa NEGOTIATION78Bernardo Dominic
1021Misaki M NickaArgentina2026-07-22Rangoni Of Florence NEGOTIATION19Anna Fali
1022Misaki O GillianItaly2026-08-06Chemel, James L Cpa PROPOSAL51Xuxue Feng
1023Silvio L DilliardIndia2026-08-08King, Christopher A Esq RENEWAL51Asiya Javayant
1024Costa I BriddickSpain2026-08-12Commercial Press UNQUALIFIED28Ioni Bowcher
1025Isabel H FollerSpain2026-07-26Truhlar And Truhlar Attys RENEWAL7Bernardo Dominic
1026Izzy S OstroskyAustralia2026-08-09Printing Dimensions UNQUALIFIED7Bernardo Dominic
1027Antonio A FlosiAustralia2026-08-04Truhlar And Truhlar Attys PROPOSAL28Anna Fali
1028Jeanfrancois V DoeIndia2026-08-05King, Christopher A Esq RENEWAL68Amy Elsner
1029Greenwood U FerenczCanada2026-08-10Feiner Bros PROPOSAL14Asiya Javayant
1030Faith J MaletItaly2026-07-17Chapman, Ross E Esq NEW13Ioni Bowcher
1031Chavez A StockhamIndia2026-08-15Chemel, James L Cpa RENEWAL55Ioni Bowcher
1032Wickens Y CaudySpain2026-07-22Morlong Associates QUALIFIED9Onyama Limba
1033Chavez F TollnerUnited Kingdom2026-08-09King, Christopher A Esq UNQUALIFIED84Anna Fali
1034Silvio P DilliardArgentina2026-08-12Rangoni Of Florence QUALIFIED68Onyama Limba
1035David G RutaAustralia2026-08-05Buckley Miller Wright UNQUALIFIED41Stephen Shaw
1036Mayumi E AmigonGermany2026-07-28Chanay, Jeffrey A Esq NEW51Asiya Javayant
1037Kaitlin K VocelkaRussia2026-07-30Commercial Press RENEWAL52Onyama Limba
1038David Z DarakjyArgentina2026-08-14Truhlar And Truhlar Attys UNQUALIFIED35Asiya Javayant
1039Clifford O ShinkoCanada2026-08-13Chemel, James L Cpa NEGOTIATION83Anna Fali
1040Isabel R CaudyJapan2026-08-05Rousseaux, Michael Esq UNQUALIFIED8Bernardo Dominic
1041Cody T DoeUnited Kingdom2026-08-10Chapman, Ross E Esq NEGOTIATION95Ivan Magalhaes
1042Greenwood R IturbideCanada2026-08-02Chanay, Jeffrey A Esq PROPOSAL46Stephen Shaw
1043Munro N VocelkaIndia2026-08-13Rousseaux, Michael Esq NEGOTIATION80Ioni Bowcher
1044Francesco R WieserFrance2026-08-15Dorl, James J Esq NEGOTIATION84Elwin Sharvill
1045Sinclair W OstroskyItaly2026-08-10Commercial Press NEGOTIATION26Xuxue Feng
1046Jeanfrancois K RoysterBrazil2026-08-02Buckley Miller Wright NEW85Asiya Javayant
1047Faith B StockhamRussia2026-08-11Feiner Bros UNQUALIFIED80Asiya Javayant
1048Mujtaba P AmigonFrance2026-07-31Feltz Printing Service RENEWAL61Onyama Limba
1049Antonio D FigeroaJapan2026-07-24Feiner Bros NEGOTIATION4Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Clifford J PaprockiItalyAnna Fali NEGOTIATION
Morrow Q KuskoUnited KingdomStephen Shaw RENEWAL
Emily S AmigonFranceIoni Bowcher NEW
Sinclair H FigeroaAustraliaXuxue Feng NEW
Murillo V FigeroaSpainAsiya Javayant UNQUALIFIED
Wickens N DarakjyAustraliaIoni Bowcher PROPOSAL
Silvio H KolmetzGermanyXuxue Feng RENEWAL
Aditya G DoeGermanyXuxue Feng PROPOSAL
Silvio O StensethCanadaIoni Bowcher QUALIFIED
Julie N RulapaughIndiaAnna Fali NEGOTIATION
Deepesh L FerenczBrazilIoni Bowcher UNQUALIFIED
Costa Q CaudySpainStephen Shaw NEW
Faith S SchemmerRussiaOnyama Limba NEW
Antonio U BologniaIndiaIvan Magalhaes NEGOTIATION
Greenwood I SlusarskiArgentinaAmy Elsner NEW
Ricardo X GlickSpainAnna Fali NEW
Jennifer E OldroydAustraliaStephen Shaw NEGOTIATION
Juan M DarakjyFranceBernardo Dominic NEGOTIATION
Misaki S KuskoBrazilIoni Bowcher NEW
Cody C WhobreyUnited KingdomAsiya Javayant PROPOSAL
Jefferson Q VocelkaArgentinaOnyama Limba NEGOTIATION
Juan I KolmetzSpainIvan Magalhaes PROPOSAL
Jeanfrancois G NickaSpainIoni Bowcher RENEWAL
Maria N OldroydAustraliaElwin Sharvill NEW
Maria D OstroskyGermanyAmy Elsner NEW
Sinclair K AlbaresGermanyXuxue Feng UNQUALIFIED
Tony S VocelkaUnited KingdomAmy Elsner NEGOTIATION
Juan F WaycottSpainStephen Shaw RENEWAL
Jeanfrancois R DarakjyJapanStephen Shaw UNQUALIFIED
Misaki Y SaylorsRussiaIoni Bowcher PROPOSAL
Misaki D BologniaRussiaAnna Fali UNQUALIFIED
Ashley N TollnerBrazilStephen Shaw RENEWAL
Ashley Q FigeroaArgentinaBernardo Dominic NEW
Leon H AlbaresAustraliaXuxue Feng UNQUALIFIED
Clifford T SlusarskiAustraliaStephen Shaw UNQUALIFIED
Sinclair V KuskoGermanyStephen Shaw QUALIFIED
David P GillianIndiaAnna Fali NEGOTIATION
Kaitlin X VenereBrazilStephen Shaw PROPOSAL
Arvin A NestleItalyAmy Elsner RENEWAL
Silvio D MaletBrazilXuxue Feng UNQUALIFIED
Jefferson G BriddickRussiaAsiya Javayant UNQUALIFIED
Izzy R FollerFranceElwin Sharvill NEW
Antonio O NickaArgentinaIvan Magalhaes QUALIFIED
James E SergiRussiaXuxue Feng PROPOSAL
Jeanfrancois Z VocelkaCanadaAnna Fali NEW
Leon H DarakjyIndiaStephen Shaw UNQUALIFIED
Alejandro O DoeFranceElwin Sharvill NEGOTIATION
Jennifer X DoeJapanOnyama Limba NEGOTIATION
Sinclair C ButtJapanAnna Fali NEW
Rodrigues R PoquetteGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Morrow S Wieser
Johnson N Tollner
Aruna B Foller
Smith M Stenseth
Cody G Venere
Cody L Figeroa
James N Darakjy
Cody A Briddick
Julie I Darakjy
Silvio I Wieser
Arvin Z Kolmetz
Faith U Figeroa
Izzy V Rim
Aruna J Nestle
Mujtaba F Malet
Misaki U Doe
Misaki D Foller
Maisha S Gaucho
Juan Y Poquette
Ivar O Darakjy
Stacey D Malet
Arvin F Royster
Munro Z Glick
Kadeem X Venere
Munro I Wieser
James I Royster
Jones A Wieser
Silvio R Amigon
Leja M Foller
Morrow L Wieser
Ivar W Rim
Mayumi J Whobrey
Sinclair A Shinko
Emily K Caldarera
Tony P Kolmetz
Chavez H Slusarski
Ricardo D Stenseth
Izzy H Ostrosky
Francesco I Garufi
Sinclair A Tollner
Arvin W Figeroa
Johnson O Rulapaugh
Mujtaba Y Rim
Leon I Gillian
Chavez R Foller
Ashley G Nestle
Cody O Oldroyd
David U Perin
Octavia B Vocelka
Chavez M Nestle
IdCountryDate
1000Brazil2026-08-08
1001United Kingdom2026-08-12
1002India2026-07-25
1003France2026-07-30
1004Japan2026-08-14
1005Japan2026-08-10
1006Italy2026-08-01
1007United Kingdom2026-07-25
1008United Kingdom2026-08-08
1009Russia2026-08-14
1010Canada2026-08-03
1011India2026-08-15
1012France2026-07-25
1013Spain2026-07-24
1014India2026-08-04
1015Spain2026-08-01
1016United Kingdom2026-07-17
1017France2026-07-22
1018India2026-07-18
1019France2026-07-27
1020France2026-07-23
1021Argentina2026-08-15
1022France2026-08-13
1023Brazil2026-08-15
1024Germany2026-07-22
1025Canada2026-08-12
1026Spain2026-07-30
1027Canada2026-08-02
1028Japan2026-08-11
1029France2026-07-20
1030United Kingdom2026-07-23
1031Brazil2026-08-01
1032Brazil2026-08-01
1033Brazil2026-08-02
1034Canada2026-07-18
1035Japan2026-08-05
1036Japan2026-08-04
1037Brazil2026-07-28
1038Argentina2026-07-30
1039Argentina2026-07-27
1040Germany2026-07-30
1041Spain2026-08-07
1042Canada2026-07-22
1043Australia2026-08-01
1044Italy2026-08-02
1045United Kingdom2026-08-14
1046Australia2026-08-04
1047Canada2026-08-07
1048Germany2026-08-02
1049United Kingdom2026-08-13

On-Demand Data

NameIdCountryDate
Wickens X Stenseth1000Argentina2026-07-28
Stacey S Nicka1001Italy2026-08-03
Antonio S Kolmetz1002Spain2026-07-18
Jeanfrancois V Sergi1003Canada2026-08-13
Costa H Garufi1004India2026-07-23
Antonio R Whobrey1005France2026-07-28
Ashley G Rulapaugh1006Italy2026-08-01
Silvio U Sergi1007United Kingdom2026-08-11
Ricardo L Saylors1008India2026-08-02
Aika F Kolmetz1009United Kingdom2026-07-29
Chavez A Stenseth1010Argentina2026-08-03
Greenwood D Darakjy1011Italy2026-07-17
Jefferson G Butt1012Spain2026-07-18
Octavia O Morasca1013Australia2026-08-06
Faith B Shinko1014Germany2026-08-02
Wickens C Whobrey1015France2026-07-27
Tony P Kusko1016Argentina2026-08-13
Chavez V Marrier1017Germany2026-07-27
Antonio V Ostrosky1018Brazil2026-07-31
Aditya A Amigon1019Germany2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja C VenereUnited KingdomIoni Bowcher UNQUALIFIED
Isabel O RulapaughAustraliaStephen Shaw UNQUALIFIED
Leja E WaycottArgentinaStephen Shaw NEW
Kaitlin H NickaBrazilXuxue Feng NEGOTIATION
Kaitlin O MorascaAustraliaAnna Fali QUALIFIED
Morrow I CampainAustraliaBernardo Dominic QUALIFIED
David O MarrierArgentinaOnyama Limba NEW
Darci E NickaCanadaIvan Magalhaes UNQUALIFIED
Octavia K CaudyRussiaAnna Fali QUALIFIED
Chavez F ShinkoFranceXuxue Feng QUALIFIED
Greenwood F InouyeAustraliaBernardo Dominic NEGOTIATION
Darci C FlosiBrazilAnna Fali UNQUALIFIED
James W BriddickGermanyIoni Bowcher UNQUALIFIED
Faith G MaletAustraliaIvan Magalhaes QUALIFIED
Maisha I VenereBrazilAnna Fali QUALIFIED
Ivar N FollerSpainAmy Elsner NEGOTIATION
Juan I StockhamAustraliaAsiya Javayant NEW
Faith L VocelkaArgentinaIvan Magalhaes NEGOTIATION
Salvatore B GillianAustraliaAnna Fali NEGOTIATION
Murillo I KolmetzSpainXuxue Feng QUALIFIED
Adams Y SchemmerBrazilElwin Sharvill RENEWAL
Clifford F ShinkoArgentinaAmy Elsner QUALIFIED
Juan W IturbideAustraliaOnyama Limba NEGOTIATION
Francesco I WhobreyCanadaXuxue Feng NEGOTIATION
Stacey Y WaycottArgentinaXuxue Feng UNQUALIFIED
Aika I WhobreyAustraliaAmy Elsner RENEWAL
Adams I IturbideCanadaIoni Bowcher NEW
David U FerenczItalyIoni Bowcher QUALIFIED
Tony G CampainJapanAmy Elsner PROPOSAL
James D RimCanadaIvan Magalhaes PROPOSAL
Aika U ButtUnited KingdomIoni Bowcher UNQUALIFIED
Jones V KuskoRussiaStephen Shaw NEW
Jennifer O KolmetzBrazilXuxue Feng NEGOTIATION
Claire P GarufiUnited KingdomXuxue Feng NEW
Clifford O SaylorsSpainBernardo Dominic RENEWAL
Deepesh K ShinkoArgentinaIvan Magalhaes NEW
David U MacleadAustraliaElwin Sharvill NEGOTIATION
Kadeem H BologniaJapanAsiya Javayant RENEWAL
Darci X SaylorsGermanyAmy Elsner NEGOTIATION
Stacey S BologniaAustraliaXuxue Feng 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>