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
Aruna R FollerBrazilAsiya Javayant RENEWAL
Emily B CaldareraAustraliaBernardo Dominic NEGOTIATION
Claire H DoeJapanStephen Shaw NEW
Aika A PerinAustraliaAmy Elsner NEGOTIATION
David W KolmetzArgentinaOnyama Limba NEW
Clifford K AmigonBrazilOnyama Limba NEGOTIATION
Kaitlin L ButtFranceElwin Sharvill NEGOTIATION
Julie S ChuiArgentinaIvan Magalhaes RENEWAL
Julie G SchemmerFranceOnyama Limba RENEWAL
Salvatore I IturbideFranceBernardo Dominic RENEWAL
Morrow G RulapaughSpainXuxue Feng NEW
Izzy C RulapaughArgentinaOnyama Limba PROPOSAL
Stacey T AmigonIndiaBernardo Dominic PROPOSAL
Murillo Y CampainSpainXuxue Feng UNQUALIFIED
Mujtaba I FlosiSpainAnna Fali NEGOTIATION
Mayumi H VenereBrazilElwin Sharvill RENEWAL
Ivar R GauchoGermanyBernardo Dominic UNQUALIFIED
Isabel V RoysterJapanAmy Elsner NEW
Salvatore K BologniaFranceIoni Bowcher NEGOTIATION
Murillo Z RulapaughItalyAmy Elsner UNQUALIFIED
James R SchemmerArgentinaOnyama Limba NEW
Juan U AlbaresBrazilOnyama Limba QUALIFIED
Faith U MarrierItalyStephen Shaw NEW
Deepesh N GlickIndiaAmy Elsner QUALIFIED
Costa D PaprockiItalyAmy Elsner RENEWAL
Silvio M DoeUnited KingdomElwin Sharvill QUALIFIED
Smith J SaylorsUnited KingdomBernardo Dominic PROPOSAL
Morrow Q OstroskyIndiaOnyama Limba UNQUALIFIED
Arvin H MorascaRussiaBernardo Dominic PROPOSAL
Mayumi H SergiCanadaStephen Shaw QUALIFIED
Izzy D CaudyIndiaIvan Magalhaes UNQUALIFIED
Deepesh H NickaCanadaAmy Elsner PROPOSAL
Jennifer S PoquetteUnited KingdomOnyama Limba NEGOTIATION
Mayumi E DoeItalyAnna Fali QUALIFIED
Johnson S PoquetteItalyAnna Fali RENEWAL
Alejandro U WieserItalyAmy Elsner UNQUALIFIED
Salvatore K PoquetteItalyBernardo Dominic RENEWAL
Wickens A KuskoIndiaXuxue Feng QUALIFIED
Stacey L GlickGermanyElwin Sharvill RENEWAL
Stacey Q PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues T OstroskyItalyIoni Bowcher QUALIFIED
Nicolas T WieserBrazilAmy Elsner NEW
Sinclair Y FigeroaJapanXuxue Feng QUALIFIED
Ivar D MacleadCanadaIoni Bowcher NEW
Arvin E FlosiBrazilAmy Elsner NEW
Antonio I BriddickBrazilIvan Magalhaes RENEWAL
Greenwood L KuskoAustraliaIoni Bowcher NEW
Stacey I AlbaresIndiaBernardo Dominic RENEWAL
Nicolas M BowleyGermanyIoni Bowcher PROPOSAL
Emily H NestleRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan E OldroydBrazilAsiya Javayant UNQUALIFIED
Munro L ShinkoJapanXuxue Feng QUALIFIED
Stacey X SchemmerIndiaAsiya Javayant RENEWAL
Jones V WhobreyJapanElwin Sharvill QUALIFIED
Jones P BologniaCanadaAnna Fali PROPOSAL
Claire O SlusarskiUnited KingdomXuxue Feng QUALIFIED
Ricardo F MaletJapanAmy Elsner PROPOSAL
Sinclair N SlusarskiGermanyStephen Shaw NEGOTIATION
Ashley X DoeItalyIoni Bowcher QUALIFIED
Claire F InouyeAustraliaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C OldroydSpain2025-06-07Commercial Press NEGOTIATION74Stephen Shaw
1001Maria N OstroskyAustralia2025-06-11Benton, John B Jr NEW4Bernardo Dominic
1002Costa J OldroydUnited Kingdom2025-06-02Chapman, Ross E Esq NEGOTIATION78Ioni Bowcher
1003Misaki J PoquetteCanada2025-06-08Commercial Press RENEWAL37Asiya Javayant
1004Darci N RulapaughFrance2025-06-10Rousseaux, Michael Esq RENEWAL1Ioni Bowcher
1005Faith M WaycottSpain2025-06-06King, Christopher A Esq QUALIFIED59Xuxue Feng
1006Aruna B RimAustralia2025-05-18Rousseaux, Michael Esq PROPOSAL53Ioni Bowcher
1007Darci Q MacleadSpain2025-06-05Printing Dimensions UNQUALIFIED79Onyama Limba
1008Izzy R FollerArgentina2025-05-20Chemel, James L Cpa UNQUALIFIED19Ivan Magalhaes
1009Leon J KolmetzItaly2025-05-26Commercial Press NEW50Bernardo Dominic
1010Misaki X MarrierBrazil2025-05-16Truhlar And Truhlar Attys NEGOTIATION79Ivan Magalhaes
1011Smith G BologniaFrance2025-06-13Morlong Associates UNQUALIFIED97Xuxue Feng
1012Chavez N RoysterSpain2025-05-31Printing Dimensions NEGOTIATION8Bernardo Dominic
1013Morrow G ShinkoItaly2025-05-22Feltz Printing Service QUALIFIED34Ioni Bowcher
1014Kadeem R NestleFrance2025-05-16Feltz Printing Service NEGOTIATION99Asiya Javayant
1015Julie Q CaldareraJapan2025-06-08Printing Dimensions UNQUALIFIED16Amy Elsner
1016Salvatore C MaletUnited Kingdom2025-05-21Morlong Associates RENEWAL41Asiya Javayant
1017Costa G OstroskyIndia2025-05-17Rousseaux, Michael Esq RENEWAL36Xuxue Feng
1018Sinclair U NestleFrance2025-06-11Feltz Printing Service UNQUALIFIED30Bernardo Dominic
1019Clifford Z BriddickArgentina2025-06-03Benton, John B Jr PROPOSAL88Xuxue Feng
1020Aika C ButtCanada2025-05-24Buckley Miller Wright NEGOTIATION56Asiya Javayant
1021Jones N GauchoFrance2025-06-10Truhlar And Truhlar Attys NEGOTIATION45Ivan Magalhaes
1022Salvatore F SaylorsAustralia2025-05-24Benton, John B Jr NEGOTIATION51Ivan Magalhaes
1023Chavez Q BologniaRussia2025-05-23Truhlar And Truhlar Attys RENEWAL59Xuxue Feng
1024Morrow Y DoeBrazil2025-05-15Rousseaux, Michael Esq UNQUALIFIED47Stephen Shaw
1025Maria H InouyeFrance2025-05-19Feltz Printing Service NEW65Anna Fali
1026Kaitlin E KuskoFrance2025-05-27Morlong Associates UNQUALIFIED13Anna Fali
1027Mujtaba Q AmigonFrance2025-05-24Feltz Printing Service PROPOSAL51Stephen Shaw
1028Adams W AlbaresItaly2025-05-26King, Christopher A Esq UNQUALIFIED45Asiya Javayant
1029Darci I ChuiUnited Kingdom2025-06-12Printing Dimensions QUALIFIED64Onyama Limba
1030Jennifer Q PoquetteGermany2025-05-16Benton, John B Jr PROPOSAL88Anna Fali
1031Ivar C GlickIndia2025-05-30Dorl, James J Esq PROPOSAL2Stephen Shaw
1032Arvin Z TollnerItaly2025-05-17Chanay, Jeffrey A Esq NEGOTIATION16Onyama Limba
1033Chavez R GillianSpain2025-06-08Chapman, Ross E Esq RENEWAL58Elwin Sharvill
1034Stacey B WhobreyItaly2025-05-25Feiner Bros NEGOTIATION88Anna Fali
1035Arvin C SergiArgentina2025-06-10Feiner Bros NEGOTIATION83Ivan Magalhaes
1036Leon K DoeArgentina2025-06-10Rousseaux, Michael Esq QUALIFIED96Amy Elsner
1037Francesco O BowleyBrazil2025-06-04King, Christopher A Esq NEGOTIATION42Onyama Limba
1038Francesco O FigeroaFrance2025-06-07Chemel, James L Cpa NEGOTIATION31Amy Elsner
1039Leon Y RimAustralia2025-05-27Rousseaux, Michael Esq QUALIFIED85Stephen Shaw
1040Claire X SlusarskiBrazil2025-05-29Chanay, Jeffrey A Esq UNQUALIFIED96Ioni Bowcher
1041Alejandro Q CampainUnited Kingdom2025-05-21Rousseaux, Michael Esq RENEWAL42Elwin Sharvill
1042Morrow M MarrierFrance2025-06-07Chapman, Ross E Esq UNQUALIFIED92Bernardo Dominic
1043Aika I InouyeRussia2025-05-21Truhlar And Truhlar Attys NEW62Stephen Shaw
1044Maria Q BowleyGermany2025-06-04Chapman, Ross E Esq RENEWAL77Onyama Limba
1045Jefferson J FigeroaBrazil2025-06-12Commercial Press UNQUALIFIED72Onyama Limba
1046Julie U SaylorsJapan2025-06-07Chapman, Ross E Esq PROPOSAL62Asiya Javayant
1047Rodrigues Y WhobreyJapan2025-05-17King, Christopher A Esq NEGOTIATION19Asiya Javayant
1048Aditya Q WaycottAustralia2025-05-23Chemel, James L Cpa NEW0Elwin Sharvill
1049Adams X CampainJapan2025-05-18Truhlar And Truhlar Attys NEGOTIATION79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Salvatore R ShinkoJapanIvan Magalhaes RENEWAL
Cody B DoeGermanyXuxue Feng RENEWAL
Adams B SlusarskiBrazilStephen Shaw UNQUALIFIED
Faith Y BriddickItalyBernardo Dominic RENEWAL
Claire D OldroydRussiaIvan Magalhaes QUALIFIED
Salvatore B DoeItalyStephen Shaw QUALIFIED
Jeanfrancois F FigeroaCanadaAsiya Javayant QUALIFIED
Costa V AlbaresSpainStephen Shaw UNQUALIFIED
Nicolas Z SergiJapanBernardo Dominic NEW
Ashley J NestleGermanyXuxue Feng QUALIFIED
Arvin M RoysterItalyIvan Magalhaes PROPOSAL
Cody Y PerinRussiaBernardo Dominic PROPOSAL
Aika J InouyeAustraliaAnna Fali NEW
Rodrigues U DilliardRussiaElwin Sharvill PROPOSAL
Darci T SlusarskiJapanAnna Fali UNQUALIFIED
Wickens H DilliardBrazilIvan Magalhaes UNQUALIFIED
David B GlickArgentinaOnyama Limba NEGOTIATION
Greenwood V RimGermanyBernardo Dominic QUALIFIED
Maria T MarrierAustraliaAmy Elsner RENEWAL
Nicolas O OstroskyUnited KingdomIoni Bowcher NEW
Adams M CaudyFranceElwin Sharvill QUALIFIED
Aditya S GillianItalyBernardo Dominic UNQUALIFIED
Alejandro X ButtUnited KingdomAmy Elsner NEW
Jennifer G NestleJapanAmy Elsner UNQUALIFIED
Misaki M CaudyAustraliaXuxue Feng UNQUALIFIED
Mayumi S GauchoJapanElwin Sharvill RENEWAL
Jones U KolmetzGermanyIvan Magalhaes RENEWAL
Deepesh Z WhobreyBrazilAsiya Javayant PROPOSAL
Jones P StockhamItalyElwin Sharvill NEW
Salvatore B MaletJapanOnyama Limba UNQUALIFIED
Misaki K FlosiIndiaIoni Bowcher NEGOTIATION
Darci P WieserRussiaElwin Sharvill PROPOSAL
Salvatore V RoysterItalyBernardo Dominic PROPOSAL
Stacey J GlickFranceAmy Elsner NEW
Silvio J ShinkoFranceElwin Sharvill UNQUALIFIED
Jones X MarrierFranceStephen Shaw UNQUALIFIED
Deepesh S SaylorsGermanyAnna Fali UNQUALIFIED
Rodrigues O BriddickArgentinaXuxue Feng NEGOTIATION
Aika C OldroydFranceAnna Fali NEGOTIATION
Arvin C AlbaresBrazilBernardo Dominic NEGOTIATION
Murillo X MaletCanadaOnyama Limba RENEWAL
Jones B CaudyCanadaBernardo Dominic NEW
Aditya R BowleyFranceXuxue Feng RENEWAL
Juan S CaldareraAustraliaAsiya Javayant NEGOTIATION
Jones X IturbideBrazilAmy Elsner RENEWAL
Isabel K StockhamSpainAmy Elsner NEGOTIATION
Antonio A PoquetteGermanyElwin Sharvill NEW
Francesco D WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues H GarufiItalyElwin Sharvill NEGOTIATION
Kadeem N MaletGermanyIvan Magalhaes RENEWAL
Frozen Columns
Name
Isabel N Rim
Aika T Doe
Julie B Royster
Rodrigues F Venere
Chavez Z Inouye
Jones B Saylors
Sinclair K Briddick
Antonio F Oldroyd
Maisha I Saylors
Maisha S Perin
Clifford J Amigon
Jeanfrancois B Royster
Izzy B Figeroa
Misaki Y Paprocki
Morrow W Stockham
Clifford O Waycott
Sinclair R Perin
Morrow G Paprocki
Stacey H Gillian
Jeanfrancois L Nestle
Ashley R Maclead
Tony R Butt
Silvio M Bowley
Wickens A Garufi
Chavez U Stockham
Jones O Iturbide
Faith K Kusko
Stacey W Poquette
Sinclair G Saylors
Ricardo Y Perin
Francesco G Schemmer
Aika L Figeroa
Clifford N Rulapaugh
Sinclair C Nestle
Chavez R Schemmer
Alejandro Y Vocelka
Jeanfrancois R Bolognia
Tony U Caldarera
Izzy E Iturbide
Emily W Garufi
Salvatore Y Wieser
Cody R Ostrosky
David L Briddick
Jeanfrancois P Maclead
Morrow H Royster
Deepesh G Malet
Costa N Kusko
Costa V Rim
Misaki A Bolognia
Leja N Schemmer
IdCountryDate
1000Canada2025-05-29
1001Italy2025-05-27
1002Argentina2025-05-28
1003Argentina2025-05-28
1004Australia2025-06-09
1005Spain2025-06-07
1006Japan2025-06-11
1007India2025-06-01
1008France2025-05-20
1009United Kingdom2025-06-09
1010Canada2025-06-08
1011France2025-05-31
1012United Kingdom2025-05-24
1013Germany2025-06-04
1014Brazil2025-05-17
1015Argentina2025-05-17
1016Argentina2025-05-31
1017Brazil2025-05-17
1018France2025-06-04
1019Russia2025-05-30
1020United Kingdom2025-05-20
1021Australia2025-05-30
1022Canada2025-06-05
1023Spain2025-06-13
1024Japan2025-05-17
1025India2025-06-01
1026United Kingdom2025-05-16
1027Australia2025-05-23
1028Argentina2025-05-24
1029Brazil2025-05-30
1030India2025-06-09
1031Brazil2025-05-21
1032Canada2025-06-09
1033Germany2025-05-17
1034Brazil2025-06-08
1035Russia2025-06-06
1036Japan2025-06-10
1037Germany2025-05-26
1038Germany2025-05-15
1039Italy2025-05-20
1040Brazil2025-05-30
1041Italy2025-05-22
1042Argentina2025-05-24
1043India2025-05-28
1044Russia2025-05-24
1045Australia2025-06-04
1046France2025-05-29
1047India2025-06-04
1048Spain2025-06-06
1049Italy2025-06-06

On-Demand Data

NameIdCountryDate
Johnson Y Bowley1000United Kingdom2025-05-23
Leon Q Paprocki1001Italy2025-06-08
Izzy X Campain1002Argentina2025-05-15
Munro Y Chui1003Brazil2025-05-25
Deepesh Z Caudy1004Italy2025-05-16
Kaitlin K Oldroyd1005Australia2025-06-02
Greenwood H Inouye1006Spain2025-05-15
Izzy X Amigon1007Argentina2025-05-27
Salvatore O Darakjy1008France2025-05-23
Alejandro R Ferencz1009Japan2025-06-07
Arvin S Maclead1010Germany2025-06-04
Stacey Z Inouye1011Germany2025-05-30
Maisha U Malet1012Italy2025-06-09
Izzy L Kolmetz1013Australia2025-06-07
Ashley U Vocelka1014Italy2025-05-19
Morrow D Iturbide1015Spain2025-05-20
Isabel D Rulapaugh1016Russia2025-05-29
Leon C Nicka1017Germany2025-06-10
Aditya J Figeroa1018Canada2025-05-21
Kaitlin P Ostrosky1019Japan2025-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi C CampainSpainStephen Shaw RENEWAL
Faith S VenereIndiaIoni Bowcher QUALIFIED
Nicolas U GarufiUnited KingdomStephen Shaw PROPOSAL
David O IturbideSpainAmy Elsner NEW
Aditya G CampainItalyIoni Bowcher PROPOSAL
Jones O RoysterFranceStephen Shaw UNQUALIFIED
Mayumi O RulapaughCanadaAsiya Javayant UNQUALIFIED
Deepesh A KuskoArgentinaBernardo Dominic UNQUALIFIED
Arvin M CampainArgentinaIvan Magalhaes QUALIFIED
Wickens U OstroskyFranceIoni Bowcher NEGOTIATION
Mujtaba G VenereGermanyBernardo Dominic NEW
Deepesh F RutaItalyAsiya Javayant RENEWAL
Jennifer H BriddickArgentinaIvan Magalhaes UNQUALIFIED
Clifford D CaldareraAustraliaStephen Shaw NEGOTIATION
Aruna S AlbaresIndiaXuxue Feng UNQUALIFIED
Sinclair T BriddickCanadaAsiya Javayant PROPOSAL
Leja O BowleyJapanBernardo Dominic NEW
Alejandro Z CaudyFranceXuxue Feng QUALIFIED
Leja A MaletGermanyXuxue Feng PROPOSAL
David H SlusarskiArgentinaIvan Magalhaes PROPOSAL
Arvin E CaudyCanadaIoni Bowcher NEGOTIATION
Smith H SlusarskiGermanyAnna Fali NEW
Costa C SergiItalyXuxue Feng RENEWAL
Alejandro B DilliardCanadaBernardo Dominic NEW
Misaki P WhobreyCanadaXuxue Feng QUALIFIED
Munro F TollnerIndiaIvan Magalhaes PROPOSAL
Aruna Z GauchoCanadaAsiya Javayant PROPOSAL
Cody R AmigonCanadaAmy Elsner UNQUALIFIED
Octavia A SaylorsArgentinaBernardo Dominic RENEWAL
Costa A ShinkoCanadaAmy Elsner NEW
James R AlbaresJapanXuxue Feng NEW
Deepesh W AmigonSpainElwin Sharvill RENEWAL
Arvin S PaprockiRussiaBernardo Dominic NEGOTIATION
Maisha T SchemmerIndiaXuxue Feng QUALIFIED
Clifford A MorascaBrazilElwin Sharvill PROPOSAL
Faith E ChuiItalyAmy Elsner QUALIFIED
Rodrigues K MorascaCanadaElwin Sharvill RENEWAL
Costa W MaletJapanOnyama Limba UNQUALIFIED
Leja O InouyeUnited KingdomAmy Elsner PROPOSAL
Stacey B KolmetzCanadaOnyama Limba UNQUALIFIED

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