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
Jennifer K WhobreySpainIvan Magalhaes UNQUALIFIED
Salvatore W PaprockiArgentinaOnyama Limba NEW
Smith Z GarufiGermanyAnna Fali PROPOSAL
Juan R GarufiItalyIoni Bowcher QUALIFIED
Misaki V GarufiItalyXuxue Feng UNQUALIFIED
Leon P SlusarskiBrazilXuxue Feng QUALIFIED
Antonio X GillianUnited KingdomBernardo Dominic QUALIFIED
Mayumi X FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Johnson M PoquetteCanadaIoni Bowcher RENEWAL
Maria J BriddickBrazilStephen Shaw RENEWAL
Rodrigues B MarrierUnited KingdomXuxue Feng UNQUALIFIED
Costa S VenereGermanyAsiya Javayant RENEWAL
Wickens D AlbaresFranceAnna Fali UNQUALIFIED
Chavez L SaylorsIndiaBernardo Dominic RENEWAL
Chavez R BologniaBrazilIvan Magalhaes QUALIFIED
Mayumi M CampainSpainAnna Fali PROPOSAL
Johnson H PoquetteIndiaBernardo Dominic NEW
Izzy I BriddickGermanyStephen Shaw NEGOTIATION
Johnson E FigeroaGermanyOnyama Limba RENEWAL
Octavia O CampainFranceBernardo Dominic NEGOTIATION
James P WhobreyGermanyIoni Bowcher QUALIFIED
Greenwood Y ButtItalyStephen Shaw QUALIFIED
Munro H MaletIndiaStephen Shaw UNQUALIFIED
Rodrigues U ChuiJapanOnyama Limba UNQUALIFIED
Stacey B CaldareraAustraliaIoni Bowcher RENEWAL
Murillo E KolmetzUnited KingdomOnyama Limba NEGOTIATION
Tony I CaudyCanadaIvan Magalhaes UNQUALIFIED
Kadeem J GillianJapanAsiya Javayant NEW
Kaitlin Z ChuiArgentinaAsiya Javayant NEW
James B NestleUnited KingdomXuxue Feng NEW
Leon U VocelkaBrazilStephen Shaw QUALIFIED
David S AlbaresGermanyAmy Elsner RENEWAL
Johnson I KolmetzRussiaAnna Fali PROPOSAL
Costa D MarrierArgentinaElwin Sharvill PROPOSAL
Mujtaba P MarrierAustraliaOnyama Limba UNQUALIFIED
Tony G DilliardArgentinaAsiya Javayant PROPOSAL
Johnson O GauchoBrazilXuxue Feng QUALIFIED
Jeanfrancois M MarrierUnited KingdomBernardo Dominic NEW
Juan N DilliardAustraliaAmy Elsner RENEWAL
Julie Y GauchoRussiaBernardo Dominic QUALIFIED
Greenwood K GillianJapanOnyama Limba NEW
Costa Y SergiJapanStephen Shaw QUALIFIED
Julie H WaycottGermanyOnyama Limba UNQUALIFIED
Salvatore I OstroskyJapanAmy Elsner NEW
Misaki Z RoysterIndiaBernardo Dominic UNQUALIFIED
Sinclair K SchemmerGermanyOnyama Limba PROPOSAL
Morrow N ShinkoIndiaIvan Magalhaes UNQUALIFIED
Arvin E TollnerItalyBernardo Dominic PROPOSAL
Clifford B ChuiAustraliaOnyama Limba NEGOTIATION
Aika J GarufiSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones T RimGermanyIvan Magalhaes RENEWAL
Murillo M IturbideJapanAnna Fali QUALIFIED
Darci V KolmetzBrazilElwin Sharvill NEW
Jeanfrancois I PoquetteItalyIoni Bowcher PROPOSAL
Kadeem P WaycottFranceXuxue Feng NEGOTIATION
Aruna H DarakjyFranceXuxue Feng PROPOSAL
Alejandro N KolmetzUnited KingdomXuxue Feng RENEWAL
Greenwood Q RulapaughGermanyIoni Bowcher PROPOSAL
Nicolas P WhobreyItalyElwin Sharvill QUALIFIED
Deepesh D SergiArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford C VenereItaly2026-07-01Printing Dimensions NEW65Anna Fali
1001Cody Q MarrierJapan2026-07-19Benton, John B Jr NEW20Stephen Shaw
1002Mujtaba O ShinkoArgentina2026-07-04Chemel, James L Cpa UNQUALIFIED51Ioni Bowcher
1003Cody S CaudyItaly2026-07-11Benton, John B Jr NEW88Ivan Magalhaes
1004Kaitlin C CampainItaly2026-07-15Chapman, Ross E Esq NEW0Stephen Shaw
1005Stacey A GarufiAustralia2026-07-18Feiner Bros RENEWAL3Asiya Javayant
1006Ricardo O MacleadUnited Kingdom2026-07-18Dorl, James J Esq UNQUALIFIED49Xuxue Feng
1007Jefferson O FigeroaFrance2026-07-20Benton, John B Jr NEW47Anna Fali
1008Alejandro R AmigonCanada2026-07-21King, Christopher A Esq RENEWAL92Ioni Bowcher
1009Isabel J OstroskyCanada2026-06-30Feltz Printing Service RENEWAL96Stephen Shaw
1010Alejandro C SchemmerCanada2026-07-19Rousseaux, Michael Esq PROPOSAL93Bernardo Dominic
1011Mujtaba N MorascaFrance2026-07-05Truhlar And Truhlar Attys PROPOSAL39Elwin Sharvill
1012Claire J WaycottGermany2026-07-25Feiner Bros NEGOTIATION22Onyama Limba
1013Salvatore M AlbaresArgentina2026-07-17Rangoni Of Florence UNQUALIFIED21Amy Elsner
1014Wickens K KolmetzRussia2026-07-21Buckley Miller Wright NEW30Xuxue Feng
1015Jones O RimArgentina2026-07-01Chapman, Ross E Esq QUALIFIED23Anna Fali
1016Jennifer H CaldareraRussia2026-07-07Buckley Miller Wright NEGOTIATION39Asiya Javayant
1017David E DilliardCanada2026-07-04Benton, John B Jr PROPOSAL92Ioni Bowcher
1018Costa J IturbideArgentina2026-07-24Truhlar And Truhlar Attys NEGOTIATION40Amy Elsner
1019Juan B PaprockiCanada2026-06-29Chanay, Jeffrey A Esq PROPOSAL2Elwin Sharvill
1020Aruna G NickaSpain2026-07-22Buckley Miller Wright UNQUALIFIED73Amy Elsner
1021Cody N SergiIndia2026-07-18Chemel, James L Cpa UNQUALIFIED18Onyama Limba
1022Ricardo H GauchoItaly2026-07-27Chanay, Jeffrey A Esq QUALIFIED92Anna Fali
1023Johnson E NickaItaly2026-07-16King, Christopher A Esq RENEWAL95Onyama Limba
1024Greenwood N DoeItaly2026-07-01Chanay, Jeffrey A Esq PROPOSAL21Xuxue Feng
1025Clifford P SchemmerCanada2026-07-23Buckley Miller Wright QUALIFIED68Stephen Shaw
1026Sinclair L MaletFrance2026-07-23Dorl, James J Esq RENEWAL87Onyama Limba
1027Ashley I TollnerAustralia2026-07-06Benton, John B Jr RENEWAL86Stephen Shaw
1028Nicolas W MarrierBrazil2026-07-24King, Christopher A Esq UNQUALIFIED81Ivan Magalhaes
1029David P StensethRussia2026-07-28Morlong Associates PROPOSAL94Xuxue Feng
1030Antonio K DarakjyUnited Kingdom2026-07-27Buckley Miller Wright NEW7Elwin Sharvill
1031Maria H MaletIndia2026-07-13Dorl, James J Esq RENEWAL46Amy Elsner
1032Faith W FlosiGermany2026-07-24Chanay, Jeffrey A Esq QUALIFIED27Asiya Javayant
1033Maisha A RimGermany2026-07-09Commercial Press PROPOSAL42Bernardo Dominic
1034Sinclair B PaprockiArgentina2026-07-01Rousseaux, Michael Esq UNQUALIFIED34Asiya Javayant
1035Costa S BologniaSpain2026-07-20Printing Dimensions UNQUALIFIED25Ivan Magalhaes
1036Silvio Y AlbaresAustralia2026-07-18Buckley Miller Wright RENEWAL25Elwin Sharvill
1037David F GillianBrazil2026-07-07Dorl, James J Esq RENEWAL43Anna Fali
1038Alejandro Q WhobreyItaly2026-07-14Chapman, Ross E Esq NEW86Ioni Bowcher
1039Nicolas D DilliardArgentina2026-06-29Truhlar And Truhlar Attys RENEWAL17Asiya Javayant
1040Jeanfrancois Y MacleadItaly2026-07-25Morlong Associates PROPOSAL24Stephen Shaw
1041Salvatore G MarrierJapan2026-07-03Rangoni Of Florence QUALIFIED67Ioni Bowcher
1042Julie N ChuiCanada2026-07-17Benton, John B Jr NEW4Onyama Limba
1043Isabel F DoeJapan2026-07-27Buckley Miller Wright QUALIFIED4Bernardo Dominic
1044Aika L ButtFrance2026-07-24Printing Dimensions UNQUALIFIED83Stephen Shaw
1045Leon C AlbaresJapan2026-06-29Truhlar And Truhlar Attys NEW43Onyama Limba
1046Ivar S InouyeSpain2026-07-07King, Christopher A Esq NEW1Stephen Shaw
1047Adams D RimFrance2026-06-29Rousseaux, Michael Esq NEW70Stephen Shaw
1048Jeanfrancois F MarrierArgentina2026-07-28Commercial Press QUALIFIED26Ioni Bowcher
1049Adams D WaycottAustralia2026-07-25Chanay, Jeffrey A Esq NEW17Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki K DarakjySpainOnyama Limba QUALIFIED
Jones N MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh Q RoysterUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois F NickaRussiaStephen Shaw PROPOSAL
Misaki Y CaudyAustraliaAmy Elsner QUALIFIED
Juan A InouyeCanadaIoni Bowcher NEW
Mayumi W MaletItalyIoni Bowcher PROPOSAL
Greenwood Z FigeroaUnited KingdomElwin Sharvill QUALIFIED
Kaitlin B SlusarskiArgentinaAsiya Javayant RENEWAL
Greenwood X WhobreyFranceIoni Bowcher RENEWAL
Wickens N WaycottBrazilAnna Fali NEW
Kaitlin B CaudyIndiaAmy Elsner PROPOSAL
Jennifer V MacleadFranceIoni Bowcher PROPOSAL
Leon T RutaAustraliaAsiya Javayant NEGOTIATION
Kaitlin M MacleadArgentinaIoni Bowcher UNQUALIFIED
Clifford J SaylorsRussiaElwin Sharvill UNQUALIFIED
Sinclair D FerenczRussiaElwin Sharvill NEGOTIATION
Emily X FigeroaGermanyAmy Elsner QUALIFIED
Maria I MaletUnited KingdomXuxue Feng PROPOSAL
Octavia G FlosiCanadaXuxue Feng PROPOSAL
Darci V MaletFranceElwin Sharvill NEGOTIATION
Aika I SergiSpainAmy Elsner NEW
Jefferson U BowleyUnited KingdomElwin Sharvill NEGOTIATION
Ricardo N StockhamBrazilBernardo Dominic UNQUALIFIED
Munro K FerenczSpainBernardo Dominic NEW
Murillo J StockhamItalyIvan Magalhaes NEW
Ivar V PaprockiJapanIvan Magalhaes NEW
Aika V MaletBrazilAmy Elsner NEW
Claire U NickaBrazilStephen Shaw RENEWAL
Leja C InouyeAustraliaBernardo Dominic QUALIFIED
Wickens F WhobreyCanadaAmy Elsner UNQUALIFIED
Leja E RimIndiaBernardo Dominic NEW
Aruna Y StensethGermanyBernardo Dominic PROPOSAL
Aika R FollerIndiaAnna Fali UNQUALIFIED
Chavez N ChuiIndiaIvan Magalhaes UNQUALIFIED
Izzy H SlusarskiCanadaAnna Fali UNQUALIFIED
Munro Q VenereFranceElwin Sharvill QUALIFIED
Ivar N NestleUnited KingdomAsiya Javayant NEW
Maria P RoysterBrazilIvan Magalhaes QUALIFIED
David H GarufiItalyOnyama Limba RENEWAL
Salvatore H FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Aika E KolmetzSpainIvan Magalhaes PROPOSAL
Octavia V GauchoRussiaOnyama Limba UNQUALIFIED
Stacey E MacleadArgentinaAmy Elsner PROPOSAL
Arvin M PoquetteIndiaAnna Fali NEW
Aruna U FigeroaBrazilAsiya Javayant NEW
Julie P WieserArgentinaAsiya Javayant UNQUALIFIED
Greenwood B WhobreyBrazilStephen Shaw NEGOTIATION
Isabel Z ChuiJapanAsiya Javayant NEW
Isabel Z DarakjyUnited KingdomElwin Sharvill PROPOSAL
Frozen Columns
Name
Costa F Flosi
Jefferson P Caldarera
Kaitlin K Doe
Morrow O Poquette
Faith M Ferencz
Ashley K Paprocki
Mayumi O Whobrey
Arvin H Schemmer
Leon G Kolmetz
Adams U Rulapaugh
Leon S Bowley
Aika T Rulapaugh
Kadeem L Caudy
Costa Y Maclead
Morrow C Whobrey
Mayumi L Doe
Clifford E Butt
Greenwood Y Wieser
Darci G Marrier
Greenwood M Caudy
Antonio C Schemmer
Juan O Marrier
Antonio J Oldroyd
Tony U Waycott
Tony K Poquette
Kadeem A Nicka
Ricardo N Morasca
Murillo J Foller
Claire A Venere
Jeanfrancois Y Morasca
Jeanfrancois M Poquette
Antonio K Vocelka
Maria P Vocelka
Nicolas G Ostrosky
Wickens S Campain
Leja I Venere
Rodrigues V Rim
Jones W Whobrey
Jennifer Q Nestle
Izzy H Oldroyd
Leja G Kolmetz
Murillo N Wieser
Jefferson G Whobrey
Maisha H Albares
Aika C Campain
Chavez B Figeroa
Ashley S Morasca
Julie K Campain
Aditya S Paprocki
Wickens J Chui
IdCountryDate
1000India2026-07-14
1001Russia2026-07-19
1002Japan2026-07-08
1003Brazil2026-07-11
1004Italy2026-07-16
1005Canada2026-07-06
1006India2026-07-28
1007Canada2026-07-02
1008Brazil2026-07-11
1009Germany2026-07-23
1010India2026-07-13
1011Japan2026-07-24
1012Canada2026-07-11
1013Brazil2026-07-04
1014Australia2026-07-18
1015Australia2026-07-02
1016India2026-07-26
1017Italy2026-07-15
1018Argentina2026-07-15
1019Australia2026-07-10
1020Canada2026-07-17
1021Germany2026-07-15
1022France2026-07-27
1023Argentina2026-07-21
1024Italy2026-07-04
1025Brazil2026-07-24
1026Italy2026-07-21
1027Australia2026-07-21
1028France2026-07-17
1029India2026-06-29
1030France2026-07-17
1031Australia2026-07-05
1032United Kingdom2026-07-26
1033Italy2026-07-27
1034Japan2026-07-08
1035France2026-07-24
1036Brazil2026-07-10
1037Russia2026-07-03
1038Germany2026-07-18
1039Japan2026-07-16
1040Russia2026-07-23
1041France2026-07-04
1042Australia2026-07-12
1043Germany2026-07-02
1044India2026-07-05
1045Argentina2026-07-25
1046Japan2026-07-25
1047Australia2026-07-23
1048India2026-07-22
1049India2026-07-22

On-Demand Data

NameIdCountryDate
Rodrigues V Stockham1000Russia2026-07-07
Silvio I Ferencz1001India2026-07-10
Stacey N Iturbide1002Russia2026-07-22
Maria U Gillian1003Italy2026-07-05
Silvio X Perin1004Germany2026-07-01
Izzy D Kusko1005Spain2026-06-29
Ivar H Butt1006France2026-07-08
Julie S Figeroa1007Canada2026-07-25
Julie L Oldroyd1008Canada2026-07-28
Chavez S Briddick1009Russia2026-07-22
Izzy T Stockham1010Russia2026-07-09
David X Nestle1011Brazil2026-07-28
Deepesh V Saylors1012Australia2026-07-10
Kaitlin V Caudy1013United Kingdom2026-07-25
Wickens J Poquette1014Brazil2026-07-01
Misaki A Albares1015Italy2026-07-11
Ashley O Morasca1016India2026-07-03
Deepesh Q Flosi1017Spain2026-07-24
Mujtaba J Slusarski1018Japan2026-07-22
Aika Y Slusarski1019Canada2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco X SchemmerJapanIoni Bowcher UNQUALIFIED
Deepesh L StockhamSpainBernardo Dominic UNQUALIFIED
Claire Y RimSpainIvan Magalhaes NEGOTIATION
Ashley Z TollnerRussiaIoni Bowcher RENEWAL
Julie Y DoeJapanIvan Magalhaes NEW
Juan A WhobreyItalyBernardo Dominic PROPOSAL
Izzy H StockhamBrazilOnyama Limba QUALIFIED
Julie W IturbideCanadaStephen Shaw NEGOTIATION
Silvio O MaletUnited KingdomOnyama Limba QUALIFIED
Leja B PaprockiFranceElwin Sharvill UNQUALIFIED
Misaki T FerenczJapanStephen Shaw UNQUALIFIED
Emily O DarakjyFranceIoni Bowcher NEGOTIATION
Kaitlin Y ChuiAustraliaXuxue Feng NEGOTIATION
Murillo M OstroskyItalyBernardo Dominic UNQUALIFIED
Octavia L BologniaGermanyBernardo Dominic PROPOSAL
Stacey Q InouyeCanadaXuxue Feng NEGOTIATION
Jeanfrancois C NestleAustraliaBernardo Dominic NEGOTIATION
Ashley P FlosiCanadaXuxue Feng UNQUALIFIED
Rodrigues K FigeroaGermanyBernardo Dominic NEGOTIATION
Aditya M FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer P SaylorsRussiaOnyama Limba NEW
Salvatore E BowleyAustraliaAsiya Javayant RENEWAL
Rodrigues I CaudyArgentinaXuxue Feng RENEWAL
Silvio T ChuiJapanElwin Sharvill QUALIFIED
Francesco J SchemmerGermanyStephen Shaw PROPOSAL
Misaki I TollnerItalyIoni Bowcher QUALIFIED
Kaitlin A IturbideFranceElwin Sharvill PROPOSAL
James V FigeroaFranceIoni Bowcher QUALIFIED
Greenwood J DoeItalyOnyama Limba UNQUALIFIED
Misaki C CaldareraIndiaXuxue Feng RENEWAL
Aika P DilliardIndiaIvan Magalhaes UNQUALIFIED
Arvin W WhobreyGermanyElwin Sharvill NEGOTIATION
Costa Q SergiGermanyAmy Elsner PROPOSAL
Francesco Q FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Izzy A MacleadArgentinaAmy Elsner UNQUALIFIED
Darci R DoeGermanyAmy Elsner UNQUALIFIED
Emily O AlbaresArgentinaAsiya Javayant RENEWAL
Julie Z RutaItalyIoni Bowcher UNQUALIFIED
Rodrigues G MaletAustraliaElwin Sharvill PROPOSAL
James B MaletFranceOnyama Limba 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>