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
Maisha I AlbaresItalyAnna Fali PROPOSAL
Jennifer P AlbaresCanadaAsiya Javayant RENEWAL
Nicolas B CampainArgentinaBernardo Dominic NEGOTIATION
Deepesh I VocelkaIndiaIoni Bowcher NEW
Julie T ShinkoItalyOnyama Limba PROPOSAL
Isabel X InouyeGermanyAsiya Javayant NEGOTIATION
Wickens F KuskoRussiaStephen Shaw UNQUALIFIED
Jones W CaudyItalyIvan Magalhaes NEW
David A MaletAustraliaStephen Shaw NEW
Leja D IturbideSpainAsiya Javayant NEGOTIATION
Mujtaba S MarrierSpainXuxue Feng NEGOTIATION
Wickens W CampainSpainAmy Elsner RENEWAL
Misaki P VocelkaGermanyStephen Shaw PROPOSAL
Johnson C ShinkoArgentinaElwin Sharvill RENEWAL
Darci N CampainGermanyStephen Shaw NEGOTIATION
Clifford B RutaIndiaIoni Bowcher QUALIFIED
Mayumi B RimUnited KingdomAnna Fali QUALIFIED
Adams W SergiFranceIoni Bowcher RENEWAL
Costa O MarrierGermanyBernardo Dominic PROPOSAL
Aruna Y GauchoRussiaOnyama Limba QUALIFIED
Aditya W InouyeJapanOnyama Limba NEW
Cody H KuskoGermanyXuxue Feng QUALIFIED
Claire R WhobreyIndiaAmy Elsner PROPOSAL
Maisha A NickaUnited KingdomIvan Magalhaes QUALIFIED
Jennifer F BowleyArgentinaXuxue Feng RENEWAL
Munro E SchemmerJapanXuxue Feng UNQUALIFIED
Johnson G GauchoItalyIoni Bowcher NEW
Mujtaba Y NestleAustraliaXuxue Feng NEW
Jeanfrancois O StockhamUnited KingdomAnna Fali NEGOTIATION
Mujtaba S NestleArgentinaIoni Bowcher PROPOSAL
David T KuskoCanadaOnyama Limba PROPOSAL
Jones G FollerFranceBernardo Dominic UNQUALIFIED
Ivar F GillianItalyAnna Fali PROPOSAL
Silvio O BologniaArgentinaIvan Magalhaes PROPOSAL
Misaki V FigeroaJapanAmy Elsner UNQUALIFIED
Mujtaba E GarufiBrazilOnyama Limba RENEWAL
Silvio Q StockhamRussiaOnyama Limba PROPOSAL
Faith O RoysterArgentinaOnyama Limba PROPOSAL
Octavia B WieserBrazilAnna Fali NEW
David M FlosiIndiaIoni Bowcher NEW
James U NestleItalyIoni Bowcher NEW
Aditya V FollerIndiaIvan Magalhaes UNQUALIFIED
Johnson N StensethSpainOnyama Limba PROPOSAL
Clifford P DoeItalyIvan Magalhaes QUALIFIED
Julie I CaudySpainStephen Shaw NEGOTIATION
Johnson Q OldroydFranceXuxue Feng UNQUALIFIED
Leon E DoeBrazilElwin Sharvill PROPOSAL
Silvio H GarufiIndiaAsiya Javayant UNQUALIFIED
Octavia X CaldareraFranceElwin Sharvill UNQUALIFIED
Adams L VocelkaAustraliaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith P StensethFranceAnna Fali UNQUALIFIED
Isabel D OldroydBrazilAnna Fali QUALIFIED
Kadeem Q InouyeArgentinaBernardo Dominic PROPOSAL
Alejandro A WhobreyCanadaAnna Fali RENEWAL
Clifford U BriddickSpainStephen Shaw PROPOSAL
Mujtaba E ChuiBrazilAnna Fali RENEWAL
Kadeem E MacleadIndiaAsiya Javayant NEGOTIATION
Alejandro N GauchoRussiaAsiya Javayant UNQUALIFIED
Ivar L MarrierIndiaOnyama Limba NEW
Chavez K RulapaughAustraliaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore T MorascaArgentina2026-07-14Rousseaux, Michael Esq NEW65Bernardo Dominic
1001Costa H AlbaresGermany2026-06-22Truhlar And Truhlar Attys QUALIFIED91Asiya Javayant
1002Aika W MacleadArgentina2026-07-15Chapman, Ross E Esq UNQUALIFIED57Asiya Javayant
1003Isabel J GarufiUnited Kingdom2026-06-20Rousseaux, Michael Esq PROPOSAL25Amy Elsner
1004Emily W NestleRussia2026-07-17Buckley Miller Wright NEW6Xuxue Feng
1005Tony N BowleyUnited Kingdom2026-06-24King, Christopher A Esq RENEWAL96Onyama Limba
1006Sinclair G TollnerJapan2026-07-18Printing Dimensions NEGOTIATION49Amy Elsner
1007Stacey M PoquetteRussia2026-06-26Chanay, Jeffrey A Esq PROPOSAL85Asiya Javayant
1008Mujtaba T WaycottCanada2026-06-21Rangoni Of Florence RENEWAL34Ivan Magalhaes
1009Emily I CampainItaly2026-07-07Feltz Printing Service PROPOSAL79Anna Fali
1010Greenwood W PoquetteRussia2026-07-04Chanay, Jeffrey A Esq NEW38Bernardo Dominic
1011Jefferson L OldroydArgentina2026-06-29Chemel, James L Cpa NEW18Elwin Sharvill
1012Darci Z WhobreySpain2026-06-28Chapman, Ross E Esq NEGOTIATION81Xuxue Feng
1013Darci X RulapaughItaly2026-07-11Truhlar And Truhlar Attys QUALIFIED40Ivan Magalhaes
1014Mayumi G ChuiArgentina2026-06-24Chanay, Jeffrey A Esq QUALIFIED25Elwin Sharvill
1015Francesco V VenereCanada2026-06-29Feltz Printing Service NEW46Xuxue Feng
1016Smith M InouyeRussia2026-07-16King, Christopher A Esq PROPOSAL46Asiya Javayant
1017Emily C WieserUnited Kingdom2026-07-07Truhlar And Truhlar Attys NEW83Bernardo Dominic
1018Deepesh C SchemmerRussia2026-07-02King, Christopher A Esq NEW56Asiya Javayant
1019Octavia S FollerFrance2026-07-13Truhlar And Truhlar Attys PROPOSAL52Onyama Limba
1020Stacey Y RulapaughIndia2026-07-09Buckley Miller Wright PROPOSAL20Asiya Javayant
1021Greenwood S SchemmerRussia2026-07-06Dorl, James J Esq NEW89Onyama Limba
1022Misaki E DilliardItaly2026-07-01Chapman, Ross E Esq QUALIFIED15Asiya Javayant
1023David Y RutaJapan2026-07-01Truhlar And Truhlar Attys QUALIFIED68Amy Elsner
1024Smith N VenereItaly2026-07-03Chanay, Jeffrey A Esq NEGOTIATION54Stephen Shaw
1025Aditya E DilliardItaly2026-07-14Chanay, Jeffrey A Esq RENEWAL20Elwin Sharvill
1026Maria S OldroydSpain2026-07-12Rousseaux, Michael Esq NEGOTIATION96Amy Elsner
1027Isabel X IturbideUnited Kingdom2026-07-04Commercial Press UNQUALIFIED65Anna Fali
1028Arvin K FlosiGermany2026-06-21Benton, John B Jr RENEWAL89Onyama Limba
1029Greenwood B CaudyIndia2026-06-30Dorl, James J Esq NEGOTIATION85Asiya Javayant
1030Julie J FlosiBrazil2026-07-04Morlong Associates RENEWAL70Amy Elsner
1031Adams K SergiSpain2026-07-06Chemel, James L Cpa UNQUALIFIED99Onyama Limba
1032Chavez B MorascaSpain2026-07-09Chanay, Jeffrey A Esq QUALIFIED87Asiya Javayant
1033Leon W BowleyRussia2026-07-14Benton, John B Jr NEGOTIATION93Asiya Javayant
1034Morrow R CampainCanada2026-06-22Rousseaux, Michael Esq NEGOTIATION23Asiya Javayant
1035Rodrigues A WieserUnited Kingdom2026-06-23Chanay, Jeffrey A Esq PROPOSAL58Ivan Magalhaes
1036James E KuskoAustralia2026-06-27King, Christopher A Esq NEW27Bernardo Dominic
1037Stacey H TollnerJapan2026-06-27Benton, John B Jr PROPOSAL46Onyama Limba
1038Ivar P BowleyUnited Kingdom2026-06-21Morlong Associates NEGOTIATION88Ivan Magalhaes
1039Jones D SchemmerSpain2026-07-01King, Christopher A Esq UNQUALIFIED54Asiya Javayant
1040Maisha W RutaCanada2026-07-18Rangoni Of Florence NEGOTIATION74Asiya Javayant
1041Jones F AmigonIndia2026-07-10Feiner Bros NEGOTIATION68Amy Elsner
1042Murillo N SchemmerIndia2026-07-07Feltz Printing Service NEGOTIATION88Stephen Shaw
1043Julie O WhobreyCanada2026-07-18King, Christopher A Esq PROPOSAL69Stephen Shaw
1044Jeanfrancois O RutaIndia2026-06-19Chapman, Ross E Esq RENEWAL41Stephen Shaw
1045Nicolas G BologniaCanada2026-07-17Truhlar And Truhlar Attys RENEWAL25Amy Elsner
1046Greenwood G FigeroaIndia2026-07-12Benton, John B Jr NEW28Bernardo Dominic
1047Mayumi B WhobreyIndia2026-07-12Rousseaux, Michael Esq UNQUALIFIED82Elwin Sharvill
1048Faith L TollnerGermany2026-06-29Chemel, James L Cpa PROPOSAL67Anna Fali
1049Faith Z VocelkaFrance2026-06-20Feltz Printing Service QUALIFIED49Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony F CaldareraRussiaIoni Bowcher NEGOTIATION
Adams T VocelkaRussiaElwin Sharvill NEW
Julie B OldroydRussiaOnyama Limba UNQUALIFIED
Arvin N NestleAustraliaXuxue Feng UNQUALIFIED
Leon O BowleyArgentinaAnna Fali NEGOTIATION
Aruna U PerinArgentinaIvan Magalhaes NEW
Munro T GauchoRussiaOnyama Limba NEW
Chavez S MaletArgentinaStephen Shaw UNQUALIFIED
Nicolas Y StensethGermanyStephen Shaw NEW
Leon P PoquetteIndiaXuxue Feng UNQUALIFIED
Salvatore J RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Francesco H RulapaughRussiaAnna Fali QUALIFIED
Mayumi N GillianJapanIvan Magalhaes UNQUALIFIED
Arvin C VocelkaBrazilXuxue Feng NEGOTIATION
Sinclair D WieserSpainOnyama Limba NEGOTIATION
Smith N BowleyAustraliaAnna Fali PROPOSAL
Isabel P NickaGermanyAnna Fali NEW
Adams U DarakjyRussiaAmy Elsner RENEWAL
Wickens H SchemmerAustraliaOnyama Limba UNQUALIFIED
Ivar E VenereBrazilBernardo Dominic QUALIFIED
Juan K OstroskyRussiaAnna Fali QUALIFIED
Ricardo I FigeroaRussiaIvan Magalhaes UNQUALIFIED
Aditya O CaudyRussiaElwin Sharvill PROPOSAL
James K FigeroaCanadaElwin Sharvill NEW
Kaitlin U RulapaughArgentinaStephen Shaw NEW
Octavia K WhobreyItalyStephen Shaw UNQUALIFIED
Leon V GauchoFranceAmy Elsner RENEWAL
Aika P AmigonIndiaAsiya Javayant UNQUALIFIED
Adams L CaudyUnited KingdomAmy Elsner NEGOTIATION
Aika L MarrierJapanStephen Shaw RENEWAL
Salvatore X ShinkoGermanyIoni Bowcher NEGOTIATION
Emily S OstroskyCanadaXuxue Feng QUALIFIED
Jennifer V TollnerUnited KingdomAmy Elsner UNQUALIFIED
Ivar A VenereBrazilAnna Fali RENEWAL
Alejandro K GauchoJapanAsiya Javayant QUALIFIED
Misaki O StockhamJapanIoni Bowcher NEW
Munro W WieserArgentinaStephen Shaw PROPOSAL
Octavia O BologniaCanadaElwin Sharvill UNQUALIFIED
Aruna J CampainItalyIvan Magalhaes NEW
Emily T SergiBrazilElwin Sharvill NEW
Ricardo S WhobreyBrazilXuxue Feng NEGOTIATION
Francesco Z ShinkoArgentinaIvan Magalhaes PROPOSAL
Francesco M GauchoArgentinaAnna Fali NEW
Francesco G MarrierCanadaIvan Magalhaes NEGOTIATION
Murillo O CaudyCanadaAsiya Javayant UNQUALIFIED
Cody B ButtUnited KingdomXuxue Feng PROPOSAL
Darci B GillianGermanyAnna Fali QUALIFIED
Octavia O DilliardFranceStephen Shaw NEW
Julie J RulapaughUnited KingdomIoni Bowcher NEW
Jones Z WieserJapanAnna Fali UNQUALIFIED
Frozen Columns
Name
Maisha A Nestle
Francesco B Nestle
Faith C Gaucho
Mayumi A Albares
Greenwood F Nicka
Tony Q Foller
Kadeem C Whobrey
Sinclair O Paprocki
David X Foller
Jefferson F Oldroyd
Silvio U Morasca
Aika U Royster
Jefferson B Marrier
Ashley P Stockham
Alejandro O Nestle
Mayumi Y Amigon
Stacey A Paprocki
Rodrigues K Campain
Misaki R Perin
Isabel B Ferencz
Tony L Tollner
Wickens F Slusarski
Aruna Q Malet
Kadeem V Iturbide
Kaitlin J Nestle
Silvio A Sergi
Aika O Maclead
Kadeem U Marrier
Octavia Y Poquette
Antonio Y Saylors
Jennifer P Figeroa
Jennifer A Caudy
Francesco C Campain
Deepesh V Kolmetz
Sinclair C Glick
Costa Q Sergi
Jones Z Bolognia
Salvatore R Chui
Greenwood E Poquette
Morrow I Shinko
David M Kolmetz
Juan N Figeroa
Morrow P Inouye
Munro U Perin
Ashley J Albares
Jeanfrancois I Whobrey
Jeanfrancois N Ferencz
Maisha V Kolmetz
Aditya G Morasca
Claire J Doe
IdCountryDate
1000France2026-06-27
1001Japan2026-06-28
1002Germany2026-06-29
1003Australia2026-07-15
1004Canada2026-06-27
1005Canada2026-06-25
1006United Kingdom2026-07-07
1007Australia2026-07-13
1008Russia2026-07-11
1009Australia2026-07-10
1010Spain2026-06-29
1011France2026-06-22
1012Germany2026-06-19
1013Australia2026-07-01
1014Argentina2026-06-21
1015Germany2026-07-03
1016Australia2026-06-21
1017Russia2026-07-01
1018Brazil2026-07-15
1019Canada2026-07-17
1020Australia2026-06-24
1021Italy2026-07-09
1022France2026-06-22
1023Japan2026-07-08
1024Brazil2026-07-02
1025United Kingdom2026-07-05
1026Japan2026-07-11
1027Japan2026-07-13
1028United Kingdom2026-06-21
1029Canada2026-06-22
1030United Kingdom2026-07-12
1031Australia2026-07-06
1032Japan2026-07-06
1033Argentina2026-07-15
1034Canada2026-07-18
1035India2026-07-05
1036India2026-06-22
1037Russia2026-06-25
1038Italy2026-06-22
1039France2026-06-23
1040Australia2026-07-15
1041Italy2026-07-17
1042Argentina2026-07-16
1043Russia2026-06-27
1044Japan2026-07-05
1045Italy2026-07-02
1046Spain2026-07-12
1047Spain2026-07-02
1048Japan2026-07-10
1049Argentina2026-07-09

On-Demand Data

NameIdCountryDate
Maisha O Caudy1000Argentina2026-07-11
Chavez V Schemmer1001United Kingdom2026-06-29
Jones Y Shinko1002Russia2026-07-08
Adams K Ruta1003United Kingdom2026-07-11
Octavia L Chui1004Japan2026-07-04
Darci M Figeroa1005Russia2026-06-26
Chavez L Shinko1006Canada2026-06-21
Antonio C Ruta1007Argentina2026-06-23
Octavia D Ferencz1008Canada2026-06-27
Isabel G Flosi1009United Kingdom2026-07-07
Mayumi C Figeroa1010India2026-07-08
Greenwood O Malet1011Canada2026-07-16
Nicolas A Butt1012India2026-07-06
Salvatore U Nicka1013India2026-06-20
Alejandro T Maclead1014Germany2026-07-16
Kaitlin H Stenseth1015Spain2026-07-08
Ricardo G Nicka1016Brazil2026-06-21
Leja M Gaucho1017Brazil2026-06-27
Isabel Q Amigon1018Spain2026-07-12
Silvio A Wieser1019Brazil2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily Y InouyeAustraliaStephen Shaw NEGOTIATION
Maria S RimUnited KingdomBernardo Dominic NEW
Aditya A GillianArgentinaBernardo Dominic UNQUALIFIED
Morrow F MaletCanadaXuxue Feng NEW
Faith M StockhamFranceAmy Elsner NEGOTIATION
Darci P ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Cody H RoysterUnited KingdomAsiya Javayant NEW
Munro E WieserUnited KingdomAnna Fali RENEWAL
Aika M NickaArgentinaElwin Sharvill QUALIFIED
Aditya I InouyeArgentinaAnna Fali NEGOTIATION
Isabel F GauchoSpainBernardo Dominic QUALIFIED
Aika O BowleyFranceIvan Magalhaes PROPOSAL
Morrow K MaletIndiaIvan Magalhaes RENEWAL
Costa L FollerAustraliaStephen Shaw RENEWAL
Alejandro E RimJapanXuxue Feng NEW
Costa I MaletSpainXuxue Feng NEGOTIATION
Francesco C RulapaughFranceOnyama Limba QUALIFIED
Maisha Z AlbaresJapanStephen Shaw UNQUALIFIED
Izzy K AmigonItalyIoni Bowcher NEGOTIATION
Sinclair Y CampainCanadaAmy Elsner PROPOSAL
Juan R ShinkoGermanyElwin Sharvill NEW
Octavia F IturbideArgentinaIoni Bowcher PROPOSAL
Juan R RutaJapanOnyama Limba NEGOTIATION
Smith X OstroskySpainAsiya Javayant QUALIFIED
Clifford T VenereUnited KingdomXuxue Feng PROPOSAL
Aruna B FlosiArgentinaOnyama Limba UNQUALIFIED
Salvatore C WaycottFranceAsiya Javayant NEW
Maisha B KolmetzCanadaIvan Magalhaes PROPOSAL
Wickens W PoquetteRussiaElwin Sharvill QUALIFIED
Morrow S GillianSpainStephen Shaw NEW
Octavia V CaudyIndiaIoni Bowcher PROPOSAL
Isabel H InouyeGermanyAmy Elsner UNQUALIFIED
Maisha A IturbideRussiaBernardo Dominic NEGOTIATION
Rodrigues D GlickUnited KingdomOnyama Limba PROPOSAL
Aika N OldroydArgentinaBernardo Dominic UNQUALIFIED
Juan D ChuiSpainAmy Elsner UNQUALIFIED
David Q BologniaIndiaIvan Magalhaes NEW
Stacey Y BowleyFranceBernardo Dominic RENEWAL
Aika W AlbaresGermanyIvan Magalhaes NEW
Darci J VocelkaGermanyAsiya Javayant 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>