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
Maria K StensethAustraliaStephen Shaw NEW
Cody X KuskoItalyStephen Shaw RENEWAL
Antonio Q VenereGermanyElwin Sharvill QUALIFIED
Aditya P WaycottIndiaAnna Fali UNQUALIFIED
Costa G BologniaRussiaAmy Elsner RENEWAL
Ivar P PerinAustraliaBernardo Dominic PROPOSAL
Jefferson N GillianItalyIoni Bowcher NEGOTIATION
Johnson Q IturbideFranceIoni Bowcher NEW
Mayumi H DoeAustraliaAnna Fali UNQUALIFIED
James C BriddickJapanIvan Magalhaes PROPOSAL
Aruna Y PoquetteCanadaAmy Elsner NEGOTIATION
Arvin B PoquetteGermanyElwin Sharvill UNQUALIFIED
Maisha O DoeGermanyElwin Sharvill UNQUALIFIED
Kadeem V DoeItalyElwin Sharvill UNQUALIFIED
Adams P MorascaItalyBernardo Dominic UNQUALIFIED
Smith K AlbaresFranceAmy Elsner UNQUALIFIED
Isabel R WieserAustraliaIvan Magalhaes UNQUALIFIED
Ivar Y DilliardIndiaAsiya Javayant UNQUALIFIED
Alejandro M DilliardAustraliaElwin Sharvill QUALIFIED
Chavez X StockhamJapanBernardo Dominic QUALIFIED
Rodrigues G SergiFranceXuxue Feng UNQUALIFIED
Mujtaba F GillianGermanyOnyama Limba QUALIFIED
Isabel V RutaRussiaBernardo Dominic PROPOSAL
Mujtaba V DoeUnited KingdomXuxue Feng PROPOSAL
Claire L KolmetzSpainXuxue Feng RENEWAL
James T PoquetteBrazilBernardo Dominic RENEWAL
Munro T SaylorsGermanyOnyama Limba NEGOTIATION
Stacey W SchemmerIndiaIoni Bowcher RENEWAL
Isabel S CaldareraJapanAnna Fali RENEWAL
Morrow H CaudyCanadaBernardo Dominic NEGOTIATION
Ashley Z DoeBrazilXuxue Feng UNQUALIFIED
David T NestleBrazilIvan Magalhaes PROPOSAL
Kadeem Q GlickAustraliaElwin Sharvill QUALIFIED
Juan R FigeroaGermanyIvan Magalhaes UNQUALIFIED
Izzy N InouyeCanadaAsiya Javayant NEW
Arvin B SaylorsArgentinaAmy Elsner NEGOTIATION
Stacey Y ShinkoArgentinaAsiya Javayant NEGOTIATION
Izzy G KuskoRussiaAmy Elsner QUALIFIED
Alejandro B WhobreyUnited KingdomAmy Elsner NEW
Faith H OstroskyCanadaAnna Fali UNQUALIFIED
Kadeem R PoquetteIndiaAmy Elsner QUALIFIED
Darci F BowleyFranceXuxue Feng UNQUALIFIED
Greenwood U PaprockiIndiaElwin Sharvill UNQUALIFIED
Jennifer G StensethCanadaIvan Magalhaes UNQUALIFIED
Kadeem P OstroskyCanadaIvan Magalhaes NEW
Jefferson Y MacleadAustraliaXuxue Feng NEW
Francesco C ButtFranceAnna Fali PROPOSAL
Mayumi C GauchoJapanAsiya Javayant RENEWAL
Costa O MacleadItalyStephen Shaw RENEWAL
Darci Y KuskoFranceElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio U MacleadGermanyIvan Magalhaes UNQUALIFIED
Ashley B KolmetzBrazilAnna Fali PROPOSAL
Silvio G WhobreyAustraliaAsiya Javayant UNQUALIFIED
Darci N MaletRussiaBernardo Dominic UNQUALIFIED
Kaitlin O DarakjySpainOnyama Limba RENEWAL
Morrow K SchemmerJapanAsiya Javayant RENEWAL
Johnson Q KuskoGermanyElwin Sharvill NEGOTIATION
Costa D BowleyItalyAmy Elsner RENEWAL
Kadeem G GillianCanadaAsiya Javayant PROPOSAL
Maria P WieserRussiaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Z RulapaughFrance2026-07-15Rangoni Of Florence QUALIFIED95Asiya Javayant
1001Silvio J CaldareraCanada2026-07-03Commercial Press PROPOSAL21Asiya Javayant
1002Munro X KolmetzFrance2026-07-08Chapman, Ross E Esq NEW63Xuxue Feng
1003Jennifer O StensethItaly2026-07-09Buckley Miller Wright RENEWAL47Stephen Shaw
1004Francesco A CampainRussia2026-07-10Buckley Miller Wright UNQUALIFIED7Amy Elsner
1005Silvio J AmigonItaly2026-07-19Printing Dimensions NEGOTIATION49Ioni Bowcher
1006Costa U MacleadCanada2026-07-02Feltz Printing Service PROPOSAL85Ioni Bowcher
1007Maisha E SaylorsBrazil2026-07-17Feltz Printing Service PROPOSAL49Ivan Magalhaes
1008Octavia T GauchoAustralia2026-06-22Dorl, James J Esq UNQUALIFIED82Ivan Magalhaes
1009Jefferson G SaylorsJapan2026-07-02Feiner Bros UNQUALIFIED64Ioni Bowcher
1010Izzy Y GarufiJapan2026-07-11Buckley Miller Wright RENEWAL17Stephen Shaw
1011Jeanfrancois G BriddickIndia2026-06-30Rousseaux, Michael Esq RENEWAL69Ioni Bowcher
1012Maria S ButtAustralia2026-06-22Truhlar And Truhlar Attys QUALIFIED8Bernardo Dominic
1013James P GarufiJapan2026-07-02Benton, John B Jr PROPOSAL18Bernardo Dominic
1014Adams W RulapaughItaly2026-07-08Feltz Printing Service NEW50Onyama Limba
1015Jefferson V BologniaItaly2026-07-15Chapman, Ross E Esq NEGOTIATION51Asiya Javayant
1016Nicolas K RoysterRussia2026-07-19Chanay, Jeffrey A Esq NEGOTIATION71Xuxue Feng
1017Munro O FlosiUnited Kingdom2026-06-20Printing Dimensions QUALIFIED75Elwin Sharvill
1018Faith I MorascaArgentina2026-07-18Feiner Bros NEW46Onyama Limba
1019Wickens D BriddickIndia2026-07-02Commercial Press NEW63Elwin Sharvill
1020Arvin W ChuiJapan2026-07-06Feltz Printing Service UNQUALIFIED81Ivan Magalhaes
1021Ivar K ButtBrazil2026-07-19Chanay, Jeffrey A Esq PROPOSAL42Ioni Bowcher
1022Ashley J DoeFrance2026-07-06Chanay, Jeffrey A Esq NEGOTIATION96Elwin Sharvill
1023Chavez O FollerCanada2026-07-19Dorl, James J Esq UNQUALIFIED87Xuxue Feng
1024Ivar Y ButtItaly2026-06-26Chapman, Ross E Esq NEW27Amy Elsner
1025Mayumi P ChuiItaly2026-07-08Rousseaux, Michael Esq NEW29Ioni Bowcher
1026Jefferson C NickaBrazil2026-07-16Commercial Press QUALIFIED80Ioni Bowcher
1027Alejandro R CampainUnited Kingdom2026-06-21Printing Dimensions QUALIFIED32Stephen Shaw
1028Murillo H MaletIndia2026-07-19Chapman, Ross E Esq UNQUALIFIED53Onyama Limba
1029Salvatore U FollerIndia2026-06-26Printing Dimensions QUALIFIED59Onyama Limba
1030Johnson I VenereIndia2026-07-02Feiner Bros NEGOTIATION54Xuxue Feng
1031Sinclair D PerinSpain2026-07-10Benton, John B Jr RENEWAL39Xuxue Feng
1032Munro V CampainArgentina2026-06-25Dorl, James J Esq RENEWAL0Xuxue Feng
1033Francesco A CaudyUnited Kingdom2026-06-20Benton, John B Jr QUALIFIED76Elwin Sharvill
1034Salvatore Z SchemmerArgentina2026-07-14Feltz Printing Service QUALIFIED43Asiya Javayant
1035Ricardo R MacleadBrazil2026-07-06Feltz Printing Service NEGOTIATION21Ivan Magalhaes
1036Leja Z SchemmerFrance2026-06-28Feltz Printing Service UNQUALIFIED23Bernardo Dominic
1037Johnson R FerenczUnited Kingdom2026-07-13Buckley Miller Wright QUALIFIED50Ivan Magalhaes
1038Tony L InouyeGermany2026-06-20King, Christopher A Esq NEGOTIATION50Asiya Javayant
1039Antonio Y StensethAustralia2026-06-29Morlong Associates QUALIFIED72Amy Elsner
1040Murillo U OldroydBrazil2026-06-20Feltz Printing Service QUALIFIED96Asiya Javayant
1041Isabel E GarufiItaly2026-06-22Printing Dimensions QUALIFIED27Amy Elsner
1042James T IturbideJapan2026-06-30Truhlar And Truhlar Attys NEW51Asiya Javayant
1043Izzy G MaletGermany2026-06-27Chemel, James L Cpa RENEWAL12Asiya Javayant
1044Tony N CaldareraArgentina2026-07-01King, Christopher A Esq UNQUALIFIED98Bernardo Dominic
1045Cody M WhobreyJapan2026-07-08Commercial Press NEGOTIATION17Ivan Magalhaes
1046Misaki S OldroydJapan2026-07-15Benton, John B Jr RENEWAL57Anna Fali
1047Mujtaba T FerenczRussia2026-06-26Morlong Associates PROPOSAL20Onyama Limba
1048Wickens U InouyeItaly2026-07-05Feltz Printing Service PROPOSAL90Bernardo Dominic
1049Rodrigues N MaletIndia2026-07-17Truhlar And Truhlar Attys RENEWAL50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
David P WaycottItalyAsiya Javayant QUALIFIED
Alejandro I WaycottGermanyIoni Bowcher PROPOSAL
Stacey E StensethGermanyElwin Sharvill QUALIFIED
Darci E StockhamJapanStephen Shaw NEW
Maria N FlosiRussiaStephen Shaw PROPOSAL
Ricardo S KuskoJapanAmy Elsner PROPOSAL
Leja S BowleyAustraliaXuxue Feng NEGOTIATION
Wickens I DarakjyJapanAsiya Javayant NEGOTIATION
Alejandro Y StensethCanadaBernardo Dominic UNQUALIFIED
Johnson Y RoysterUnited KingdomAmy Elsner QUALIFIED
Smith V PoquetteBrazilStephen Shaw RENEWAL
Izzy K StockhamGermanyAmy Elsner UNQUALIFIED
Nicolas E BriddickArgentinaElwin Sharvill QUALIFIED
Kadeem D PoquetteArgentinaAsiya Javayant NEGOTIATION
James F MaletUnited KingdomOnyama Limba NEW
Julie A InouyeAustraliaStephen Shaw NEW
Deepesh C DoeItalyAmy Elsner UNQUALIFIED
Emily A SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Adams U TollnerSpainAnna Fali QUALIFIED
Darci Q ShinkoRussiaOnyama Limba UNQUALIFIED
Mujtaba M FerenczItalyBernardo Dominic UNQUALIFIED
Nicolas F VocelkaBrazilAmy Elsner PROPOSAL
Darci E MaletGermanyXuxue Feng QUALIFIED
Jefferson X MorascaAustraliaElwin Sharvill NEW
Alejandro F DilliardJapanStephen Shaw PROPOSAL
Cody I KuskoIndiaAnna Fali NEW
Antonio F WieserJapanXuxue Feng UNQUALIFIED
Aditya R IturbideRussiaStephen Shaw NEW
Maisha K PerinCanadaOnyama Limba UNQUALIFIED
Maria N DoeAustraliaStephen Shaw NEGOTIATION
Johnson H StockhamRussiaAmy Elsner RENEWAL
Maisha U StockhamGermanyStephen Shaw RENEWAL
Rodrigues Y GlickFranceAnna Fali NEW
Isabel G ChuiCanadaAsiya Javayant UNQUALIFIED
Mujtaba O FerenczJapanIvan Magalhaes RENEWAL
Emily S RutaFranceIoni Bowcher NEW
Claire H TollnerJapanStephen Shaw QUALIFIED
Misaki P SlusarskiBrazilAnna Fali NEW
Aruna Q PaprockiItalyStephen Shaw NEGOTIATION
Leja U PaprockiUnited KingdomXuxue Feng NEW
Darci F MaletSpainAnna Fali PROPOSAL
Kadeem T PerinCanadaXuxue Feng NEW
Greenwood N CaldareraRussiaIvan Magalhaes QUALIFIED
Mujtaba O RoysterArgentinaAmy Elsner RENEWAL
Nicolas V WaycottJapanAnna Fali UNQUALIFIED
Aika T AmigonUnited KingdomElwin Sharvill RENEWAL
Maria H SchemmerArgentinaIoni Bowcher UNQUALIFIED
Smith U KolmetzUnited KingdomBernardo Dominic NEW
Kadeem B CaldareraSpainAnna Fali UNQUALIFIED
Costa E FollerAustraliaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Chavez G Campain
Costa U Oldroyd
Costa J Iturbide
Morrow M Perin
Kadeem Y Briddick
Silvio B Malet
Darci R Oldroyd
Kadeem F Figeroa
Jeanfrancois Q Albares
Darci V Kusko
Jones D Venere
Claire Z Shinko
Tony F Glick
Sinclair M Gaucho
Deepesh R Perin
Jennifer Q Marrier
Aditya K Caldarera
Aika R Darakjy
Aika Z Ferencz
Faith A Nestle
David U Saylors
Claire F Shinko
Silvio V Bowley
Emily G Inouye
James O Slusarski
Maisha Y Iturbide
Stacey M Nicka
Tony B Oldroyd
Stacey B Inouye
Izzy A Gillian
Emily S Briddick
Izzy G Bolognia
Juan W Tollner
Leja V Dilliard
Darci H Venere
Silvio M Campain
Rodrigues A Oldroyd
Mujtaba H Royster
Jones Y Briddick
Mayumi U Ruta
Mujtaba C Iturbide
Leon P Iturbide
Ashley A Iturbide
Adams X Vocelka
Antonio G Malet
Sinclair B Flosi
Ivar X Nicka
Misaki K Slusarski
Salvatore Y Saylors
Smith J Albares
IdCountryDate
1000India2026-07-06
1001India2026-07-16
1002Brazil2026-07-18
1003Spain2026-06-24
1004Canada2026-07-17
1005France2026-07-09
1006Australia2026-07-02
1007United Kingdom2026-06-24
1008Brazil2026-06-30
1009Argentina2026-06-20
1010Brazil2026-07-17
1011Italy2026-06-23
1012Japan2026-07-05
1013Spain2026-07-04
1014Germany2026-07-13
1015Argentina2026-07-11
1016Germany2026-06-30
1017United Kingdom2026-06-30
1018Spain2026-07-08
1019India2026-07-10
1020United Kingdom2026-07-07
1021Italy2026-07-16
1022Italy2026-07-03
1023Spain2026-06-29
1024France2026-07-05
1025Italy2026-06-26
1026United Kingdom2026-07-16
1027Argentina2026-07-17
1028Russia2026-07-08
1029United Kingdom2026-07-14
1030Spain2026-06-28
1031Spain2026-07-15
1032Spain2026-07-19
1033Russia2026-07-19
1034Canada2026-07-11
1035France2026-06-30
1036Brazil2026-07-10
1037Australia2026-07-11
1038Germany2026-07-11
1039Australia2026-06-29
1040Australia2026-06-23
1041Spain2026-07-10
1042Spain2026-06-22
1043India2026-06-20
1044Spain2026-07-12
1045Argentina2026-07-08
1046France2026-07-06
1047Italy2026-06-28
1048Spain2026-06-23
1049Brazil2026-07-16

On-Demand Data

NameIdCountryDate
Jennifer B Gaucho1000Australia2026-07-03
Jefferson X Rim1001United Kingdom2026-07-13
Izzy E Caldarera1002Spain2026-06-27
Clifford V Flosi1003India2026-07-03
Mujtaba N Malet1004India2026-06-25
Jennifer R Stockham1005Canada2026-07-19
Cody Q Oldroyd1006Italy2026-07-09
Jennifer Y Shinko1007Italy2026-07-18
Kaitlin R Waycott1008Japan2026-07-09
Darci C Foller1009Italy2026-07-15
Nicolas G Rulapaugh1010United Kingdom2026-06-22
Jones L Morasca1011Japan2026-07-16
Misaki J Ferencz1012United Kingdom2026-07-05
Claire U Schemmer1013Australia2026-07-05
Aruna T Gaucho1014Argentina2026-06-25
Rodrigues V Marrier1015Australia2026-07-14
Jeanfrancois D Kusko1016Spain2026-07-11
James F Ferencz1017India2026-07-13
Leon O Waycott1018Argentina2026-06-20
Mujtaba G Royster1019Russia2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi B FlosiSpainBernardo Dominic UNQUALIFIED
Maria D IturbideCanadaOnyama Limba UNQUALIFIED
Jeanfrancois O SlusarskiAustraliaAsiya Javayant RENEWAL
Jeanfrancois O MacleadGermanyIvan Magalhaes NEW
Nicolas F PoquetteItalyAmy Elsner PROPOSAL
Sinclair Z PaprockiIndiaElwin Sharvill PROPOSAL
Jefferson C FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Claire R MacleadBrazilAsiya Javayant PROPOSAL
Alejandro O AlbaresBrazilOnyama Limba PROPOSAL
Ashley S PerinAustraliaAnna Fali RENEWAL
Johnson Q VenereBrazilStephen Shaw NEGOTIATION
Smith T WaycottAustraliaElwin Sharvill PROPOSAL
Chavez D SlusarskiSpainAsiya Javayant NEW
Jeanfrancois L AlbaresIndiaAnna Fali PROPOSAL
Arvin D BologniaJapanIvan Magalhaes PROPOSAL
Isabel F SchemmerCanadaOnyama Limba PROPOSAL
Ivar K CaudyGermanyAnna Fali RENEWAL
Costa Y GillianGermanyOnyama Limba QUALIFIED
Ivar O SergiItalyXuxue Feng RENEWAL
Smith X WieserSpainBernardo Dominic QUALIFIED
Mujtaba S OldroydFranceIvan Magalhaes PROPOSAL
Maisha H StensethJapanAnna Fali RENEWAL
Wickens G VenereUnited KingdomXuxue Feng NEGOTIATION
Johnson G CampainJapanAmy Elsner QUALIFIED
Francesco C VenereItalyBernardo Dominic NEW
Munro R RulapaughSpainElwin Sharvill NEW
Cody B VocelkaArgentinaIvan Magalhaes NEW
Misaki M MarrierCanadaAnna Fali NEGOTIATION
Arvin X MarrierRussiaElwin Sharvill QUALIFIED
Mujtaba Q MaletIndiaStephen Shaw NEGOTIATION
Claire X BowleyCanadaXuxue Feng NEW
Jefferson D FigeroaBrazilElwin Sharvill NEGOTIATION
Johnson Z WieserSpainElwin Sharvill QUALIFIED
Arvin C DarakjyArgentinaAsiya Javayant NEGOTIATION
Jennifer W ShinkoAustraliaIvan Magalhaes QUALIFIED
Jones H WaycottGermanyAnna Fali RENEWAL
Stacey J MaletCanadaIoni Bowcher PROPOSAL
David G GauchoIndiaElwin Sharvill NEGOTIATION
Mayumi A MaletCanadaOnyama Limba UNQUALIFIED
Leja O DilliardSpainAsiya Javayant QUALIFIED

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