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 MaletBrazilIoni Bowcher NEW
Darci U CaldareraIndiaAmy Elsner RENEWAL
Maisha K GauchoJapanElwin Sharvill QUALIFIED
Smith A FollerJapanIvan Magalhaes NEGOTIATION
Silvio Y MorascaGermanyAsiya Javayant NEW
Johnson M SlusarskiAustraliaBernardo Dominic PROPOSAL
Jefferson D SlusarskiUnited KingdomAsiya Javayant RENEWAL
Faith X StensethFranceStephen Shaw PROPOSAL
Murillo N InouyeJapanBernardo Dominic QUALIFIED
Aruna O GarufiSpainIvan Magalhaes NEW
Arvin E FollerCanadaIoni Bowcher NEW
Clifford Y BriddickGermanyOnyama Limba QUALIFIED
Maisha E SchemmerItalyIvan Magalhaes NEW
Stacey L WieserArgentinaIoni Bowcher PROPOSAL
Ivar W StensethJapanAsiya Javayant UNQUALIFIED
Leja B SlusarskiArgentinaAmy Elsner NEW
Aditya Z BriddickAustraliaAsiya Javayant NEGOTIATION
Cody E FigeroaIndiaXuxue Feng NEW
James S SlusarskiGermanyAsiya Javayant RENEWAL
Leja Q DilliardJapanAsiya Javayant UNQUALIFIED
Morrow V DarakjyCanadaStephen Shaw RENEWAL
Munro F MaletUnited KingdomAnna Fali UNQUALIFIED
Maria P DoeRussiaAsiya Javayant UNQUALIFIED
Kadeem C KuskoCanadaAmy Elsner UNQUALIFIED
Tony D NestleItalyIoni Bowcher QUALIFIED
Misaki R MaletBrazilElwin Sharvill PROPOSAL
Murillo J MarrierFranceAmy Elsner RENEWAL
Julie W RulapaughRussiaAnna Fali PROPOSAL
Nicolas O FollerArgentinaIoni Bowcher NEW
Izzy B MacleadItalyOnyama Limba UNQUALIFIED
Ashley A VocelkaCanadaIvan Magalhaes RENEWAL
Murillo H TollnerCanadaXuxue Feng UNQUALIFIED
Faith H RulapaughBrazilAmy Elsner QUALIFIED
Morrow D PerinBrazilXuxue Feng NEW
Adams H GillianGermanyXuxue Feng QUALIFIED
James N FlosiUnited KingdomStephen Shaw QUALIFIED
Stacey R WieserIndiaAnna Fali QUALIFIED
Jones C AmigonJapanBernardo Dominic RENEWAL
Aika J VenereAustraliaAnna Fali PROPOSAL
Smith Q MaletFranceAnna Fali PROPOSAL
Adams I StensethAustraliaIoni Bowcher PROPOSAL
Leja J ButtCanadaStephen Shaw RENEWAL
Ashley E KuskoIndiaStephen Shaw NEW
Octavia Z KolmetzSpainIvan Magalhaes RENEWAL
Aika Z SchemmerJapanStephen Shaw QUALIFIED
Morrow Q FlosiArgentinaIvan Magalhaes RENEWAL
Deepesh A FigeroaCanadaAsiya Javayant PROPOSAL
Faith I CaudyCanadaStephen Shaw UNQUALIFIED
Nicolas S CaldareraJapanOnyama Limba QUALIFIED
Jeanfrancois C KuskoSpainAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore F KolmetzRussiaElwin Sharvill NEW
Morrow V IturbideUnited KingdomAmy Elsner PROPOSAL
Clifford F MacleadAustraliaElwin Sharvill RENEWAL
Smith I VenereAustraliaElwin Sharvill PROPOSAL
David X CampainSpainStephen Shaw UNQUALIFIED
Nicolas C MarrierSpainStephen Shaw NEW
Julie M IturbideJapanIvan Magalhaes PROPOSAL
Izzy R PerinIndiaXuxue Feng NEGOTIATION
Claire E WhobreyRussiaXuxue Feng PROPOSAL
Isabel M SchemmerAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro C MaletBrazil2026-06-08Benton, John B Jr NEW0Elwin Sharvill
1001Isabel T ButtUnited Kingdom2026-06-09Feiner Bros NEW39Anna Fali
1002Kaitlin K VenereGermany2026-06-28Morlong Associates PROPOSAL21Ioni Bowcher
1003Mayumi J ButtBrazil2026-06-11Buckley Miller Wright RENEWAL26Ioni Bowcher
1004Octavia E WieserRussia2026-06-24Buckley Miller Wright QUALIFIED1Elwin Sharvill
1005Alejandro T BowleySpain2026-06-12Rousseaux, Michael Esq UNQUALIFIED84Stephen Shaw
1006Isabel A ShinkoUnited Kingdom2026-06-15Chanay, Jeffrey A Esq RENEWAL45Bernardo Dominic
1007Ashley V GarufiIndia2026-06-13Chanay, Jeffrey A Esq RENEWAL35Ivan Magalhaes
1008Costa O TollnerAustralia2026-06-10Morlong Associates NEW98Asiya Javayant
1009Greenwood P KuskoUnited Kingdom2026-06-21Rangoni Of Florence QUALIFIED81Asiya Javayant
1010Munro D WaycottAustralia2026-06-13Chemel, James L Cpa RENEWAL61Anna Fali
1011Ivar J FlosiUnited Kingdom2026-06-10Buckley Miller Wright QUALIFIED34Ioni Bowcher
1012Tony I SlusarskiIndia2026-06-21Feiner Bros RENEWAL69Bernardo Dominic
1013Juan J RimItaly2026-06-30Chapman, Ross E Esq UNQUALIFIED12Amy Elsner
1014Murillo P DoeRussia2026-06-07Buckley Miller Wright PROPOSAL81Elwin Sharvill
1015Faith O StensethSpain2026-06-25Benton, John B Jr UNQUALIFIED37Ioni Bowcher
1016Ivar E SaylorsGermany2026-06-17Chanay, Jeffrey A Esq RENEWAL21Stephen Shaw
1017Isabel T DarakjyRussia2026-06-30Benton, John B Jr NEW25Elwin Sharvill
1018Antonio M TollnerUnited Kingdom2026-06-14Chemel, James L Cpa QUALIFIED18Amy Elsner
1019Greenwood E SchemmerFrance2026-06-07Commercial Press PROPOSAL57Stephen Shaw
1020Leja E SlusarskiBrazil2026-06-16Chapman, Ross E Esq UNQUALIFIED50Onyama Limba
1021Cody K MacleadSpain2026-06-15Chemel, James L Cpa NEW19Onyama Limba
1022Stacey A ChuiIndia2026-06-16Dorl, James J Esq RENEWAL58Bernardo Dominic
1023Chavez Z RoysterFrance2026-06-15Benton, John B Jr QUALIFIED34Asiya Javayant
1024Clifford U ShinkoRussia2026-06-09King, Christopher A Esq RENEWAL97Xuxue Feng
1025Smith A NickaJapan2026-06-17King, Christopher A Esq QUALIFIED94Bernardo Dominic
1026Salvatore U BowleyBrazil2026-06-21Commercial Press UNQUALIFIED89Bernardo Dominic
1027Faith R WieserJapan2026-06-15Benton, John B Jr UNQUALIFIED97Elwin Sharvill
1028Silvio G VenereIndia2026-06-04Rousseaux, Michael Esq QUALIFIED2Amy Elsner
1029Costa R RimJapan2026-06-11Rangoni Of Florence NEW33Anna Fali
1030Ashley I NickaFrance2026-06-24Benton, John B Jr PROPOSAL57Bernardo Dominic
1031Antonio Q DoeIndia2026-06-10Truhlar And Truhlar Attys NEGOTIATION15Ioni Bowcher
1032Julie J InouyeSpain2026-06-26Printing Dimensions NEGOTIATION94Onyama Limba
1033Leja X MacleadAustralia2026-07-01Buckley Miller Wright NEGOTIATION23Xuxue Feng
1034Leon I SlusarskiRussia2026-06-30Morlong Associates QUALIFIED34Bernardo Dominic
1035Sinclair Q TollnerCanada2026-06-05Feiner Bros UNQUALIFIED70Ioni Bowcher
1036Juan Y StensethGermany2026-06-21Buckley Miller Wright UNQUALIFIED89Anna Fali
1037Sinclair N RulapaughRussia2026-06-09Benton, John B Jr QUALIFIED69Ioni Bowcher
1038Tony D RulapaughItaly2026-06-25Printing Dimensions NEW50Onyama Limba
1039Aditya N CaudyJapan2026-06-29Chapman, Ross E Esq NEGOTIATION3Onyama Limba
1040Aditya J BriddickUnited Kingdom2026-06-29Dorl, James J Esq NEGOTIATION80Ivan Magalhaes
1041Stacey V SlusarskiCanada2026-07-03Rousseaux, Michael Esq NEGOTIATION34Anna Fali
1042Clifford H TollnerRussia2026-06-10Morlong Associates UNQUALIFIED89Bernardo Dominic
1043Claire V DoeJapan2026-06-15Rangoni Of Florence UNQUALIFIED65Ioni Bowcher
1044Maria R WieserBrazil2026-06-30Commercial Press RENEWAL54Ioni Bowcher
1045Cody Z SergiIndia2026-06-13Printing Dimensions NEW94Asiya Javayant
1046Tony I VocelkaUnited Kingdom2026-06-17Rousseaux, Michael Esq PROPOSAL73Onyama Limba
1047Claire N GarufiUnited Kingdom2026-06-09Printing Dimensions RENEWAL31Bernardo Dominic
1048Leon O CampainRussia2026-06-22King, Christopher A Esq QUALIFIED30Onyama Limba
1049Mujtaba I GillianBrazil2026-06-04King, Christopher A Esq UNQUALIFIED54Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez E CaudyFranceAmy Elsner QUALIFIED
Jennifer X FigeroaIndiaIvan Magalhaes RENEWAL
Wickens I VenereSpainXuxue Feng NEW
Maisha E MorascaAustraliaIvan Magalhaes UNQUALIFIED
Greenwood P SlusarskiGermanyAsiya Javayant NEGOTIATION
Isabel J GarufiIndiaOnyama Limba PROPOSAL
Costa B RimItalyIvan Magalhaes PROPOSAL
Smith V MaletBrazilStephen Shaw NEW
Jeanfrancois M VenereGermanyXuxue Feng NEGOTIATION
Aditya V AmigonArgentinaIvan Magalhaes QUALIFIED
Rodrigues H SaylorsRussiaAmy Elsner RENEWAL
Leon L BowleyGermanyAmy Elsner RENEWAL
Ivar W SlusarskiGermanyAsiya Javayant NEW
Francesco B ButtItalyBernardo Dominic NEW
Jeanfrancois M BowleyUnited KingdomXuxue Feng PROPOSAL
Maria O StockhamArgentinaAmy Elsner NEW
Morrow T SergiGermanyStephen Shaw PROPOSAL
Wickens U ShinkoJapanAnna Fali UNQUALIFIED
Morrow B RimRussiaOnyama Limba PROPOSAL
Mayumi Q RimGermanyIvan Magalhaes QUALIFIED
Ricardo S FollerGermanyAnna Fali NEGOTIATION
Deepesh E AlbaresGermanyAnna Fali NEW
Leon U OldroydBrazilAmy Elsner PROPOSAL
Johnson K GarufiItalyIoni Bowcher RENEWAL
Stacey I FigeroaRussiaIoni Bowcher RENEWAL
Octavia Q RoysterSpainBernardo Dominic NEW
David S ButtCanadaAsiya Javayant PROPOSAL
Aditya T KuskoRussiaIoni Bowcher NEGOTIATION
Faith V WieserUnited KingdomAsiya Javayant NEGOTIATION
Munro P StensethAustraliaIoni Bowcher QUALIFIED
Munro W NestleFranceElwin Sharvill NEW
Emily P WaycottCanadaAmy Elsner PROPOSAL
Antonio T ChuiFranceIoni Bowcher QUALIFIED
James J CaldareraItalyAmy Elsner PROPOSAL
Jeanfrancois E FigeroaSpainIvan Magalhaes NEW
Julie R DarakjyGermanyAmy Elsner UNQUALIFIED
Jeanfrancois M OldroydSpainBernardo Dominic QUALIFIED
Sinclair I SlusarskiJapanElwin Sharvill NEGOTIATION
Maria W KolmetzFranceAmy Elsner RENEWAL
James C SergiIndiaXuxue Feng UNQUALIFIED
Julie X SchemmerGermanyOnyama Limba NEGOTIATION
Greenwood O ButtSpainAsiya Javayant RENEWAL
Stacey O SlusarskiRussiaXuxue Feng NEW
Misaki L MacleadItalyXuxue Feng RENEWAL
Clifford D OldroydSpainXuxue Feng PROPOSAL
Ricardo T PaprockiGermanyElwin Sharvill RENEWAL
Chavez I AlbaresBrazilOnyama Limba NEGOTIATION
Darci P GillianUnited KingdomElwin Sharvill RENEWAL
Darci Z WaycottArgentinaOnyama Limba QUALIFIED
David L TollnerJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Jennifer S Rulapaugh
Nicolas I Glick
Jennifer K Ruta
Izzy R Saylors
Isabel L Tollner
Nicolas M Morasca
Arvin J Chui
Leon O Stenseth
Faith O Perin
Isabel T Malet
Costa P Gaucho
Misaki P Whobrey
Costa T Caldarera
Faith U Glick
Johnson J Darakjy
Aika T Inouye
Darci O Rulapaugh
Ricardo Y Flosi
Nicolas C Royster
James K Stockham
Jeanfrancois U Gaucho
Emily F Maclead
Maisha T Kusko
Kaitlin J Kolmetz
Antonio Y Sergi
Rodrigues K Glick
Sinclair O Poquette
Ivar Q Amigon
Murillo W Gillian
Silvio O Rulapaugh
Jones M Nicka
Claire F Tollner
David G Bowley
Nicolas Q Butt
Kaitlin C Darakjy
Leja G Gillian
Julie P Stenseth
Antonio T Paprocki
Kadeem T Butt
Maria Z Ostrosky
Francesco B Perin
Jefferson P Tollner
Deepesh K Tollner
Wickens C Caldarera
Isabel D Gillian
Tony V Malet
Aditya S Morasca
Morrow F Stenseth
Jennifer E Doe
Ricardo S Glick
IdCountryDate
1000Australia2026-06-10
1001Japan2026-06-19
1002Canada2026-06-10
1003India2026-06-30
1004India2026-06-06
1005Italy2026-07-01
1006Canada2026-06-08
1007Germany2026-06-30
1008France2026-06-20
1009India2026-06-26
1010India2026-06-27
1011Australia2026-06-24
1012Brazil2026-06-08
1013Australia2026-06-16
1014Japan2026-06-07
1015Brazil2026-06-19
1016India2026-06-09
1017Brazil2026-07-02
1018Australia2026-06-09
1019Italy2026-06-19
1020United Kingdom2026-06-26
1021United Kingdom2026-06-15
1022Germany2026-06-08
1023Canada2026-06-28
1024Italy2026-06-24
1025India2026-06-05
1026United Kingdom2026-06-20
1027Argentina2026-06-16
1028India2026-06-16
1029Canada2026-06-11
1030Brazil2026-06-10
1031Brazil2026-06-14
1032Canada2026-06-08
1033Germany2026-06-06
1034Brazil2026-06-11
1035United Kingdom2026-06-10
1036United Kingdom2026-06-27
1037Spain2026-06-25
1038Australia2026-06-25
1039Brazil2026-06-19
1040Australia2026-06-09
1041Germany2026-06-13
1042France2026-06-25
1043Russia2026-06-28
1044France2026-06-12
1045Japan2026-06-08
1046India2026-06-23
1047Spain2026-06-29
1048Germany2026-06-11
1049Spain2026-06-21

On-Demand Data

NameIdCountryDate
Maisha Q Ostrosky1000United Kingdom2026-06-28
Maisha J Rulapaugh1001Spain2026-06-09
Octavia O Bolognia1002Italy2026-06-25
Ivar P Glick1003Australia2026-07-03
Maisha L Bolognia1004Russia2026-06-28
Mayumi X Caldarera1005Argentina2026-06-14
Claire T Ruta1006Germany2026-06-14
Johnson Q Stenseth1007Argentina2026-06-26
Aruna C Kusko1008Japan2026-06-05
Cody Y Campain1009Argentina2026-07-03
Aditya I Dilliard1010France2026-06-17
Deepesh A Caldarera1011Russia2026-06-16
Alejandro C Flosi1012India2026-06-18
Jeanfrancois B Schemmer1013Germany2026-06-20
Julie A Perin1014France2026-06-11
Greenwood I Slusarski1015Australia2026-06-12
Stacey O Caudy1016United Kingdom2026-06-16
Faith J Dilliard1017United Kingdom2026-06-09
Jefferson I Sergi1018Australia2026-06-06
Mayumi N Wieser1019Spain2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel R BriddickCanadaIvan Magalhaes PROPOSAL
Emily T PaprockiSpainBernardo Dominic NEW
Jefferson G ButtIndiaOnyama Limba UNQUALIFIED
Julie X ChuiFranceXuxue Feng QUALIFIED
Mayumi O GarufiUnited KingdomIoni Bowcher QUALIFIED
Julie I StensethBrazilAmy Elsner UNQUALIFIED
Maria R MorascaArgentinaStephen Shaw NEW
Clifford R GauchoUnited KingdomAnna Fali RENEWAL
Emily I OstroskyItalyXuxue Feng NEGOTIATION
Leja I RutaUnited KingdomIoni Bowcher RENEWAL
Juan F InouyeUnited KingdomElwin Sharvill NEW
Morrow O ChuiItalyBernardo Dominic UNQUALIFIED
Isabel G BriddickJapanElwin Sharvill UNQUALIFIED
Silvio Z VocelkaGermanyXuxue Feng QUALIFIED
Jennifer L RutaCanadaXuxue Feng QUALIFIED
James H RulapaughBrazilIoni Bowcher NEGOTIATION
Claire C SchemmerItalyStephen Shaw RENEWAL
Francesco L DarakjyCanadaElwin Sharvill QUALIFIED
Deepesh O AmigonItalyAnna Fali QUALIFIED
Claire K DoeItalyAsiya Javayant RENEWAL
Wickens L GlickUnited KingdomBernardo Dominic UNQUALIFIED
Smith B ChuiRussiaAmy Elsner RENEWAL
Deepesh J GauchoFranceXuxue Feng UNQUALIFIED
Alejandro F VocelkaArgentinaAsiya Javayant RENEWAL
Chavez S GlickBrazilIvan Magalhaes NEW
Mujtaba U RulapaughCanadaOnyama Limba PROPOSAL
Jones Y StensethJapanIoni Bowcher QUALIFIED
Salvatore A KolmetzBrazilIvan Magalhaes RENEWAL
Octavia I RimAustraliaOnyama Limba QUALIFIED
Munro A MaletArgentinaIvan Magalhaes NEW
Munro S AlbaresGermanyOnyama Limba RENEWAL
Deepesh K DarakjyCanadaXuxue Feng NEGOTIATION
Leja K CaudyArgentinaXuxue Feng PROPOSAL
Aditya Z TollnerCanadaOnyama Limba QUALIFIED
Murillo F PaprockiUnited KingdomAnna Fali PROPOSAL
Nicolas K NickaFranceElwin Sharvill NEGOTIATION
Costa W MaletIndiaStephen Shaw UNQUALIFIED
Greenwood H GillianRussiaAsiya Javayant NEGOTIATION
Munro I WhobreyCanadaBernardo Dominic UNQUALIFIED
Francesco Z ChuiGermanyIoni Bowcher 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>