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
David J CampainIndiaIoni Bowcher NEW
Claire S SchemmerGermanyAmy Elsner NEGOTIATION
Octavia A NickaArgentinaOnyama Limba PROPOSAL
Maria C GauchoGermanyOnyama Limba QUALIFIED
Kaitlin K MarrierJapanAsiya Javayant PROPOSAL
Aika W GillianCanadaElwin Sharvill UNQUALIFIED
Maria D ButtItalyAmy Elsner RENEWAL
Aditya N RulapaughSpainBernardo Dominic PROPOSAL
Maisha H PoquetteAustraliaXuxue Feng UNQUALIFIED
Jefferson U MorascaArgentinaAnna Fali UNQUALIFIED
Johnson N InouyeCanadaBernardo Dominic NEW
Maisha N FigeroaArgentinaXuxue Feng NEGOTIATION
Claire U ChuiSpainAnna Fali RENEWAL
Isabel L RimBrazilBernardo Dominic NEW
Morrow Y FigeroaUnited KingdomIoni Bowcher RENEWAL
Maria Q GauchoCanadaStephen Shaw UNQUALIFIED
Jeanfrancois R StensethJapanIvan Magalhaes PROPOSAL
Octavia M CampainJapanAmy Elsner PROPOSAL
Francesco K RoysterRussiaXuxue Feng NEW
Cody N BriddickUnited KingdomElwin Sharvill NEGOTIATION
Francesco V DoeCanadaXuxue Feng NEW
Nicolas H RoysterRussiaAsiya Javayant QUALIFIED
Salvatore O VenereAustraliaBernardo Dominic NEGOTIATION
Izzy H WhobreyItalyIvan Magalhaes QUALIFIED
Jones M CampainBrazilStephen Shaw QUALIFIED
Maria P DarakjyGermanyAsiya Javayant NEW
David W SchemmerArgentinaOnyama Limba RENEWAL
Johnson R GillianFranceElwin Sharvill PROPOSAL
Wickens Q MaletJapanOnyama Limba QUALIFIED
Julie E RulapaughSpainAmy Elsner NEGOTIATION
Mujtaba B DarakjyIndiaAmy Elsner UNQUALIFIED
Darci B IturbideGermanyStephen Shaw PROPOSAL
Izzy T RoysterGermanyIvan Magalhaes NEW
Chavez I SlusarskiFranceXuxue Feng QUALIFIED
Maria H AmigonAustraliaAsiya Javayant NEGOTIATION
Johnson J MaletRussiaOnyama Limba QUALIFIED
Kaitlin Q BowleyCanadaStephen Shaw NEW
Claire B SaylorsRussiaAnna Fali RENEWAL
Smith S DilliardAustraliaAnna Fali NEGOTIATION
Chavez O GlickSpainXuxue Feng RENEWAL
Maria F MacleadFranceBernardo Dominic UNQUALIFIED
Maisha J DoeItalyAsiya Javayant UNQUALIFIED
Mujtaba J VocelkaFranceAnna Fali PROPOSAL
Arvin Y KolmetzBrazilElwin Sharvill PROPOSAL
Ivar H DoeSpainAmy Elsner PROPOSAL
Francesco O GauchoCanadaStephen Shaw QUALIFIED
Jefferson Q FlosiGermanyAnna Fali UNQUALIFIED
Maisha K GlickItalyXuxue Feng QUALIFIED
Juan W CampainIndiaAsiya Javayant PROPOSAL
Jennifer E PaprockiUnited KingdomOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Tony W MaletBrazilOnyama Limba QUALIFIED
Faith C CaudyGermanyBernardo Dominic NEW
Julie L DoeIndiaIoni Bowcher NEGOTIATION
Misaki K ShinkoIndiaBernardo Dominic UNQUALIFIED
Cody D MaletAustraliaAmy Elsner QUALIFIED
Silvio Y SchemmerItalyAnna Fali UNQUALIFIED
Smith X DarakjyBrazilAsiya Javayant UNQUALIFIED
Cody E VocelkaBrazilAnna Fali QUALIFIED
Claire Z StockhamSpainXuxue Feng QUALIFIED
Adams N DilliardItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez T BologniaIndia2025-06-04Chanay, Jeffrey A Esq UNQUALIFIED50Elwin Sharvill
1001Smith D BowleyRussia2025-05-26Buckley Miller Wright QUALIFIED79Anna Fali
1002Jones H ShinkoBrazil2025-06-01Benton, John B Jr NEGOTIATION68Ioni Bowcher
1003Isabel U ChuiUnited Kingdom2025-06-04Commercial Press NEW73Ivan Magalhaes
1004Alejandro B KolmetzGermany2025-05-19Truhlar And Truhlar Attys UNQUALIFIED44Ioni Bowcher
1005Greenwood T CaldareraBrazil2025-05-26Chapman, Ross E Esq RENEWAL47Ivan Magalhaes
1006David O WieserIndia2025-06-14Dorl, James J Esq NEGOTIATION96Elwin Sharvill
1007Nicolas G GauchoArgentina2025-06-06Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1008Cody E NickaFrance2025-06-07Buckley Miller Wright QUALIFIED36Elwin Sharvill
1009Johnson M RoysterCanada2025-06-13King, Christopher A Esq QUALIFIED72Stephen Shaw
1010Adams A DoeSpain2025-06-05Chanay, Jeffrey A Esq QUALIFIED86Anna Fali
1011Kaitlin Z VenereRussia2025-06-16Dorl, James J Esq NEGOTIATION85Bernardo Dominic
1012Jennifer U GillianSpain2025-05-19Feltz Printing Service QUALIFIED92Ivan Magalhaes
1013Jeanfrancois W SlusarskiCanada2025-06-05Printing Dimensions RENEWAL88Stephen Shaw
1014Alejandro K StockhamAustralia2025-05-30Feltz Printing Service RENEWAL29Amy Elsner
1015Sinclair L NestleSpain2025-05-25Chanay, Jeffrey A Esq NEGOTIATION7Onyama Limba
1016Stacey I BologniaAustralia2025-06-04Buckley Miller Wright NEGOTIATION74Amy Elsner
1017Aditya I GlickAustralia2025-05-30King, Christopher A Esq UNQUALIFIED39Onyama Limba
1018Isabel N RutaGermany2025-06-13Feltz Printing Service QUALIFIED99Xuxue Feng
1019Jones R PoquetteItaly2025-05-25Chapman, Ross E Esq PROPOSAL68Amy Elsner
1020Antonio H MaletUnited Kingdom2025-06-10Feltz Printing Service RENEWAL32Elwin Sharvill
1021Jefferson T VenereBrazil2025-06-02Chemel, James L Cpa PROPOSAL30Amy Elsner
1022Nicolas Z TollnerCanada2025-06-11Printing Dimensions NEW62Anna Fali
1023Adams Q PoquetteBrazil2025-05-30Dorl, James J Esq UNQUALIFIED89Ivan Magalhaes
1024Jefferson S GauchoUnited Kingdom2025-06-01Chemel, James L Cpa UNQUALIFIED61Xuxue Feng
1025Aditya V TollnerAustralia2025-05-28Truhlar And Truhlar Attys UNQUALIFIED60Stephen Shaw
1026Murillo C VenereAustralia2025-06-11King, Christopher A Esq RENEWAL63Ioni Bowcher
1027Kadeem Y DilliardBrazil2025-06-16Commercial Press PROPOSAL26Xuxue Feng
1028Octavia U BowleyAustralia2025-05-26Chemel, James L Cpa PROPOSAL96Amy Elsner
1029Ricardo Y PaprockiBrazil2025-06-16Morlong Associates NEGOTIATION30Elwin Sharvill
1030Chavez Z CaudySpain2025-05-21Benton, John B Jr PROPOSAL98Elwin Sharvill
1031Isabel M RulapaughCanada2025-05-31Rangoni Of Florence RENEWAL47Elwin Sharvill
1032Johnson L GauchoGermany2025-06-01Chapman, Ross E Esq QUALIFIED48Ivan Magalhaes
1033Wickens F CaldareraIndia2025-05-24Buckley Miller Wright NEW0Ioni Bowcher
1034Salvatore L BriddickIndia2025-06-07Rangoni Of Florence NEW71Amy Elsner
1035Kadeem X GillianRussia2025-06-12Benton, John B Jr RENEWAL34Stephen Shaw
1036Antonio T MarrierItaly2025-06-06Feltz Printing Service PROPOSAL27Amy Elsner
1037Maisha N MorascaBrazil2025-06-02Morlong Associates QUALIFIED18Anna Fali
1038Antonio R DilliardGermany2025-06-06Dorl, James J Esq RENEWAL1Onyama Limba
1039Wickens P SlusarskiRussia2025-05-26Morlong Associates RENEWAL93Anna Fali
1040Emily Q OstroskyIndia2025-05-31Rousseaux, Michael Esq RENEWAL41Stephen Shaw
1041Arvin Y GlickArgentina2025-05-25Chemel, James L Cpa QUALIFIED27Elwin Sharvill
1042David S BowleyFrance2025-06-07Rousseaux, Michael Esq NEW62Ivan Magalhaes
1043Silvio R FollerRussia2025-06-10Chanay, Jeffrey A Esq RENEWAL78Stephen Shaw
1044Izzy T KuskoCanada2025-05-20Feltz Printing Service QUALIFIED67Asiya Javayant
1045Ivar V KuskoSpain2025-05-26Morlong Associates RENEWAL64Stephen Shaw
1046Morrow W MacleadBrazil2025-05-27Commercial Press QUALIFIED83Ioni Bowcher
1047Smith K OldroydItaly2025-05-29Chapman, Ross E Esq RENEWAL8Anna Fali
1048Kaitlin W DoeCanada2025-05-23Buckley Miller Wright NEW35Stephen Shaw
1049Leja E VenereCanada2025-05-21Truhlar And Truhlar Attys NEGOTIATION12Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria Q FigeroaUnited KingdomIvan Magalhaes PROPOSAL
Jennifer Q NestleFranceBernardo Dominic QUALIFIED
Stacey V NickaBrazilIvan Magalhaes UNQUALIFIED
Izzy D NestleIndiaStephen Shaw PROPOSAL
Wickens H MacleadAustraliaIvan Magalhaes PROPOSAL
Murillo S FerenczJapanOnyama Limba UNQUALIFIED
Morrow H FerenczCanadaIoni Bowcher RENEWAL
Isabel L NestleGermanyBernardo Dominic PROPOSAL
Ricardo F OstroskyFranceAnna Fali QUALIFIED
Tony Z MaletCanadaIvan Magalhaes RENEWAL
Morrow Y MarrierFranceElwin Sharvill NEW
Johnson Y FollerCanadaElwin Sharvill UNQUALIFIED
Aditya B CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Salvatore Y SaylorsFranceXuxue Feng PROPOSAL
Ashley Z FerenczIndiaBernardo Dominic QUALIFIED
Emily G FerenczBrazilBernardo Dominic NEW
Wickens H GarufiCanadaStephen Shaw NEGOTIATION
Alejandro V MaletFranceAsiya Javayant QUALIFIED
Izzy Z AmigonSpainAnna Fali RENEWAL
Mujtaba P GarufiAustraliaAnna Fali RENEWAL
Aruna B GillianCanadaIvan Magalhaes PROPOSAL
Salvatore S SlusarskiSpainBernardo Dominic PROPOSAL
Wickens F WaycottBrazilIvan Magalhaes QUALIFIED
Ivar T FerenczAustraliaBernardo Dominic NEGOTIATION
Jennifer G GillianIndiaAmy Elsner QUALIFIED
Kaitlin B OldroydCanadaAmy Elsner UNQUALIFIED
Misaki T RulapaughBrazilIoni Bowcher NEGOTIATION
Emily Z SergiArgentinaIoni Bowcher QUALIFIED
Jefferson V PoquetteRussiaElwin Sharvill RENEWAL
Sinclair M PerinJapanAnna Fali NEGOTIATION
Juan N AmigonCanadaElwin Sharvill NEW
Munro Y OldroydUnited KingdomAnna Fali RENEWAL
Nicolas B FlosiItalyAnna Fali PROPOSAL
Jefferson R KuskoItalyAsiya Javayant PROPOSAL
James I VenereCanadaStephen Shaw QUALIFIED
Greenwood D DilliardJapanIvan Magalhaes RENEWAL
Octavia M MacleadArgentinaAmy Elsner QUALIFIED
Jennifer Z CampainArgentinaBernardo Dominic QUALIFIED
Arvin U MaletSpainAmy Elsner NEW
Wickens M ChuiUnited KingdomXuxue Feng NEGOTIATION
Arvin K MaletBrazilIoni Bowcher NEGOTIATION
Ivar Y NestleJapanStephen Shaw NEGOTIATION
Maisha S DarakjyItalyXuxue Feng PROPOSAL
Leon R SchemmerGermanyAmy Elsner PROPOSAL
Tony M NickaArgentinaAmy Elsner PROPOSAL
Stacey J GillianUnited KingdomIoni Bowcher QUALIFIED
Murillo U OldroydArgentinaAmy Elsner RENEWAL
Alejandro N OstroskyGermanyBernardo Dominic NEW
Aruna G MorascaRussiaAnna Fali NEGOTIATION
Nicolas C PerinCanadaIoni Bowcher RENEWAL
Frozen Columns
Name
Clifford H Bowley
Rodrigues F Bowley
Jeanfrancois U Caudy
Izzy H Rulapaugh
Maisha X Marrier
Izzy S Morasca
Juan O Butt
Nicolas D Perin
Darci E Foller
Tony B Glick
Ashley L Poquette
Arvin V Oldroyd
Antonio R Nicka
Kadeem O Stockham
Maria P Foller
Johnson T Wieser
Ashley Y Kolmetz
Aditya C Stockham
Smith O Foller
Deepesh U Iturbide
Aika J Perin
Izzy K Schemmer
Deepesh P Caudy
Francesco U Nicka
Mayumi A Morasca
Ashley S Gillian
David P Albares
Izzy J Maclead
Maria Y Gaucho
David G Venere
Nicolas M Waycott
Silvio B Butt
Jefferson U Flosi
Aditya W Schemmer
Nicolas G Stockham
Izzy M Maclead
Arvin M Stockham
Silvio K Nestle
Julie E Nestle
Aruna P Chui
James Q Gillian
Leja T Oldroyd
Ashley W Gaucho
Smith H Ruta
Ricardo Q Sergi
Juan V Albares
Maisha E Dilliard
Leja L Waycott
Isabel S Figeroa
Aika O Poquette
IdCountryDate
1000Germany2025-06-14
1001Japan2025-05-29
1002Argentina2025-06-01
1003Spain2025-05-27
1004Australia2025-05-26
1005Russia2025-05-28
1006Russia2025-05-21
1007Canada2025-05-23
1008Argentina2025-05-31
1009Australia2025-06-06
1010Brazil2025-06-12
1011Canada2025-05-20
1012France2025-05-25
1013Canada2025-05-28
1014France2025-05-22
1015Brazil2025-05-21
1016United Kingdom2025-06-07
1017Australia2025-06-08
1018France2025-06-09
1019Italy2025-05-21
1020Russia2025-06-01
1021Argentina2025-05-20
1022Germany2025-06-08
1023France2025-06-16
1024Germany2025-05-30
1025France2025-05-28
1026Italy2025-05-20
1027India2025-06-04
1028Spain2025-06-14
1029Argentina2025-05-23
1030Japan2025-06-12
1031France2025-06-06
1032France2025-05-29
1033Argentina2025-05-27
1034France2025-06-12
1035Brazil2025-05-20
1036Argentina2025-06-02
1037Italy2025-05-31
1038Russia2025-06-13
1039Italy2025-06-15
1040Argentina2025-05-19
1041United Kingdom2025-06-10
1042France2025-05-21
1043Germany2025-06-11
1044Brazil2025-06-15
1045Italy2025-06-10
1046Japan2025-05-29
1047Argentina2025-06-11
1048Germany2025-05-30
1049Germany2025-06-08

On-Demand Data

NameIdCountryDate
Leon G Darakjy1000Australia2025-06-08
Clifford E Caudy1001Australia2025-06-08
David C Ferencz1002Japan2025-05-30
Arvin F Albares1003Canada2025-05-21
Clifford R Stockham1004Russia2025-05-21
Isabel Z Glick1005United Kingdom2025-06-13
Octavia M Poquette1006Germany2025-05-30
Arvin J Whobrey1007Australia2025-05-28
Antonio D Darakjy1008Canada2025-05-23
Maria U Campain1009United Kingdom2025-06-14
Ashley E Gaucho1010India2025-06-08
Izzy V Glick1011India2025-06-04
Francesco Y Kolmetz1012United Kingdom2025-05-24
Cody K Malet1013Canada2025-06-04
Mujtaba O Darakjy1014Germany2025-05-29
Cody Z Amigon1015Spain2025-05-30
Jeanfrancois C Glick1016Brazil2025-06-06
Wickens O Slusarski1017India2025-06-09
Jones L Saylors1018Japan2025-06-10
Adams M Maclead1019Spain2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha P ChuiBrazilIoni Bowcher PROPOSAL
Isabel R MaletBrazilIvan Magalhaes NEGOTIATION
Mujtaba O ButtArgentinaAmy Elsner PROPOSAL
Morrow R SaylorsAustraliaXuxue Feng UNQUALIFIED
Tony Y KuskoSpainIvan Magalhaes PROPOSAL
Mujtaba M PaprockiUnited KingdomIoni Bowcher QUALIFIED
Emily Y WaycottAustraliaAmy Elsner PROPOSAL
Munro T GlickBrazilElwin Sharvill PROPOSAL
Jefferson U InouyeAustraliaXuxue Feng UNQUALIFIED
Aditya A DilliardGermanyOnyama Limba RENEWAL
Aruna J KolmetzBrazilXuxue Feng UNQUALIFIED
Alejandro T FigeroaRussiaIvan Magalhaes PROPOSAL
Sinclair V CaudyIndiaElwin Sharvill QUALIFIED
Isabel A FigeroaItalyXuxue Feng UNQUALIFIED
Izzy U CaldareraGermanyIvan Magalhaes PROPOSAL
Adams C DilliardGermanyElwin Sharvill QUALIFIED
Isabel M OstroskyGermanyAmy Elsner NEW
Juan D RutaFranceAnna Fali QUALIFIED
Ricardo N BowleyCanadaBernardo Dominic PROPOSAL
Nicolas T ChuiAustraliaIvan Magalhaes QUALIFIED
Mayumi U OstroskyGermanyBernardo Dominic RENEWAL
Kadeem L VocelkaItalyAnna Fali PROPOSAL
Clifford M MorascaJapanIvan Magalhaes UNQUALIFIED
Munro A MaletFranceAnna Fali NEGOTIATION
Aruna Y AlbaresJapanIvan Magalhaes NEGOTIATION
Deepesh K NickaRussiaBernardo Dominic QUALIFIED
Ashley G ChuiRussiaIoni Bowcher PROPOSAL
Emily E FerenczArgentinaBernardo Dominic NEW
Ricardo W FlosiBrazilAsiya Javayant RENEWAL
Francesco B StockhamFranceAmy Elsner NEGOTIATION
Izzy Q WieserCanadaIoni Bowcher UNQUALIFIED
Misaki E BowleyBrazilXuxue Feng PROPOSAL
Smith J GarufiSpainXuxue Feng NEW
Emily D PaprockiGermanyElwin Sharvill UNQUALIFIED
Munro U NestleBrazilElwin Sharvill NEW
Salvatore X BowleyIndiaAmy Elsner RENEWAL
Munro B ChuiFranceAnna Fali QUALIFIED
Salvatore G DarakjySpainIvan Magalhaes RENEWAL
Tony F FerenczRussiaAmy Elsner RENEWAL
Kadeem G RutaIndiaIoni Bowcher 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>