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
Julie Y CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Octavia O SchemmerArgentinaAsiya Javayant UNQUALIFIED
Misaki U OstroskyGermanyXuxue Feng NEW
Faith B MorascaUnited KingdomIvan Magalhaes RENEWAL
Tony V DilliardUnited KingdomXuxue Feng UNQUALIFIED
Chavez Q RulapaughSpainIoni Bowcher RENEWAL
Adams C WaycottArgentinaXuxue Feng NEW
Chavez I AmigonArgentinaAmy Elsner QUALIFIED
Maria T KolmetzArgentinaIoni Bowcher NEW
Faith I SchemmerFranceAmy Elsner QUALIFIED
Sinclair Y KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Ricardo Z NickaGermanyBernardo Dominic NEW
Julie W BriddickAustraliaAmy Elsner QUALIFIED
Wickens C PaprockiUnited KingdomAnna Fali PROPOSAL
Francesco X RoysterSpainIoni Bowcher NEW
Mujtaba Y IturbideIndiaIoni Bowcher RENEWAL
Jefferson L RutaItalyOnyama Limba RENEWAL
David U VocelkaGermanyIoni Bowcher NEGOTIATION
Jennifer C NestleItalyAsiya Javayant PROPOSAL
Alejandro K BologniaAustraliaAsiya Javayant QUALIFIED
Darci R ButtItalyBernardo Dominic QUALIFIED
Faith H FollerJapanOnyama Limba PROPOSAL
Darci D OldroydGermanyStephen Shaw RENEWAL
James H StensethIndiaIoni Bowcher PROPOSAL
Misaki Q InouyeGermanyElwin Sharvill QUALIFIED
Emily J WhobreyCanadaBernardo Dominic QUALIFIED
Rodrigues K CaldareraUnited KingdomElwin Sharvill PROPOSAL
Isabel D CaudyFranceAnna Fali PROPOSAL
Costa J CaldareraAustraliaAmy Elsner UNQUALIFIED
Greenwood H AlbaresIndiaAmy Elsner RENEWAL
Emily I MaletAustraliaXuxue Feng NEW
Nicolas P PoquetteBrazilElwin Sharvill QUALIFIED
Arvin N VenereIndiaAnna Fali NEGOTIATION
Ashley C AlbaresUnited KingdomXuxue Feng RENEWAL
Salvatore A PaprockiAustraliaIoni Bowcher UNQUALIFIED
Adams T GillianIndiaXuxue Feng PROPOSAL
Stacey E BologniaUnited KingdomOnyama Limba NEGOTIATION
Alejandro L BriddickIndiaXuxue Feng QUALIFIED
Ivar V WieserAustraliaAsiya Javayant PROPOSAL
Octavia Y GarufiUnited KingdomAsiya Javayant RENEWAL
Nicolas E GillianBrazilIvan Magalhaes QUALIFIED
Arvin P SlusarskiAustraliaOnyama Limba QUALIFIED
Nicolas D WhobreyJapanBernardo Dominic RENEWAL
Misaki F SergiCanadaBernardo Dominic QUALIFIED
Deepesh D RimUnited KingdomIvan Magalhaes NEW
Wickens T FigeroaFranceIvan Magalhaes QUALIFIED
Claire A MacleadAustraliaAmy Elsner QUALIFIED
Ricardo Q SaylorsAustraliaIoni Bowcher NEGOTIATION
Mujtaba M MaletRussiaAnna Fali UNQUALIFIED
Jones Q ShinkoRussiaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh X PerinSpainAsiya Javayant QUALIFIED
Octavia V PoquetteArgentinaStephen Shaw NEW
Octavia G RutaJapanBernardo Dominic PROPOSAL
Darci I ButtAustraliaAsiya Javayant UNQUALIFIED
Misaki C WieserItalyAsiya Javayant QUALIFIED
Tony P GillianFranceAmy Elsner NEW
Octavia H MacleadFranceAnna Fali UNQUALIFIED
Maria W SchemmerUnited KingdomBernardo Dominic NEW
Morrow R IturbideFranceAmy Elsner NEGOTIATION
Antonio M NickaFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily J PoquetteJapan2024-06-10Chanay, Jeffrey A Esq NEGOTIATION19Ioni Bowcher
1001Costa T RutaArgentina2024-06-08Rangoni Of Florence NEW40Amy Elsner
1002Maria X MacleadArgentina2024-06-02Rangoni Of Florence NEW72Anna Fali
1003Octavia J GarufiCanada2024-06-10Feiner Bros NEW81Asiya Javayant
1004David M RulapaughJapan2024-06-18Feiner Bros NEGOTIATION1Elwin Sharvill
1005Salvatore S ChuiCanada2024-06-20Truhlar And Truhlar Attys UNQUALIFIED40Xuxue Feng
1006Rodrigues X NestleItaly2024-06-16Benton, John B Jr NEGOTIATION16Stephen Shaw
1007Juan Q WieserUnited Kingdom2024-05-28Chapman, Ross E Esq RENEWAL20Amy Elsner
1008Arvin R WaycottGermany2024-06-15Truhlar And Truhlar Attys NEW94Onyama Limba
1009Claire V SaylorsJapan2024-05-26Commercial Press NEW48Asiya Javayant
1010Francesco I GillianSpain2024-06-02Dorl, James J Esq PROPOSAL19Anna Fali
1011Antonio L FollerAustralia2024-06-14Truhlar And Truhlar Attys NEGOTIATION76Elwin Sharvill
1012Maria Q StensethFrance2024-06-11Truhlar And Truhlar Attys UNQUALIFIED41Anna Fali
1013Rodrigues S VenereItaly2024-06-16Truhlar And Truhlar Attys RENEWAL93Anna Fali
1014Johnson P StensethIndia2024-06-14Feiner Bros NEW44Ioni Bowcher
1015Claire S WaycottCanada2024-06-10Printing Dimensions UNQUALIFIED92Ivan Magalhaes
1016Maria E CaudyAustralia2024-05-31Buckley Miller Wright RENEWAL57Xuxue Feng
1017Rodrigues V KolmetzIndia2024-06-19Printing Dimensions NEGOTIATION60Onyama Limba
1018Octavia H FlosiGermany2024-05-30Feiner Bros NEW44Elwin Sharvill
1019Leja M CaudyRussia2024-05-27Chemel, James L Cpa QUALIFIED37Bernardo Dominic
1020Munro S SlusarskiGermany2024-06-01Feltz Printing Service RENEWAL74Stephen Shaw
1021David I CaudyCanada2024-05-29Rangoni Of Florence PROPOSAL1Xuxue Feng
1022Cody I MorascaBrazil2024-06-23King, Christopher A Esq NEW67Asiya Javayant
1023Silvio O BologniaCanada2024-05-25Chemel, James L Cpa UNQUALIFIED61Asiya Javayant
1024Cody J OldroydSpain2024-05-30Buckley Miller Wright NEW28Anna Fali
1025Misaki G MacleadItaly2024-06-19Morlong Associates UNQUALIFIED35Ivan Magalhaes
1026Leon Q MarrierArgentina2024-06-07Rousseaux, Michael Esq RENEWAL74Bernardo Dominic
1027Kadeem P FlosiIndia2024-06-04Truhlar And Truhlar Attys UNQUALIFIED23Stephen Shaw
1028Morrow L NickaIndia2024-05-29Chanay, Jeffrey A Esq PROPOSAL79Xuxue Feng
1029Antonio N FlosiJapan2024-06-06Buckley Miller Wright NEGOTIATION36Amy Elsner
1030Antonio T MaletUnited Kingdom2024-05-28Benton, John B Jr QUALIFIED98Ivan Magalhaes
1031David O RulapaughRussia2024-05-31Feiner Bros NEGOTIATION66Ioni Bowcher
1032Maria T MacleadJapan2024-06-01Buckley Miller Wright NEW91Elwin Sharvill
1033Maria L OstroskyGermany2024-06-02Chanay, Jeffrey A Esq RENEWAL13Xuxue Feng
1034Mujtaba H DarakjyIndia2024-06-12Benton, John B Jr RENEWAL35Stephen Shaw
1035Silvio Z MaletArgentina2024-05-31Chemel, James L Cpa NEW67Ivan Magalhaes
1036Costa H DarakjyCanada2024-06-07Chanay, Jeffrey A Esq UNQUALIFIED66Ioni Bowcher
1037Leja E WieserFrance2024-05-28Morlong Associates NEW28Ioni Bowcher
1038Kadeem R ChuiIndia2024-06-11Printing Dimensions NEW93Xuxue Feng
1039Alejandro A BriddickRussia2024-05-26Chemel, James L Cpa NEGOTIATION19Ioni Bowcher
1040Jennifer Y NestleSpain2024-05-26Chapman, Ross E Esq NEGOTIATION65Ivan Magalhaes
1041Nicolas E SchemmerIndia2024-06-21Chanay, Jeffrey A Esq PROPOSAL46Onyama Limba
1042Claire X MaletGermany2024-05-30Morlong Associates RENEWAL22Ioni Bowcher
1043Munro X TollnerAustralia2024-06-22Feltz Printing Service RENEWAL6Onyama Limba
1044Maisha W NestleCanada2024-06-21Printing Dimensions NEGOTIATION89Ivan Magalhaes
1045Faith E GauchoGermany2024-06-12Feiner Bros NEW5Ioni Bowcher
1046Johnson Y NestleSpain2024-06-23Truhlar And Truhlar Attys PROPOSAL49Amy Elsner
1047Jones Y MaletArgentina2024-06-08Feltz Printing Service QUALIFIED44Ioni Bowcher
1048Claire Q CaldareraItaly2024-06-03Feltz Printing Service NEW89Ioni Bowcher
1049Greenwood J InouyeUnited Kingdom2024-05-29Morlong Associates UNQUALIFIED1Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon U NickaJapanElwin Sharvill NEW
Smith V StensethGermanyBernardo Dominic NEW
Chavez V FerenczFranceStephen Shaw UNQUALIFIED
Chavez U DilliardAustraliaStephen Shaw RENEWAL
Octavia X NestleFranceAnna Fali UNQUALIFIED
Alejandro B GlickFranceStephen Shaw PROPOSAL
Clifford G RutaFranceIoni Bowcher NEW
Mujtaba D SlusarskiFranceXuxue Feng UNQUALIFIED
Kadeem Q DilliardJapanXuxue Feng QUALIFIED
Izzy Q OstroskyFranceXuxue Feng RENEWAL
David C WieserJapanIoni Bowcher RENEWAL
Jennifer X CaudyGermanyBernardo Dominic RENEWAL
Aika A FollerAustraliaElwin Sharvill QUALIFIED
Leja J DoeJapanIoni Bowcher UNQUALIFIED
Ricardo E WieserArgentinaStephen Shaw NEGOTIATION
Morrow I NickaAustraliaIoni Bowcher RENEWAL
Silvio P BologniaItalyIvan Magalhaes QUALIFIED
Julie G BologniaAustraliaElwin Sharvill RENEWAL
Morrow U StensethRussiaIoni Bowcher NEW
Stacey N FigeroaGermanyIoni Bowcher QUALIFIED
Alejandro Y TollnerIndiaElwin Sharvill RENEWAL
Silvio W RulapaughBrazilBernardo Dominic NEW
Clifford Z CaudyAustraliaAnna Fali NEGOTIATION
Ashley H ButtUnited KingdomStephen Shaw NEGOTIATION
Claire T OstroskyBrazilStephen Shaw QUALIFIED
Mujtaba D ChuiJapanAnna Fali UNQUALIFIED
Deepesh G CaldareraItalyIoni Bowcher RENEWAL
Greenwood Q OldroydItalyBernardo Dominic RENEWAL
Tony D PerinFranceXuxue Feng NEGOTIATION
Adams S TollnerGermanyOnyama Limba NEGOTIATION
Arvin D ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore G PerinUnited KingdomStephen Shaw NEGOTIATION
Jeanfrancois I InouyeArgentinaAmy Elsner RENEWAL
Isabel P StockhamFranceIvan Magalhaes NEGOTIATION
Aditya A BologniaCanadaAmy Elsner UNQUALIFIED
Ricardo Y VocelkaArgentinaStephen Shaw QUALIFIED
Isabel O DarakjyArgentinaAnna Fali RENEWAL
Wickens L TollnerFranceXuxue Feng UNQUALIFIED
Ricardo D DoeItalyIoni Bowcher NEGOTIATION
Aika K PaprockiSpainIoni Bowcher NEGOTIATION
Arvin S ChuiCanadaElwin Sharvill PROPOSAL
Chavez K WhobreySpainBernardo Dominic RENEWAL
Ricardo R PoquetteCanadaAnna Fali NEW
Deepesh C WieserGermanyAsiya Javayant NEW
Jefferson P DilliardIndiaAsiya Javayant PROPOSAL
Julie E GillianAustraliaAmy Elsner PROPOSAL
Jennifer J SlusarskiItalyStephen Shaw NEGOTIATION
Kaitlin T MaletIndiaIoni Bowcher QUALIFIED
David G PerinRussiaOnyama Limba UNQUALIFIED
Izzy H DarakjyItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
Emily G Malet
Isabel Y Kolmetz
Antonio Y Figeroa
Stacey T Kusko
Maria D Waycott
Deepesh X Schemmer
Murillo U Vocelka
Aditya O Inouye
Ivar P Albares
Ivar U Ostrosky
Greenwood C Briddick
Aditya U Wieser
Tony W Paprocki
Costa N Rim
Aika O Morasca
Munro N Schemmer
Costa H Paprocki
Leon V Campain
Octavia W Chui
Juan U Kusko
Ricardo C Maclead
Johnson J Malet
Aruna E Sergi
Leja P Tollner
Leja P Vocelka
Alejandro F Ostrosky
Tony C Royster
Stacey D Caldarera
Antonio D Garufi
Julie B Ostrosky
Darci D Caudy
Leon N Caudy
Aika U Campain
Isabel R Inouye
Maisha Y Glick
Isabel Y Caldarera
Ashley V Malet
Mayumi V Ferencz
Leon Z Gaucho
Morrow L Campain
Stacey N Inouye
Jones E Marrier
Alejandro I Doe
Maisha I Marrier
Adams Q Whobrey
David T Oldroyd
Greenwood J Bowley
Aika B Maclead
Antonio J Darakjy
Octavia V Paprocki
IdCountryDate
1000Italy2024-06-07
1001United Kingdom2024-05-26
1002Brazil2024-06-15
1003Germany2024-06-17
1004India2024-06-06
1005Australia2024-06-10
1006United Kingdom2024-06-13
1007Italy2024-06-12
1008France2024-05-28
1009Russia2024-05-31
1010United Kingdom2024-06-09
1011United Kingdom2024-05-31
1012Argentina2024-05-25
1013Argentina2024-06-23
1014Germany2024-06-22
1015Japan2024-05-30
1016Canada2024-06-13
1017Spain2024-06-08
1018Brazil2024-06-10
1019United Kingdom2024-05-25
1020India2024-06-01
1021Spain2024-06-23
1022Argentina2024-06-18
1023Russia2024-06-08
1024United Kingdom2024-06-19
1025Argentina2024-06-14
1026Brazil2024-06-03
1027France2024-05-25
1028India2024-06-11
1029Spain2024-06-17
1030Argentina2024-06-08
1031United Kingdom2024-06-17
1032Canada2024-06-10
1033United Kingdom2024-06-04
1034United Kingdom2024-06-05
1035Japan2024-06-13
1036Italy2024-05-26
1037Argentina2024-06-13
1038Italy2024-06-19
1039Italy2024-06-07
1040France2024-06-17
1041Australia2024-06-10
1042Germany2024-06-20
1043France2024-05-26
1044Argentina2024-06-20
1045Argentina2024-06-20
1046Russia2024-05-31
1047Australia2024-06-05
1048France2024-06-05
1049Argentina2024-06-08

On-Demand Data

NameIdCountryDate
Misaki E Rulapaugh1000Argentina2024-06-23
Deepesh U Morasca1001Australia2024-05-26
Costa A Flosi1002Australia2024-05-28
Alejandro V Waycott1003United Kingdom2024-06-13
Juan I Shinko1004Italy2024-05-30
Jefferson G Nicka1005Australia2024-06-23
Morrow X Inouye1006Germany2024-06-18
Darci F Oldroyd1007Canada2024-06-11
Rodrigues B Flosi1008Japan2024-06-07
Faith X Vocelka1009Brazil2024-06-22
Jefferson J Dilliard1010Germany2024-06-01
Ricardo G Campain1011Brazil2024-06-16
Greenwood P Darakjy1012Russia2024-06-18
Salvatore Z Stenseth1013Germany2024-06-08
Sinclair Q Kolmetz1014Canada2024-06-10
Chavez Q Schemmer1015Italy2024-06-13
Jeanfrancois L Paprocki1016Japan2024-06-11
Arvin V Oldroyd1017Spain2024-06-01
Nicolas X Stockham1018Germany2024-05-28
Ivar L Garufi1019Russia2024-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro N KuskoRussiaXuxue Feng QUALIFIED
Deepesh U GlickCanadaStephen Shaw NEW
Leja N PaprockiCanadaAsiya Javayant NEGOTIATION
Darci A BriddickUnited KingdomStephen Shaw NEW
Jefferson S FerenczIndiaStephen Shaw UNQUALIFIED
Costa Y SchemmerIndiaOnyama Limba QUALIFIED
Ashley H GlickSpainBernardo Dominic PROPOSAL
Aditya K VocelkaRussiaAsiya Javayant PROPOSAL
Greenwood T FlosiRussiaAmy Elsner NEW
Claire D DoeIndiaAsiya Javayant QUALIFIED
Silvio G MaletFranceAmy Elsner NEW
Leja X GauchoGermanyIoni Bowcher UNQUALIFIED
Salvatore C OldroydGermanyElwin Sharvill NEGOTIATION
Claire C AlbaresItalyStephen Shaw PROPOSAL
Claire O MorascaSpainStephen Shaw RENEWAL
Jeanfrancois O BologniaGermanyXuxue Feng QUALIFIED
Octavia M MacleadSpainIoni Bowcher PROPOSAL
James R WhobreyItalyAsiya Javayant NEGOTIATION
Jennifer Y RutaJapanAnna Fali PROPOSAL
Johnson C FigeroaCanadaIoni Bowcher NEW
Jefferson J TollnerCanadaStephen Shaw UNQUALIFIED
Kaitlin J GlickBrazilElwin Sharvill PROPOSAL
Mujtaba X StensethGermanyOnyama Limba NEGOTIATION
Maria U MarrierSpainAmy Elsner NEGOTIATION
Silvio S KolmetzSpainAmy Elsner RENEWAL
Jeanfrancois T PoquetteGermanyAmy Elsner PROPOSAL
Aditya I GauchoIndiaElwin Sharvill RENEWAL
Leon E NestleCanadaIvan Magalhaes UNQUALIFIED
Mayumi O StensethRussiaBernardo Dominic UNQUALIFIED
Ashley M BriddickFranceXuxue Feng QUALIFIED
Morrow V ShinkoRussiaAmy Elsner RENEWAL
Claire X MarrierUnited KingdomIoni Bowcher QUALIFIED
Ashley D AmigonFranceAsiya Javayant PROPOSAL
Wickens B CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Leon S BriddickJapanXuxue Feng PROPOSAL
Tony N OstroskyFranceBernardo Dominic UNQUALIFIED
Emily V StockhamBrazilStephen Shaw NEGOTIATION
Aruna D GauchoFranceElwin Sharvill PROPOSAL
Mayumi Q DoeArgentinaStephen Shaw NEGOTIATION
Smith V MarrierCanadaAnna Fali 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>