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
Darci J GauchoGermanyAnna Fali NEGOTIATION
Ricardo D WieserRussiaXuxue Feng QUALIFIED
Jennifer G NestleCanadaAmy Elsner NEGOTIATION
Mayumi N WaycottRussiaBernardo Dominic QUALIFIED
Smith C ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh U VenereRussiaStephen Shaw RENEWAL
Kaitlin B RulapaughSpainAsiya Javayant PROPOSAL
James E BowleyBrazilOnyama Limba QUALIFIED
Clifford T MacleadUnited KingdomOnyama Limba PROPOSAL
Mujtaba T InouyeArgentinaAnna Fali UNQUALIFIED
Mujtaba V SlusarskiCanadaXuxue Feng PROPOSAL
Leja P PerinArgentinaAsiya Javayant PROPOSAL
Maisha R StockhamCanadaAsiya Javayant RENEWAL
Nicolas V AlbaresArgentinaOnyama Limba QUALIFIED
Julie N FollerGermanyIoni Bowcher NEGOTIATION
Maisha W BowleyJapanIvan Magalhaes NEW
Izzy S RutaGermanyElwin Sharvill QUALIFIED
Johnson P WieserFranceAmy Elsner NEW
Alejandro W BowleyAustraliaIoni Bowcher QUALIFIED
Murillo Z BologniaItalyIoni Bowcher QUALIFIED
Clifford L FigeroaGermanyAnna Fali RENEWAL
Clifford M CampainUnited KingdomXuxue Feng PROPOSAL
Antonio V InouyeJapanAsiya Javayant PROPOSAL
David I PaprockiItalyOnyama Limba QUALIFIED
Wickens O OstroskyFranceOnyama Limba UNQUALIFIED
Kaitlin M GarufiBrazilIvan Magalhaes NEW
James L CaldareraArgentinaIoni Bowcher UNQUALIFIED
Isabel N FerenczJapanAsiya Javayant NEGOTIATION
Costa B SaylorsUnited KingdomAmy Elsner QUALIFIED
Adams J DarakjyUnited KingdomOnyama Limba NEW
Ricardo G PoquetteGermanyAnna Fali NEGOTIATION
Rodrigues P DarakjyFranceOnyama Limba NEGOTIATION
Tony Q CampainArgentinaXuxue Feng RENEWAL
Leja Z ButtAustraliaAsiya Javayant NEW
Kadeem G TollnerItalyAsiya Javayant QUALIFIED
Cody N GlickBrazilOnyama Limba PROPOSAL
James G TollnerJapanIoni Bowcher QUALIFIED
Emily X CampainRussiaStephen Shaw UNQUALIFIED
Misaki O StockhamBrazilOnyama Limba RENEWAL
Ashley R CampainItalyAmy Elsner NEGOTIATION
Francesco M MarrierCanadaAsiya Javayant NEGOTIATION
Julie L IturbideItalyAsiya Javayant NEW
Faith Z MorascaAustraliaIvan Magalhaes RENEWAL
Emily G OstroskyItalyXuxue Feng UNQUALIFIED
Francesco A BriddickItalyIvan Magalhaes UNQUALIFIED
Deepesh C KuskoCanadaIoni Bowcher NEGOTIATION
Alejandro V DarakjySpainAsiya Javayant UNQUALIFIED
Izzy I MorascaSpainIoni Bowcher NEGOTIATION
Maisha N MorascaUnited KingdomAnna Fali NEGOTIATION
Ricardo X FlosiFranceElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford C IturbideGermanyIvan Magalhaes UNQUALIFIED
Murillo K DoeBrazilElwin Sharvill QUALIFIED
Alejandro X GlickCanadaIoni Bowcher NEGOTIATION
Francesco X CampainSpainAmy Elsner UNQUALIFIED
Silvio G SergiIndiaXuxue Feng QUALIFIED
Adams X TollnerIndiaOnyama Limba NEW
Leja N AmigonJapanAnna Fali PROPOSAL
Emily P GauchoArgentinaXuxue Feng UNQUALIFIED
Jennifer U WieserUnited KingdomXuxue Feng NEW
Jennifer X ButtSpainAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C MaletItaly2024-06-01Chemel, James L Cpa RENEWAL40Stephen Shaw
1001Jones B MorascaArgentina2024-06-14Printing Dimensions PROPOSAL95Xuxue Feng
1002Wickens B CampainCanada2024-05-28King, Christopher A Esq PROPOSAL49Ivan Magalhaes
1003Chavez L GillianFrance2024-05-24Benton, John B Jr RENEWAL99Xuxue Feng
1004Munro P MorascaItaly2024-06-21Morlong Associates RENEWAL43Ioni Bowcher
1005Nicolas V FlosiRussia2024-06-02Printing Dimensions NEW7Anna Fali
1006Antonio J ShinkoJapan2024-06-12Buckley Miller Wright QUALIFIED22Ivan Magalhaes
1007Deepesh E SergiBrazil2024-06-03Feiner Bros RENEWAL52Xuxue Feng
1008Murillo V KuskoIndia2024-06-01Buckley Miller Wright RENEWAL36Ioni Bowcher
1009Kaitlin L CampainCanada2024-06-01Chanay, Jeffrey A Esq UNQUALIFIED39Anna Fali
1010Mujtaba A MorascaBrazil2024-05-29Benton, John B Jr RENEWAL36Amy Elsner
1011Ricardo Z PaprockiUnited Kingdom2024-05-29Chemel, James L Cpa UNQUALIFIED35Ivan Magalhaes
1012Juan T KuskoItaly2024-06-03Chanay, Jeffrey A Esq NEW81Ioni Bowcher
1013Maisha Z RulapaughGermany2024-06-14Truhlar And Truhlar Attys QUALIFIED58Onyama Limba
1014Morrow G FollerGermany2024-06-03Benton, John B Jr PROPOSAL11Anna Fali
1015Maria J StensethUnited Kingdom2024-05-30Printing Dimensions UNQUALIFIED69Elwin Sharvill
1016Aruna J NickaSpain2024-05-28Morlong Associates PROPOSAL20Stephen Shaw
1017Jones P VocelkaRussia2024-06-07Dorl, James J Esq RENEWAL46Onyama Limba
1018Cody H BowleyArgentina2024-06-04Dorl, James J Esq UNQUALIFIED8Elwin Sharvill
1019Stacey T RimAustralia2024-06-22Printing Dimensions UNQUALIFIED83Stephen Shaw
1020Maisha M GlickSpain2024-06-15Truhlar And Truhlar Attys UNQUALIFIED60Elwin Sharvill
1021Leon M CaldareraItaly2024-06-18Truhlar And Truhlar Attys QUALIFIED0Anna Fali
1022Chavez T StensethCanada2024-06-12Benton, John B Jr QUALIFIED9Ioni Bowcher
1023Mujtaba N FerenczUnited Kingdom2024-06-21Buckley Miller Wright RENEWAL30Onyama Limba
1024Jennifer M RoysterItaly2024-06-21Feltz Printing Service UNQUALIFIED25Xuxue Feng
1025David G MaletSpain2024-06-21Commercial Press RENEWAL68Onyama Limba
1026Chavez N CaldareraIndia2024-06-18Feiner Bros QUALIFIED77Asiya Javayant
1027Mujtaba K VenereRussia2024-05-26Feiner Bros RENEWAL93Elwin Sharvill
1028David M PoquetteItaly2024-05-24Rousseaux, Michael Esq NEW64Amy Elsner
1029Jefferson S ButtRussia2024-06-04Morlong Associates NEW10Asiya Javayant
1030Greenwood M VocelkaAustralia2024-06-22Benton, John B Jr NEW84Bernardo Dominic
1031Maria F CampainIndia2024-06-21Chemel, James L Cpa NEGOTIATION56Bernardo Dominic
1032Maisha R SchemmerUnited Kingdom2024-05-26King, Christopher A Esq PROPOSAL33Onyama Limba
1033Tony S PoquetteSpain2024-06-15Chapman, Ross E Esq UNQUALIFIED50Elwin Sharvill
1034Costa Z SchemmerArgentina2024-06-09King, Christopher A Esq UNQUALIFIED45Amy Elsner
1035Salvatore Y NickaJapan2024-05-29Rangoni Of Florence RENEWAL0Ioni Bowcher
1036Johnson S FigeroaJapan2024-06-11Morlong Associates RENEWAL28Amy Elsner
1037Jennifer R FerenczAustralia2024-06-10Buckley Miller Wright UNQUALIFIED5Elwin Sharvill
1038Juan T GillianArgentina2024-06-02Dorl, James J Esq NEW35Anna Fali
1039Kadeem R SlusarskiJapan2024-05-29Truhlar And Truhlar Attys UNQUALIFIED14Xuxue Feng
1040Jeanfrancois X ChuiCanada2024-06-22Rangoni Of Florence QUALIFIED75Asiya Javayant
1041Aika O IturbideItaly2024-06-20Feiner Bros NEGOTIATION95Ivan Magalhaes
1042Greenwood C FollerJapan2024-05-24Feiner Bros RENEWAL80Onyama Limba
1043Greenwood G FerenczSpain2024-05-25Buckley Miller Wright UNQUALIFIED76Stephen Shaw
1044Clifford Z OstroskyGermany2024-06-07Chemel, James L Cpa QUALIFIED86Bernardo Dominic
1045Jefferson J FlosiAustralia2024-06-21Benton, John B Jr QUALIFIED13Stephen Shaw
1046Clifford S DoeGermany2024-05-26Rangoni Of Florence NEW32Onyama Limba
1047Mayumi J RulapaughJapan2024-05-30Dorl, James J Esq NEGOTIATION5Asiya Javayant
1048Mujtaba X GauchoIndia2024-06-02Feltz Printing Service NEGOTIATION47Ioni Bowcher
1049Ivar P SergiItaly2024-06-15Chemel, James L Cpa NEGOTIATION50Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ashley X CaldareraArgentinaBernardo Dominic PROPOSAL
Francesco E StockhamBrazilAnna Fali RENEWAL
Ivar L MacleadSpainXuxue Feng UNQUALIFIED
James B InouyeSpainOnyama Limba NEGOTIATION
Clifford S MorascaAustraliaXuxue Feng RENEWAL
Ashley W DoeItalyOnyama Limba QUALIFIED
Silvio B MaletItalyIoni Bowcher PROPOSAL
Aika U ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Johnson U SchemmerUnited KingdomXuxue Feng NEW
Clifford D VenereJapanElwin Sharvill RENEWAL
James M OstroskyItalyElwin Sharvill UNQUALIFIED
Ivar C PaprockiUnited KingdomAmy Elsner PROPOSAL
Antonio Q AmigonJapanIoni Bowcher PROPOSAL
Misaki U GauchoJapanElwin Sharvill NEGOTIATION
Leja P StockhamSpainOnyama Limba RENEWAL
Kaitlin G CaldareraSpainXuxue Feng QUALIFIED
Sinclair E TollnerSpainBernardo Dominic QUALIFIED
Emily S WaycottArgentinaStephen Shaw NEW
Maisha P SlusarskiSpainElwin Sharvill QUALIFIED
Maria X NestleRussiaAmy Elsner NEW
Aika S SaylorsCanadaXuxue Feng PROPOSAL
Leja L CaudyArgentinaIvan Magalhaes NEW
Nicolas J MarrierGermanyOnyama Limba QUALIFIED
Izzy O VocelkaArgentinaOnyama Limba PROPOSAL
Claire W KolmetzBrazilAnna Fali RENEWAL
Nicolas B SchemmerArgentinaAnna Fali RENEWAL
Mayumi F GauchoRussiaAmy Elsner RENEWAL
Silvio E VenereCanadaAnna Fali NEGOTIATION
Wickens K CaldareraBrazilAsiya Javayant QUALIFIED
Johnson L SergiGermanyIvan Magalhaes PROPOSAL
Stacey A CaudyIndiaIoni Bowcher RENEWAL
Claire W GlickArgentinaBernardo Dominic UNQUALIFIED
Alejandro E BologniaIndiaIoni Bowcher QUALIFIED
Arvin I DilliardJapanElwin Sharvill NEW
Kaitlin Q WieserFranceAnna Fali UNQUALIFIED
Ivar B CaldareraBrazilIvan Magalhaes NEW
Clifford R VenereItalyStephen Shaw RENEWAL
Clifford D OldroydAustraliaAmy Elsner RENEWAL
Cody I AlbaresUnited KingdomAnna Fali QUALIFIED
Octavia T WaycottJapanBernardo Dominic QUALIFIED
Chavez Z FerenczItalyElwin Sharvill UNQUALIFIED
Morrow R GillianGermanyStephen Shaw UNQUALIFIED
Johnson S FerenczCanadaIvan Magalhaes QUALIFIED
Stacey Q MorascaIndiaIoni Bowcher NEW
Ashley E RimCanadaElwin Sharvill PROPOSAL
Maria F WaycottArgentinaXuxue Feng NEGOTIATION
Jones I RulapaughSpainAsiya Javayant PROPOSAL
Adams K PoquetteGermanyIvan Magalhaes NEW
Jefferson P SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Misaki I RoysterBrazilIoni Bowcher NEW
Frozen Columns
Name
Aika O Malet
Arvin A Gillian
Faith C Ostrosky
Ivar U Rim
Leon K Tollner
James P Flosi
Ivar I Kolmetz
Izzy Z Nicka
Ricardo K Inouye
Maria X Rim
Rodrigues K Amigon
Morrow Q Poquette
Emily O Venere
Julie U Stenseth
Izzy T Morasca
Julie X Inouye
Faith M Vocelka
Murillo M Campain
Francesco J Kusko
Ivar I Ruta
Alejandro I Flosi
Rodrigues N Waycott
Ashley P Ferencz
Chavez V Butt
Kaitlin G Perin
Ivar H Royster
Nicolas S Amigon
David W Briddick
Kaitlin H Campain
Smith B Malet
Ivar S Morasca
Rodrigues U Waycott
David R Poquette
Smith T Nestle
Aditya J Whobrey
Arvin B Sergi
Juan Y Vocelka
Izzy P Doe
Claire J Flosi
Johnson B Nicka
Izzy X Chui
Maria G Waycott
Aditya O Albares
Leja C Schemmer
Murillo L Garufi
Johnson M Ruta
Mujtaba O Nicka
Stacey B Malet
Octavia U Sergi
Tony W Inouye
IdCountryDate
1000India2024-05-31
1001Canada2024-05-30
1002Japan2024-06-17
1003Spain2024-06-22
1004Argentina2024-06-08
1005Argentina2024-06-01
1006Russia2024-06-02
1007Italy2024-06-04
1008Argentina2024-05-31
1009Italy2024-06-20
1010Argentina2024-06-19
1011Australia2024-05-24
1012Argentina2024-06-15
1013Germany2024-06-19
1014Russia2024-06-10
1015France2024-06-22
1016India2024-06-18
1017Russia2024-06-07
1018United Kingdom2024-05-30
1019United Kingdom2024-06-02
1020Australia2024-05-29
1021Spain2024-06-02
1022Russia2024-06-09
1023Russia2024-06-09
1024United Kingdom2024-05-26
1025Argentina2024-06-19
1026Australia2024-06-05
1027Spain2024-06-11
1028Spain2024-05-27
1029Australia2024-06-13
1030India2024-05-27
1031India2024-05-29
1032Argentina2024-06-05
1033France2024-05-25
1034Spain2024-05-24
1035Spain2024-06-19
1036Italy2024-05-25
1037Spain2024-06-09
1038Russia2024-05-27
1039Germany2024-05-24
1040Japan2024-06-15
1041France2024-06-12
1042Germany2024-06-06
1043India2024-06-10
1044Australia2024-05-31
1045India2024-06-13
1046Germany2024-06-22
1047Canada2024-06-12
1048Brazil2024-06-08
1049Spain2024-05-29

On-Demand Data

NameIdCountryDate
Morrow Y Ruta1000Germany2024-06-08
Cody X Royster1001France2024-06-22
Juan V Albares1002Brazil2024-06-20
Adams M Flosi1003Spain2024-05-29
Mujtaba R Shinko1004Australia2024-05-26
Tony E Vocelka1005India2024-05-28
Costa C Malet1006India2024-06-09
Jones A Gillian1007United Kingdom2024-06-20
Cody Y Flosi1008Canada2024-06-03
Ricardo Z Briddick1009Japan2024-06-01
Aika O Foller1010Japan2024-06-14
Juan Z Perin1011Spain2024-06-16
Stacey J Chui1012Canada2024-06-15
Leja J Schemmer1013Brazil2024-06-01
Francesco E Schemmer1014Italy2024-06-06
Salvatore B Paprocki1015Russia2024-06-13
Alejandro K Flosi1016India2024-06-14
Sinclair T Royster1017Australia2024-05-27
Aika G Rim1018Italy2024-06-01
Wickens V Morasca1019Japan2024-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley N RoysterAustraliaAmy Elsner PROPOSAL
Antonio L WaycottFranceOnyama Limba NEGOTIATION
Greenwood C WieserRussiaAmy Elsner PROPOSAL
Rodrigues H WieserIndiaXuxue Feng NEGOTIATION
Kadeem Q AlbaresCanadaElwin Sharvill PROPOSAL
Juan B InouyeArgentinaAsiya Javayant NEGOTIATION
Adams D RimAustraliaXuxue Feng NEGOTIATION
Morrow N FigeroaIndiaAnna Fali QUALIFIED
Silvio E OstroskyIndiaAsiya Javayant PROPOSAL
Leon T AlbaresUnited KingdomOnyama Limba NEGOTIATION
Costa J PoquetteJapanBernardo Dominic RENEWAL
Maisha U FerenczIndiaBernardo Dominic PROPOSAL
Smith G GarufiUnited KingdomAnna Fali NEW
Silvio G PoquetteUnited KingdomStephen Shaw RENEWAL
Tony K SergiIndiaAsiya Javayant PROPOSAL
James Y MaletRussiaBernardo Dominic QUALIFIED
Adams Q GlickArgentinaXuxue Feng PROPOSAL
Francesco V SchemmerGermanyOnyama Limba PROPOSAL
Wickens X WaycottJapanAsiya Javayant NEGOTIATION
Cody O PoquetteBrazilOnyama Limba NEGOTIATION
Ivar J DilliardAustraliaIoni Bowcher RENEWAL
Costa J MaletSpainAmy Elsner NEGOTIATION
Maisha D MacleadJapanIoni Bowcher UNQUALIFIED
Izzy I MaletArgentinaAsiya Javayant UNQUALIFIED
Faith P SchemmerRussiaElwin Sharvill RENEWAL
Murillo S MarrierRussiaAmy Elsner NEGOTIATION
Adams M MorascaArgentinaOnyama Limba NEW
James V FollerFranceElwin Sharvill PROPOSAL
Octavia D GauchoArgentinaAnna Fali NEW
Tony X MacleadGermanyIvan Magalhaes NEW
Silvio Q CaldareraArgentinaAnna Fali PROPOSAL
Maisha G ShinkoFranceIvan Magalhaes QUALIFIED
Cody Y DilliardFranceOnyama Limba RENEWAL
Tony Q FerenczRussiaIoni Bowcher NEGOTIATION
Misaki E KolmetzUnited KingdomOnyama Limba NEW
Izzy B SlusarskiArgentinaAmy Elsner QUALIFIED
Misaki A GarufiAustraliaStephen Shaw NEGOTIATION
Francesco G SergiAustraliaBernardo Dominic NEGOTIATION
Alejandro C OldroydBrazilXuxue Feng QUALIFIED
Francesco C InouyeCanadaIoni Bowcher UNQUALIFIED

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