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
David E RimBrazilOnyama Limba UNQUALIFIED
Johnson J MorascaFranceOnyama Limba NEW
Jeanfrancois S BologniaFranceIoni Bowcher QUALIFIED
James P GarufiRussiaStephen Shaw QUALIFIED
Maria M OstroskyRussiaBernardo Dominic QUALIFIED
Emily S SlusarskiSpainAsiya Javayant NEW
Emily Z MacleadIndiaAnna Fali QUALIFIED
Adams W NickaRussiaXuxue Feng QUALIFIED
Greenwood U BologniaRussiaAmy Elsner RENEWAL
Greenwood T OldroydFranceStephen Shaw UNQUALIFIED
Aika F PerinJapanElwin Sharvill RENEWAL
James I RutaBrazilXuxue Feng QUALIFIED
Deepesh Q MacleadBrazilElwin Sharvill NEGOTIATION
Costa K SlusarskiArgentinaBernardo Dominic RENEWAL
Juan J RulapaughItalyBernardo Dominic PROPOSAL
Jones L WieserJapanAnna Fali QUALIFIED
Darci M GarufiGermanyOnyama Limba PROPOSAL
Ricardo Z KolmetzAustraliaStephen Shaw QUALIFIED
Emily Q IturbideCanadaBernardo Dominic UNQUALIFIED
Antonio H SaylorsAustraliaBernardo Dominic QUALIFIED
Darci Z OstroskyBrazilBernardo Dominic PROPOSAL
Maisha Z CaldareraJapanIoni Bowcher NEW
Nicolas G CaudyCanadaAmy Elsner NEGOTIATION
Adams Z MaletJapanIoni Bowcher NEW
Munro T BowleyCanadaXuxue Feng PROPOSAL
Ricardo D SchemmerArgentinaXuxue Feng PROPOSAL
James B VocelkaBrazilOnyama Limba RENEWAL
Morrow J GlickBrazilAmy Elsner RENEWAL
Maisha Q FerenczArgentinaStephen Shaw PROPOSAL
Munro O MacleadAustraliaAsiya Javayant NEGOTIATION
Nicolas E PerinArgentinaIoni Bowcher PROPOSAL
Aruna J IturbideJapanIvan Magalhaes PROPOSAL
Munro F GarufiAustraliaElwin Sharvill NEW
Ashley K OstroskyArgentinaOnyama Limba PROPOSAL
Silvio P GauchoAustraliaAsiya Javayant NEGOTIATION
Chavez N AmigonItalyXuxue Feng NEW
Alejandro X AlbaresIndiaAmy Elsner RENEWAL
Claire W FerenczFranceOnyama Limba UNQUALIFIED
Ashley L RulapaughArgentinaAnna Fali PROPOSAL
Rodrigues Q SchemmerFranceBernardo Dominic QUALIFIED
David F BowleyGermanyOnyama Limba QUALIFIED
Izzy L OstroskyJapanIvan Magalhaes NEGOTIATION
David G SergiArgentinaAnna Fali NEGOTIATION
Salvatore J DarakjyJapanElwin Sharvill NEGOTIATION
Deepesh T MorascaGermanyBernardo Dominic NEGOTIATION
Darci G SlusarskiGermanyBernardo Dominic UNQUALIFIED
David P PaprockiArgentinaAnna Fali NEW
Tony R FlosiIndiaAsiya Javayant RENEWAL
Chavez I SchemmerSpainIvan Magalhaes NEW
Ashley M GarufiIndiaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair F RimIndiaIvan Magalhaes NEGOTIATION
Leon T NestleIndiaElwin Sharvill NEGOTIATION
Leja G AlbaresUnited KingdomElwin Sharvill PROPOSAL
Sinclair A GarufiJapanIoni Bowcher NEGOTIATION
Octavia S StockhamGermanyAnna Fali NEGOTIATION
Costa Y KolmetzCanadaStephen Shaw NEW
Clifford O GillianUnited KingdomIoni Bowcher UNQUALIFIED
Morrow V FigeroaJapanAnna Fali NEW
Aika P KuskoFranceAnna Fali UNQUALIFIED
Maria S FlosiArgentinaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James S PaprockiSpain2026-08-14Rangoni Of Florence NEGOTIATION43Ivan Magalhaes
1001Darci R GauchoUnited Kingdom2026-08-04Morlong Associates QUALIFIED15Xuxue Feng
1002Isabel Z FigeroaFrance2026-08-31Commercial Press RENEWAL76Bernardo Dominic
1003Sinclair E StockhamSpain2026-08-27Feltz Printing Service UNQUALIFIED16Anna Fali
1004Greenwood W AlbaresBrazil2026-09-01Commercial Press UNQUALIFIED96Elwin Sharvill
1005Adams J DoeCanada2026-08-14Feiner Bros NEW40Anna Fali
1006Kadeem O NestleArgentina2026-08-22Printing Dimensions NEW28Ioni Bowcher
1007Chavez P FerenczCanada2026-08-19Chapman, Ross E Esq QUALIFIED40Onyama Limba
1008Emily B VocelkaRussia2026-08-11Chemel, James L Cpa UNQUALIFIED17Ivan Magalhaes
1009Rodrigues J RimGermany2026-08-26Truhlar And Truhlar Attys QUALIFIED13Elwin Sharvill
1010Munro O WaycottArgentina2026-08-05Chanay, Jeffrey A Esq RENEWAL44Onyama Limba
1011Antonio S VenereGermany2026-08-08Truhlar And Truhlar Attys RENEWAL51Amy Elsner
1012Faith X BriddickBrazil2026-08-19Chanay, Jeffrey A Esq PROPOSAL14Xuxue Feng
1013Leon Y GarufiUnited Kingdom2026-08-06Rangoni Of Florence UNQUALIFIED96Xuxue Feng
1014Jefferson Q CaudyBrazil2026-08-17Rousseaux, Michael Esq RENEWAL13Amy Elsner
1015Jeanfrancois S SaylorsBrazil2026-08-17Morlong Associates QUALIFIED58Ioni Bowcher
1016Arvin G SlusarskiGermany2026-08-19Feiner Bros QUALIFIED98Xuxue Feng
1017Adams J RulapaughAustralia2026-08-25Feiner Bros QUALIFIED16Bernardo Dominic
1018Wickens A SchemmerBrazil2026-08-19Commercial Press NEGOTIATION23Amy Elsner
1019Smith Q FerenczIndia2026-08-12Feiner Bros NEGOTIATION70Anna Fali
1020Emily R DarakjyAustralia2026-08-30Rousseaux, Michael Esq QUALIFIED66Stephen Shaw
1021Misaki Z AlbaresSpain2026-08-29Benton, John B Jr RENEWAL14Ivan Magalhaes
1022Francesco M IturbideIndia2026-08-20Printing Dimensions NEW59Asiya Javayant
1023Munro O SchemmerJapan2026-08-18Feltz Printing Service NEGOTIATION45Bernardo Dominic
1024Octavia E BriddickCanada2026-08-10Commercial Press QUALIFIED61Xuxue Feng
1025Aditya G BologniaFrance2026-08-21Benton, John B Jr NEW79Amy Elsner
1026Costa V MorascaGermany2026-09-02Buckley Miller Wright PROPOSAL80Ivan Magalhaes
1027Misaki X BowleyIndia2026-09-01Printing Dimensions NEGOTIATION96Asiya Javayant
1028Emily L TollnerIndia2026-08-23Chanay, Jeffrey A Esq QUALIFIED55Ioni Bowcher
1029Maisha D CampainArgentina2026-08-24Printing Dimensions UNQUALIFIED12Elwin Sharvill
1030Nicolas P FlosiFrance2026-08-14Printing Dimensions QUALIFIED11Bernardo Dominic
1031Julie A DilliardArgentina2026-08-16Chapman, Ross E Esq UNQUALIFIED43Stephen Shaw
1032Alejandro U RulapaughIndia2026-08-11Morlong Associates RENEWAL26Onyama Limba
1033Wickens X BowleyFrance2026-08-20King, Christopher A Esq PROPOSAL59Ivan Magalhaes
1034Chavez J PoquetteAustralia2026-08-28Truhlar And Truhlar Attys NEW91Stephen Shaw
1035Mujtaba U VenereRussia2026-08-08Dorl, James J Esq QUALIFIED99Ivan Magalhaes
1036Arvin J ShinkoBrazil2026-08-14Buckley Miller Wright PROPOSAL49Asiya Javayant
1037Murillo E WieserUnited Kingdom2026-08-15Chapman, Ross E Esq RENEWAL85Elwin Sharvill
1038Kaitlin X OldroydArgentina2026-08-04Feltz Printing Service PROPOSAL68Asiya Javayant
1039Jennifer K DoeBrazil2026-08-18Dorl, James J Esq NEGOTIATION24Anna Fali
1040Sinclair M FigeroaAustralia2026-09-01Rousseaux, Michael Esq QUALIFIED40Bernardo Dominic
1041Misaki I FerenczIndia2026-08-28Buckley Miller Wright RENEWAL1Amy Elsner
1042Maria Q RimSpain2026-08-27Morlong Associates QUALIFIED56Bernardo Dominic
1043Aruna E RoysterItaly2026-08-23Chanay, Jeffrey A Esq NEW58Bernardo Dominic
1044Claire L WaycottGermany2026-08-04Commercial Press NEW22Stephen Shaw
1045Maisha P MacleadArgentina2026-08-15Dorl, James J Esq PROPOSAL69Stephen Shaw
1046Mujtaba Q GillianCanada2026-08-25Truhlar And Truhlar Attys RENEWAL82Asiya Javayant
1047Alejandro A BologniaArgentina2026-08-22Commercial Press QUALIFIED32Xuxue Feng
1048Isabel R StockhamFrance2026-08-15Truhlar And Truhlar Attys RENEWAL22Stephen Shaw
1049Rodrigues Y PerinItaly2026-08-30Chanay, Jeffrey A Esq RENEWAL74Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo Z NickaRussiaBernardo Dominic QUALIFIED
Faith T FigeroaIndiaBernardo Dominic RENEWAL
Tony V RutaRussiaIoni Bowcher UNQUALIFIED
Juan I RulapaughCanadaAsiya Javayant UNQUALIFIED
Kadeem C KuskoJapanIvan Magalhaes PROPOSAL
Ricardo B FlosiBrazilStephen Shaw RENEWAL
Nicolas I SlusarskiJapanStephen Shaw RENEWAL
Jeanfrancois T CaudyBrazilIoni Bowcher NEGOTIATION
Izzy Q SergiItalyXuxue Feng NEGOTIATION
Aika T CampainRussiaStephen Shaw QUALIFIED
Maria D ChuiItalyOnyama Limba UNQUALIFIED
Nicolas X AmigonAustraliaIoni Bowcher RENEWAL
Jeanfrancois J StensethGermanyOnyama Limba NEGOTIATION
Jefferson E GlickBrazilAsiya Javayant QUALIFIED
Chavez D MacleadUnited KingdomIoni Bowcher NEGOTIATION
Wickens B SaylorsFranceStephen Shaw UNQUALIFIED
Antonio W DoeAustraliaBernardo Dominic NEGOTIATION
Arvin A RutaGermanyBernardo Dominic NEGOTIATION
Alejandro U RimJapanIoni Bowcher NEW
Deepesh G IturbideJapanXuxue Feng UNQUALIFIED
Ashley V AmigonCanadaIvan Magalhaes QUALIFIED
David D OldroydCanadaStephen Shaw PROPOSAL
Leja P MaletGermanyIoni Bowcher QUALIFIED
Faith C MacleadBrazilXuxue Feng NEGOTIATION
James N SlusarskiItalyAnna Fali NEGOTIATION
Faith U GauchoUnited KingdomElwin Sharvill NEGOTIATION
Darci Z VenereItalyBernardo Dominic UNQUALIFIED
Costa B StensethItalyIoni Bowcher UNQUALIFIED
Alejandro N DilliardUnited KingdomAmy Elsner NEW
Leja L TollnerIndiaBernardo Dominic RENEWAL
Mayumi O NestleGermanyAsiya Javayant NEGOTIATION
Aditya X NickaUnited KingdomAnna Fali PROPOSAL
Cody K RoysterBrazilIoni Bowcher QUALIFIED
Maisha L WieserSpainAmy Elsner PROPOSAL
Faith J BowleyJapanAmy Elsner RENEWAL
Costa V AlbaresSpainElwin Sharvill NEW
Jeanfrancois B SergiUnited KingdomStephen Shaw NEGOTIATION
Mayumi K TollnerSpainIvan Magalhaes NEGOTIATION
Smith Q DarakjyGermanyElwin Sharvill PROPOSAL
Kaitlin Q DarakjyArgentinaIvan Magalhaes NEW
Clifford O KolmetzJapanAmy Elsner QUALIFIED
Kadeem I MaletItalyAmy Elsner UNQUALIFIED
Clifford Z ChuiSpainBernardo Dominic NEW
Wickens G BowleyGermanyOnyama Limba PROPOSAL
Ricardo N CaldareraFranceAnna Fali PROPOSAL
Ivar K StockhamIndiaXuxue Feng PROPOSAL
David V FigeroaCanadaIvan Magalhaes NEW
Costa S CaudySpainXuxue Feng UNQUALIFIED
Deepesh G BologniaArgentinaAmy Elsner NEW
Salvatore E VenereUnited KingdomIoni Bowcher PROPOSAL
Frozen Columns
Name
Chavez S Briddick
Antonio Z Iturbide
Deepesh Q Albares
Antonio M Tollner
Salvatore Q Poquette
James O Gillian
Ashley H Inouye
Ivar N Ostrosky
Leon W Malet
Nicolas L Garufi
Munro X Shinko
Murillo A Garufi
Chavez N Doe
Aditya Q Butt
Costa L Tollner
Sinclair B Marrier
Jeanfrancois M Doe
Aruna Z Caldarera
Emily F Rulapaugh
Mujtaba J Wieser
Isabel F Nestle
Murillo I Amigon
Julie Q Rulapaugh
Izzy U Amigon
David B Shinko
Wickens Z Whobrey
Antonio K Butt
Chavez O Venere
Aika P Dilliard
Greenwood G Wieser
Francesco I Maclead
Tony E Poquette
Morrow S Malet
Kadeem F Briddick
Jennifer O Butt
Leon N Rim
Aika A Royster
Faith Q Tollner
Octavia H Schemmer
Mujtaba O Sergi
Juan S Morasca
Murillo U Oldroyd
Chavez S Nicka
Faith E Saylors
Leja V Rulapaugh
Aruna X Waycott
Emily R Ferencz
Izzy B Malet
Chavez B Maclead
Ashley C Royster
IdCountryDate
1000Italy2026-08-11
1001France2026-08-28
1002Japan2026-08-04
1003France2026-08-28
1004United Kingdom2026-08-15
1005France2026-08-25
1006United Kingdom2026-08-30
1007Russia2026-08-07
1008Japan2026-08-29
1009Italy2026-08-25
1010Canada2026-08-04
1011Russia2026-09-02
1012Italy2026-08-30
1013Spain2026-08-24
1014Germany2026-08-20
1015Japan2026-08-16
1016United Kingdom2026-08-25
1017Brazil2026-08-25
1018Canada2026-09-01
1019India2026-08-16
1020Argentina2026-08-10
1021Australia2026-08-14
1022Germany2026-08-07
1023Russia2026-08-22
1024Argentina2026-09-01
1025Australia2026-08-14
1026Italy2026-08-10
1027United Kingdom2026-08-19
1028Argentina2026-08-30
1029Russia2026-08-08
1030Japan2026-08-29
1031Russia2026-08-22
1032Japan2026-08-22
1033France2026-08-15
1034Germany2026-08-09
1035Germany2026-08-11
1036United Kingdom2026-09-02
1037Argentina2026-08-29
1038Spain2026-08-08
1039Italy2026-08-21
1040Spain2026-08-26
1041Brazil2026-08-13
1042Brazil2026-08-14
1043Germany2026-08-25
1044Japan2026-08-04
1045France2026-08-30
1046Canada2026-08-19
1047Canada2026-08-07
1048France2026-09-01
1049Germany2026-08-31

On-Demand Data

NameIdCountryDate
Faith I Inouye1000Brazil2026-08-19
Arvin D Poquette1001Canada2026-08-31
Nicolas Z Butt1002Brazil2026-08-12
Misaki U Nestle1003Spain2026-08-04
Julie B Iturbide1004Russia2026-08-28
Sinclair W Oldroyd1005Canada2026-08-23
Aika I Rim1006Japan2026-08-31
Juan U Campain1007Australia2026-08-19
Chavez A Rulapaugh1008Russia2026-08-10
Mayumi P Stockham1009India2026-08-12
Jones V Rim1010Australia2026-08-17
David S Glick1011Spain2026-09-02
Aditya M Oldroyd1012India2026-08-23
Maisha F Schemmer1013Spain2026-08-13
Misaki X Caudy1014Brazil2026-08-31
Aika U Bolognia1015Russia2026-09-02
Izzy C Ferencz1016France2026-09-01
Jones E Morasca1017Russia2026-09-02
David I Slusarski1018France2026-08-25
Mayumi O Slusarski1019Italy2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams M FigeroaItalyOnyama Limba NEW
Faith E GlickSpainAnna Fali UNQUALIFIED
Stacey R FerenczSpainAsiya Javayant NEGOTIATION
Clifford T FigeroaRussiaStephen Shaw NEGOTIATION
Francesco I StensethGermanyAsiya Javayant NEGOTIATION
Adams Y DilliardItalyXuxue Feng PROPOSAL
Chavez N FollerGermanyAnna Fali QUALIFIED
Jefferson G StensethRussiaElwin Sharvill RENEWAL
Octavia K PaprockiFranceOnyama Limba QUALIFIED
James L BowleyArgentinaXuxue Feng UNQUALIFIED
Nicolas O FerenczSpainAnna Fali NEGOTIATION
Francesco F PerinIndiaStephen Shaw UNQUALIFIED
Murillo N RulapaughArgentinaOnyama Limba PROPOSAL
Salvatore S FerenczBrazilIvan Magalhaes UNQUALIFIED
Cody D WieserFranceIvan Magalhaes NEW
Ricardo D SaylorsJapanAsiya Javayant PROPOSAL
Ashley H NestleItalyAnna Fali NEGOTIATION
Johnson E CampainUnited KingdomXuxue Feng QUALIFIED
Mujtaba R RulapaughUnited KingdomAnna Fali RENEWAL
Misaki K RoysterSpainAmy Elsner QUALIFIED
Juan C OldroydFranceElwin Sharvill QUALIFIED
Misaki W StockhamIndiaStephen Shaw PROPOSAL
Cody V CampainIndiaAmy Elsner UNQUALIFIED
Deepesh M VocelkaBrazilXuxue Feng RENEWAL
Juan N MacleadSpainElwin Sharvill NEGOTIATION
Aruna P BowleyGermanyAsiya Javayant NEW
Arvin F VenereUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson Y MorascaCanadaAmy Elsner UNQUALIFIED
James A WaycottSpainOnyama Limba QUALIFIED
Antonio N GarufiBrazilIvan Magalhaes NEGOTIATION
Emily V SaylorsItalyAsiya Javayant UNQUALIFIED
Ricardo E BowleyGermanyStephen Shaw RENEWAL
Munro S GarufiAustraliaAsiya Javayant NEGOTIATION
Jones F WaycottUnited KingdomStephen Shaw PROPOSAL
Maisha L BriddickArgentinaAnna Fali NEGOTIATION
Salvatore L FlosiArgentinaAsiya Javayant RENEWAL
Arvin M PoquetteGermanyElwin Sharvill PROPOSAL
Jeanfrancois I SchemmerJapanElwin Sharvill NEGOTIATION
Tony A SergiAustraliaElwin Sharvill QUALIFIED
Adams M CaudyGermanyElwin Sharvill 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>