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
Jones T RutaIndiaAmy Elsner NEGOTIATION
Jones J MorascaGermanyStephen Shaw UNQUALIFIED
Arvin D ButtArgentinaOnyama Limba NEW
Aruna I MaletSpainElwin Sharvill PROPOSAL
Sinclair U BowleyItalyOnyama Limba NEGOTIATION
Leja M NickaBrazilStephen Shaw NEGOTIATION
Darci I NestleCanadaAsiya Javayant NEW
Murillo S GarufiIndiaElwin Sharvill UNQUALIFIED
Johnson H FollerUnited KingdomAmy Elsner NEW
Ricardo H StockhamCanadaElwin Sharvill NEGOTIATION
Morrow A AlbaresJapanIvan Magalhaes NEGOTIATION
Johnson E IturbideUnited KingdomBernardo Dominic NEW
Darci P KolmetzArgentinaAnna Fali UNQUALIFIED
Misaki K KuskoBrazilOnyama Limba UNQUALIFIED
Jennifer M ShinkoSpainOnyama Limba NEGOTIATION
Darci K PaprockiArgentinaAnna Fali RENEWAL
Ricardo G SlusarskiItalyIvan Magalhaes UNQUALIFIED
Salvatore G BologniaJapanAnna Fali QUALIFIED
Misaki S CaldareraSpainOnyama Limba PROPOSAL
Ashley S GlickGermanyBernardo Dominic NEW
Wickens B SchemmerRussiaAsiya Javayant NEGOTIATION
Costa P MorascaAustraliaOnyama Limba PROPOSAL
Jeanfrancois X RimSpainBernardo Dominic QUALIFIED
Leon L NestleSpainIoni Bowcher UNQUALIFIED
Francesco C GillianItalyElwin Sharvill NEW
Julie R RutaGermanyAnna Fali QUALIFIED
Wickens P AlbaresItalyOnyama Limba NEW
Murillo F FollerGermanyBernardo Dominic RENEWAL
Kadeem V WieserRussiaElwin Sharvill QUALIFIED
Leon O SchemmerItalyIvan Magalhaes PROPOSAL
Antonio Q GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford S FigeroaArgentinaElwin Sharvill PROPOSAL
Smith R CaudyCanadaAsiya Javayant PROPOSAL
Faith R AmigonFranceAmy Elsner NEGOTIATION
Jennifer B PaprockiJapanAmy Elsner QUALIFIED
Cody H GillianRussiaIoni Bowcher RENEWAL
Leon J PoquetteFranceXuxue Feng NEGOTIATION
Darci Q AlbaresBrazilStephen Shaw QUALIFIED
David H DoeSpainAmy Elsner RENEWAL
Cody N GauchoArgentinaIoni Bowcher UNQUALIFIED
Octavia S GlickAustraliaStephen Shaw PROPOSAL
Ivar A CampainSpainBernardo Dominic RENEWAL
Aika C AlbaresBrazilIoni Bowcher NEW
Alejandro I DarakjySpainAmy Elsner RENEWAL
David I RutaIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois W GlickIndiaAsiya Javayant NEGOTIATION
Claire E PerinAustraliaStephen Shaw NEGOTIATION
Izzy H MacleadItalyXuxue Feng NEGOTIATION
Maisha C GillianBrazilStephen Shaw UNQUALIFIED
Arvin D BowleyIndiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith C OstroskyUnited KingdomElwin Sharvill QUALIFIED
Ivar I WaycottIndiaXuxue Feng NEGOTIATION
Ricardo Z OldroydSpainAnna Fali NEGOTIATION
Leon X GlickArgentinaXuxue Feng NEGOTIATION
Cody Y MaletRussiaXuxue Feng PROPOSAL
Silvio C RulapaughFranceElwin Sharvill NEGOTIATION
Deepesh C SchemmerGermanyAsiya Javayant NEGOTIATION
Aruna C FerenczAustraliaBernardo Dominic NEW
Ivar P SlusarskiRussiaXuxue Feng QUALIFIED
Murillo A FlosiSpainElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci G RutaArgentina2026-07-16Morlong Associates NEGOTIATION97Xuxue Feng
1001Cody U TollnerRussia2026-06-27Chemel, James L Cpa PROPOSAL75Ivan Magalhaes
1002Munro U RulapaughArgentina2026-07-16Chemel, James L Cpa RENEWAL47Stephen Shaw
1003Adams Y FlosiGermany2026-07-10Feltz Printing Service QUALIFIED15Onyama Limba
1004Tony A ChuiCanada2026-07-10Chemel, James L Cpa PROPOSAL40Bernardo Dominic
1005Aruna H KuskoBrazil2026-06-19Rangoni Of Florence PROPOSAL36Anna Fali
1006Aika P GlickFrance2026-06-29Rangoni Of Florence UNQUALIFIED11Asiya Javayant
1007Arvin J FollerArgentina2026-07-15Feiner Bros RENEWAL71Bernardo Dominic
1008Rodrigues P SchemmerFrance2026-06-21Rousseaux, Michael Esq RENEWAL33Ioni Bowcher
1009Costa T IturbideCanada2026-07-04Benton, John B Jr NEGOTIATION47Anna Fali
1010Jefferson Y FlosiGermany2026-06-25Chapman, Ross E Esq UNQUALIFIED26Xuxue Feng
1011Mayumi V SchemmerCanada2026-07-04Morlong Associates UNQUALIFIED8Stephen Shaw
1012Faith S RutaCanada2026-07-16Feiner Bros NEGOTIATION59Asiya Javayant
1013Kadeem Y GauchoSpain2026-06-30Rangoni Of Florence UNQUALIFIED99Ivan Magalhaes
1014Murillo I PoquetteUnited Kingdom2026-07-16Chanay, Jeffrey A Esq PROPOSAL66Stephen Shaw
1015Munro G BologniaArgentina2026-07-11Truhlar And Truhlar Attys NEW49Ivan Magalhaes
1016Jones H MaletIndia2026-06-27Rousseaux, Michael Esq UNQUALIFIED56Asiya Javayant
1017Ivar O RimJapan2026-07-11Morlong Associates RENEWAL41Amy Elsner
1018Wickens L GlickSpain2026-06-28King, Christopher A Esq RENEWAL51Bernardo Dominic
1019Claire Z BriddickBrazil2026-07-16Commercial Press RENEWAL92Stephen Shaw
1020Mujtaba T DilliardCanada2026-07-08Commercial Press PROPOSAL87Onyama Limba
1021Costa R ChuiRussia2026-07-11Feltz Printing Service UNQUALIFIED1Onyama Limba
1022Smith I VenereGermany2026-07-04Truhlar And Truhlar Attys PROPOSAL84Asiya Javayant
1023Smith V VocelkaAustralia2026-07-07Benton, John B Jr QUALIFIED13Elwin Sharvill
1024Cody Z SergiCanada2026-07-09King, Christopher A Esq PROPOSAL91Onyama Limba
1025Mujtaba P FlosiIndia2026-06-30Feiner Bros RENEWAL71Stephen Shaw
1026Aditya K ShinkoGermany2026-06-27Truhlar And Truhlar Attys NEGOTIATION92Amy Elsner
1027Arvin O CampainAustralia2026-06-29Morlong Associates PROPOSAL98Amy Elsner
1028Murillo D WieserJapan2026-07-10Benton, John B Jr UNQUALIFIED41Xuxue Feng
1029Faith T AlbaresUnited Kingdom2026-07-01Feiner Bros NEW84Anna Fali
1030Emily H GlickCanada2026-06-26Morlong Associates UNQUALIFIED23Xuxue Feng
1031Jones U VenereCanada2026-06-23Feiner Bros NEW1Ivan Magalhaes
1032Chavez A CaldareraUnited Kingdom2026-06-17Commercial Press NEGOTIATION6Asiya Javayant
1033Clifford R PoquetteItaly2026-07-11Commercial Press NEW9Ioni Bowcher
1034Juan Z DarakjyRussia2026-07-09Buckley Miller Wright QUALIFIED50Anna Fali
1035Alejandro D CaldareraAustralia2026-06-27Benton, John B Jr UNQUALIFIED54Bernardo Dominic
1036Antonio I CaldareraJapan2026-06-19Feiner Bros PROPOSAL23Ioni Bowcher
1037Izzy H GlickIndia2026-06-21Rangoni Of Florence RENEWAL71Onyama Limba
1038Emily J ButtAustralia2026-06-29Chemel, James L Cpa NEGOTIATION91Ioni Bowcher
1039Clifford B SaylorsRussia2026-06-17Feiner Bros RENEWAL45Onyama Limba
1040Mujtaba J RoysterAustralia2026-06-18Printing Dimensions PROPOSAL23Stephen Shaw
1041Leja N MaletAustralia2026-07-12Chanay, Jeffrey A Esq NEW76Amy Elsner
1042Ashley D SchemmerArgentina2026-06-25Benton, John B Jr NEGOTIATION33Onyama Limba
1043Murillo P ShinkoUnited Kingdom2026-07-06King, Christopher A Esq RENEWAL85Xuxue Feng
1044Mujtaba D KuskoCanada2026-07-03Dorl, James J Esq PROPOSAL86Elwin Sharvill
1045Kadeem L SchemmerSpain2026-06-19Morlong Associates UNQUALIFIED40Xuxue Feng
1046Wickens V RoysterUnited Kingdom2026-07-03Feiner Bros PROPOSAL85Ivan Magalhaes
1047Chavez R FigeroaJapan2026-06-20Printing Dimensions UNQUALIFIED18Amy Elsner
1048Maria H WaycottBrazil2026-07-08Chanay, Jeffrey A Esq UNQUALIFIED24Stephen Shaw
1049Morrow G MaletGermany2026-07-10Dorl, James J Esq RENEWAL75Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio X CampainIndiaOnyama Limba QUALIFIED
Aditya T MaletGermanyStephen Shaw QUALIFIED
Maria D IturbideBrazilOnyama Limba RENEWAL
Juan J KuskoIndiaXuxue Feng QUALIFIED
Rodrigues K MacleadJapanAsiya Javayant PROPOSAL
Chavez I GillianFranceOnyama Limba NEGOTIATION
Morrow Z InouyeGermanyXuxue Feng NEW
Emily K GarufiIndiaBernardo Dominic NEGOTIATION
Jones B OstroskyUnited KingdomAmy Elsner RENEWAL
Munro U GarufiIndiaBernardo Dominic NEW
Faith E StockhamArgentinaIoni Bowcher RENEWAL
Salvatore Z MacleadRussiaBernardo Dominic UNQUALIFIED
Sinclair K SergiBrazilXuxue Feng PROPOSAL
Darci H OldroydJapanElwin Sharvill NEW
Isabel D BowleySpainAmy Elsner QUALIFIED
Munro F PerinFranceAnna Fali QUALIFIED
Stacey W IturbideGermanyAnna Fali PROPOSAL
Jones M WaycottArgentinaXuxue Feng NEW
James Y ButtItalyAsiya Javayant NEW
Chavez R AmigonArgentinaXuxue Feng NEGOTIATION
Nicolas J BowleyIndiaXuxue Feng RENEWAL
Stacey P TollnerRussiaAnna Fali QUALIFIED
Aika O MorascaFranceIvan Magalhaes UNQUALIFIED
Mayumi G OldroydFranceBernardo Dominic NEW
Stacey Z GauchoUnited KingdomBernardo Dominic NEW
Stacey G BriddickAustraliaAmy Elsner QUALIFIED
Ricardo N VocelkaFranceStephen Shaw NEGOTIATION
Greenwood R FigeroaCanadaAsiya Javayant RENEWAL
Maisha V MacleadAustraliaStephen Shaw UNQUALIFIED
Salvatore R MarrierAustraliaAmy Elsner PROPOSAL
Jeanfrancois W KolmetzBrazilElwin Sharvill RENEWAL
Arvin H WhobreyCanadaStephen Shaw NEW
Clifford B FlosiRussiaAsiya Javayant UNQUALIFIED
Mujtaba Y WaycottUnited KingdomAsiya Javayant PROPOSAL
Chavez G GauchoBrazilBernardo Dominic QUALIFIED
Cody N ChuiIndiaElwin Sharvill QUALIFIED
Salvatore M NestleCanadaBernardo Dominic PROPOSAL
Darci C ButtArgentinaIvan Magalhaes NEW
Kaitlin T RimFranceOnyama Limba QUALIFIED
Wickens D RoysterGermanyOnyama Limba QUALIFIED
Deepesh S NickaArgentinaElwin Sharvill RENEWAL
Rodrigues G ShinkoItalyAmy Elsner PROPOSAL
Munro L SlusarskiUnited KingdomStephen Shaw PROPOSAL
Chavez X FollerItalyElwin Sharvill PROPOSAL
Jones O ChuiArgentinaOnyama Limba QUALIFIED
Aika D PerinCanadaIoni Bowcher RENEWAL
Aika Y RutaFranceBernardo Dominic PROPOSAL
Ashley H StensethJapanOnyama Limba QUALIFIED
Faith R WhobreyJapanAmy Elsner PROPOSAL
Adams C WaycottIndiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Misaki A Maclead
Cody R Nestle
Maisha Z Ostrosky
Octavia E Gillian
Greenwood J Glick
Leja B Waycott
Wickens K Wieser
Emily W Saylors
Murillo N Marrier
Darci Y Flosi
Maisha G Perin
Maria N Iturbide
Alejandro F Darakjy
Julie S Nestle
Tony R Poquette
Jones A Iturbide
Adams J Briddick
Juan N Amigon
Adams C Ostrosky
Wickens D Kolmetz
Mujtaba Z Poquette
Morrow D Butt
Leja D Malet
Nicolas F Figeroa
Claire G Shinko
Ashley P Maclead
Aditya O Campain
Mujtaba B Ostrosky
Salvatore G Figeroa
Misaki S Campain
Izzy H Amigon
Mayumi P Caudy
Salvatore A Kusko
Deepesh R Dilliard
Ricardo M Caudy
Aika G Foller
Clifford O Poquette
Wickens L Tollner
Kadeem A Shinko
Ashley J Bowley
Morrow Y Gillian
Izzy T Schemmer
Emily A Malet
Cody Y Shinko
Cody U Poquette
Silvio V Dilliard
Salvatore I Morasca
Jones I Malet
Ashley O Malet
Claire V Figeroa
IdCountryDate
1000India2026-06-30
1001Canada2026-07-04
1002Japan2026-06-19
1003India2026-07-15
1004France2026-07-03
1005Italy2026-07-06
1006Argentina2026-06-19
1007France2026-07-08
1008Spain2026-06-22
1009Spain2026-06-21
1010Canada2026-07-02
1011Spain2026-06-30
1012Canada2026-06-28
1013Italy2026-07-15
1014Brazil2026-07-13
1015Italy2026-07-07
1016Spain2026-07-16
1017Japan2026-07-04
1018Brazil2026-06-29
1019France2026-07-16
1020Spain2026-07-09
1021Australia2026-07-12
1022Spain2026-06-24
1023Russia2026-07-08
1024Spain2026-06-30
1025Russia2026-07-03
1026India2026-06-22
1027Argentina2026-06-21
1028United Kingdom2026-07-10
1029Germany2026-06-28
1030United Kingdom2026-06-25
1031France2026-07-02
1032Japan2026-06-26
1033Canada2026-07-01
1034France2026-06-23
1035Canada2026-07-13
1036United Kingdom2026-07-08
1037Germany2026-06-22
1038Spain2026-07-04
1039Brazil2026-07-12
1040Japan2026-06-22
1041Germany2026-07-09
1042Italy2026-07-09
1043United Kingdom2026-06-20
1044Brazil2026-06-19
1045Japan2026-07-04
1046Italy2026-07-15
1047Japan2026-06-26
1048Australia2026-06-21
1049India2026-07-01

On-Demand Data

NameIdCountryDate
Cody C Kolmetz1000India2026-06-26
Costa K Waycott1001United Kingdom2026-07-07
Mayumi J Whobrey1002Germany2026-07-05
Antonio D Campain1003United Kingdom2026-07-02
Deepesh I Foller1004United Kingdom2026-06-22
Johnson E Inouye1005Argentina2026-06-19
Morrow X Paprocki1006Italy2026-06-22
Leja H Foller1007Argentina2026-06-18
Mayumi R Sergi1008India2026-07-10
Nicolas X Stockham1009Italy2026-06-29
Maria D Caldarera1010Italy2026-07-06
Darci B Maclead1011Japan2026-06-17
Jennifer T Wieser1012Australia2026-06-30
Murillo X Kusko1013Germany2026-06-27
Claire C Gillian1014Australia2026-07-06
Jennifer D Ostrosky1015Canada2026-06-21
Mujtaba F Kusko1016Brazil2026-07-01
Munro W Slusarski1017United Kingdom2026-07-08
Johnson R Inouye1018Spain2026-07-08
Faith P Royster1019Russia2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja W MaletSpainAmy Elsner RENEWAL
Leon F ShinkoRussiaAsiya Javayant UNQUALIFIED
Jennifer D FigeroaAustraliaBernardo Dominic PROPOSAL
Cody Z InouyeArgentinaAmy Elsner RENEWAL
Smith N ChuiArgentinaBernardo Dominic NEGOTIATION
Isabel Y PoquetteBrazilBernardo Dominic NEGOTIATION
Misaki Q VenereAustraliaOnyama Limba UNQUALIFIED
Jennifer A ButtRussiaElwin Sharvill PROPOSAL
Maisha F MorascaGermanyIoni Bowcher NEW
Deepesh A KuskoAustraliaIoni Bowcher UNQUALIFIED
Mujtaba N ShinkoBrazilBernardo Dominic RENEWAL
Juan K FerenczSpainAmy Elsner UNQUALIFIED
Greenwood B CaldareraSpainAsiya Javayant PROPOSAL
Maisha B CaldareraBrazilOnyama Limba NEGOTIATION
Johnson U SchemmerItalyBernardo Dominic RENEWAL
Morrow J AlbaresIndiaXuxue Feng NEGOTIATION
Stacey T MarrierGermanyIoni Bowcher RENEWAL
Smith N KuskoUnited KingdomIoni Bowcher NEGOTIATION
Francesco T VocelkaRussiaBernardo Dominic RENEWAL
Morrow C CampainArgentinaOnyama Limba NEGOTIATION
Leon X MacleadSpainStephen Shaw PROPOSAL
Wickens V DoeRussiaAmy Elsner RENEWAL
Faith B SlusarskiItalyAsiya Javayant UNQUALIFIED
Jones Z FlosiSpainBernardo Dominic NEW
Julie W AlbaresArgentinaStephen Shaw QUALIFIED
Sinclair B CampainFranceIoni Bowcher UNQUALIFIED
Octavia E ShinkoFranceAsiya Javayant PROPOSAL
Sinclair J DarakjyFranceBernardo Dominic RENEWAL
Mayumi H KolmetzFranceIoni Bowcher NEGOTIATION
Nicolas Q AlbaresArgentinaXuxue Feng PROPOSAL
Maria N ButtGermanyElwin Sharvill QUALIFIED
James P PoquetteArgentinaXuxue Feng RENEWAL
Faith V FlosiItalyAnna Fali QUALIFIED
Jeanfrancois V SlusarskiBrazilXuxue Feng NEW
Murillo I OldroydJapanElwin Sharvill UNQUALIFIED
Kadeem Q NickaGermanyAsiya Javayant RENEWAL
Costa F StensethAustraliaAnna Fali NEGOTIATION
Cody B PerinFranceAnna Fali UNQUALIFIED
Arvin T WieserAustraliaXuxue Feng RENEWAL
Arvin G TollnerRussiaAnna Fali RENEWAL

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