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
Adams H ShinkoFranceOnyama Limba PROPOSAL
Ivar D BologniaJapanAnna Fali PROPOSAL
Kadeem T GlickJapanAmy Elsner PROPOSAL
Leja I BowleyJapanElwin Sharvill NEGOTIATION
Ashley H FerenczGermanyStephen Shaw RENEWAL
Nicolas N StockhamRussiaXuxue Feng UNQUALIFIED
Leon E BologniaArgentinaStephen Shaw RENEWAL
Murillo C SchemmerCanadaElwin Sharvill NEGOTIATION
Maria N TollnerFranceAsiya Javayant QUALIFIED
Kadeem F StockhamBrazilElwin Sharvill PROPOSAL
Aditya L BologniaArgentinaBernardo Dominic NEGOTIATION
Kadeem J GlickAustraliaAnna Fali RENEWAL
Wickens T RutaFranceAnna Fali NEW
Jones M BriddickArgentinaBernardo Dominic PROPOSAL
Claire P VocelkaSpainElwin Sharvill NEGOTIATION
Jefferson K VenereBrazilAmy Elsner QUALIFIED
Leon M TollnerAustraliaAnna Fali QUALIFIED
James O IturbideBrazilAnna Fali PROPOSAL
Isabel T MacleadFranceElwin Sharvill UNQUALIFIED
Darci O SaylorsRussiaElwin Sharvill QUALIFIED
David L SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Darci S GillianAustraliaIoni Bowcher PROPOSAL
Ashley G RimFranceAmy Elsner NEW
Costa P MorascaCanadaOnyama Limba RENEWAL
Jefferson E IturbideUnited KingdomIvan Magalhaes QUALIFIED
Isabel N MarrierCanadaAnna Fali NEGOTIATION
Chavez V DoeAustraliaIvan Magalhaes NEGOTIATION
Stacey F VocelkaFranceAsiya Javayant NEGOTIATION
Antonio M PoquetteJapanOnyama Limba UNQUALIFIED
Cody Z ShinkoAustraliaIoni Bowcher NEGOTIATION
Kaitlin Z ChuiArgentinaOnyama Limba NEGOTIATION
Nicolas G GlickIndiaStephen Shaw NEW
Maria A OldroydJapanStephen Shaw NEW
Ashley S WieserCanadaAnna Fali NEGOTIATION
Aruna K WhobreyIndiaOnyama Limba NEGOTIATION
Costa V VenereCanadaXuxue Feng QUALIFIED
Salvatore N MaletIndiaIoni Bowcher NEW
David C InouyeUnited KingdomAmy Elsner PROPOSAL
Chavez I RutaAustraliaAsiya Javayant RENEWAL
Greenwood X ShinkoIndiaIvan Magalhaes NEGOTIATION
Deepesh N MaletArgentinaAmy Elsner RENEWAL
Ivar Y SchemmerBrazilXuxue Feng NEGOTIATION
Jeanfrancois X RutaArgentinaAmy Elsner PROPOSAL
Munro R StockhamBrazilAnna Fali UNQUALIFIED
Izzy L TollnerGermanyElwin Sharvill UNQUALIFIED
Kadeem H SlusarskiJapanElwin Sharvill UNQUALIFIED
Kaitlin S ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Isabel A SlusarskiItalyAmy Elsner NEGOTIATION
Faith Z SchemmerJapanAnna Fali QUALIFIED
Johnson M InouyeCanadaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya O MaletAustraliaAnna Fali UNQUALIFIED
Jones L DarakjyRussiaOnyama Limba RENEWAL
Murillo L StockhamArgentinaAsiya Javayant NEW
Jones O ChuiUnited KingdomElwin Sharvill RENEWAL
Morrow J KolmetzRussiaIvan Magalhaes QUALIFIED
Leja I BriddickCanadaBernardo Dominic NEGOTIATION
Jeanfrancois J AmigonItalyAnna Fali NEW
Kaitlin R BriddickAustraliaOnyama Limba NEGOTIATION
Clifford M DarakjyItalyAmy Elsner UNQUALIFIED
Tony F RoysterSpainXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio U CampainArgentina2026-07-04Rangoni Of Florence PROPOSAL46Asiya Javayant
1001Antonio O OstroskySpain2026-07-16Chapman, Ross E Esq NEGOTIATION63Stephen Shaw
1002Sinclair I FigeroaIndia2026-06-26Truhlar And Truhlar Attys NEGOTIATION1Elwin Sharvill
1003Juan E MarrierGermany2026-07-23King, Christopher A Esq RENEWAL19Ivan Magalhaes
1004Kadeem H MarrierCanada2026-07-16Morlong Associates PROPOSAL92Stephen Shaw
1005Silvio S KuskoSpain2026-07-15Benton, John B Jr PROPOSAL62Onyama Limba
1006Maria W FollerSpain2026-07-23Morlong Associates UNQUALIFIED57Ioni Bowcher
1007Sinclair I WieserJapan2026-07-13Benton, John B Jr PROPOSAL60Elwin Sharvill
1008Juan Q SchemmerJapan2026-06-24Truhlar And Truhlar Attys UNQUALIFIED7Amy Elsner
1009Ivar L CaudyCanada2026-06-25Dorl, James J Esq NEGOTIATION0Stephen Shaw
1010Maria Q TollnerAustralia2026-07-23Chapman, Ross E Esq QUALIFIED48Onyama Limba
1011Smith Q RulapaughGermany2026-07-05Rousseaux, Michael Esq NEGOTIATION15Onyama Limba
1012Darci C OldroydArgentina2026-07-11Chanay, Jeffrey A Esq RENEWAL48Anna Fali
1013Emily P NestleFrance2026-07-11Chemel, James L Cpa QUALIFIED93Anna Fali
1014Rodrigues G FerenczRussia2026-07-23Truhlar And Truhlar Attys PROPOSAL46Ivan Magalhaes
1015Darci H ButtIndia2026-06-26Chanay, Jeffrey A Esq NEW53Amy Elsner
1016Maria Z OstroskyRussia2026-07-17Commercial Press QUALIFIED73Amy Elsner
1017Greenwood I MorascaAustralia2026-07-18Chapman, Ross E Esq RENEWAL2Amy Elsner
1018Kaitlin X MarrierRussia2026-07-17Chemel, James L Cpa QUALIFIED7Elwin Sharvill
1019Ricardo U CaudyIndia2026-06-27Rangoni Of Florence RENEWAL62Amy Elsner
1020Emily C OldroydRussia2026-07-06Chapman, Ross E Esq RENEWAL11Anna Fali
1021Kadeem N OstroskyAustralia2026-06-27Buckley Miller Wright RENEWAL53Anna Fali
1022Claire O PaprockiFrance2026-07-03Chapman, Ross E Esq NEGOTIATION76Anna Fali
1023Isabel Q DoeArgentina2026-07-16Truhlar And Truhlar Attys NEGOTIATION58Xuxue Feng
1024Kadeem I KuskoRussia2026-07-18Rousseaux, Michael Esq NEGOTIATION93Anna Fali
1025Francesco F RutaRussia2026-07-19Chapman, Ross E Esq RENEWAL37Ivan Magalhaes
1026Misaki Q FerenczBrazil2026-07-13Rangoni Of Florence NEGOTIATION25Amy Elsner
1027Sinclair V MaletGermany2026-07-06Feiner Bros NEW35Bernardo Dominic
1028Aditya G RutaRussia2026-07-10Dorl, James J Esq UNQUALIFIED93Onyama Limba
1029Octavia H GillianCanada2026-07-21Buckley Miller Wright NEW67Stephen Shaw
1030Munro O RutaAustralia2026-07-14Feiner Bros NEGOTIATION5Asiya Javayant
1031Smith Q WieserAustralia2026-07-03Feiner Bros NEGOTIATION74Amy Elsner
1032Misaki X CampainRussia2026-06-25Chanay, Jeffrey A Esq NEW54Xuxue Feng
1033Jones H FollerItaly2026-07-12Feiner Bros QUALIFIED89Xuxue Feng
1034Sinclair O GauchoCanada2026-06-26Feltz Printing Service PROPOSAL40Ioni Bowcher
1035Wickens A ButtArgentina2026-07-13Benton, John B Jr PROPOSAL73Onyama Limba
1036Octavia G NickaGermany2026-07-19Printing Dimensions PROPOSAL47Xuxue Feng
1037Kadeem U OldroydBrazil2026-07-08Commercial Press NEGOTIATION34Ioni Bowcher
1038Alejandro B GlickIndia2026-07-07Chemel, James L Cpa UNQUALIFIED9Onyama Limba
1039Ricardo K OstroskyFrance2026-06-28Buckley Miller Wright QUALIFIED79Elwin Sharvill
1040Claire U IturbideArgentina2026-07-22Morlong Associates QUALIFIED10Stephen Shaw
1041Aditya R FollerAustralia2026-07-22Commercial Press PROPOSAL76Ioni Bowcher
1042Wickens S DarakjySpain2026-06-26Chemel, James L Cpa UNQUALIFIED41Ivan Magalhaes
1043Julie R RutaIndia2026-07-21Chemel, James L Cpa QUALIFIED12Anna Fali
1044Izzy E SergiAustralia2026-07-15Chemel, James L Cpa NEW74Ivan Magalhaes
1045Maria M WieserItaly2026-07-01Chemel, James L Cpa NEGOTIATION97Bernardo Dominic
1046Costa Y ButtArgentina2026-06-25Feiner Bros UNQUALIFIED83Amy Elsner
1047David L PerinJapan2026-07-18Chanay, Jeffrey A Esq QUALIFIED6Asiya Javayant
1048Greenwood Y RoysterCanada2026-06-29Morlong Associates RENEWAL61Asiya Javayant
1049David W SchemmerItaly2026-07-11Rangoni Of Florence NEW26Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba L MaletIndiaIvan Magalhaes UNQUALIFIED
Salvatore T CampainIndiaStephen Shaw UNQUALIFIED
Ashley U MaletCanadaIvan Magalhaes PROPOSAL
Leja C OstroskyItalyBernardo Dominic QUALIFIED
David G ButtUnited KingdomAmy Elsner UNQUALIFIED
Mayumi E RoysterIndiaXuxue Feng PROPOSAL
Sinclair A DilliardSpainElwin Sharvill UNQUALIFIED
Sinclair M RulapaughBrazilAnna Fali PROPOSAL
Maisha Y VenereJapanStephen Shaw RENEWAL
Ivar I RoysterJapanStephen Shaw RENEWAL
Aditya F BologniaUnited KingdomStephen Shaw QUALIFIED
Adams V StensethFranceAnna Fali RENEWAL
Misaki U MaletArgentinaElwin Sharvill QUALIFIED
Costa M MorascaUnited KingdomElwin Sharvill QUALIFIED
Jones F FlosiGermanyIvan Magalhaes UNQUALIFIED
Chavez B OldroydGermanyStephen Shaw QUALIFIED
Adams F GillianFranceStephen Shaw QUALIFIED
Isabel U SaylorsFranceOnyama Limba UNQUALIFIED
Claire L SlusarskiCanadaAmy Elsner RENEWAL
Jennifer Q SchemmerFranceXuxue Feng NEW
Octavia G RoysterGermanyBernardo Dominic PROPOSAL
Stacey I BowleyUnited KingdomAnna Fali PROPOSAL
Salvatore K RulapaughUnited KingdomAsiya Javayant RENEWAL
Clifford S FollerSpainIvan Magalhaes NEW
Jefferson N ButtGermanyAnna Fali QUALIFIED
Juan L WhobreyRussiaAnna Fali PROPOSAL
Leja L PoquetteJapanAmy Elsner RENEWAL
Cody Q DarakjyCanadaOnyama Limba NEGOTIATION
Juan O MorascaIndiaOnyama Limba PROPOSAL
Greenwood Z StensethArgentinaXuxue Feng NEGOTIATION
Faith P ButtIndiaAnna Fali QUALIFIED
Salvatore Q GarufiCanadaStephen Shaw NEGOTIATION
Faith T TollnerAustraliaXuxue Feng PROPOSAL
Nicolas T StensethBrazilXuxue Feng UNQUALIFIED
Jeanfrancois E GillianCanadaOnyama Limba RENEWAL
Greenwood V FerenczIndiaAsiya Javayant NEW
Maria T WhobreyJapanStephen Shaw UNQUALIFIED
Murillo N SchemmerSpainAsiya Javayant NEGOTIATION
Mujtaba K GarufiFranceIvan Magalhaes QUALIFIED
Munro U SergiSpainBernardo Dominic UNQUALIFIED
Morrow T RoysterIndiaStephen Shaw NEW
Johnson O DilliardBrazilAsiya Javayant PROPOSAL
Aditya F ChuiUnited KingdomAnna Fali NEW
Sinclair T GarufiUnited KingdomOnyama Limba QUALIFIED
Jefferson R KuskoArgentinaStephen Shaw RENEWAL
Stacey C RulapaughBrazilAmy Elsner NEW
Maisha X PerinFranceBernardo Dominic UNQUALIFIED
Mayumi I ButtJapanStephen Shaw NEW
Clifford I NickaBrazilOnyama Limba RENEWAL
Clifford Y MorascaIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Juan X Malet
Silvio T Iturbide
David I Shinko
Tony M Perin
Clifford R Oldroyd
Silvio T Wieser
Aruna P Maclead
Julie Z Ostrosky
Jennifer B Poquette
Ashley C Maclead
Claire U Bowley
Greenwood A Venere
Jennifer T Butt
Ricardo M Tollner
Leja A Dilliard
Deepesh Q Malet
Jones M Rim
Octavia U Sergi
Aruna X Briddick
Izzy E Malet
James J Albares
Izzy G Nestle
Julie B Wieser
Aruna R Garufi
Izzy W Stockham
Clifford J Gaucho
Aditya D Sergi
Mayumi A Slusarski
Alejandro T Dilliard
Misaki D Stockham
Clifford W Inouye
Jennifer F Kolmetz
Wickens I Dilliard
Misaki W Nestle
Arvin Z Caudy
Sinclair W Butt
Antonio X Iturbide
Misaki O Dilliard
Antonio B Caudy
Izzy T Iturbide
Jennifer L Maclead
Jefferson K Gaucho
Deepesh F Sergi
Mayumi D Flosi
David U Maclead
Chavez C Flosi
Greenwood N Marrier
Francesco O Morasca
Clifford G Caldarera
Jennifer M Vocelka
IdCountryDate
1000Italy2026-06-27
1001Italy2026-07-14
1002India2026-07-06
1003Argentina2026-07-03
1004Australia2026-07-12
1005India2026-07-20
1006Germany2026-06-30
1007Spain2026-07-15
1008Australia2026-07-16
1009Russia2026-06-29
1010France2026-07-09
1011Russia2026-07-10
1012India2026-07-10
1013Canada2026-06-27
1014Argentina2026-07-08
1015Spain2026-07-19
1016Canada2026-06-24
1017India2026-06-25
1018Germany2026-07-15
1019Canada2026-07-22
1020Argentina2026-07-17
1021Germany2026-07-18
1022Argentina2026-07-18
1023Japan2026-07-11
1024India2026-06-24
1025Italy2026-07-01
1026Argentina2026-06-29
1027India2026-06-26
1028India2026-06-30
1029Argentina2026-06-28
1030Germany2026-07-05
1031Germany2026-06-28
1032Germany2026-07-21
1033Canada2026-07-10
1034Japan2026-07-17
1035Spain2026-06-24
1036Brazil2026-07-09
1037Italy2026-07-17
1038United Kingdom2026-07-03
1039Brazil2026-07-15
1040Japan2026-06-25
1041Argentina2026-07-22
1042India2026-06-30
1043Canada2026-07-06
1044Germany2026-07-22
1045Germany2026-07-04
1046Italy2026-07-05
1047Canada2026-07-21
1048Australia2026-07-14
1049Canada2026-07-23

On-Demand Data

NameIdCountryDate
Leja S Butt1000Argentina2026-07-09
Misaki G Ostrosky1001India2026-07-12
Juan V Stenseth1002Argentina2026-07-23
Munro J Malet1003United Kingdom2026-07-12
Ashley N Rulapaugh1004Italy2026-07-02
Rodrigues U Darakjy1005Australia2026-07-15
Salvatore R Glick1006Germany2026-06-28
Maria U Bolognia1007United Kingdom2026-07-10
Munro F Caldarera1008Argentina2026-06-29
Murillo G Figeroa1009Russia2026-07-14
Murillo Q Schemmer1010Canada2026-07-19
Sinclair U Marrier1011France2026-07-20
Octavia C Saylors1012Canada2026-06-27
David M Butt1013Argentina2026-07-21
Maisha E Shinko1014Canada2026-07-17
Johnson H Kusko1015Germany2026-07-22
Jefferson K Nestle1016Germany2026-07-19
Jeanfrancois X Sergi1017Japan2026-06-24
Jennifer W Perin1018Italy2026-06-26
Nicolas W Tollner1019Canada2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois R MaletRussiaIvan Magalhaes RENEWAL
Clifford B NickaIndiaAmy Elsner NEGOTIATION
Deepesh S PaprockiAustraliaBernardo Dominic NEW
Ashley O ShinkoArgentinaAnna Fali UNQUALIFIED
Isabel Z WhobreyGermanyIoni Bowcher UNQUALIFIED
Murillo U WieserCanadaAsiya Javayant NEGOTIATION
Octavia E SchemmerBrazilElwin Sharvill UNQUALIFIED
Smith N VenereJapanStephen Shaw QUALIFIED
Clifford A FollerCanadaAsiya Javayant NEW
Ricardo F OldroydFranceElwin Sharvill QUALIFIED
James Q FigeroaUnited KingdomIvan Magalhaes RENEWAL
Arvin Y FerenczRussiaAmy Elsner NEGOTIATION
Francesco L IturbideUnited KingdomBernardo Dominic UNQUALIFIED
Misaki Y NestleIndiaAnna Fali PROPOSAL
Adams K BriddickRussiaAnna Fali UNQUALIFIED
Stacey N SaylorsItalyBernardo Dominic PROPOSAL
Ricardo J AmigonUnited KingdomIoni Bowcher RENEWAL
Francesco F StensethUnited KingdomOnyama Limba UNQUALIFIED
Cody I PerinJapanAnna Fali UNQUALIFIED
Wickens R DoeIndiaAmy Elsner QUALIFIED
Kaitlin M NickaGermanyAsiya Javayant RENEWAL
Isabel K FollerUnited KingdomXuxue Feng NEGOTIATION
Kadeem P KolmetzSpainIoni Bowcher PROPOSAL
Salvatore W RulapaughFranceStephen Shaw QUALIFIED
Maisha O OldroydBrazilBernardo Dominic NEGOTIATION
Morrow N VocelkaBrazilIoni Bowcher NEGOTIATION
Aruna U FollerUnited KingdomBernardo Dominic PROPOSAL
Chavez V ChuiRussiaBernardo Dominic QUALIFIED
Ivar U VenereGermanyAmy Elsner PROPOSAL
Misaki E AlbaresJapanAmy Elsner RENEWAL
Aika P TollnerAustraliaAnna Fali PROPOSAL
Greenwood V GarufiJapanOnyama Limba NEW
Izzy O SchemmerBrazilIvan Magalhaes UNQUALIFIED
Murillo G FigeroaJapanXuxue Feng PROPOSAL
Darci J SlusarskiArgentinaAnna Fali NEW
Ricardo Q TollnerRussiaElwin Sharvill PROPOSAL
Smith V RimItalyIoni Bowcher NEGOTIATION
Leon T MaletGermanyAnna Fali NEGOTIATION
Alejandro Q WhobreyItalyIoni Bowcher QUALIFIED
Leja R ButtIndiaElwin Sharvill NEGOTIATION

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