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
Ivar R ChuiArgentinaIvan Magalhaes RENEWAL
Nicolas R OstroskyFranceOnyama Limba NEGOTIATION
Jeanfrancois K OstroskyCanadaAmy Elsner QUALIFIED
Johnson L ShinkoIndiaIvan Magalhaes RENEWAL
Julie W SlusarskiBrazilIvan Magalhaes RENEWAL
Rodrigues L ChuiBrazilBernardo Dominic UNQUALIFIED
Octavia T FollerSpainStephen Shaw NEW
Wickens P CaldareraItalyIvan Magalhaes NEW
Morrow N BriddickRussiaIvan Magalhaes NEGOTIATION
Francesco R KolmetzSpainBernardo Dominic UNQUALIFIED
Deepesh R GarufiRussiaBernardo Dominic NEGOTIATION
Stacey B RulapaughGermanyIoni Bowcher PROPOSAL
Francesco V GillianFranceAnna Fali RENEWAL
Morrow Z InouyeGermanyAnna Fali RENEWAL
Isabel B InouyeJapanAnna Fali NEGOTIATION
Juan A NickaJapanStephen Shaw QUALIFIED
Ivar C CampainFranceIvan Magalhaes UNQUALIFIED
Arvin S FerenczArgentinaAnna Fali RENEWAL
Jeanfrancois B MacleadBrazilAnna Fali UNQUALIFIED
Juan I ChuiItalyAsiya Javayant RENEWAL
Aika E BologniaAustraliaIoni Bowcher QUALIFIED
Tony B BriddickItalyIoni Bowcher QUALIFIED
Sinclair U RutaBrazilAnna Fali UNQUALIFIED
Silvio L DarakjyRussiaAsiya Javayant NEGOTIATION
Alejandro R GarufiItalyXuxue Feng UNQUALIFIED
Aika P WieserGermanyElwin Sharvill NEGOTIATION
Silvio E KolmetzItalyOnyama Limba RENEWAL
Aika Z SlusarskiItalyIvan Magalhaes NEW
Salvatore M RutaAustraliaIvan Magalhaes PROPOSAL
Silvio X OstroskyAustraliaStephen Shaw RENEWAL
Smith J AlbaresCanadaAnna Fali QUALIFIED
Octavia O TollnerRussiaAnna Fali PROPOSAL
David T InouyeSpainIoni Bowcher PROPOSAL
Ricardo M MarrierSpainIoni Bowcher QUALIFIED
Juan F CaldareraCanadaOnyama Limba PROPOSAL
Salvatore V BologniaRussiaBernardo Dominic NEGOTIATION
Kadeem M CaldareraBrazilStephen Shaw NEW
James V InouyeArgentinaXuxue Feng NEGOTIATION
Izzy C PaprockiSpainBernardo Dominic PROPOSAL
Sinclair R IturbideFranceStephen Shaw PROPOSAL
Maisha I TollnerSpainIvan Magalhaes RENEWAL
Maria T InouyeJapanAnna Fali RENEWAL
Maria E FigeroaJapanBernardo Dominic UNQUALIFIED
Ashley W FlosiBrazilIvan Magalhaes PROPOSAL
Isabel T SergiBrazilAmy Elsner UNQUALIFIED
Faith C IturbideArgentinaAnna Fali UNQUALIFIED
Sinclair O FigeroaGermanyElwin Sharvill NEGOTIATION
Clifford D TollnerItalyAnna Fali QUALIFIED
Misaki U IturbideCanadaXuxue Feng NEGOTIATION
Alejandro S MaletRussiaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair W BriddickFranceXuxue Feng RENEWAL
Deepesh H NickaSpainStephen Shaw PROPOSAL
Julie W ShinkoBrazilAnna Fali PROPOSAL
Mujtaba J FlosiArgentinaAsiya Javayant RENEWAL
Munro D SergiGermanyBernardo Dominic RENEWAL
Kaitlin D GillianJapanAsiya Javayant PROPOSAL
Izzy G ButtSpainBernardo Dominic NEW
Emily C SergiSpainAmy Elsner QUALIFIED
Clifford K StockhamArgentinaBernardo Dominic RENEWAL
Faith O GarufiJapanXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan H MorascaAustralia2024-05-18Rousseaux, Michael Esq QUALIFIED64Stephen Shaw
1001Ricardo T PerinAustralia2024-05-26Rangoni Of Florence QUALIFIED18Amy Elsner
1002Smith K PaprockiIndia2024-06-09Chapman, Ross E Esq RENEWAL0Elwin Sharvill
1003Antonio J AmigonGermany2024-05-26Dorl, James J Esq RENEWAL44Onyama Limba
1004Morrow B WhobreyAustralia2024-06-13Chemel, James L Cpa UNQUALIFIED99Onyama Limba
1005Salvatore I GlickAustralia2024-06-12Dorl, James J Esq QUALIFIED50Ivan Magalhaes
1006Jefferson H GlickFrance2024-05-16Morlong Associates UNQUALIFIED2Xuxue Feng
1007Morrow D FollerCanada2024-06-05Dorl, James J Esq UNQUALIFIED80Amy Elsner
1008Stacey W DoeItaly2024-06-05Chapman, Ross E Esq QUALIFIED92Stephen Shaw
1009Munro I RulapaughFrance2024-05-25Rangoni Of Florence NEGOTIATION35Xuxue Feng
1010Aika Z IturbideFrance2024-05-29Commercial Press NEGOTIATION90Ioni Bowcher
1011Alejandro L StockhamArgentina2024-05-31Printing Dimensions PROPOSAL13Elwin Sharvill
1012Greenwood T FigeroaBrazil2024-06-07Commercial Press NEW18Anna Fali
1013Maria R VocelkaArgentina2024-06-02Dorl, James J Esq PROPOSAL65Amy Elsner
1014Octavia P GillianBrazil2024-06-03Feiner Bros NEW32Elwin Sharvill
1015David M IturbideItaly2024-06-02Buckley Miller Wright UNQUALIFIED5Bernardo Dominic
1016Murillo N DoeSpain2024-06-13King, Christopher A Esq NEGOTIATION51Xuxue Feng
1017Stacey V WieserCanada2024-05-29Truhlar And Truhlar Attys QUALIFIED39Amy Elsner
1018Jones N SergiBrazil2024-05-26Feiner Bros UNQUALIFIED9Elwin Sharvill
1019Arvin X BologniaFrance2024-05-30Truhlar And Truhlar Attys NEGOTIATION91Bernardo Dominic
1020Octavia L MaletRussia2024-06-10Truhlar And Truhlar Attys NEGOTIATION54Amy Elsner
1021Tony W MorascaFrance2024-06-06Rousseaux, Michael Esq NEGOTIATION20Bernardo Dominic
1022Ricardo I MorascaSpain2024-05-25Feiner Bros PROPOSAL22Xuxue Feng
1023Salvatore X DoeCanada2024-05-19Truhlar And Truhlar Attys QUALIFIED16Bernardo Dominic
1024Arvin M NestleAustralia2024-06-01Rangoni Of Florence QUALIFIED64Ivan Magalhaes
1025James Y FollerCanada2024-05-21Rousseaux, Michael Esq PROPOSAL63Asiya Javayant
1026Faith J ChuiGermany2024-06-01Chapman, Ross E Esq QUALIFIED35Onyama Limba
1027Ashley S NickaItaly2024-06-08Commercial Press UNQUALIFIED19Ivan Magalhaes
1028Isabel P RimIndia2024-05-17Chapman, Ross E Esq RENEWAL62Bernardo Dominic
1029Ashley Y MaletRussia2024-06-02Dorl, James J Esq RENEWAL81Onyama Limba
1030Emily T GillianRussia2024-05-25Rangoni Of Florence RENEWAL8Xuxue Feng
1031Izzy A RulapaughFrance2024-06-13Chanay, Jeffrey A Esq QUALIFIED92Onyama Limba
1032Octavia C ShinkoArgentina2024-05-18Buckley Miller Wright NEGOTIATION97Amy Elsner
1033Leja T PaprockiRussia2024-05-17Rousseaux, Michael Esq UNQUALIFIED20Stephen Shaw
1034Julie V SlusarskiItaly2024-05-22Rousseaux, Michael Esq PROPOSAL42Bernardo Dominic
1035Juan C OstroskyAustralia2024-05-19Dorl, James J Esq PROPOSAL48Elwin Sharvill
1036Morrow W NestleRussia2024-05-18Feiner Bros QUALIFIED37Onyama Limba
1037Stacey H OldroydRussia2024-05-16Morlong Associates RENEWAL46Ioni Bowcher
1038David W CaudyCanada2024-06-01Commercial Press QUALIFIED53Asiya Javayant
1039Leja L FerenczFrance2024-06-07Buckley Miller Wright NEGOTIATION52Onyama Limba
1040Tony L WaycottSpain2024-06-12Chemel, James L Cpa NEW28Stephen Shaw
1041Maisha Y CampainRussia2024-06-09Buckley Miller Wright NEW12Amy Elsner
1042Mujtaba Q BriddickIndia2024-06-11Feiner Bros NEGOTIATION52Ioni Bowcher
1043Murillo W MarrierRussia2024-06-04Feltz Printing Service QUALIFIED21Ioni Bowcher
1044Johnson B AlbaresBrazil2024-05-27Benton, John B Jr QUALIFIED71Stephen Shaw
1045Octavia R VenereBrazil2024-06-11Printing Dimensions PROPOSAL2Amy Elsner
1046Clifford L MorascaRussia2024-06-13Truhlar And Truhlar Attys NEW6Ivan Magalhaes
1047Maisha D InouyeCanada2024-06-02Truhlar And Truhlar Attys NEW83Ioni Bowcher
1048Alejandro H RutaJapan2024-06-14Printing Dimensions QUALIFIED25Elwin Sharvill
1049Misaki N ChuiCanada2024-05-31Rangoni Of Florence UNQUALIFIED35Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony S MaletAustraliaAnna Fali RENEWAL
Chavez L StockhamCanadaIvan Magalhaes RENEWAL
Izzy Q StensethGermanyAmy Elsner UNQUALIFIED
Wickens Z WieserAustraliaBernardo Dominic QUALIFIED
Jefferson Q GillianUnited KingdomBernardo Dominic QUALIFIED
Deepesh H FollerItalyAnna Fali RENEWAL
Octavia W CampainUnited KingdomIoni Bowcher RENEWAL
Jennifer A FollerSpainBernardo Dominic UNQUALIFIED
Tony R FigeroaArgentinaElwin Sharvill PROPOSAL
Maisha O CampainSpainIvan Magalhaes QUALIFIED
Kadeem M BologniaCanadaAnna Fali PROPOSAL
Ricardo R RutaAustraliaXuxue Feng RENEWAL
Antonio Q AmigonIndiaAmy Elsner UNQUALIFIED
Darci C PoquetteUnited KingdomOnyama Limba RENEWAL
Chavez Z SergiItalyOnyama Limba QUALIFIED
Salvatore N OldroydAustraliaAmy Elsner NEW
Deepesh E ChuiIndiaXuxue Feng NEW
Smith P AlbaresCanadaAmy Elsner RENEWAL
Morrow K MaletBrazilXuxue Feng UNQUALIFIED
Kadeem Q MaletSpainBernardo Dominic PROPOSAL
Alejandro U PerinAustraliaElwin Sharvill NEGOTIATION
Faith O WhobreyItalyStephen Shaw RENEWAL
Ricardo C StockhamSpainXuxue Feng QUALIFIED
Isabel W KuskoIndiaStephen Shaw QUALIFIED
Sinclair B KuskoFranceXuxue Feng RENEWAL
Deepesh N WieserAustraliaBernardo Dominic NEGOTIATION
Claire Z DilliardCanadaXuxue Feng UNQUALIFIED
Aditya F RulapaughGermanyAnna Fali NEW
Adams O CaudyIndiaAmy Elsner NEW
Costa Y BologniaArgentinaStephen Shaw NEGOTIATION
Silvio U MaletIndiaAnna Fali NEGOTIATION
Leja V NickaSpainXuxue Feng NEGOTIATION
Aika N TollnerRussiaXuxue Feng NEGOTIATION
Claire Q GarufiArgentinaIvan Magalhaes RENEWAL
Ashley N OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Costa W FollerUnited KingdomIvan Magalhaes NEGOTIATION
Nicolas F PaprockiJapanAsiya Javayant RENEWAL
Mayumi W GauchoBrazilStephen Shaw NEW
Maria F KuskoIndiaBernardo Dominic QUALIFIED
James S BowleyBrazilIoni Bowcher PROPOSAL
Cody B PerinAustraliaOnyama Limba RENEWAL
Tony G BologniaItalyAnna Fali QUALIFIED
Smith P SergiItalyXuxue Feng NEGOTIATION
Faith X CaldareraUnited KingdomAmy Elsner QUALIFIED
Antonio D VenereItalyAmy Elsner RENEWAL
Misaki H KuskoIndiaBernardo Dominic QUALIFIED
Claire D ChuiFranceElwin Sharvill PROPOSAL
Faith P KuskoSpainAnna Fali UNQUALIFIED
Kaitlin Q FollerIndiaXuxue Feng NEW
Wickens K VenereSpainAnna Fali PROPOSAL
Frozen Columns
Name
Murillo P Nestle
Alejandro R Paprocki
Wickens B Campain
Julie K Morasca
Antonio E Nicka
Aika B Glick
Smith S Wieser
Kaitlin R Rim
Leja B Malet
Silvio D Campain
Francesco A Amigon
Chavez S Wieser
Julie B Darakjy
Johnson L Iturbide
Francesco A Butt
Kaitlin B Whobrey
Misaki T Gaucho
Cody L Darakjy
Deepesh M Kusko
Jefferson M Rim
Izzy F Schemmer
Octavia H Gillian
Kaitlin G Royster
Munro I Albares
Jefferson M Caldarera
Cody F Darakjy
Darci O Malet
Leja C Schemmer
Juan M Vocelka
Octavia C Marrier
Mayumi I Amigon
Greenwood S Nicka
Salvatore V Iturbide
Aika G Foller
Jones J Garufi
Murillo C Wieser
David G Wieser
Alejandro V Inouye
Greenwood M Saylors
Octavia D Maclead
Deepesh T Flosi
Morrow M Venere
Adams Y Ferencz
Kaitlin E Chui
Smith A Bolognia
Ivar G Marrier
Jones M Paprocki
Morrow D Waycott
Costa H Sergi
Isabel W Bowley
IdCountryDate
1000France2024-05-21
1001Brazil2024-06-10
1002United Kingdom2024-06-08
1003Argentina2024-06-12
1004Russia2024-06-07
1005Argentina2024-06-14
1006Argentina2024-06-02
1007India2024-05-21
1008Russia2024-05-17
1009Italy2024-06-11
1010Brazil2024-05-21
1011Russia2024-05-28
1012Brazil2024-05-16
1013Australia2024-06-05
1014India2024-05-22
1015France2024-05-26
1016Germany2024-06-14
1017India2024-05-25
1018Germany2024-05-24
1019Spain2024-06-12
1020India2024-05-18
1021Italy2024-05-24
1022Canada2024-06-03
1023Russia2024-06-11
1024Germany2024-05-18
1025Japan2024-06-08
1026India2024-06-10
1027Canada2024-06-01
1028Brazil2024-06-08
1029India2024-05-24
1030Germany2024-05-31
1031Japan2024-05-22
1032Brazil2024-06-09
1033Argentina2024-05-31
1034Canada2024-06-04
1035France2024-05-26
1036Russia2024-05-29
1037Australia2024-06-05
1038Italy2024-05-20
1039United Kingdom2024-05-31
1040Germany2024-06-12
1041Brazil2024-06-01
1042United Kingdom2024-06-03
1043Germany2024-06-02
1044United Kingdom2024-05-26
1045Canada2024-05-30
1046Russia2024-05-21
1047Canada2024-05-29
1048Japan2024-06-14
1049Russia2024-05-23

On-Demand Data

NameIdCountryDate
Jefferson J Inouye1000Russia2024-06-05
Leja S Kolmetz1001Spain2024-06-06
Stacey I Campain1002United Kingdom2024-05-19
Leja J Foller1003Germany2024-06-14
Clifford T Perin1004Brazil2024-06-12
Misaki W Kusko1005Japan2024-05-25
Arvin Q Poquette1006India2024-06-04
Nicolas K Gillian1007Argentina2024-05-19
Maria X Gaucho1008United Kingdom2024-06-07
Chavez A Slusarski1009France2024-05-26
Arvin W Butt1010Japan2024-06-12
Rodrigues V Ostrosky1011Argentina2024-05-26
Jones P Inouye1012Germany2024-05-20
Silvio F Campain1013Australia2024-05-18
Kaitlin B Gillian1014Germany2024-05-28
Izzy F Shinko1015Germany2024-06-12
Leon U Dilliard1016United Kingdom2024-06-08
Arvin N Whobrey1017Brazil2024-06-08
Munro U Bowley1018Germany2024-06-14
Kaitlin L Gaucho1019Brazil2024-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy X SlusarskiItalyBernardo Dominic RENEWAL
Jennifer U RimJapanIoni Bowcher PROPOSAL
Claire U PoquetteBrazilBernardo Dominic QUALIFIED
Wickens B BologniaCanadaElwin Sharvill RENEWAL
Murillo Y ChuiBrazilAmy Elsner NEW
Johnson A InouyeArgentinaIvan Magalhaes NEGOTIATION
Kaitlin M GillianGermanyIvan Magalhaes PROPOSAL
Jones Q NickaIndiaElwin Sharvill UNQUALIFIED
Darci Z PoquetteGermanyIvan Magalhaes NEGOTIATION
Darci S DilliardAustraliaXuxue Feng PROPOSAL
Silvio Q FerenczFranceAsiya Javayant NEW
Aruna H VocelkaJapanAmy Elsner PROPOSAL
Deepesh Z CampainBrazilAmy Elsner UNQUALIFIED
Leon X MarrierArgentinaStephen Shaw QUALIFIED
David K PaprockiIndiaOnyama Limba PROPOSAL
Juan R MaletArgentinaAsiya Javayant PROPOSAL
Johnson Z FerenczFranceAnna Fali PROPOSAL
Emily X FollerBrazilXuxue Feng QUALIFIED
Alejandro P RulapaughFranceIvan Magalhaes RENEWAL
Clifford O IturbideGermanyXuxue Feng NEGOTIATION
Mayumi X FlosiCanadaIvan Magalhaes NEW
David F MacleadAustraliaElwin Sharvill UNQUALIFIED
Rodrigues T MacleadFranceIoni Bowcher RENEWAL
Misaki B IturbideSpainStephen Shaw QUALIFIED
Antonio N MaletJapanAmy Elsner NEW
James P WhobreyJapanIoni Bowcher PROPOSAL
Arvin E ChuiArgentinaElwin Sharvill QUALIFIED
Julie H RulapaughArgentinaAmy Elsner NEGOTIATION
Maria F MaletJapanIoni Bowcher RENEWAL
Ashley A SaylorsRussiaAmy Elsner QUALIFIED
Jennifer G ButtAustraliaXuxue Feng NEW
Johnson C CaldareraArgentinaOnyama Limba RENEWAL
David P KuskoArgentinaBernardo Dominic PROPOSAL
Maria F AlbaresUnited KingdomElwin Sharvill NEW
Darci M GillianFranceStephen Shaw QUALIFIED
Deepesh S BologniaBrazilAsiya Javayant NEGOTIATION
Misaki X OldroydIndiaElwin Sharvill UNQUALIFIED
Darci S GauchoBrazilOnyama Limba NEW
Ivar U PaprockiGermanyOnyama Limba NEGOTIATION
Ashley B ShinkoFranceElwin Sharvill QUALIFIED

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