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
Mujtaba W FigeroaArgentinaElwin Sharvill RENEWAL
Murillo A FollerArgentinaAmy Elsner NEGOTIATION
Clifford T FigeroaBrazilIvan Magalhaes NEGOTIATION
Ricardo C WieserItalyAsiya Javayant QUALIFIED
Greenwood S MaletAustraliaAmy Elsner PROPOSAL
Mayumi N BologniaJapanStephen Shaw QUALIFIED
Aruna D FigeroaAustraliaElwin Sharvill NEW
Murillo E GillianBrazilIvan Magalhaes RENEWAL
Emily A PoquetteRussiaBernardo Dominic QUALIFIED
Morrow V OldroydSpainIoni Bowcher PROPOSAL
Isabel O MacleadItalyAmy Elsner RENEWAL
Morrow Y AmigonRussiaIoni Bowcher PROPOSAL
Nicolas R WieserUnited KingdomAmy Elsner NEW
Aruna H StockhamAustraliaXuxue Feng PROPOSAL
Alejandro C VenereBrazilAmy Elsner PROPOSAL
Arvin T RutaCanadaXuxue Feng QUALIFIED
Adams Z KuskoItalyElwin Sharvill PROPOSAL
Octavia R CaldareraSpainAmy Elsner QUALIFIED
Cody V BowleyRussiaStephen Shaw QUALIFIED
Mujtaba Q PoquetteSpainAmy Elsner QUALIFIED
Ricardo T BriddickFranceOnyama Limba NEGOTIATION
Mujtaba N RulapaughBrazilIvan Magalhaes NEGOTIATION
Deepesh W NickaItalyIvan Magalhaes UNQUALIFIED
Jennifer L BologniaJapanIoni Bowcher NEW
Murillo Z SaylorsIndiaAsiya Javayant QUALIFIED
Kaitlin V VenereGermanyAnna Fali QUALIFIED
Octavia L DarakjyFranceBernardo Dominic PROPOSAL
Wickens Q TollnerSpainAmy Elsner UNQUALIFIED
Sinclair R KolmetzArgentinaElwin Sharvill QUALIFIED
Morrow N InouyeUnited KingdomAmy Elsner QUALIFIED
Misaki D RoysterArgentinaBernardo Dominic QUALIFIED
Darci Q ButtGermanyElwin Sharvill PROPOSAL
Munro W WaycottGermanyAnna Fali NEGOTIATION
Aika J RoysterRussiaAmy Elsner NEW
Antonio G StockhamBrazilIoni Bowcher RENEWAL
Ashley S DarakjyItalyBernardo Dominic UNQUALIFIED
Adams M MarrierFranceStephen Shaw RENEWAL
Clifford H VocelkaAustraliaOnyama Limba NEGOTIATION
Silvio W PerinBrazilAsiya Javayant QUALIFIED
Julie A RutaGermanyAnna Fali PROPOSAL
Isabel L IturbideItalyElwin Sharvill NEGOTIATION
Octavia Q KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Aruna Y IturbideRussiaAnna Fali NEGOTIATION
Leja A DilliardRussiaElwin Sharvill NEGOTIATION
Jennifer T BologniaJapanOnyama Limba PROPOSAL
Morrow W SaylorsBrazilIvan Magalhaes QUALIFIED
Aditya Q MacleadJapanAnna Fali RENEWAL
Greenwood Y PaprockiIndiaIvan Magalhaes UNQUALIFIED
Wickens E MarrierIndiaXuxue Feng QUALIFIED
Claire I FigeroaItalyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams D KuskoJapanIvan Magalhaes UNQUALIFIED
Emily D SchemmerAustraliaElwin Sharvill RENEWAL
Deepesh U GillianCanadaXuxue Feng UNQUALIFIED
Arvin V CampainAustraliaXuxue Feng UNQUALIFIED
Octavia U FollerItalyAsiya Javayant QUALIFIED
Alejandro H DilliardIndiaAsiya Javayant NEW
Sinclair J KolmetzJapanStephen Shaw PROPOSAL
Salvatore W FigeroaJapanIvan Magalhaes NEW
Adams F KolmetzIndiaBernardo Dominic RENEWAL
Kadeem V ShinkoJapanIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily L RutaIndia2026-07-14Chemel, James L Cpa PROPOSAL96Xuxue Feng
1001Arvin T SchemmerUnited Kingdom2026-07-05Feiner Bros PROPOSAL24Amy Elsner
1002Leon B BriddickItaly2026-07-08Dorl, James J Esq UNQUALIFIED22Amy Elsner
1003Julie L SergiAustralia2026-07-20Rangoni Of Florence NEW22Onyama Limba
1004Rodrigues G FollerJapan2026-07-26Chanay, Jeffrey A Esq UNQUALIFIED83Anna Fali
1005Isabel U MaletFrance2026-07-06Truhlar And Truhlar Attys UNQUALIFIED53Elwin Sharvill
1006Aruna F InouyeItaly2026-07-01Chapman, Ross E Esq PROPOSAL62Ivan Magalhaes
1007Juan J FlosiAustralia2026-07-22Feiner Bros PROPOSAL1Bernardo Dominic
1008Antonio I FlosiSpain2026-07-17Buckley Miller Wright QUALIFIED48Ivan Magalhaes
1009Jefferson D WaycottFrance2026-07-06Chemel, James L Cpa UNQUALIFIED7Anna Fali
1010Arvin Y DilliardCanada2026-07-16Commercial Press PROPOSAL80Ioni Bowcher
1011Arvin Q CaldareraIndia2026-07-24Chapman, Ross E Esq NEW71Stephen Shaw
1012Francesco D WhobreyUnited Kingdom2026-07-10Morlong Associates QUALIFIED36Elwin Sharvill
1013Juan U IturbideRussia2026-07-28Chapman, Ross E Esq NEW69Stephen Shaw
1014Wickens C ShinkoCanada2026-07-16Truhlar And Truhlar Attys NEW65Elwin Sharvill
1015Misaki Y MacleadArgentina2026-07-12Truhlar And Truhlar Attys NEW27Xuxue Feng
1016Adams L ChuiFrance2026-07-15Feltz Printing Service NEGOTIATION10Stephen Shaw
1017James K MaletBrazil2026-07-23Truhlar And Truhlar Attys UNQUALIFIED16Amy Elsner
1018Julie V BowleyArgentina2026-07-21Benton, John B Jr NEW37Elwin Sharvill
1019Leon S DarakjyUnited Kingdom2026-07-13Rangoni Of Florence NEGOTIATION29Stephen Shaw
1020David N SlusarskiItaly2026-07-07Rousseaux, Michael Esq NEW93Elwin Sharvill
1021Kaitlin R IturbideRussia2026-07-07Truhlar And Truhlar Attys NEGOTIATION80Ioni Bowcher
1022Kadeem R BologniaUnited Kingdom2026-07-26Rousseaux, Michael Esq UNQUALIFIED9Anna Fali
1023Arvin P ButtCanada2026-07-19Feltz Printing Service RENEWAL16Onyama Limba
1024Adams W MorascaAustralia2026-07-29Benton, John B Jr QUALIFIED57Amy Elsner
1025Stacey Y FigeroaRussia2026-07-12Rousseaux, Michael Esq RENEWAL77Amy Elsner
1026Emily F FerenczItaly2026-07-14Benton, John B Jr NEW48Asiya Javayant
1027Emily U BologniaFrance2026-07-11King, Christopher A Esq NEGOTIATION6Anna Fali
1028Jefferson U OldroydJapan2026-07-19Dorl, James J Esq PROPOSAL10Amy Elsner
1029Mayumi I MarrierAustralia2026-07-13Morlong Associates NEGOTIATION83Asiya Javayant
1030Ashley U AlbaresItaly2026-07-11Commercial Press QUALIFIED62Elwin Sharvill
1031Mayumi K CampainArgentina2026-07-06Commercial Press QUALIFIED36Ivan Magalhaes
1032Rodrigues O GauchoCanada2026-07-30Printing Dimensions NEW23Ivan Magalhaes
1033Ashley H StensethFrance2026-07-14Rangoni Of Florence QUALIFIED55Ivan Magalhaes
1034Jefferson B GarufiGermany2026-07-08Printing Dimensions NEW20Anna Fali
1035Mayumi H StockhamIndia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION88Asiya Javayant
1036Morrow A RutaCanada2026-07-14King, Christopher A Esq RENEWAL61Asiya Javayant
1037Adams W SergiItaly2026-07-13Chanay, Jeffrey A Esq RENEWAL40Ivan Magalhaes
1038Ashley W DoeCanada2026-07-04Chemel, James L Cpa NEGOTIATION29Bernardo Dominic
1039Nicolas R MarrierBrazil2026-07-02Rangoni Of Florence PROPOSAL69Stephen Shaw
1040Johnson E GarufiSpain2026-07-19Dorl, James J Esq PROPOSAL82Anna Fali
1041Mujtaba D FigeroaBrazil2026-07-06Benton, John B Jr QUALIFIED77Asiya Javayant
1042Costa O VenereRussia2026-07-23Feltz Printing Service UNQUALIFIED75Stephen Shaw
1043Ricardo M PoquetteIndia2026-07-25Feltz Printing Service NEW48Onyama Limba
1044Salvatore P GauchoArgentina2026-07-09Rousseaux, Michael Esq PROPOSAL49Bernardo Dominic
1045Munro N CaudyAustralia2026-07-16Commercial Press QUALIFIED21Bernardo Dominic
1046Aika X IturbideGermany2026-07-20Feltz Printing Service UNQUALIFIED5Bernardo Dominic
1047Isabel S IturbideRussia2026-07-24Buckley Miller Wright PROPOSAL29Amy Elsner
1048Aruna I BowleyRussia2026-07-21Feltz Printing Service QUALIFIED17Onyama Limba
1049Mayumi X IturbideIndia2026-07-01Morlong Associates NEGOTIATION25Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody Y MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro Q ChuiGermanyAnna Fali NEGOTIATION
Juan F BologniaItalyBernardo Dominic NEGOTIATION
Octavia Y StockhamGermanyAmy Elsner QUALIFIED
Jennifer W GlickCanadaIvan Magalhaes PROPOSAL
Aika M KolmetzJapanAmy Elsner NEGOTIATION
Deepesh E RulapaughFranceIvan Magalhaes NEW
Ricardo O SlusarskiRussiaIvan Magalhaes NEGOTIATION
Cody T RutaFranceIoni Bowcher NEW
Isabel J SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Leon X NestleSpainAnna Fali NEW
James G VenereIndiaIvan Magalhaes PROPOSAL
Leja A SlusarskiCanadaElwin Sharvill QUALIFIED
Emily Z SergiGermanyElwin Sharvill PROPOSAL
Julie I FigeroaUnited KingdomStephen Shaw RENEWAL
James Y KuskoAustraliaAmy Elsner NEW
Emily T SchemmerGermanyAmy Elsner NEGOTIATION
Aditya W MaletFranceIoni Bowcher RENEWAL
Wickens L FigeroaAustraliaXuxue Feng UNQUALIFIED
Deepesh C RimSpainOnyama Limba PROPOSAL
Leon V VenereRussiaXuxue Feng QUALIFIED
Kadeem O BriddickGermanyAnna Fali PROPOSAL
Juan V BriddickIndiaAnna Fali UNQUALIFIED
Greenwood P PoquetteGermanyAmy Elsner NEW
Julie P BriddickFranceBernardo Dominic NEW
Kaitlin R GauchoSpainBernardo Dominic NEGOTIATION
Ashley Z SergiAustraliaAsiya Javayant RENEWAL
Jennifer N CampainUnited KingdomXuxue Feng NEGOTIATION
Juan D InouyeBrazilOnyama Limba NEGOTIATION
Johnson L RimBrazilIoni Bowcher UNQUALIFIED
Juan E AlbaresSpainStephen Shaw UNQUALIFIED
Rodrigues A StockhamFranceAnna Fali NEGOTIATION
Greenwood K RoysterAustraliaIoni Bowcher UNQUALIFIED
Chavez N WaycottIndiaAsiya Javayant RENEWAL
Aika Y MaletRussiaStephen Shaw NEW
Stacey W RulapaughUnited KingdomBernardo Dominic QUALIFIED
Julie J CaudyItalyIoni Bowcher NEGOTIATION
David L StockhamAustraliaStephen Shaw NEW
Ricardo L DarakjyGermanyXuxue Feng NEW
Alejandro W BriddickGermanyAnna Fali UNQUALIFIED
Adams H MorascaUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois D KuskoBrazilStephen Shaw PROPOSAL
Juan G KuskoRussiaAnna Fali NEW
Murillo W WhobreyJapanIvan Magalhaes UNQUALIFIED
Chavez W MorascaRussiaStephen Shaw QUALIFIED
Aruna C NestleIndiaStephen Shaw QUALIFIED
Izzy X SergiAustraliaStephen Shaw PROPOSAL
Sinclair A InouyeCanadaElwin Sharvill PROPOSAL
Adams X PaprockiBrazilAnna Fali UNQUALIFIED
Izzy Y NickaBrazilAsiya Javayant RENEWAL
Frozen Columns
Name
Aika B Sergi
Smith C Ruta
Rodrigues F Poquette
Deepesh D Inouye
Kaitlin D Inouye
Kaitlin N Stockham
Aditya U Glick
Aditya H Butt
Isabel E Perin
Munro Q Paprocki
Ashley M Stenseth
James H Iturbide
Leja C Whobrey
Alejandro P Ruta
Stacey L Garufi
Cody Z Inouye
Maisha S Venere
Maria W Bowley
Morrow N Iturbide
Arvin S Amigon
Sinclair S Marrier
Jones Z Saylors
Stacey X Paprocki
Misaki U Chui
Mayumi M Stenseth
Clifford X Gaucho
Smith U Albares
Alejandro P Amigon
Murillo V Ruta
Leon A Schemmer
Morrow C Marrier
Cody P Ostrosky
Maisha M Paprocki
Johnson Y Foller
Antonio F Amigon
Cody F Malet
Darci S Bowley
Mujtaba N Darakjy
Misaki T Ostrosky
Maria Q Venere
Rodrigues I Bowley
Ricardo U Chui
Aruna U Oldroyd
Clifford Y Butt
Ricardo C Wieser
Maria J Ruta
Tony E Schemmer
Smith L Shinko
Jeanfrancois M Campain
Rodrigues F Ruta
IdCountryDate
1000Japan2026-07-04
1001Japan2026-07-30
1002Brazil2026-07-19
1003Brazil2026-07-18
1004Germany2026-07-06
1005Italy2026-07-26
1006Russia2026-07-19
1007France2026-07-19
1008India2026-07-14
1009Brazil2026-07-21
1010Spain2026-07-19
1011Italy2026-07-29
1012Germany2026-07-26
1013United Kingdom2026-07-13
1014Italy2026-07-05
1015Argentina2026-07-13
1016Italy2026-07-05
1017Canada2026-07-20
1018Russia2026-07-08
1019Brazil2026-07-21
1020France2026-07-04
1021United Kingdom2026-07-13
1022Brazil2026-07-27
1023Italy2026-07-14
1024Japan2026-07-02
1025Germany2026-07-12
1026France2026-07-13
1027Russia2026-07-18
1028Spain2026-07-15
1029Japan2026-07-03
1030Italy2026-07-19
1031United Kingdom2026-07-23
1032Spain2026-07-07
1033France2026-07-02
1034France2026-07-05
1035Argentina2026-07-14
1036United Kingdom2026-07-20
1037Italy2026-07-06
1038Germany2026-07-15
1039France2026-07-19
1040Spain2026-07-03
1041India2026-07-09
1042Japan2026-07-25
1043Japan2026-07-29
1044Brazil2026-07-16
1045Russia2026-07-05
1046Russia2026-07-22
1047Russia2026-07-04
1048Argentina2026-07-01
1049Russia2026-07-09

On-Demand Data

NameIdCountryDate
Aditya N Malet1000India2026-07-27
Adams M Whobrey1001Australia2026-07-18
Salvatore X Vocelka1002Germany2026-07-26
Johnson S Albares1003France2026-07-27
Ricardo B Stockham1004India2026-07-19
Cody A Waycott1005Canada2026-07-07
Jennifer K Vocelka1006United Kingdom2026-07-22
Arvin R Nicka1007Italy2026-07-27
Ricardo Z Inouye1008Spain2026-07-04
Stacey F Waycott1009Russia2026-07-19
David J Kolmetz1010United Kingdom2026-07-27
David X Butt1011India2026-07-30
Jefferson Y Flosi1012Russia2026-07-28
Maisha I Oldroyd1013Germany2026-07-15
Salvatore P Sergi1014Argentina2026-07-03
Aika T Rim1015Argentina2026-07-10
Chavez N Stockham1016Japan2026-07-25
Juan Z Nestle1017Australia2026-07-08
Kaitlin T Royster1018Spain2026-07-25
Stacey W Darakjy1019Australia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan C PaprockiAustraliaStephen Shaw NEW
Greenwood W RoysterCanadaIvan Magalhaes NEW
Greenwood V MaletFranceIvan Magalhaes NEW
Emily J IturbideGermanyAmy Elsner RENEWAL
Chavez Z MarrierCanadaStephen Shaw NEW
Izzy O FerenczGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois H SchemmerItalyIoni Bowcher NEGOTIATION
Jefferson F PaprockiJapanIvan Magalhaes QUALIFIED
Ashley R RimFranceIoni Bowcher UNQUALIFIED
Juan K SergiSpainBernardo Dominic QUALIFIED
Octavia T SergiItalyAmy Elsner QUALIFIED
Aditya Y DilliardUnited KingdomBernardo Dominic NEGOTIATION
Clifford Q SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba E MaletIndiaIvan Magalhaes RENEWAL
Rodrigues Z BriddickCanadaAsiya Javayant QUALIFIED
Jefferson R RimCanadaXuxue Feng RENEWAL
Salvatore N CaudyAustraliaXuxue Feng RENEWAL
Arvin F PaprockiIndiaBernardo Dominic UNQUALIFIED
Munro B RutaSpainOnyama Limba NEW
Ivar Y SlusarskiIndiaStephen Shaw RENEWAL
Clifford F MarrierJapanStephen Shaw NEGOTIATION
James W AlbaresCanadaAnna Fali NEGOTIATION
Sinclair E FlosiSpainStephen Shaw UNQUALIFIED
Misaki J SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Mayumi C PaprockiCanadaStephen Shaw NEW
Francesco X CaudyCanadaAmy Elsner QUALIFIED
Kadeem Z OldroydSpainAnna Fali QUALIFIED
Greenwood G RulapaughFranceBernardo Dominic NEGOTIATION
Claire V OldroydAustraliaIoni Bowcher UNQUALIFIED
Murillo Q FerenczAustraliaXuxue Feng NEGOTIATION
Deepesh I RoysterGermanyXuxue Feng NEGOTIATION
Maisha K StensethCanadaStephen Shaw QUALIFIED
Salvatore H StockhamRussiaOnyama Limba UNQUALIFIED
Jefferson X RutaUnited KingdomBernardo Dominic PROPOSAL
Leon Z ChuiSpainXuxue Feng RENEWAL
Morrow R OstroskyCanadaXuxue Feng NEGOTIATION
James C GauchoGermanyAsiya Javayant RENEWAL
Ivar G SlusarskiJapanXuxue Feng UNQUALIFIED
Leon M PerinIndiaAsiya Javayant NEGOTIATION
Aruna J CaudyRussiaBernardo Dominic NEW

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