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
Ivar G MacleadItalyAmy Elsner UNQUALIFIED
Cody C FigeroaRussiaAmy Elsner NEW
Jennifer F MaletUnited KingdomElwin Sharvill UNQUALIFIED
Tony K KolmetzItalyIoni Bowcher RENEWAL
Chavez D WieserCanadaAnna Fali RENEWAL
Maisha D MaletJapanOnyama Limba UNQUALIFIED
Tony T VenereSpainAmy Elsner QUALIFIED
Francesco T OstroskyCanadaElwin Sharvill RENEWAL
Clifford D SchemmerAustraliaAsiya Javayant PROPOSAL
Ivar L SergiRussiaElwin Sharvill NEW
Arvin N DilliardRussiaElwin Sharvill RENEWAL
Leon Z OldroydBrazilOnyama Limba PROPOSAL
Smith V DilliardIndiaXuxue Feng QUALIFIED
Juan W DilliardUnited KingdomStephen Shaw NEW
Octavia G ShinkoSpainStephen Shaw NEW
Jones G WaycottBrazilIoni Bowcher UNQUALIFIED
Juan O ShinkoArgentinaXuxue Feng RENEWAL
Alejandro K FerenczGermanyAmy Elsner PROPOSAL
Chavez Y OstroskyArgentinaAmy Elsner NEGOTIATION
Emily Z FlosiFranceStephen Shaw UNQUALIFIED
Ivar T DarakjyIndiaAmy Elsner UNQUALIFIED
Murillo Q GillianGermanyXuxue Feng RENEWAL
Wickens A NestleBrazilIvan Magalhaes NEW
Antonio C FigeroaSpainAmy Elsner PROPOSAL
Aditya Z InouyeUnited KingdomAsiya Javayant QUALIFIED
Costa S SaylorsGermanyXuxue Feng QUALIFIED
Aditya Y KolmetzGermanyXuxue Feng NEGOTIATION
Kaitlin E MaletIndiaAsiya Javayant NEGOTIATION
James X MarrierCanadaXuxue Feng UNQUALIFIED
Kaitlin T WieserAustraliaIoni Bowcher PROPOSAL
Emily P BowleyItalyBernardo Dominic PROPOSAL
Jefferson C PaprockiGermanyOnyama Limba NEGOTIATION
Kadeem T BriddickSpainIvan Magalhaes NEGOTIATION
Leon K KuskoBrazilIoni Bowcher QUALIFIED
Francesco E GillianRussiaAsiya Javayant QUALIFIED
Octavia G RulapaughSpainAsiya Javayant NEGOTIATION
Izzy R VocelkaCanadaAsiya Javayant PROPOSAL
Ivar M CampainCanadaOnyama Limba QUALIFIED
Johnson J WieserBrazilElwin Sharvill NEW
Ricardo K MacleadRussiaAnna Fali PROPOSAL
Maria T FlosiCanadaOnyama Limba RENEWAL
Clifford V ShinkoUnited KingdomIoni Bowcher NEW
Isabel H MaletGermanyAsiya Javayant NEW
Jennifer Q DoeBrazilAsiya Javayant UNQUALIFIED
Maisha F GauchoUnited KingdomAnna Fali RENEWAL
Octavia J PaprockiArgentinaXuxue Feng QUALIFIED
Tony N MaletCanadaAsiya Javayant UNQUALIFIED
Jones N ButtCanadaElwin Sharvill QUALIFIED
Costa R VenereFranceXuxue Feng PROPOSAL
Ivar F AmigonRussiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens E RutaRussiaOnyama Limba RENEWAL
Izzy P RulapaughFranceAsiya Javayant PROPOSAL
Francesco U VenereItalyIvan Magalhaes RENEWAL
Wickens H MaletRussiaAsiya Javayant NEW
Clifford O CaudyAustraliaBernardo Dominic UNQUALIFIED
Mujtaba G MarrierItalyOnyama Limba RENEWAL
Sinclair W RoysterSpainStephen Shaw RENEWAL
Isabel N SergiRussiaElwin Sharvill QUALIFIED
Izzy G WieserArgentinaAsiya Javayant NEW
Jefferson P SaylorsBrazilAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones Z ChuiAustralia2024-05-23Rangoni Of Florence QUALIFIED55Stephen Shaw
1001Maria V WieserFrance2024-06-07Morlong Associates UNQUALIFIED12Asiya Javayant
1002Stacey T DarakjyGermany2024-06-14Rangoni Of Florence UNQUALIFIED69Asiya Javayant
1003Arvin U CaldareraArgentina2024-06-04Chemel, James L Cpa PROPOSAL13Elwin Sharvill
1004Ricardo F StockhamBrazil2024-06-03Chapman, Ross E Esq NEW31Xuxue Feng
1005Jefferson K NickaUnited Kingdom2024-05-25Commercial Press NEGOTIATION33Ioni Bowcher
1006Silvio A OldroydCanada2024-06-10King, Christopher A Esq QUALIFIED16Amy Elsner
1007Antonio N WaycottArgentina2024-06-10Morlong Associates PROPOSAL10Amy Elsner
1008James S RulapaughUnited Kingdom2024-06-11Dorl, James J Esq UNQUALIFIED75Ivan Magalhaes
1009Leon N DilliardJapan2024-06-15Rousseaux, Michael Esq NEW53Xuxue Feng
1010Aruna A TollnerItaly2024-06-10Chapman, Ross E Esq QUALIFIED31Anna Fali
1011Greenwood Q FerenczItaly2024-05-20Dorl, James J Esq NEGOTIATION80Ivan Magalhaes
1012Jones W MorascaCanada2024-06-14Rangoni Of Florence PROPOSAL79Xuxue Feng
1013Alejandro G BologniaRussia2024-05-23Printing Dimensions PROPOSAL40Ioni Bowcher
1014Morrow S BologniaBrazil2024-06-04King, Christopher A Esq RENEWAL62Ivan Magalhaes
1015Izzy N DilliardBrazil2024-06-03Chapman, Ross E Esq NEW16Ioni Bowcher
1016Morrow R DarakjyBrazil2024-05-25Feiner Bros NEGOTIATION30Anna Fali
1017Rodrigues B FerenczGermany2024-06-10Buckley Miller Wright RENEWAL8Onyama Limba
1018Ivar D SergiUnited Kingdom2024-05-30King, Christopher A Esq PROPOSAL40Ivan Magalhaes
1019Ivar Y MaletBrazil2024-06-17Rangoni Of Florence UNQUALIFIED85Asiya Javayant
1020Octavia Z MaletBrazil2024-05-31Feltz Printing Service NEW11Ivan Magalhaes
1021Isabel K FlosiUnited Kingdom2024-06-13Feiner Bros UNQUALIFIED25Stephen Shaw
1022Faith R OldroydArgentina2024-05-28Dorl, James J Esq NEW74Bernardo Dominic
1023Johnson Z RulapaughItaly2024-06-09Chemel, James L Cpa RENEWAL30Xuxue Feng
1024Alejandro W ChuiAustralia2024-06-01Feltz Printing Service UNQUALIFIED6Anna Fali
1025Deepesh T RulapaughBrazil2024-05-26Chapman, Ross E Esq NEW20Amy Elsner
1026Leja N VenereSpain2024-05-24Benton, John B Jr NEGOTIATION37Bernardo Dominic
1027Isabel X RulapaughSpain2024-05-23Chapman, Ross E Esq RENEWAL72Amy Elsner
1028Tony B MaletSpain2024-05-25Feltz Printing Service UNQUALIFIED96Ivan Magalhaes
1029Salvatore S VenereRussia2024-05-24Feiner Bros PROPOSAL31Xuxue Feng
1030Aika Y OldroydArgentina2024-06-11Benton, John B Jr NEW21Ioni Bowcher
1031Alejandro J InouyeGermany2024-06-13King, Christopher A Esq NEW84Amy Elsner
1032Isabel V DoeGermany2024-06-08Feiner Bros NEW70Asiya Javayant
1033Jennifer N TollnerArgentina2024-05-28Dorl, James J Esq UNQUALIFIED12Xuxue Feng
1034Ashley Z DoeItaly2024-06-02Truhlar And Truhlar Attys PROPOSAL65Onyama Limba
1035Maisha L OstroskySpain2024-06-10Buckley Miller Wright RENEWAL48Xuxue Feng
1036Claire D FollerFrance2024-06-18Chanay, Jeffrey A Esq NEGOTIATION17Xuxue Feng
1037Smith N MaletBrazil2024-06-16Dorl, James J Esq NEGOTIATION5Anna Fali
1038Jefferson N DarakjyItaly2024-05-27Rangoni Of Florence RENEWAL19Ioni Bowcher
1039Munro H FlosiItaly2024-06-10Truhlar And Truhlar Attys NEW97Bernardo Dominic
1040Claire P WaycottRussia2024-06-11Chanay, Jeffrey A Esq RENEWAL92Bernardo Dominic
1041Smith I DoeFrance2024-05-26Dorl, James J Esq UNQUALIFIED31Anna Fali
1042Jefferson N FigeroaFrance2024-05-29Dorl, James J Esq QUALIFIED46Bernardo Dominic
1043Tony K OstroskySpain2024-06-09King, Christopher A Esq QUALIFIED64Xuxue Feng
1044Jennifer I VenereCanada2024-06-07Chemel, James L Cpa NEGOTIATION28Stephen Shaw
1045Octavia E GarufiSpain2024-06-12Rangoni Of Florence QUALIFIED4Anna Fali
1046Sinclair L KuskoRussia2024-05-31Buckley Miller Wright NEGOTIATION79Asiya Javayant
1047James Q KuskoItaly2024-05-25King, Christopher A Esq UNQUALIFIED28Amy Elsner
1048Aruna R PaprockiSpain2024-06-08Feltz Printing Service UNQUALIFIED34Xuxue Feng
1049Antonio I ButtArgentina2024-06-12Commercial Press NEGOTIATION25Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Francesco E MorascaSpainAmy Elsner NEGOTIATION
Johnson D BriddickBrazilBernardo Dominic QUALIFIED
Johnson C WhobreyBrazilAnna Fali UNQUALIFIED
Kaitlin Q AlbaresRussiaAmy Elsner NEW
Ashley T OldroydBrazilXuxue Feng PROPOSAL
Johnson M DilliardBrazilStephen Shaw PROPOSAL
Darci S WieserItalyOnyama Limba UNQUALIFIED
Wickens E OldroydJapanAsiya Javayant UNQUALIFIED
Aruna G GlickCanadaIvan Magalhaes QUALIFIED
Ivar C StockhamIndiaAsiya Javayant PROPOSAL
David Y WhobreyGermanyAmy Elsner UNQUALIFIED
Jones N DarakjySpainIvan Magalhaes NEGOTIATION
Darci U CampainGermanyElwin Sharvill UNQUALIFIED
James M RutaItalyIoni Bowcher PROPOSAL
David B FerenczArgentinaStephen Shaw PROPOSAL
Maria A SlusarskiArgentinaAnna Fali QUALIFIED
Francesco Q DilliardBrazilOnyama Limba NEW
Jefferson K ChuiIndiaAmy Elsner NEW
Misaki H FlosiSpainAmy Elsner NEGOTIATION
Misaki D TollnerArgentinaElwin Sharvill NEW
Juan G FigeroaCanadaAnna Fali QUALIFIED
Johnson C FlosiArgentinaStephen Shaw NEW
Misaki T WieserItalyXuxue Feng RENEWAL
Kadeem S SergiCanadaIoni Bowcher NEW
Juan U FigeroaJapanIvan Magalhaes QUALIFIED
Morrow P NestleIndiaXuxue Feng QUALIFIED
Darci A DoeFranceBernardo Dominic PROPOSAL
Stacey I OldroydRussiaAnna Fali NEGOTIATION
Misaki N MorascaItalyAnna Fali PROPOSAL
Faith Q AlbaresItalyStephen Shaw NEGOTIATION
Maisha J BowleyItalyOnyama Limba PROPOSAL
Greenwood S ButtRussiaIoni Bowcher PROPOSAL
Mujtaba O GlickIndiaIvan Magalhaes UNQUALIFIED
Faith B PerinArgentinaAsiya Javayant NEGOTIATION
Salvatore L OldroydFranceIvan Magalhaes RENEWAL
Jennifer B IturbideGermanyOnyama Limba PROPOSAL
Aruna A FerenczUnited KingdomBernardo Dominic NEGOTIATION
Salvatore C PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi F NestleRussiaBernardo Dominic QUALIFIED
Jones O VocelkaBrazilAnna Fali QUALIFIED
Maisha X BriddickSpainOnyama Limba QUALIFIED
Silvio Z SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Emily Z ShinkoGermanyIoni Bowcher NEGOTIATION
Adams Z WieserIndiaIvan Magalhaes PROPOSAL
Octavia F GlickFranceAmy Elsner UNQUALIFIED
Misaki C FigeroaCanadaXuxue Feng NEGOTIATION
Isabel G VocelkaAustraliaAmy Elsner UNQUALIFIED
Stacey C SaylorsItalyStephen Shaw NEGOTIATION
Antonio L FigeroaItalyAmy Elsner PROPOSAL
Kadeem Q GlickUnited KingdomOnyama Limba NEGOTIATION
Frozen Columns
Name
Tony L Nicka
Chavez Q Venere
Darci O Morasca
Izzy O Poquette
Emily W Gaucho
Kaitlin X Ruta
Johnson N Perin
Izzy J Ruta
Rodrigues J Ruta
David E Gaucho
Deepesh J Slusarski
Murillo A Campain
James W Sergi
Jeanfrancois S Shinko
Octavia R Flosi
Smith E Dilliard
Cody O Morasca
Kadeem I Amigon
James H Malet
Julie F Ferencz
Clifford N Caldarera
Alejandro V Gaucho
Emily D Malet
Isabel W Bowley
Mayumi Q Marrier
Darci G Nicka
Jefferson Y Shinko
Johnson F Morasca
Faith R Marrier
Nicolas F Bowley
Nicolas U Nestle
Alejandro X Caldarera
Julie V Shinko
Deepesh F Briddick
Silvio N Foller
Alejandro V Nestle
Mujtaba V Malet
Octavia B Wieser
Greenwood T Caudy
Mayumi Q Shinko
Faith C Maclead
Antonio E Royster
Leon R Marrier
Kaitlin I Glick
Jennifer K Butt
Izzy F Albares
Smith S Maclead
Juan F Foller
Leon G Doe
Faith F Bolognia
IdCountryDate
1000Australia2024-06-12
1001India2024-06-14
1002Brazil2024-06-16
1003Russia2024-06-10
1004Spain2024-06-06
1005Germany2024-06-05
1006United Kingdom2024-05-24
1007Canada2024-05-24
1008Russia2024-06-06
1009France2024-05-29
1010Canada2024-06-02
1011Brazil2024-06-07
1012Argentina2024-05-23
1013Brazil2024-06-04
1014Canada2024-06-10
1015Italy2024-05-25
1016India2024-05-25
1017Argentina2024-05-21
1018Germany2024-05-30
1019Brazil2024-06-14
1020Argentina2024-05-31
1021United Kingdom2024-05-23
1022India2024-05-26
1023United Kingdom2024-06-10
1024Russia2024-06-14
1025India2024-05-31
1026Germany2024-06-08
1027Canada2024-06-12
1028United Kingdom2024-05-29
1029Japan2024-05-22
1030India2024-06-17
1031Brazil2024-06-09
1032Canada2024-06-07
1033Russia2024-05-29
1034Australia2024-06-02
1035Germany2024-05-27
1036Argentina2024-06-18
1037Italy2024-06-14
1038Russia2024-05-22
1039Germany2024-06-13
1040Canada2024-05-30
1041Spain2024-06-08
1042Canada2024-06-09
1043France2024-06-16
1044India2024-06-06
1045Germany2024-06-13
1046Russia2024-06-10
1047Japan2024-05-27
1048Russia2024-05-29
1049United Kingdom2024-06-02

On-Demand Data

NameIdCountryDate
Aruna K Poquette1000India2024-06-06
David X Kolmetz1001Germany2024-06-12
Ricardo V Malet1002Brazil2024-06-10
Maisha K Campain1003India2024-06-13
Chavez E Venere1004Spain2024-05-28
Jeanfrancois S Kolmetz1005Canada2024-06-12
Aditya K Slusarski1006Argentina2024-06-18
Octavia M Ostrosky1007Australia2024-06-16
Isabel N Chui1008Italy2024-06-15
Maisha E Kusko1009Germany2024-06-06
David C Caldarera1010Italy2024-06-16
Jeanfrancois F Iturbide1011Argentina2024-06-10
Emily R Maclead1012Canada2024-05-21
Arvin H Inouye1013Japan2024-06-07
Kaitlin T Saylors1014Spain2024-06-15
Ivar K Paprocki1015Italy2024-05-26
Jennifer G Glick1016India2024-06-18
Cody X Rulapaugh1017France2024-06-13
Jeanfrancois U Kusko1018India2024-05-24
Tony E Wieser1019Russia2024-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow L SaylorsItalyBernardo Dominic PROPOSAL
Stacey J GlickAustraliaIvan Magalhaes QUALIFIED
Jefferson Q PerinSpainOnyama Limba UNQUALIFIED
Deepesh U MacleadGermanyBernardo Dominic RENEWAL
Julie Z DilliardArgentinaIoni Bowcher UNQUALIFIED
Aditya T BriddickJapanAmy Elsner NEGOTIATION
Darci X VenereCanadaIoni Bowcher NEW
Izzy S FerenczGermanyIvan Magalhaes QUALIFIED
Salvatore S RulapaughBrazilBernardo Dominic RENEWAL
Darci G FigeroaBrazilIoni Bowcher QUALIFIED
Izzy S GlickAustraliaElwin Sharvill RENEWAL
Mayumi P BriddickUnited KingdomBernardo Dominic QUALIFIED
Deepesh X MaletIndiaIvan Magalhaes RENEWAL
Emily P PoquetteBrazilElwin Sharvill PROPOSAL
Tony C FerenczSpainBernardo Dominic PROPOSAL
Jefferson C FerenczBrazilAmy Elsner UNQUALIFIED
Greenwood Y SlusarskiBrazilAmy Elsner PROPOSAL
Munro W MarrierGermanyBernardo Dominic UNQUALIFIED
Deepesh P CaudyCanadaStephen Shaw NEGOTIATION
James R NickaIndiaAnna Fali NEW
Ivar T MaletItalyOnyama Limba QUALIFIED
Sinclair X PoquetteGermanyAmy Elsner QUALIFIED
Aditya A OldroydFranceElwin Sharvill NEW
Kadeem G DarakjyBrazilXuxue Feng RENEWAL
Salvatore K WieserCanadaIoni Bowcher UNQUALIFIED
Rodrigues Z AmigonBrazilBernardo Dominic QUALIFIED
Wickens A GauchoItalyXuxue Feng NEW
David F GauchoItalyAnna Fali UNQUALIFIED
Johnson V CaldareraRussiaAnna Fali UNQUALIFIED
Mujtaba C MaletUnited KingdomIoni Bowcher RENEWAL
Octavia T ShinkoRussiaStephen Shaw RENEWAL
Juan H SlusarskiSpainElwin Sharvill PROPOSAL
Ricardo E MaletJapanBernardo Dominic PROPOSAL
Johnson T GlickBrazilBernardo Dominic NEGOTIATION
Smith A OstroskyFranceBernardo Dominic PROPOSAL
Deepesh U WieserJapanElwin Sharvill NEW
Alejandro E StensethBrazilAmy Elsner NEGOTIATION
Silvio H ChuiUnited KingdomElwin Sharvill NEW
Maisha U StensethRussiaAmy Elsner UNQUALIFIED
Ricardo P SergiSpainXuxue Feng 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>