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
Aruna L CaudySpainOnyama Limba PROPOSAL
Darci E PoquetteItalyStephen Shaw NEGOTIATION
Faith C OstroskySpainIoni Bowcher PROPOSAL
Rodrigues N WhobreyRussiaStephen Shaw UNQUALIFIED
Aruna C GauchoRussiaBernardo Dominic PROPOSAL
Emily S CaudyBrazilOnyama Limba NEW
Juan Z PerinIndiaAnna Fali NEW
David U RimBrazilStephen Shaw UNQUALIFIED
Stacey D InouyeGermanyXuxue Feng QUALIFIED
Faith R VocelkaFranceBernardo Dominic PROPOSAL
Kaitlin G WaycottCanadaIvan Magalhaes NEGOTIATION
Greenwood D SaylorsCanadaAsiya Javayant UNQUALIFIED
Adams L RoysterBrazilXuxue Feng PROPOSAL
Izzy U NestleJapanIoni Bowcher UNQUALIFIED
Isabel I SchemmerUnited KingdomStephen Shaw RENEWAL
Johnson W RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer T MaletJapanBernardo Dominic UNQUALIFIED
Deepesh P WaycottArgentinaAnna Fali NEW
Isabel I VenereJapanXuxue Feng NEW
Kadeem P WhobreyCanadaIvan Magalhaes UNQUALIFIED
Maisha C ChuiIndiaIoni Bowcher NEGOTIATION
Greenwood X FollerUnited KingdomAmy Elsner PROPOSAL
Salvatore Y SlusarskiItalyBernardo Dominic UNQUALIFIED
Aika C KolmetzSpainBernardo Dominic NEW
Maria P ChuiItalyIvan Magalhaes UNQUALIFIED
Smith Z WhobreyArgentinaAsiya Javayant NEGOTIATION
Izzy L SlusarskiItalyBernardo Dominic UNQUALIFIED
Jones Q OstroskyJapanAmy Elsner PROPOSAL
Antonio W BriddickFranceAnna Fali QUALIFIED
Chavez G MacleadItalyStephen Shaw QUALIFIED
Antonio S SergiAustraliaAmy Elsner QUALIFIED
Salvatore T ChuiItalyBernardo Dominic NEW
Arvin U ShinkoRussiaBernardo Dominic UNQUALIFIED
Juan V WhobreySpainOnyama Limba UNQUALIFIED
Stacey T TollnerIndiaXuxue Feng NEW
Jennifer F FigeroaBrazilXuxue Feng QUALIFIED
Mayumi W PerinArgentinaAmy Elsner PROPOSAL
Ashley X PoquetteJapanAsiya Javayant UNQUALIFIED
Kaitlin S IturbideIndiaAmy Elsner NEGOTIATION
Emily Y TollnerUnited KingdomXuxue Feng UNQUALIFIED
Leon R OldroydFranceOnyama Limba NEGOTIATION
Adams R VenereArgentinaStephen Shaw RENEWAL
Murillo H WhobreyAustraliaAmy Elsner RENEWAL
Jennifer S WhobreyUnited KingdomBernardo Dominic NEGOTIATION
Cody T GlickUnited KingdomAsiya Javayant RENEWAL
Julie E FollerCanadaOnyama Limba UNQUALIFIED
Cody C AlbaresJapanAsiya Javayant UNQUALIFIED
Maisha U BologniaArgentinaAmy Elsner RENEWAL
Jefferson O StensethAustraliaAnna Fali UNQUALIFIED
Maria I MorascaIndiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow M RutaBrazilIoni Bowcher NEW
Cody U DarakjyRussiaOnyama Limba UNQUALIFIED
Aika S FollerJapanBernardo Dominic UNQUALIFIED
Stacey E FigeroaArgentinaAsiya Javayant QUALIFIED
Kaitlin W MaletRussiaOnyama Limba RENEWAL
Jennifer R GlickIndiaAmy Elsner UNQUALIFIED
Ashley X ShinkoGermanyIoni Bowcher UNQUALIFIED
Costa O BowleyFranceStephen Shaw NEW
Murillo G SaylorsArgentinaElwin Sharvill UNQUALIFIED
Ashley Q KolmetzGermanyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria A GlickGermany2025-05-25Buckley Miller Wright NEW47Anna Fali
1001Silvio Y FerenczAustralia2025-06-03Chanay, Jeffrey A Esq PROPOSAL77Elwin Sharvill
1002Leja W PoquetteIndia2025-05-30Chanay, Jeffrey A Esq NEW74Stephen Shaw
1003Nicolas Y RutaBrazil2025-06-11Commercial Press QUALIFIED88Anna Fali
1004James T PerinIndia2025-06-06Rangoni Of Florence PROPOSAL26Amy Elsner
1005Chavez M WaycottFrance2025-06-13Benton, John B Jr RENEWAL8Amy Elsner
1006Kadeem S TollnerGermany2025-05-27Rangoni Of Florence PROPOSAL0Elwin Sharvill
1007Stacey H SlusarskiItaly2025-06-04Truhlar And Truhlar Attys UNQUALIFIED58Xuxue Feng
1008Kadeem U NickaCanada2025-05-21Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1009Mujtaba U StensethIndia2025-06-15Truhlar And Truhlar Attys NEW69Xuxue Feng
1010Deepesh I TollnerArgentina2025-05-18Feiner Bros RENEWAL63Ivan Magalhaes
1011Aruna K TollnerFrance2025-06-06Chapman, Ross E Esq RENEWAL61Asiya Javayant
1012Sinclair T SchemmerUnited Kingdom2025-06-14Printing Dimensions RENEWAL6Asiya Javayant
1013Munro W BowleyUnited Kingdom2025-06-04Chanay, Jeffrey A Esq NEGOTIATION49Ivan Magalhaes
1014Alejandro R PoquetteRussia2025-06-03Feiner Bros NEGOTIATION74Anna Fali
1015Clifford Z VocelkaFrance2025-05-27Morlong Associates PROPOSAL49Anna Fali
1016Silvio T DarakjyArgentina2025-05-20Feiner Bros NEGOTIATION30Onyama Limba
1017Jefferson K GauchoRussia2025-06-11King, Christopher A Esq PROPOSAL26Anna Fali
1018Clifford D CampainBrazil2025-05-23Chanay, Jeffrey A Esq NEGOTIATION70Stephen Shaw
1019Emily V ButtSpain2025-06-13Dorl, James J Esq NEW80Ioni Bowcher
1020Leon A ChuiCanada2025-06-01King, Christopher A Esq NEW52Xuxue Feng
1021Stacey M FlosiJapan2025-06-05Feltz Printing Service RENEWAL1Ioni Bowcher
1022David H DoeBrazil2025-06-07Dorl, James J Esq NEGOTIATION54Anna Fali
1023Leon I FlosiSpain2025-06-12Truhlar And Truhlar Attys UNQUALIFIED86Elwin Sharvill
1024Johnson U MarrierGermany2025-05-21Rangoni Of Florence UNQUALIFIED84Ivan Magalhaes
1025Rodrigues T AlbaresAustralia2025-06-07Rangoni Of Florence NEW58Anna Fali
1026Rodrigues W KuskoGermany2025-06-10Rangoni Of Florence QUALIFIED46Ioni Bowcher
1027Morrow B RutaIndia2025-06-10Commercial Press UNQUALIFIED83Xuxue Feng
1028Rodrigues I KolmetzSpain2025-05-30Chapman, Ross E Esq PROPOSAL27Ioni Bowcher
1029Mayumi R TollnerArgentina2025-05-30Printing Dimensions NEGOTIATION19Ioni Bowcher
1030Misaki D IturbideRussia2025-06-08Dorl, James J Esq NEW79Elwin Sharvill
1031Faith I AlbaresFrance2025-06-15Feltz Printing Service PROPOSAL63Elwin Sharvill
1032Munro V KolmetzCanada2025-05-25Morlong Associates PROPOSAL34Anna Fali
1033Silvio W SlusarskiCanada2025-06-15King, Christopher A Esq NEGOTIATION4Anna Fali
1034Ivar B AmigonFrance2025-05-24Chapman, Ross E Esq RENEWAL82Anna Fali
1035Jefferson A MorascaFrance2025-05-30Rangoni Of Florence UNQUALIFIED42Onyama Limba
1036Jennifer Q ChuiBrazil2025-06-07Truhlar And Truhlar Attys PROPOSAL21Ioni Bowcher
1037Tony V MaletGermany2025-06-15Chapman, Ross E Esq RENEWAL91Xuxue Feng
1038Tony Q OstroskyFrance2025-06-06Printing Dimensions QUALIFIED86Anna Fali
1039Stacey L BologniaSpain2025-05-30Truhlar And Truhlar Attys NEW39Bernardo Dominic
1040Kaitlin M FlosiJapan2025-05-18Rousseaux, Michael Esq NEGOTIATION40Stephen Shaw
1041Sinclair S GillianGermany2025-06-14Chemel, James L Cpa NEW46Bernardo Dominic
1042Darci O MarrierItaly2025-05-29Rangoni Of Florence UNQUALIFIED6Ivan Magalhaes
1043Maisha N MarrierGermany2025-05-28Chapman, Ross E Esq NEGOTIATION80Xuxue Feng
1044Emily Q WhobreyFrance2025-05-30Commercial Press NEGOTIATION72Ioni Bowcher
1045Julie M DarakjyIndia2025-05-31Rangoni Of Florence UNQUALIFIED16Bernardo Dominic
1046Leja B GillianJapan2025-05-28Dorl, James J Esq QUALIFIED32Elwin Sharvill
1047Mayumi A KuskoAustralia2025-05-26Benton, John B Jr UNQUALIFIED85Asiya Javayant
1048Kaitlin V ButtAustralia2025-06-06Feltz Printing Service UNQUALIFIED76Bernardo Dominic
1049Mayumi P TollnerAustralia2025-06-12Buckley Miller Wright RENEWAL38Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio P GarufiJapanAnna Fali RENEWAL
David Q PoquetteRussiaBernardo Dominic NEW
Leon N DarakjyFranceOnyama Limba NEW
Alejandro G GlickBrazilBernardo Dominic RENEWAL
Antonio Q FerenczCanadaAmy Elsner RENEWAL
Johnson S MaletJapanBernardo Dominic QUALIFIED
Nicolas K SchemmerItalyBernardo Dominic NEW
Alejandro S FollerUnited KingdomElwin Sharvill NEW
Jeanfrancois A NestleBrazilElwin Sharvill UNQUALIFIED
Arvin B SaylorsItalyAmy Elsner NEW
Wickens Y KuskoFranceOnyama Limba UNQUALIFIED
Maria D ChuiIndiaBernardo Dominic QUALIFIED
Kaitlin W VenereCanadaElwin Sharvill RENEWAL
Juan J WhobreyArgentinaAnna Fali RENEWAL
Misaki Z AlbaresSpainAsiya Javayant RENEWAL
Silvio N DarakjyIndiaAnna Fali QUALIFIED
Darci M StockhamFranceElwin Sharvill QUALIFIED
Wickens P SlusarskiItalyAmy Elsner RENEWAL
Rodrigues C PerinArgentinaOnyama Limba UNQUALIFIED
Wickens L SlusarskiItalyIoni Bowcher NEGOTIATION
Jefferson P StockhamAustraliaAnna Fali RENEWAL
Stacey S MarrierGermanyAsiya Javayant NEGOTIATION
David N FigeroaAustraliaStephen Shaw NEGOTIATION
Ricardo D VocelkaItalyAmy Elsner UNQUALIFIED
Aika T BriddickAustraliaXuxue Feng NEW
Aika O SaylorsFranceIvan Magalhaes RENEWAL
Leon M FollerItalyXuxue Feng NEW
Wickens R StockhamJapanXuxue Feng QUALIFIED
David J FigeroaCanadaAmy Elsner UNQUALIFIED
Octavia B PoquetteGermanyIvan Magalhaes RENEWAL
Mujtaba Z MaletUnited KingdomXuxue Feng PROPOSAL
Mayumi A OldroydUnited KingdomOnyama Limba NEW
Johnson H StensethSpainStephen Shaw QUALIFIED
Emily X CaudyJapanAsiya Javayant UNQUALIFIED
Francesco H FlosiAustraliaAsiya Javayant NEGOTIATION
Jennifer G TollnerSpainIoni Bowcher NEGOTIATION
Murillo Y OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois O WaycottIndiaIoni Bowcher QUALIFIED
Kadeem P FollerUnited KingdomIvan Magalhaes NEW
Misaki G GarufiCanadaXuxue Feng PROPOSAL
Deepesh B RutaArgentinaAsiya Javayant RENEWAL
Rodrigues O GlickUnited KingdomAsiya Javayant QUALIFIED
Julie U OldroydGermanyBernardo Dominic NEW
Julie I BriddickIndiaOnyama Limba RENEWAL
Leja V SlusarskiBrazilAmy Elsner RENEWAL
Deepesh C BriddickUnited KingdomElwin Sharvill RENEWAL
Emily E MaletJapanOnyama Limba NEW
Kadeem N NickaItalyXuxue Feng QUALIFIED
Izzy B PaprockiCanadaOnyama Limba NEW
Arvin P InouyeRussiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Silvio D Rim
Alejandro L Ostrosky
Silvio Y Maclead
Kadeem X Dilliard
Adams L Albares
Nicolas R Bolognia
Aika G Perin
Izzy Y Sergi
Ricardo K Waycott
Jeanfrancois D Caldarera
Emily Z Figeroa
Julie S Oldroyd
Tony V Oldroyd
Faith Z Vocelka
Aditya G Doe
Clifford B Garufi
Johnson Y Bolognia
Mujtaba E Ostrosky
Aditya S Ostrosky
Kadeem J Gillian
Johnson U Caldarera
Jefferson V Ostrosky
Maria U Shinko
Smith G Shinko
Juan U Dilliard
Kadeem U Foller
Smith G Doe
Jones R Kusko
Tony R Slusarski
Deepesh H Inouye
Alejandro P Oldroyd
Misaki A Ruta
Octavia Z Flosi
Isabel N Marrier
Aika W Kolmetz
Maisha M Flosi
Faith N Wieser
Deepesh V Ruta
Kadeem X Malet
Arvin D Flosi
Octavia J Gillian
Leon N Glick
Ivar F Flosi
James R Briddick
Kadeem U Sergi
Aditya E Schemmer
Jennifer G Kolmetz
Nicolas T Malet
Johnson S Doe
Jennifer F Ruta
IdCountryDate
1000Argentina2025-05-30
1001India2025-05-29
1002Canada2025-05-21
1003Spain2025-05-26
1004Canada2025-05-29
1005United Kingdom2025-06-05
1006Japan2025-05-23
1007Australia2025-06-15
1008Australia2025-06-08
1009Brazil2025-06-03
1010Spain2025-06-14
1011Brazil2025-05-28
1012Australia2025-06-02
1013United Kingdom2025-06-13
1014Italy2025-05-24
1015Italy2025-06-06
1016Canada2025-05-18
1017France2025-05-22
1018Japan2025-05-30
1019Germany2025-05-26
1020United Kingdom2025-06-05
1021Italy2025-05-29
1022France2025-05-28
1023France2025-06-04
1024Australia2025-06-01
1025France2025-06-14
1026Argentina2025-05-19
1027France2025-06-09
1028Spain2025-05-19
1029India2025-05-28
1030United Kingdom2025-06-04
1031Brazil2025-06-02
1032Spain2025-06-12
1033Japan2025-05-30
1034Canada2025-06-03
1035Russia2025-06-04
1036Spain2025-06-15
1037India2025-06-10
1038France2025-05-28
1039France2025-05-31
1040Argentina2025-06-09
1041Australia2025-05-28
1042France2025-05-28
1043Germany2025-06-11
1044United Kingdom2025-05-27
1045India2025-06-09
1046Australia2025-05-25
1047India2025-05-26
1048Brazil2025-06-08
1049Canada2025-06-08

On-Demand Data

NameIdCountryDate
Wickens R Rulapaugh1000Russia2025-06-12
Misaki A Garufi1001France2025-06-07
Ivar B Caudy1002Italy2025-06-04
Jones Y Caldarera1003Russia2025-06-15
Aditya Q Perin1004Brazil2025-05-28
Maisha H Sergi1005Argentina2025-06-09
Ivar E Saylors1006France2025-06-07
James H Malet1007Brazil2025-06-09
Rodrigues U Whobrey1008India2025-05-27
Adams U Chui1009Spain2025-05-27
Clifford I Marrier1010United Kingdom2025-06-16
David L Albares1011Brazil2025-06-10
Alejandro H Kusko1012Argentina2025-05-25
Kadeem X Flosi1013Germany2025-05-30
Jones F Gillian1014Australia2025-05-24
Maisha L Nestle1015Japan2025-05-24
David Y Saylors1016Argentina2025-06-11
Wickens B Morasca1017Russia2025-05-19
Greenwood X Oldroyd1018Italy2025-05-23
David B Whobrey1019Brazil2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci R BologniaGermanyStephen Shaw QUALIFIED
Wickens N VenereSpainAmy Elsner NEGOTIATION
Jennifer X TollnerAustraliaStephen Shaw NEW
Greenwood R MorascaCanadaAmy Elsner PROPOSAL
Aruna F IturbideGermanyStephen Shaw QUALIFIED
Rodrigues J AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Jones Z MorascaArgentinaElwin Sharvill RENEWAL
Mayumi Z KuskoUnited KingdomBernardo Dominic PROPOSAL
Munro D MaletUnited KingdomAmy Elsner RENEWAL
Deepesh J ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Cody Z GlickGermanyXuxue Feng QUALIFIED
Silvio H DilliardJapanAsiya Javayant UNQUALIFIED
Isabel B InouyeJapanBernardo Dominic PROPOSAL
Leon R MorascaArgentinaOnyama Limba RENEWAL
Tony C PaprockiJapanStephen Shaw NEGOTIATION
Munro I OldroydFranceIoni Bowcher QUALIFIED
Faith G DilliardIndiaXuxue Feng RENEWAL
Juan C PoquetteIndiaIoni Bowcher PROPOSAL
Juan P MaletUnited KingdomAsiya Javayant NEW
Adams N AmigonFranceAnna Fali QUALIFIED
David F WieserUnited KingdomElwin Sharvill NEW
Francesco K DilliardIndiaIoni Bowcher QUALIFIED
Sinclair A OstroskyCanadaOnyama Limba PROPOSAL
Morrow Y BriddickGermanyStephen Shaw UNQUALIFIED
Deepesh X WieserFranceAmy Elsner NEW
Adams D AmigonIndiaAsiya Javayant RENEWAL
Julie Y KuskoArgentinaAnna Fali RENEWAL
Silvio R RulapaughIndiaStephen Shaw NEW
Mujtaba C RoysterGermanyAsiya Javayant UNQUALIFIED
Adams B MacleadBrazilIvan Magalhaes NEW
Murillo Q DarakjyFranceAsiya Javayant NEW
Costa E BriddickAustraliaAmy Elsner NEW
Izzy V InouyeGermanyAnna Fali UNQUALIFIED
Greenwood C FerenczGermanyAnna Fali RENEWAL
Morrow Y IturbideArgentinaElwin Sharvill NEGOTIATION
Kaitlin F DoeBrazilAmy Elsner QUALIFIED
Morrow J MaletItalyAnna Fali NEW
Sinclair V AlbaresIndiaStephen Shaw NEGOTIATION
Maisha P KuskoArgentinaOnyama Limba NEGOTIATION
Mujtaba U VenereBrazilIoni Bowcher PROPOSAL

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