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
Ashley M WaycottBrazilBernardo Dominic NEW
Salvatore T RoysterCanadaXuxue Feng UNQUALIFIED
Rodrigues E SergiGermanyAmy Elsner RENEWAL
Adams B PerinSpainElwin Sharvill RENEWAL
Emily I BologniaAustraliaAmy Elsner PROPOSAL
Deepesh L ButtCanadaBernardo Dominic RENEWAL
Greenwood D RimItalyBernardo Dominic NEGOTIATION
Misaki W DoeFranceStephen Shaw PROPOSAL
Rodrigues G CampainAustraliaElwin Sharvill UNQUALIFIED
Costa H PoquetteItalyBernardo Dominic QUALIFIED
Chavez L ShinkoCanadaAsiya Javayant NEGOTIATION
Murillo F PerinUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore H MorascaFranceAsiya Javayant RENEWAL
Maria J RoysterUnited KingdomOnyama Limba QUALIFIED
Darci G GlickUnited KingdomElwin Sharvill NEW
Ivar J GauchoGermanyElwin Sharvill QUALIFIED
Maisha L PerinAustraliaAmy Elsner QUALIFIED
Aruna Q NickaArgentinaIvan Magalhaes UNQUALIFIED
Cody C PerinCanadaXuxue Feng NEW
Faith X StensethIndiaAnna Fali UNQUALIFIED
Maisha G PaprockiRussiaElwin Sharvill NEW
Aditya J ShinkoArgentinaXuxue Feng RENEWAL
Nicolas Z MorascaJapanIoni Bowcher UNQUALIFIED
Sinclair S NestleUnited KingdomElwin Sharvill NEGOTIATION
Morrow S FollerUnited KingdomElwin Sharvill QUALIFIED
Silvio I RoysterUnited KingdomStephen Shaw PROPOSAL
Alejandro I NestleArgentinaBernardo Dominic RENEWAL
Leon G DilliardIndiaXuxue Feng NEGOTIATION
Rodrigues O SlusarskiItalyElwin Sharvill NEW
Isabel N WaycottAustraliaIvan Magalhaes PROPOSAL
Chavez D GlickCanadaAsiya Javayant UNQUALIFIED
Murillo Y WaycottItalyIoni Bowcher NEGOTIATION
Cody L ChuiRussiaIoni Bowcher QUALIFIED
Maria X ButtArgentinaAmy Elsner NEGOTIATION
Francesco Y SchemmerFranceXuxue Feng QUALIFIED
Jones U GillianJapanXuxue Feng NEW
Francesco W WhobreyFranceOnyama Limba QUALIFIED
Leon I GauchoGermanyAsiya Javayant UNQUALIFIED
Leja B WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Emily S BriddickFranceAnna Fali PROPOSAL
Kaitlin T InouyeCanadaBernardo Dominic UNQUALIFIED
Ashley N InouyeItalyIvan Magalhaes RENEWAL
Misaki A CaldareraUnited KingdomStephen Shaw NEGOTIATION
Maisha D DoeRussiaOnyama Limba NEGOTIATION
Chavez E VocelkaSpainXuxue Feng UNQUALIFIED
Juan P CaudyIndiaIoni Bowcher QUALIFIED
Murillo N RimBrazilAsiya Javayant NEW
Tony V GillianSpainBernardo Dominic NEGOTIATION
Francesco R CaldareraCanadaIoni Bowcher RENEWAL
Antonio R SergiIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Arvin K SlusarskiSpainXuxue Feng QUALIFIED
Sinclair L CaudyUnited KingdomStephen Shaw NEW
Clifford Q FerenczGermanyAnna Fali UNQUALIFIED
Rodrigues Q BologniaGermanyAsiya Javayant NEGOTIATION
Leon O VocelkaBrazilStephen Shaw UNQUALIFIED
Munro K TollnerFranceOnyama Limba QUALIFIED
Antonio H CaldareraSpainAmy Elsner QUALIFIED
Ashley Z CampainArgentinaAmy Elsner NEGOTIATION
Stacey C WhobreyUnited KingdomOnyama Limba NEW
Faith E PoquetteSpainOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey V IturbideRussia2026-07-19Chanay, Jeffrey A Esq PROPOSAL96Xuxue Feng
1001Aika W MaletIndia2026-06-25Benton, John B Jr QUALIFIED37Amy Elsner
1002Greenwood M FlosiRussia2026-07-12Morlong Associates RENEWAL5Amy Elsner
1003Ricardo F NestleUnited Kingdom2026-06-29Rousseaux, Michael Esq PROPOSAL33Asiya Javayant
1004Kaitlin P MarrierSpain2026-07-16Buckley Miller Wright QUALIFIED33Ivan Magalhaes
1005Costa C CaudyJapan2026-07-14Benton, John B Jr PROPOSAL38Ivan Magalhaes
1006Clifford S StensethBrazil2026-07-24Chanay, Jeffrey A Esq NEW23Anna Fali
1007Claire Q StensethAustralia2026-07-05Feiner Bros NEGOTIATION28Asiya Javayant
1008Alejandro R RutaBrazil2026-07-05Printing Dimensions UNQUALIFIED19Anna Fali
1009Johnson B ChuiRussia2026-07-06Rangoni Of Florence PROPOSAL88Asiya Javayant
1010Antonio H SaylorsRussia2026-07-03Morlong Associates NEGOTIATION50Ioni Bowcher
1011Stacey N MaletUnited Kingdom2026-07-07King, Christopher A Esq NEW90Anna Fali
1012Deepesh W ShinkoRussia2026-06-29Feiner Bros RENEWAL26Ioni Bowcher
1013David Z FerenczIndia2026-07-05King, Christopher A Esq NEW79Amy Elsner
1014Francesco X PoquetteCanada2026-07-01Printing Dimensions NEGOTIATION91Anna Fali
1015Maria Q PoquetteAustralia2026-06-30Dorl, James J Esq UNQUALIFIED92Anna Fali
1016Clifford M PoquetteSpain2026-07-21Feiner Bros UNQUALIFIED88Elwin Sharvill
1017Greenwood I StensethAustralia2026-07-16Morlong Associates UNQUALIFIED46Elwin Sharvill
1018Costa A CampainAustralia2026-06-29Truhlar And Truhlar Attys UNQUALIFIED21Asiya Javayant
1019Jennifer X StensethGermany2026-07-08Chapman, Ross E Esq NEGOTIATION39Amy Elsner
1020David V PerinItaly2026-07-19Commercial Press NEGOTIATION19Xuxue Feng
1021Juan D BowleyArgentina2026-07-24Rousseaux, Michael Esq RENEWAL20Bernardo Dominic
1022Arvin M StensethBrazil2026-07-08Morlong Associates NEGOTIATION88Ioni Bowcher
1023Emily Y ShinkoBrazil2026-07-22Chapman, Ross E Esq PROPOSAL95Anna Fali
1024Nicolas G NestleBrazil2026-06-25Printing Dimensions NEW97Ioni Bowcher
1025Isabel F PaprockiGermany2026-07-13Buckley Miller Wright RENEWAL1Ivan Magalhaes
1026Aditya L ButtGermany2026-07-20Dorl, James J Esq NEW45Xuxue Feng
1027Kadeem V RutaRussia2026-07-22Chemel, James L Cpa RENEWAL35Elwin Sharvill
1028Murillo U OldroydAustralia2026-07-02Chapman, Ross E Esq NEW61Asiya Javayant
1029Misaki Z CampainJapan2026-07-19King, Christopher A Esq NEW37Stephen Shaw
1030Darci L SaylorsItaly2026-06-28King, Christopher A Esq RENEWAL33Elwin Sharvill
1031Adams H SchemmerFrance2026-07-06Chapman, Ross E Esq PROPOSAL89Stephen Shaw
1032Clifford O StockhamCanada2026-07-18Chapman, Ross E Esq UNQUALIFIED9Onyama Limba
1033Munro D AmigonSpain2026-07-06Chapman, Ross E Esq NEW2Ivan Magalhaes
1034Jennifer G CaudyRussia2026-07-14Benton, John B Jr RENEWAL43Ivan Magalhaes
1035Emily L OldroydCanada2026-07-02Truhlar And Truhlar Attys RENEWAL18Ioni Bowcher
1036Antonio Q ChuiItaly2026-07-18Commercial Press RENEWAL29Elwin Sharvill
1037Maisha T ButtItaly2026-07-19Printing Dimensions RENEWAL9Amy Elsner
1038Adams R PaprockiJapan2026-07-06Buckley Miller Wright RENEWAL6Elwin Sharvill
1039Aika Q FlosiUnited Kingdom2026-07-23Morlong Associates NEW7Bernardo Dominic
1040Salvatore E PerinCanada2026-06-30Commercial Press UNQUALIFIED64Asiya Javayant
1041Julie J GarufiItaly2026-06-25Commercial Press PROPOSAL77Asiya Javayant
1042Maria E PaprockiAustralia2026-07-10Chanay, Jeffrey A Esq QUALIFIED76Ivan Magalhaes
1043Jennifer X MaletArgentina2026-07-15Feiner Bros PROPOSAL67Ivan Magalhaes
1044Chavez P RulapaughArgentina2026-07-16King, Christopher A Esq NEGOTIATION8Elwin Sharvill
1045Izzy O WhobreyGermany2026-07-21Commercial Press QUALIFIED80Asiya Javayant
1046Isabel L RimArgentina2026-06-28King, Christopher A Esq QUALIFIED10Ioni Bowcher
1047Misaki L BologniaBrazil2026-07-02Feiner Bros PROPOSAL63Xuxue Feng
1048Jennifer O KolmetzCanada2026-07-17Chemel, James L Cpa QUALIFIED49Bernardo Dominic
1049Maisha Y FlosiIndia2026-07-13Feltz Printing Service PROPOSAL99Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Isabel Q SchemmerGermanyAsiya Javayant NEGOTIATION
Murillo W GauchoArgentinaIvan Magalhaes UNQUALIFIED
Deepesh U MaletRussiaStephen Shaw RENEWAL
Ivar I DilliardUnited KingdomIoni Bowcher PROPOSAL
Chavez T AlbaresRussiaAmy Elsner NEGOTIATION
Deepesh S SaylorsGermanyIoni Bowcher UNQUALIFIED
Salvatore O CampainArgentinaOnyama Limba UNQUALIFIED
Rodrigues W PerinFranceAnna Fali NEGOTIATION
Munro X GarufiRussiaAsiya Javayant NEGOTIATION
Kadeem K FlosiJapanElwin Sharvill NEW
Aditya X SlusarskiCanadaAnna Fali QUALIFIED
Stacey O MarrierFranceBernardo Dominic RENEWAL
Munro C PerinItalyIoni Bowcher UNQUALIFIED
Silvio U BriddickUnited KingdomStephen Shaw QUALIFIED
Cody P DarakjySpainAsiya Javayant UNQUALIFIED
Morrow W KolmetzUnited KingdomIvan Magalhaes NEW
Jefferson W StockhamCanadaIoni Bowcher QUALIFIED
Leja B KolmetzBrazilXuxue Feng RENEWAL
Isabel W OldroydItalyXuxue Feng RENEWAL
Mujtaba L OldroydJapanStephen Shaw PROPOSAL
Isabel M SchemmerJapanOnyama Limba NEGOTIATION
Mayumi W ShinkoUnited KingdomAnna Fali QUALIFIED
Mayumi M IturbideJapanIoni Bowcher UNQUALIFIED
Jeanfrancois T CaudyJapanElwin Sharvill NEGOTIATION
Arvin B GlickIndiaAsiya Javayant PROPOSAL
Jefferson L BowleySpainOnyama Limba PROPOSAL
Clifford W FigeroaUnited KingdomIvan Magalhaes RENEWAL
Maisha C FollerSpainAmy Elsner PROPOSAL
Jennifer S MarrierItalyAnna Fali RENEWAL
Leon C PaprockiItalyIvan Magalhaes NEW
Sinclair M InouyeAustraliaAmy Elsner UNQUALIFIED
Leja V WhobreyIndiaElwin Sharvill NEW
Murillo M StockhamBrazilAsiya Javayant RENEWAL
Aika Q PerinSpainBernardo Dominic NEW
Darci E PoquetteJapanAsiya Javayant UNQUALIFIED
Rodrigues F GauchoIndiaStephen Shaw PROPOSAL
Rodrigues O NestleFranceIvan Magalhaes PROPOSAL
Ashley I DilliardSpainAnna Fali NEGOTIATION
Salvatore R ButtAustraliaBernardo Dominic UNQUALIFIED
Darci L ShinkoFranceAmy Elsner UNQUALIFIED
David Q StensethIndiaXuxue Feng NEGOTIATION
Isabel E InouyeFranceStephen Shaw NEGOTIATION
Aruna E VocelkaAustraliaIvan Magalhaes NEGOTIATION
Maisha V GillianItalyAsiya Javayant RENEWAL
Juan F DarakjyJapanOnyama Limba NEGOTIATION
Sinclair V VenereRussiaStephen Shaw UNQUALIFIED
Wickens F DoeGermanyAnna Fali RENEWAL
Leon W SchemmerBrazilStephen Shaw NEW
Greenwood F NickaUnited KingdomIvan Magalhaes PROPOSAL
Darci H WhobreyRussiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Adams Z Paprocki
Aruna L Dilliard
Ivar A Gaucho
Jeanfrancois M Vocelka
Darci Q Dilliard
David V Caudy
Jefferson D Flosi
Octavia A Kolmetz
Juan F Malet
Silvio D Waycott
Kaitlin I Butt
Jones L Flosi
Faith N Oldroyd
Murillo I Kusko
Kaitlin B Malet
Juan G Saylors
Aruna L Chui
Ashley O Kusko
Emily A Chui
Kadeem C Paprocki
Julie E Waycott
Octavia B Gaucho
Chavez L Stenseth
Smith L Nestle
Ricardo Z Gaucho
Costa O Slusarski
Mayumi K Ruta
Emily V Royster
Chavez I Albares
Murillo T Amigon
Jefferson P Waycott
Jones O Perin
Claire S Royster
Kadeem V Inouye
Rodrigues G Caldarera
Kadeem U Wieser
Chavez M Caldarera
Julie C Doe
Kaitlin Y Chui
Jennifer A Malet
Ricardo L Amigon
David A Sergi
Ricardo U Stenseth
Smith N Caldarera
Octavia L Sergi
Sinclair S Bowley
Mujtaba S Dilliard
James Y Morasca
Silvio F Tollner
Tony B Iturbide
IdCountryDate
1000Canada2026-07-06
1001Germany2026-07-04
1002Germany2026-06-27
1003Australia2026-07-09
1004Argentina2026-07-09
1005Italy2026-07-21
1006India2026-07-24
1007Australia2026-06-25
1008Argentina2026-07-11
1009Japan2026-07-10
1010Argentina2026-07-03
1011Canada2026-07-15
1012Russia2026-06-29
1013Canada2026-07-01
1014Italy2026-07-03
1015Italy2026-07-24
1016Italy2026-07-03
1017Brazil2026-06-28
1018Brazil2026-06-26
1019Italy2026-07-06
1020Russia2026-07-21
1021France2026-07-03
1022Italy2026-07-19
1023Russia2026-07-24
1024Italy2026-07-08
1025Spain2026-07-23
1026Germany2026-07-19
1027Australia2026-07-24
1028India2026-07-23
1029Russia2026-07-12
1030Argentina2026-07-18
1031Russia2026-07-13
1032Australia2026-06-27
1033Argentina2026-07-07
1034Germany2026-06-30
1035United Kingdom2026-07-20
1036Canada2026-07-01
1037Russia2026-07-11
1038Russia2026-07-17
1039Brazil2026-07-12
1040Germany2026-07-17
1041Australia2026-07-08
1042Brazil2026-07-13
1043Germany2026-07-19
1044Australia2026-07-15
1045Italy2026-06-27
1046Argentina2026-07-14
1047Canada2026-06-27
1048France2026-07-17
1049Brazil2026-07-03

On-Demand Data

NameIdCountryDate
Adams Y Sergi1000Spain2026-06-26
Wickens Y Kusko1001Spain2026-07-10
Mujtaba F Tollner1002Canada2026-07-14
Mayumi C Rim1003Japan2026-07-14
Kaitlin L Marrier1004Russia2026-07-21
Morrow H Marrier1005India2026-07-04
Claire M Maclead1006Canada2026-07-03
Silvio B Flosi1007Canada2026-06-30
Darci Q Caudy1008Germany2026-07-04
Jefferson G Butt1009France2026-07-01
Arvin U Waycott1010Spain2026-07-20
David S Ostrosky1011United Kingdom2026-06-27
Juan R Slusarski1012Australia2026-06-28
Arvin J Waycott1013Canada2026-07-12
Alejandro D Slusarski1014Italy2026-06-26
Julie X Ostrosky1015India2026-07-20
Faith D Inouye1016India2026-07-01
James H Maclead1017India2026-07-04
Jeanfrancois J Royster1018Russia2026-07-11
Jennifer M Doe1019Spain2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams B OstroskyArgentinaStephen Shaw NEW
James P MaletFranceAmy Elsner QUALIFIED
Rodrigues B StensethFranceStephen Shaw RENEWAL
David K FerenczUnited KingdomOnyama Limba NEGOTIATION
Greenwood H ButtRussiaStephen Shaw NEGOTIATION
Murillo Q SlusarskiRussiaElwin Sharvill UNQUALIFIED
Arvin K PoquetteIndiaOnyama Limba NEW
Sinclair B CaudyGermanyAnna Fali NEGOTIATION
Jefferson F NickaAustraliaOnyama Limba QUALIFIED
Jennifer D SaylorsCanadaElwin Sharvill UNQUALIFIED
Tony I NestleBrazilElwin Sharvill RENEWAL
Johnson S CaldareraItalyIoni Bowcher NEGOTIATION
Smith I MarrierBrazilAmy Elsner QUALIFIED
Aika Y AmigonIndiaAnna Fali UNQUALIFIED
Aika Z CampainRussiaIoni Bowcher PROPOSAL
Morrow D FollerFranceStephen Shaw PROPOSAL
Alejandro T NickaJapanAnna Fali RENEWAL
Ashley H CaldareraJapanAnna Fali NEW
Jefferson X SaylorsAustraliaAsiya Javayant NEGOTIATION
Chavez W PaprockiRussiaIvan Magalhaes UNQUALIFIED
Sinclair Z IturbideIndiaXuxue Feng NEW
Rodrigues V GlickAustraliaBernardo Dominic PROPOSAL
Clifford L KuskoAustraliaBernardo Dominic UNQUALIFIED
Morrow F DoeItalyElwin Sharvill UNQUALIFIED
Jones Y RutaArgentinaIvan Magalhaes NEW
Mujtaba C TollnerGermanyOnyama Limba PROPOSAL
Izzy J PaprockiCanadaAnna Fali NEGOTIATION
Tony K CampainAustraliaXuxue Feng NEGOTIATION
Juan R TollnerAustraliaBernardo Dominic RENEWAL
Johnson D WieserAustraliaAnna Fali RENEWAL
Octavia B DilliardArgentinaBernardo Dominic PROPOSAL
Leon F DarakjyGermanyIvan Magalhaes RENEWAL
Rodrigues C NickaUnited KingdomAsiya Javayant QUALIFIED
Silvio R MarrierArgentinaXuxue Feng PROPOSAL
Smith A CampainFranceAnna Fali QUALIFIED
Rodrigues K BologniaUnited KingdomIoni Bowcher QUALIFIED
Maria J FlosiIndiaElwin Sharvill RENEWAL
Rodrigues O InouyeAustraliaBernardo Dominic QUALIFIED
Costa R DilliardAustraliaOnyama Limba NEGOTIATION
Smith R CaldareraArgentinaBernardo Dominic 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>