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
Salvatore C NickaCanadaBernardo Dominic PROPOSAL
Ricardo Q MacleadArgentinaElwin Sharvill RENEWAL
Sinclair I DilliardGermanyBernardo Dominic UNQUALIFIED
Jennifer T BowleyRussiaIoni Bowcher NEGOTIATION
Greenwood W AmigonArgentinaAnna Fali NEW
Faith Q RimCanadaIvan Magalhaes QUALIFIED
David S FigeroaAustraliaOnyama Limba PROPOSAL
James C RimCanadaIvan Magalhaes UNQUALIFIED
Nicolas I TollnerAustraliaAmy Elsner QUALIFIED
Munro X ButtIndiaAmy Elsner NEW
Emily Z DilliardItalyElwin Sharvill NEGOTIATION
Jefferson N VocelkaBrazilStephen Shaw NEGOTIATION
Costa S MacleadAustraliaXuxue Feng UNQUALIFIED
Faith B PoquetteSpainIoni Bowcher NEW
Mujtaba N SchemmerItalyOnyama Limba UNQUALIFIED
Johnson R PaprockiJapanOnyama Limba QUALIFIED
Ivar A DilliardSpainOnyama Limba PROPOSAL
Cody W ChuiUnited KingdomBernardo Dominic QUALIFIED
Arvin Q AlbaresGermanyAmy Elsner QUALIFIED
Wickens A AlbaresItalyOnyama Limba RENEWAL
Tony T ButtFranceIoni Bowcher RENEWAL
Greenwood W FerenczGermanyIoni Bowcher PROPOSAL
Aruna D OldroydAustraliaElwin Sharvill RENEWAL
Ashley U BriddickSpainStephen Shaw NEGOTIATION
Ricardo R AlbaresBrazilOnyama Limba QUALIFIED
Wickens Z GillianJapanIoni Bowcher UNQUALIFIED
Izzy P GillianAustraliaIoni Bowcher QUALIFIED
Jennifer G CaudyCanadaBernardo Dominic QUALIFIED
Nicolas P GarufiRussiaIvan Magalhaes UNQUALIFIED
Kaitlin T MaletSpainIvan Magalhaes NEGOTIATION
Kaitlin S PaprockiRussiaStephen Shaw NEGOTIATION
Julie U StockhamJapanIvan Magalhaes UNQUALIFIED
Jones R IturbideUnited KingdomAsiya Javayant NEGOTIATION
Greenwood R GauchoBrazilIvan Magalhaes RENEWAL
David W SaylorsCanadaIvan Magalhaes QUALIFIED
Julie P ButtCanadaStephen Shaw QUALIFIED
Stacey U MacleadGermanyIoni Bowcher RENEWAL
Izzy F InouyeItalyIvan Magalhaes RENEWAL
Sinclair M SlusarskiArgentinaAmy Elsner RENEWAL
Alejandro B ShinkoIndiaXuxue Feng PROPOSAL
Johnson O PoquetteJapanIoni Bowcher NEGOTIATION
James L OldroydIndiaAsiya Javayant UNQUALIFIED
Morrow H GarufiArgentinaXuxue Feng NEGOTIATION
Juan M DilliardCanadaIvan Magalhaes PROPOSAL
Darci J CampainJapanBernardo Dominic UNQUALIFIED
Aditya K GillianFranceStephen Shaw PROPOSAL
Sinclair K PerinJapanAnna Fali NEW
Adams A NestleBrazilAnna Fali QUALIFIED
Kaitlin B CaldareraRussiaOnyama Limba QUALIFIED
Salvatore T DoeJapanAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson J SchemmerRussiaElwin Sharvill QUALIFIED
Aruna P WhobreyIndiaAmy Elsner NEGOTIATION
Sinclair Y FigeroaUnited KingdomOnyama Limba QUALIFIED
Leja S InouyeGermanyStephen Shaw QUALIFIED
Misaki S AlbaresSpainXuxue Feng QUALIFIED
Aditya J SaylorsUnited KingdomAsiya Javayant QUALIFIED
Clifford O SaylorsItalyOnyama Limba QUALIFIED
Juan C FollerGermanyOnyama Limba NEW
Maria E RulapaughArgentinaBernardo Dominic QUALIFIED
Francesco W WhobreyGermanyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya A KolmetzIndia2024-06-14Truhlar And Truhlar Attys NEGOTIATION85Bernardo Dominic
1001Cody C NickaCanada2024-06-01Chemel, James L Cpa NEGOTIATION73Ivan Magalhaes
1002Jefferson G ChuiRussia2024-06-16King, Christopher A Esq RENEWAL81Stephen Shaw
1003James C GarufiAustralia2024-06-07Feiner Bros QUALIFIED14Ioni Bowcher
1004Jefferson J BologniaUnited Kingdom2024-06-16Buckley Miller Wright NEGOTIATION87Anna Fali
1005Isabel Z OstroskyItaly2024-06-07Feiner Bros QUALIFIED76Elwin Sharvill
1006Aika Z CaldareraAustralia2024-06-10Rangoni Of Florence RENEWAL82Xuxue Feng
1007Jennifer T GillianIndia2024-06-17Printing Dimensions NEGOTIATION89Bernardo Dominic
1008Jones S SchemmerSpain2024-06-21Feltz Printing Service UNQUALIFIED8Onyama Limba
1009Jones E DilliardJapan2024-05-31Chanay, Jeffrey A Esq NEGOTIATION6Elwin Sharvill
1010Antonio L GauchoGermany2024-06-17Truhlar And Truhlar Attys UNQUALIFIED96Stephen Shaw
1011Mayumi Z FollerSpain2024-06-21Rangoni Of Florence UNQUALIFIED62Onyama Limba
1012Morrow H MarrierBrazil2024-05-29Feltz Printing Service NEW53Stephen Shaw
1013Julie X NestleJapan2024-05-31Morlong Associates NEGOTIATION67Ivan Magalhaes
1014Clifford Q RutaGermany2024-06-12King, Christopher A Esq QUALIFIED65Onyama Limba
1015Juan M TollnerBrazil2024-05-25Feiner Bros PROPOSAL32Asiya Javayant
1016Arvin H WaycottUnited Kingdom2024-06-18Benton, John B Jr NEGOTIATION89Bernardo Dominic
1017Nicolas Q RulapaughRussia2024-06-07Morlong Associates NEGOTIATION44Bernardo Dominic
1018Johnson G NickaCanada2024-06-04Commercial Press QUALIFIED63Ioni Bowcher
1019Claire O DilliardArgentina2024-06-21Buckley Miller Wright RENEWAL11Ivan Magalhaes
1020Francesco I SlusarskiFrance2024-05-26Feiner Bros PROPOSAL20Asiya Javayant
1021Stacey V RutaAustralia2024-06-04Morlong Associates NEW72Xuxue Feng
1022Antonio S GillianArgentina2024-06-22Truhlar And Truhlar Attys NEGOTIATION52Ioni Bowcher
1023Rodrigues V BriddickSpain2024-06-10Feltz Printing Service UNQUALIFIED64Bernardo Dominic
1024Juan I RutaAustralia2024-06-18Truhlar And Truhlar Attys QUALIFIED99Onyama Limba
1025Izzy Y MorascaFrance2024-06-14Rangoni Of Florence PROPOSAL39Anna Fali
1026Jones I CaldareraArgentina2024-05-30Dorl, James J Esq PROPOSAL50Bernardo Dominic
1027Maria E CampainUnited Kingdom2024-06-21Printing Dimensions PROPOSAL57Stephen Shaw
1028Aditya Y NickaAustralia2024-06-01Chanay, Jeffrey A Esq PROPOSAL43Ioni Bowcher
1029Ricardo J KolmetzAustralia2024-06-06Rousseaux, Michael Esq UNQUALIFIED47Ioni Bowcher
1030Nicolas B BologniaRussia2024-06-17Feltz Printing Service UNQUALIFIED33Ivan Magalhaes
1031Jones L FlosiIndia2024-06-19Dorl, James J Esq RENEWAL8Asiya Javayant
1032Adams G RimAustralia2024-06-16Truhlar And Truhlar Attys NEGOTIATION69Amy Elsner
1033Arvin I DarakjyFrance2024-06-06Benton, John B Jr RENEWAL20Ivan Magalhaes
1034Faith B RoysterIndia2024-06-21Buckley Miller Wright NEW89Bernardo Dominic
1035Arvin S MaletGermany2024-06-04Benton, John B Jr RENEWAL1Onyama Limba
1036Leon G RoysterCanada2024-06-19Truhlar And Truhlar Attys NEGOTIATION55Ioni Bowcher
1037Jefferson R NickaFrance2024-06-14King, Christopher A Esq NEGOTIATION43Stephen Shaw
1038Smith P GauchoItaly2024-06-05Feltz Printing Service UNQUALIFIED64Asiya Javayant
1039Clifford I RimSpain2024-05-27Chemel, James L Cpa NEW63Amy Elsner
1040Deepesh C CampainSpain2024-05-25Rangoni Of Florence UNQUALIFIED78Bernardo Dominic
1041Maria A MaletUnited Kingdom2024-05-30Chanay, Jeffrey A Esq UNQUALIFIED43Stephen Shaw
1042Ivar X NickaJapan2024-06-02Dorl, James J Esq NEW44Ivan Magalhaes
1043Tony T InouyeSpain2024-06-02Morlong Associates NEGOTIATION5Amy Elsner
1044Salvatore E StockhamRussia2024-06-11Rangoni Of Florence QUALIFIED43Xuxue Feng
1045Izzy A FigeroaCanada2024-06-16Morlong Associates NEGOTIATION59Xuxue Feng
1046Faith G KolmetzFrance2024-06-19Printing Dimensions NEGOTIATION3Ioni Bowcher
1047Emily V VenereJapan2024-06-06Rousseaux, Michael Esq RENEWAL81Ioni Bowcher
1048Jones A FlosiBrazil2024-05-26Feiner Bros UNQUALIFIED99Bernardo Dominic
1049Stacey E WaycottArgentina2024-05-31Chanay, Jeffrey A Esq RENEWAL94Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Octavia T BologniaAustraliaXuxue Feng UNQUALIFIED
Clifford P GauchoGermanyElwin Sharvill PROPOSAL
Izzy E GarufiBrazilAmy Elsner UNQUALIFIED
Clifford B VocelkaCanadaIvan Magalhaes RENEWAL
Julie Q DarakjySpainAnna Fali QUALIFIED
Leja K PaprockiBrazilOnyama Limba NEW
Murillo T ChuiUnited KingdomStephen Shaw PROPOSAL
Jennifer C MorascaFranceOnyama Limba QUALIFIED
Greenwood B SchemmerItalyAsiya Javayant QUALIFIED
Kaitlin C OldroydFranceBernardo Dominic PROPOSAL
James H GarufiCanadaElwin Sharvill NEGOTIATION
Aika M VenereFranceStephen Shaw NEGOTIATION
Cody S CampainGermanyIvan Magalhaes QUALIFIED
Cody T ChuiRussiaElwin Sharvill QUALIFIED
Darci P RimItalyIvan Magalhaes NEGOTIATION
Jones O InouyeFranceAnna Fali RENEWAL
Juan C FerenczUnited KingdomOnyama Limba PROPOSAL
Jones L GlickArgentinaBernardo Dominic NEGOTIATION
Jones F StensethAustraliaAnna Fali QUALIFIED
Rodrigues O GauchoArgentinaAnna Fali NEGOTIATION
Adams V GlickFranceElwin Sharvill RENEWAL
Darci K NestleIndiaStephen Shaw UNQUALIFIED
Mayumi K MaletIndiaAmy Elsner PROPOSAL
Tony O IturbideUnited KingdomAsiya Javayant NEW
Ricardo X StensethGermanyIoni Bowcher RENEWAL
Julie O OldroydCanadaAsiya Javayant RENEWAL
Salvatore N RoysterIndiaAnna Fali RENEWAL
Alejandro P ChuiUnited KingdomAmy Elsner RENEWAL
Wickens E NickaAustraliaOnyama Limba PROPOSAL
Faith B KuskoGermanyElwin Sharvill QUALIFIED
Jones E IturbideBrazilIvan Magalhaes PROPOSAL
Arvin W FigeroaCanadaAsiya Javayant UNQUALIFIED
Octavia Z DarakjySpainAnna Fali NEW
Maisha T DoeItalyBernardo Dominic UNQUALIFIED
David B KuskoIndiaAnna Fali QUALIFIED
Costa L BologniaJapanXuxue Feng PROPOSAL
Salvatore D PaprockiSpainAnna Fali RENEWAL
Ashley X MacleadSpainBernardo Dominic NEW
Rodrigues D DarakjyCanadaElwin Sharvill RENEWAL
Murillo V NestleSpainAnna Fali UNQUALIFIED
Clifford P GillianItalyXuxue Feng PROPOSAL
Faith X ButtRussiaIoni Bowcher NEGOTIATION
Aruna E CampainItalyBernardo Dominic NEGOTIATION
Mayumi L WaycottFranceOnyama Limba NEW
Jones X CaldareraAustraliaAnna Fali PROPOSAL
Maria W MaletRussiaAsiya Javayant NEW
Silvio Z PoquetteItalyAmy Elsner NEW
Claire D GlickFranceIoni Bowcher QUALIFIED
Claire C PoquetteJapanAsiya Javayant QUALIFIED
Faith G MaletAustraliaXuxue Feng RENEWAL
Frozen Columns
Name
Jennifer N Caldarera
Octavia V Ferencz
Mujtaba P Waycott
Antonio O Sergi
Arvin X Iturbide
Mujtaba Q Garufi
Emily C Perin
Claire B Figeroa
Leon O Malet
Kaitlin T Foller
Jennifer B Rim
Silvio L Caldarera
Munro K Chui
Juan F Schemmer
Emily D Garufi
Aditya L Oldroyd
Stacey P Caudy
Jones H Stenseth
Mujtaba M Doe
Adams Y Kolmetz
Silvio Q Garufi
Faith F Stenseth
Mayumi M Waycott
Arvin X Morasca
Morrow J Foller
Clifford O Poquette
Claire C Flosi
Antonio R Campain
Jones E Morasca
Jefferson L Iturbide
Ricardo Y Garufi
Nicolas P Ostrosky
Julie A Butt
Aika Y Stenseth
Faith R Paprocki
Nicolas I Figeroa
Darci C Nicka
Johnson R Marrier
Deepesh M Caldarera
Clifford H Gaucho
Leon T Amigon
Kaitlin E Slusarski
Leon E Stenseth
Maisha K Waycott
Smith R Shinko
Jeanfrancois D Rim
Morrow L Malet
Salvatore M Schemmer
Francesco L Morasca
Kadeem C Nicka
IdCountryDate
1000United Kingdom2024-06-17
1001United Kingdom2024-06-12
1002Canada2024-06-04
1003India2024-06-08
1004Australia2024-05-30
1005Germany2024-06-04
1006Brazil2024-06-16
1007United Kingdom2024-05-31
1008Canada2024-05-24
1009Spain2024-06-02
1010Australia2024-05-31
1011France2024-05-27
1012India2024-06-04
1013Germany2024-06-13
1014Spain2024-06-04
1015Italy2024-06-06
1016Italy2024-06-19
1017Canada2024-06-17
1018Germany2024-05-28
1019Argentina2024-06-18
1020Russia2024-06-19
1021Russia2024-06-22
1022Canada2024-06-20
1023Italy2024-06-19
1024Canada2024-06-14
1025Germany2024-06-12
1026Australia2024-06-16
1027Spain2024-05-30
1028Canada2024-06-08
1029United Kingdom2024-06-10
1030India2024-06-05
1031Russia2024-05-27
1032India2024-05-31
1033Germany2024-06-07
1034India2024-05-24
1035Italy2024-06-19
1036Germany2024-05-25
1037India2024-05-29
1038India2024-06-19
1039Australia2024-06-14
1040Australia2024-06-11
1041Australia2024-06-09
1042Spain2024-06-22
1043Russia2024-06-02
1044Japan2024-06-01
1045India2024-06-01
1046Brazil2024-05-26
1047France2024-06-01
1048Australia2024-05-31
1049Germany2024-06-22

On-Demand Data

NameIdCountryDate
Deepesh K Malet1000France2024-06-12
Silvio F Wieser1001Italy2024-06-13
Ivar N Garufi1002Japan2024-06-06
Francesco B Royster1003Argentina2024-06-09
Alejandro X Nestle1004Spain2024-05-25
Faith X Briddick1005Brazil2024-05-24
Sinclair R Nestle1006Australia2024-06-20
Ricardo Q Bolognia1007United Kingdom2024-06-05
Jeanfrancois G Gaucho1008Germany2024-06-20
Rodrigues K Darakjy1009France2024-06-02
Costa C Butt1010Russia2024-06-13
James V Tollner1011Germany2024-06-07
Antonio M Gillian1012Canada2024-06-18
Smith Y Kusko1013France2024-06-11
Antonio I Iturbide1014Japan2024-06-19
Mayumi A Waycott1015Brazil2024-05-31
Stacey S Caudy1016France2024-06-10
Julie M Waycott1017India2024-06-05
Aika E Ruta1018United Kingdom2024-06-02
Jefferson X Morasca1019Germany2024-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith I OstroskyItalyAmy Elsner QUALIFIED
Chavez B StensethJapanStephen Shaw UNQUALIFIED
Aditya V FigeroaFranceElwin Sharvill RENEWAL
Stacey I SergiArgentinaAnna Fali RENEWAL
Murillo J GauchoJapanIvan Magalhaes PROPOSAL
Maisha R RimArgentinaIoni Bowcher NEW
Ivar X DilliardRussiaBernardo Dominic QUALIFIED
Jones N GarufiItalyAmy Elsner NEGOTIATION
Greenwood T RoysterAustraliaStephen Shaw RENEWAL
Deepesh D OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson W BologniaArgentinaXuxue Feng RENEWAL
Kadeem Q MacleadCanadaAsiya Javayant NEW
Antonio X PoquetteArgentinaIoni Bowcher PROPOSAL
Stacey V MaletCanadaStephen Shaw NEGOTIATION
Nicolas W FollerGermanyAsiya Javayant UNQUALIFIED
Nicolas M SergiArgentinaAsiya Javayant PROPOSAL
Alejandro B FollerRussiaElwin Sharvill RENEWAL
Octavia P DilliardFranceOnyama Limba NEGOTIATION
Ricardo B CaldareraFranceIvan Magalhaes UNQUALIFIED
Leja P StensethJapanIvan Magalhaes UNQUALIFIED
Arvin J PerinCanadaOnyama Limba PROPOSAL
Darci R CaldareraBrazilIoni Bowcher QUALIFIED
Stacey Q CaldareraIndiaXuxue Feng NEGOTIATION
Ricardo C KuskoSpainIvan Magalhaes PROPOSAL
Nicolas U CampainSpainOnyama Limba NEGOTIATION
Kaitlin V ButtRussiaIoni Bowcher QUALIFIED
Salvatore J StockhamBrazilAsiya Javayant UNQUALIFIED
Nicolas N KolmetzArgentinaIvan Magalhaes PROPOSAL
Misaki C SergiIndiaAmy Elsner RENEWAL
Mujtaba J MorascaFranceElwin Sharvill NEGOTIATION
Stacey I DarakjyUnited KingdomBernardo Dominic RENEWAL
Jefferson W BriddickJapanStephen Shaw UNQUALIFIED
Emily R RoysterFranceIvan Magalhaes PROPOSAL
Octavia Y SaylorsGermanyXuxue Feng NEW
Aditya O DoeJapanIvan Magalhaes QUALIFIED
Darci Q WieserFranceStephen Shaw RENEWAL
Isabel J VocelkaIndiaStephen Shaw UNQUALIFIED
Tony T OstroskyIndiaElwin Sharvill PROPOSAL
Maisha Y StockhamCanadaXuxue Feng NEGOTIATION
Jennifer S InouyeGermanyBernardo Dominic 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>