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
Chavez R BowleyCanadaAsiya Javayant QUALIFIED
Emily O SergiJapanOnyama Limba RENEWAL
Leja E MorascaSpainBernardo Dominic RENEWAL
Rodrigues K VocelkaRussiaAsiya Javayant NEW
Greenwood G ButtBrazilAsiya Javayant NEGOTIATION
Stacey D RutaBrazilAmy Elsner UNQUALIFIED
Salvatore K VenereGermanyElwin Sharvill NEGOTIATION
Deepesh U NickaRussiaElwin Sharvill PROPOSAL
Julie W OldroydSpainXuxue Feng UNQUALIFIED
Aika A SlusarskiJapanIvan Magalhaes NEW
Stacey U BologniaAustraliaIvan Magalhaes NEW
Ashley B BowleyArgentinaAmy Elsner NEW
Munro V OstroskyGermanyOnyama Limba RENEWAL
Stacey C MarrierIndiaAsiya Javayant QUALIFIED
Chavez W MaletRussiaIvan Magalhaes RENEWAL
Isabel W CampainJapanIvan Magalhaes UNQUALIFIED
Mayumi O ButtJapanElwin Sharvill RENEWAL
Jennifer P TollnerIndiaXuxue Feng QUALIFIED
Alejandro T MaletAustraliaXuxue Feng UNQUALIFIED
Maria I RoysterRussiaIoni Bowcher PROPOSAL
Stacey V CampainFranceBernardo Dominic UNQUALIFIED
Ricardo Z FlosiIndiaAnna Fali NEGOTIATION
Aika K ShinkoFranceIoni Bowcher NEW
Ricardo W KolmetzGermanyAmy Elsner PROPOSAL
Izzy B PerinCanadaXuxue Feng PROPOSAL
Smith X DoeIndiaElwin Sharvill QUALIFIED
Deepesh Y RoysterAustraliaOnyama Limba RENEWAL
Antonio S BowleyUnited KingdomOnyama Limba QUALIFIED
Ivar K DilliardBrazilElwin Sharvill PROPOSAL
Clifford G SchemmerAustraliaIvan Magalhaes NEGOTIATION
Aruna C BriddickItalyElwin Sharvill QUALIFIED
Deepesh E FigeroaSpainAnna Fali NEW
Morrow L VenereRussiaIvan Magalhaes NEGOTIATION
Ricardo H NestleArgentinaBernardo Dominic UNQUALIFIED
Munro S WieserIndiaAmy Elsner NEGOTIATION
Misaki R WaycottIndiaXuxue Feng NEW
Jefferson H ShinkoSpainAmy Elsner RENEWAL
Silvio I RimRussiaBernardo Dominic NEGOTIATION
Juan W RutaAustraliaStephen Shaw UNQUALIFIED
Murillo G StensethJapanAmy Elsner NEW
Salvatore A TollnerAustraliaOnyama Limba NEGOTIATION
Maisha G NestleArgentinaOnyama Limba NEW
Adams L CaudyRussiaAnna Fali UNQUALIFIED
Jones Y ChuiGermanyAnna Fali NEW
Maisha Z PerinRussiaStephen Shaw QUALIFIED
Clifford K SchemmerCanadaStephen Shaw RENEWAL
Aika W OstroskyJapanAsiya Javayant NEW
Clifford M IturbideFranceStephen Shaw RENEWAL
Francesco F CampainCanadaAnna Fali NEGOTIATION
Chavez X BriddickGermanyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo L MaletFranceAnna Fali UNQUALIFIED
Francesco E SchemmerAustraliaIvan Magalhaes PROPOSAL
Clifford T WieserItalyStephen Shaw QUALIFIED
Adams E InouyeArgentinaAmy Elsner NEW
Arvin T OstroskyAustraliaStephen Shaw PROPOSAL
Isabel V StockhamBrazilStephen Shaw RENEWAL
Clifford V MaletSpainAnna Fali UNQUALIFIED
Izzy P GauchoUnited KingdomOnyama Limba RENEWAL
Rodrigues X SaylorsFranceIvan Magalhaes NEGOTIATION
Cody O CaldareraGermanyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson K RoysterBrazil2026-07-06Truhlar And Truhlar Attys NEGOTIATION81Ivan Magalhaes
1001Antonio S MarrierArgentina2026-07-03Printing Dimensions UNQUALIFIED79Elwin Sharvill
1002Isabel Q StensethItaly2026-07-13Benton, John B Jr NEGOTIATION21Xuxue Feng
1003Leja B GillianItaly2026-07-03Rangoni Of Florence PROPOSAL77Amy Elsner
1004Leon R ChuiCanada2026-06-26Commercial Press PROPOSAL86Stephen Shaw
1005Aika L BowleyItaly2026-06-23Morlong Associates PROPOSAL67Xuxue Feng
1006Smith I FollerGermany2026-06-22King, Christopher A Esq NEGOTIATION88Stephen Shaw
1007Jefferson L DilliardSpain2026-07-07Feiner Bros PROPOSAL8Amy Elsner
1008Ivar R TollnerItaly2026-07-12Morlong Associates QUALIFIED74Anna Fali
1009Ashley C MarrierIndia2026-07-01King, Christopher A Esq PROPOSAL85Amy Elsner
1010Izzy F SergiJapan2026-06-22Benton, John B Jr UNQUALIFIED83Elwin Sharvill
1011Murillo R BriddickSpain2026-06-23Feltz Printing Service QUALIFIED87Anna Fali
1012Alejandro N ButtUnited Kingdom2026-07-15Dorl, James J Esq UNQUALIFIED75Amy Elsner
1013Leja H DoeUnited Kingdom2026-07-05King, Christopher A Esq RENEWAL18Elwin Sharvill
1014Faith L FollerCanada2026-06-20Benton, John B Jr NEGOTIATION70Xuxue Feng
1015Chavez P ButtFrance2026-06-30Commercial Press UNQUALIFIED56Xuxue Feng
1016Munro L VenereCanada2026-06-30Printing Dimensions RENEWAL31Xuxue Feng
1017Mayumi E SchemmerGermany2026-06-26Feltz Printing Service QUALIFIED89Onyama Limba
1018Octavia Q BowleyAustralia2026-07-10Chemel, James L Cpa UNQUALIFIED83Stephen Shaw
1019Tony J FigeroaBrazil2026-07-01Truhlar And Truhlar Attys NEGOTIATION5Anna Fali
1020Isabel J PoquetteFrance2026-07-06Morlong Associates NEGOTIATION14Ivan Magalhaes
1021Isabel X SergiBrazil2026-06-27Printing Dimensions QUALIFIED97Amy Elsner
1022Johnson S PaprockiJapan2026-07-08Dorl, James J Esq UNQUALIFIED85Elwin Sharvill
1023Octavia M RoysterFrance2026-06-18Rousseaux, Michael Esq PROPOSAL49Onyama Limba
1024Emily X SergiSpain2026-07-14Feltz Printing Service NEW15Stephen Shaw
1025Rodrigues I RoysterRussia2026-06-28King, Christopher A Esq QUALIFIED86Onyama Limba
1026Ricardo B StockhamRussia2026-07-06Feiner Bros QUALIFIED94Ivan Magalhaes
1027Misaki O TollnerCanada2026-06-27Truhlar And Truhlar Attys QUALIFIED56Ioni Bowcher
1028Maisha H PoquetteRussia2026-06-22Commercial Press PROPOSAL50Asiya Javayant
1029Smith E MaletSpain2026-06-18Buckley Miller Wright NEGOTIATION99Anna Fali
1030Darci J GlickArgentina2026-06-24Chapman, Ross E Esq NEW92Onyama Limba
1031Kadeem B OstroskyArgentina2026-06-24Dorl, James J Esq NEW19Anna Fali
1032Leon Z VenereGermany2026-07-07Chemel, James L Cpa NEW84Ioni Bowcher
1033Johnson Q StockhamItaly2026-06-25Feltz Printing Service UNQUALIFIED44Xuxue Feng
1034Izzy X TollnerBrazil2026-07-09Chemel, James L Cpa NEGOTIATION14Onyama Limba
1035Clifford T NestleBrazil2026-06-25Dorl, James J Esq QUALIFIED73Ioni Bowcher
1036Ricardo D WhobreyAustralia2026-07-16Printing Dimensions NEGOTIATION65Asiya Javayant
1037Kaitlin Q MaletJapan2026-06-18Chapman, Ross E Esq RENEWAL17Asiya Javayant
1038Greenwood P KolmetzBrazil2026-06-19Commercial Press NEGOTIATION12Ioni Bowcher
1039Ashley R RutaGermany2026-06-19Buckley Miller Wright NEGOTIATION76Anna Fali
1040Maria S GarufiBrazil2026-06-25Printing Dimensions NEGOTIATION77Elwin Sharvill
1041Aruna J StockhamGermany2026-07-03Printing Dimensions RENEWAL20Asiya Javayant
1042Aditya X MaletIndia2026-07-08Morlong Associates QUALIFIED32Stephen Shaw
1043Murillo D CampainBrazil2026-07-02Printing Dimensions PROPOSAL60Bernardo Dominic
1044Jefferson N CaudyGermany2026-06-17Morlong Associates PROPOSAL10Bernardo Dominic
1045Alejandro W RoysterItaly2026-07-04Feiner Bros UNQUALIFIED51Bernardo Dominic
1046Antonio E FollerArgentina2026-06-28Chanay, Jeffrey A Esq NEW73Bernardo Dominic
1047Ivar T MorascaBrazil2026-07-11Chemel, James L Cpa PROPOSAL68Asiya Javayant
1048Emily I VenereItaly2026-07-13Rousseaux, Michael Esq UNQUALIFIED32Stephen Shaw
1049Mujtaba T KolmetzIndia2026-06-21Morlong Associates NEW73Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Deepesh G BriddickRussiaAmy Elsner PROPOSAL
Jones R KolmetzUnited KingdomBernardo Dominic PROPOSAL
Juan S CaudyFranceOnyama Limba NEGOTIATION
Smith X ButtAustraliaElwin Sharvill UNQUALIFIED
Julie O OstroskyFranceOnyama Limba PROPOSAL
Salvatore M CampainJapanAnna Fali NEGOTIATION
Chavez R PaprockiCanadaStephen Shaw UNQUALIFIED
Faith S SlusarskiArgentinaIoni Bowcher QUALIFIED
Maisha K PerinArgentinaXuxue Feng RENEWAL
Francesco R OstroskyAustraliaElwin Sharvill NEW
Francesco C RulapaughFranceAnna Fali QUALIFIED
Maria O DoeAustraliaStephen Shaw NEW
Francesco X BowleyArgentinaElwin Sharvill UNQUALIFIED
Kaitlin X MorascaCanadaAmy Elsner PROPOSAL
Isabel T WaycottSpainXuxue Feng RENEWAL
Izzy S RutaIndiaAsiya Javayant NEW
Jefferson A DarakjyUnited KingdomAnna Fali NEW
Smith T FigeroaJapanElwin Sharvill QUALIFIED
Mayumi V SlusarskiJapanAmy Elsner RENEWAL
Salvatore N RimArgentinaBernardo Dominic UNQUALIFIED
Cody T SchemmerItalyElwin Sharvill QUALIFIED
Chavez C SergiCanadaIoni Bowcher UNQUALIFIED
Munro A KolmetzUnited KingdomAsiya Javayant QUALIFIED
Jennifer V BriddickIndiaAsiya Javayant NEW
Alejandro D FollerArgentinaAmy Elsner PROPOSAL
Leja V GauchoRussiaIoni Bowcher UNQUALIFIED
Juan Q CaldareraArgentinaIvan Magalhaes QUALIFIED
Aruna G AmigonFranceAmy Elsner QUALIFIED
Ashley I PoquetteFranceElwin Sharvill NEGOTIATION
Alejandro G WaycottRussiaOnyama Limba PROPOSAL
Costa C MacleadRussiaOnyama Limba PROPOSAL
Adams K NestleJapanAmy Elsner NEGOTIATION
Octavia V InouyeIndiaIvan Magalhaes NEW
Smith D PerinGermanyAnna Fali QUALIFIED
Murillo W RulapaughArgentinaXuxue Feng NEGOTIATION
Kaitlin R FigeroaItalyIoni Bowcher RENEWAL
Misaki Q RimFranceAmy Elsner QUALIFIED
Octavia A DoeItalyIvan Magalhaes PROPOSAL
Octavia H SlusarskiFranceXuxue Feng NEW
Silvio Z FollerBrazilIoni Bowcher NEW
Claire G GauchoBrazilAnna Fali PROPOSAL
Adams D RutaSpainElwin Sharvill NEW
Costa V NestleRussiaIvan Magalhaes UNQUALIFIED
Greenwood G PaprockiFranceBernardo Dominic UNQUALIFIED
Darci S WhobreyCanadaOnyama Limba RENEWAL
Izzy I WieserBrazilIvan Magalhaes NEGOTIATION
Cody I NestleJapanXuxue Feng PROPOSAL
Maria E NickaAustraliaOnyama Limba NEGOTIATION
Jefferson O CaldareraGermanyAsiya Javayant PROPOSAL
Ashley P MorascaFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Isabel G Flosi
Claire C Waycott
Jeanfrancois O Kolmetz
Aika F Malet
David B Saylors
Johnson S Poquette
James S Paprocki
Ivar I Figeroa
Deepesh I Stenseth
Smith K Kusko
Mayumi N Saylors
Jennifer R Ferencz
Julie B Kolmetz
Jennifer X Whobrey
Costa F Inouye
Izzy F Darakjy
Morrow J Oldroyd
Jefferson E Wieser
Costa N Rim
Arvin Y Malet
Jones R Gaucho
Francesco D Ruta
Aika O Stenseth
Mayumi K Malet
Greenwood H Rulapaugh
Tony Z Campain
Kadeem M Maclead
Misaki H Malet
Aruna E Sergi
Octavia N Flosi
Aditya E Glick
Johnson O Malet
Wickens X Whobrey
Isabel O Bolognia
David M Doe
Maria L Figeroa
Ricardo P Rulapaugh
Octavia B Sergi
Jones H Bowley
Ivar U Gillian
Costa V Ferencz
Tony N Bowley
Julie A Dilliard
Leja X Kolmetz
Jones U Venere
Greenwood S Inouye
Isabel D Caudy
Johnson M Briddick
Leja I Kusko
Aditya Q Iturbide
IdCountryDate
1000Italy2026-07-11
1001India2026-06-17
1002Italy2026-06-20
1003France2026-06-22
1004Brazil2026-07-01
1005Australia2026-06-17
1006Australia2026-07-08
1007Australia2026-06-25
1008India2026-06-22
1009Japan2026-06-22
1010Japan2026-07-14
1011Italy2026-07-04
1012Germany2026-06-28
1013Australia2026-07-11
1014Australia2026-06-19
1015France2026-07-08
1016Brazil2026-06-17
1017Canada2026-07-08
1018Italy2026-06-21
1019Russia2026-07-01
1020Germany2026-06-18
1021Italy2026-07-08
1022Spain2026-07-07
1023Germany2026-07-14
1024United Kingdom2026-07-14
1025France2026-07-09
1026Brazil2026-07-06
1027Japan2026-06-25
1028India2026-06-21
1029Italy2026-07-05
1030Italy2026-06-29
1031India2026-07-09
1032Germany2026-07-01
1033Germany2026-06-24
1034Japan2026-07-09
1035France2026-07-14
1036India2026-07-11
1037United Kingdom2026-06-24
1038Canada2026-06-21
1039Germany2026-07-04
1040Canada2026-06-19
1041Japan2026-06-30
1042Australia2026-06-30
1043Italy2026-07-03
1044India2026-07-13
1045Australia2026-07-04
1046United Kingdom2026-07-13
1047India2026-07-09
1048United Kingdom2026-07-15
1049Argentina2026-07-01

On-Demand Data

NameIdCountryDate
Greenwood X Royster1000India2026-06-30
Leja K Venere1001Brazil2026-07-01
Arvin N Darakjy1002India2026-06-29
Octavia E Caudy1003Italy2026-06-25
Leon Y Rim1004Spain2026-07-01
Ricardo J Glick1005Argentina2026-07-08
David E Venere1006Japan2026-07-09
Alejandro B Rim1007United Kingdom2026-06-23
Leon P Amigon1008Argentina2026-06-29
Antonio U Sergi1009Germany2026-07-09
Kaitlin Q Albares1010Argentina2026-06-17
Mujtaba S Wieser1011Spain2026-06-23
Misaki T Whobrey1012Germany2026-07-16
Deepesh K Marrier1013India2026-06-20
Costa F Campain1014Australia2026-06-28
Maisha V Garufi1015Japan2026-07-14
Morrow X Glick1016United Kingdom2026-06-25
Jones B Nicka1017Japan2026-06-20
Mayumi G Morasca1018Italy2026-06-25
Leon D Gillian1019Brazil2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow Y DilliardUnited KingdomBernardo Dominic QUALIFIED
Juan V SergiJapanIoni Bowcher PROPOSAL
Salvatore Y BowleyGermanyAnna Fali PROPOSAL
Adams H TollnerIndiaXuxue Feng NEGOTIATION
Isabel U PoquetteIndiaAsiya Javayant NEGOTIATION
Jeanfrancois Z OldroydCanadaIoni Bowcher NEGOTIATION
Wickens I OstroskySpainAnna Fali PROPOSAL
David R RulapaughJapanElwin Sharvill NEGOTIATION
David F FollerAustraliaIoni Bowcher NEGOTIATION
Leja E AlbaresItalyAmy Elsner NEGOTIATION
Maria X WhobreyFranceXuxue Feng NEGOTIATION
Emily F GlickJapanAsiya Javayant NEGOTIATION
Clifford Y SchemmerBrazilElwin Sharvill PROPOSAL
Mujtaba G KuskoAustraliaOnyama Limba RENEWAL
Murillo Y RutaItalyAsiya Javayant NEGOTIATION
James B OldroydAustraliaElwin Sharvill NEGOTIATION
Antonio Q RoysterJapanBernardo Dominic NEGOTIATION
Ricardo D CampainIndiaOnyama Limba NEGOTIATION
Arvin F GlickGermanyIvan Magalhaes QUALIFIED
Salvatore I SlusarskiJapanXuxue Feng PROPOSAL
Mujtaba A AmigonFranceOnyama Limba RENEWAL
Faith T SlusarskiAustraliaStephen Shaw QUALIFIED
Wickens D DoeJapanBernardo Dominic NEGOTIATION
Ivar N PaprockiBrazilIvan Magalhaes NEGOTIATION
Darci Q RulapaughUnited KingdomOnyama Limba NEGOTIATION
Silvio Q MorascaArgentinaBernardo Dominic PROPOSAL
Clifford V ShinkoArgentinaXuxue Feng RENEWAL
Maria K AlbaresAustraliaStephen Shaw UNQUALIFIED
Stacey H GauchoArgentinaElwin Sharvill QUALIFIED
Munro O StensethGermanyStephen Shaw RENEWAL
Smith M PoquetteItalyElwin Sharvill QUALIFIED
Mayumi W FigeroaAustraliaAmy Elsner NEW
Antonio A ChuiJapanBernardo Dominic NEGOTIATION
Antonio D RimUnited KingdomElwin Sharvill QUALIFIED
Francesco R InouyeGermanyOnyama Limba RENEWAL
Izzy M SlusarskiRussiaOnyama Limba RENEWAL
Aditya Y AmigonJapanStephen Shaw RENEWAL
Greenwood V FollerJapanAmy Elsner PROPOSAL
Morrow W KuskoAustraliaAnna Fali RENEWAL
Aruna O CampainJapanOnyama Limba 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>