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
Julie V GillianItalyBernardo Dominic NEW
Faith Y OstroskyGermanyBernardo Dominic NEGOTIATION
Munro W DarakjyArgentinaAnna Fali NEW
Cody J NickaSpainElwin Sharvill PROPOSAL
Francesco W CaldareraBrazilAsiya Javayant UNQUALIFIED
Arvin V DilliardFranceAnna Fali NEW
Adams V WaycottGermanyIvan Magalhaes UNQUALIFIED
Clifford L StockhamFranceStephen Shaw QUALIFIED
Alejandro E IturbideRussiaXuxue Feng UNQUALIFIED
Jefferson B GauchoFranceAsiya Javayant UNQUALIFIED
Stacey D CaudyItalyAnna Fali NEGOTIATION
Mayumi O ChuiRussiaBernardo Dominic RENEWAL
Silvio P BologniaFranceOnyama Limba QUALIFIED
Leja E InouyeFranceIvan Magalhaes NEW
Jones A FlosiUnited KingdomXuxue Feng QUALIFIED
David N PaprockiJapanAsiya Javayant NEW
Isabel E PerinFranceXuxue Feng UNQUALIFIED
Costa Q GillianRussiaIvan Magalhaes UNQUALIFIED
Aruna V StensethGermanyElwin Sharvill RENEWAL
Greenwood B WhobreyItalyOnyama Limba UNQUALIFIED
Leon C NickaRussiaAmy Elsner RENEWAL
Murillo G CaldareraItalyElwin Sharvill RENEWAL
Adams B KuskoGermanyElwin Sharvill QUALIFIED
Silvio Y DoeUnited KingdomBernardo Dominic NEW
Juan H WhobreyArgentinaAmy Elsner NEW
Ricardo U StensethFranceStephen Shaw UNQUALIFIED
Aruna E MorascaIndiaElwin Sharvill PROPOSAL
Faith Y PaprockiUnited KingdomAsiya Javayant PROPOSAL
Morrow Q FlosiCanadaXuxue Feng QUALIFIED
Isabel U RimItalyAsiya Javayant UNQUALIFIED
Kaitlin M MaletCanadaIvan Magalhaes NEW
Jennifer L ShinkoRussiaOnyama Limba UNQUALIFIED
Stacey A BologniaArgentinaXuxue Feng PROPOSAL
Sinclair B VenereFranceElwin Sharvill NEW
Aruna R AmigonFranceAnna Fali UNQUALIFIED
Mujtaba B CaudyIndiaIoni Bowcher NEGOTIATION
Misaki M MaletAustraliaBernardo Dominic QUALIFIED
Cody T StockhamArgentinaAnna Fali RENEWAL
Smith C AlbaresAustraliaAnna Fali UNQUALIFIED
Morrow Y CaldareraJapanAmy Elsner NEW
Mujtaba S GlickAustraliaIoni Bowcher PROPOSAL
James D AlbaresJapanXuxue Feng RENEWAL
Sinclair P DilliardItalyStephen Shaw UNQUALIFIED
Maisha H StockhamItalyStephen Shaw NEW
Kadeem M MaletRussiaAmy Elsner PROPOSAL
Mayumi H GauchoFranceIvan Magalhaes UNQUALIFIED
Munro W KolmetzGermanyAmy Elsner PROPOSAL
Smith A CaudyBrazilElwin Sharvill QUALIFIED
Smith Q CampainCanadaElwin Sharvill NEGOTIATION
Maria J SaylorsUnited KingdomIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Octavia L VocelkaUnited KingdomXuxue Feng RENEWAL
Wickens C WaycottItalyXuxue Feng NEW
Leon U NickaJapanOnyama Limba QUALIFIED
Maria O MacleadGermanyAsiya Javayant QUALIFIED
James A PaprockiAustraliaBernardo Dominic RENEWAL
Adams M SaylorsFranceBernardo Dominic QUALIFIED
Ivar A AmigonCanadaIoni Bowcher QUALIFIED
Ivar Z OstroskySpainElwin Sharvill NEGOTIATION
Jeanfrancois W PerinGermanyAsiya Javayant UNQUALIFIED
Smith G SergiAustraliaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James T GillianCanada2025-06-02Truhlar And Truhlar Attys RENEWAL69Ivan Magalhaes
1001Alejandro P NickaSpain2025-06-05Rangoni Of Florence RENEWAL52Stephen Shaw
1002Mujtaba I TollnerBrazil2025-05-22Truhlar And Truhlar Attys RENEWAL2Asiya Javayant
1003Jeanfrancois W BriddickIndia2025-06-05Rousseaux, Michael Esq NEW90Asiya Javayant
1004Alejandro X OldroydCanada2025-05-26Dorl, James J Esq PROPOSAL85Ivan Magalhaes
1005Ricardo T PaprockiBrazil2025-05-31Chapman, Ross E Esq NEW62Ioni Bowcher
1006Antonio A CaudySpain2025-06-15Printing Dimensions PROPOSAL1Asiya Javayant
1007David U GarufiIndia2025-05-22Chanay, Jeffrey A Esq NEW63Onyama Limba
1008Octavia O RulapaughJapan2025-06-15Morlong Associates QUALIFIED47Elwin Sharvill
1009Aruna Z OldroydIndia2025-06-14King, Christopher A Esq NEW86Anna Fali
1010Kadeem U FigeroaJapan2025-05-26Morlong Associates NEGOTIATION99Onyama Limba
1011James Q ButtSpain2025-05-31Rangoni Of Florence QUALIFIED54Amy Elsner
1012Kadeem O VenereItaly2025-06-06Chemel, James L Cpa RENEWAL48Bernardo Dominic
1013Leja J SlusarskiFrance2025-05-23Morlong Associates RENEWAL94Stephen Shaw
1014Francesco U SergiJapan2025-05-23Morlong Associates NEW92Stephen Shaw
1015Greenwood Y FigeroaAustralia2025-05-18Chapman, Ross E Esq RENEWAL8Elwin Sharvill
1016Chavez Z WieserAustralia2025-06-03Printing Dimensions UNQUALIFIED25Xuxue Feng
1017David T CampainSpain2025-05-29Chemel, James L Cpa RENEWAL21Anna Fali
1018Munro M FlosiSpain2025-05-20Chemel, James L Cpa RENEWAL36Onyama Limba
1019Kaitlin R DarakjyJapan2025-06-08Chapman, Ross E Esq RENEWAL66Asiya Javayant
1020Deepesh T StockhamUnited Kingdom2025-06-15Chemel, James L Cpa RENEWAL50Onyama Limba
1021Aika D GlickJapan2025-06-09Benton, John B Jr NEGOTIATION50Amy Elsner
1022Clifford B GillianIndia2025-05-27Feiner Bros RENEWAL16Onyama Limba
1023Antonio M RoysterFrance2025-05-21Benton, John B Jr UNQUALIFIED99Anna Fali
1024Wickens N SaylorsBrazil2025-06-09Chapman, Ross E Esq NEW30Asiya Javayant
1025Costa E OldroydUnited Kingdom2025-06-06Printing Dimensions RENEWAL75Xuxue Feng
1026Juan R RutaIndia2025-06-11Chanay, Jeffrey A Esq UNQUALIFIED12Elwin Sharvill
1027Silvio Y FollerAustralia2025-06-08Printing Dimensions PROPOSAL21Xuxue Feng
1028Kaitlin L ButtRussia2025-05-26Feiner Bros NEGOTIATION98Asiya Javayant
1029Aika Z KuskoFrance2025-05-31Feltz Printing Service QUALIFIED93Amy Elsner
1030Costa G NestleItaly2025-05-21Truhlar And Truhlar Attys PROPOSAL56Onyama Limba
1031Leja X GauchoUnited Kingdom2025-06-10Morlong Associates QUALIFIED88Amy Elsner
1032Maria P MarrierGermany2025-06-01Printing Dimensions PROPOSAL7Xuxue Feng
1033Leja I PerinItaly2025-05-29Dorl, James J Esq NEW76Ivan Magalhaes
1034Izzy I DilliardArgentina2025-05-24Commercial Press RENEWAL4Anna Fali
1035Leja D FigeroaFrance2025-05-23Chemel, James L Cpa RENEWAL48Amy Elsner
1036Wickens S SaylorsAustralia2025-05-28Chapman, Ross E Esq NEW95Ivan Magalhaes
1037Kaitlin C FlosiArgentina2025-05-19King, Christopher A Esq RENEWAL43Ivan Magalhaes
1038Faith A PoquetteFrance2025-05-22King, Christopher A Esq QUALIFIED60Asiya Javayant
1039Smith N CampainGermany2025-06-08Chemel, James L Cpa RENEWAL50Bernardo Dominic
1040Mujtaba F BowleyCanada2025-06-09King, Christopher A Esq PROPOSAL11Elwin Sharvill
1041Tony Y GlickSpain2025-05-20Truhlar And Truhlar Attys RENEWAL53Anna Fali
1042David K MaletUnited Kingdom2025-06-11Buckley Miller Wright NEW23Elwin Sharvill
1043Jeanfrancois S FollerJapan2025-05-31Commercial Press QUALIFIED23Stephen Shaw
1044Nicolas R DilliardAustralia2025-05-20Feiner Bros NEGOTIATION5Ioni Bowcher
1045Tony C SaylorsAustralia2025-05-27Rangoni Of Florence RENEWAL70Stephen Shaw
1046Claire V MacleadIndia2025-06-12Buckley Miller Wright NEGOTIATION81Amy Elsner
1047Alejandro I StensethJapan2025-06-03Rousseaux, Michael Esq RENEWAL5Onyama Limba
1048Jeanfrancois S DarakjyIndia2025-05-20Buckley Miller Wright RENEWAL62Onyama Limba
1049Jennifer U WhobreySpain2025-06-09Commercial Press PROPOSAL75Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo K TollnerUnited KingdomBernardo Dominic RENEWAL
Arvin C CaldareraRussiaAmy Elsner UNQUALIFIED
Clifford C MarrierGermanyAsiya Javayant PROPOSAL
Murillo U GarufiAustraliaStephen Shaw PROPOSAL
Claire F AlbaresJapanAsiya Javayant RENEWAL
David G OstroskyCanadaStephen Shaw UNQUALIFIED
Francesco Z MaletUnited KingdomElwin Sharvill NEW
Kaitlin R GlickFranceIoni Bowcher RENEWAL
Costa P MacleadAustraliaStephen Shaw PROPOSAL
Cody F AmigonSpainAnna Fali NEW
Emily A GarufiJapanIvan Magalhaes RENEWAL
Claire Y KuskoBrazilIvan Magalhaes PROPOSAL
Ivar I OldroydUnited KingdomAnna Fali PROPOSAL
Tony S BriddickSpainIvan Magalhaes NEW
Mujtaba Y FollerUnited KingdomXuxue Feng NEW
Maria H DarakjyIndiaBernardo Dominic RENEWAL
Smith M FerenczCanadaAsiya Javayant NEW
Deepesh S GauchoArgentinaStephen Shaw QUALIFIED
Darci M InouyeJapanIoni Bowcher PROPOSAL
Deepesh D DilliardAustraliaBernardo Dominic PROPOSAL
Ashley A BowleyUnited KingdomXuxue Feng RENEWAL
Alejandro G GlickFranceBernardo Dominic QUALIFIED
Clifford J DoeIndiaAmy Elsner NEW
Jeanfrancois L OldroydSpainAsiya Javayant NEGOTIATION
Emily Q WhobreyItalyBernardo Dominic PROPOSAL
Arvin X RoysterIndiaXuxue Feng PROPOSAL
Costa R MaletIndiaAnna Fali UNQUALIFIED
Wickens P InouyeRussiaIvan Magalhaes UNQUALIFIED
Nicolas X OldroydItalyIvan Magalhaes QUALIFIED
Isabel X TollnerGermanyIoni Bowcher NEGOTIATION
Silvio K MacleadFranceAnna Fali RENEWAL
Julie X ButtFranceAmy Elsner PROPOSAL
Izzy Y FerenczAustraliaOnyama Limba QUALIFIED
Darci O WieserGermanyIoni Bowcher UNQUALIFIED
Chavez H InouyeRussiaStephen Shaw PROPOSAL
Faith C KuskoGermanyXuxue Feng UNQUALIFIED
Mujtaba V BologniaFranceAsiya Javayant NEW
Adams C BologniaBrazilBernardo Dominic NEW
Ashley R CampainCanadaOnyama Limba NEW
Emily U FigeroaIndiaStephen Shaw RENEWAL
Ashley D CampainRussiaElwin Sharvill PROPOSAL
David Y IturbideGermanyIvan Magalhaes QUALIFIED
Leon E GauchoCanadaElwin Sharvill PROPOSAL
Mujtaba I NestleArgentinaOnyama Limba RENEWAL
Stacey E MaletRussiaAsiya Javayant QUALIFIED
Cody A MaletIndiaIvan Magalhaes NEGOTIATION
Munro H IturbideAustraliaStephen Shaw UNQUALIFIED
Isabel A FlosiIndiaIvan Magalhaes NEW
Alejandro B KuskoBrazilAmy Elsner RENEWAL
James A ChuiItalyXuxue Feng RENEWAL
Frozen Columns
Name
Adams T Ruta
Greenwood O Rim
Cody H Caldarera
Ivar A Slusarski
Mayumi Z Oldroyd
Rodrigues Q Tollner
Murillo F Slusarski
Isabel X Bowley
Alejandro C Bowley
Murillo K Kusko
Leja D Bowley
Maria N Whobrey
Nicolas I Albares
Antonio E Stenseth
Isabel F Wieser
Mayumi E Ferencz
Misaki K Morasca
Ricardo B Rim
Deepesh X Ruta
Juan L Gillian
Arvin Q Saylors
Jennifer L Tollner
Tony D Maclead
Misaki A Shinko
Kadeem P Bolognia
Jeanfrancois M Dilliard
Johnson N Shinko
Jeanfrancois K Bolognia
Murillo K Kolmetz
Faith D Nestle
James R Doe
Sinclair V Foller
Kaitlin F Nicka
Maria M Figeroa
Misaki U Flosi
Aruna R Rulapaugh
Chavez T Caudy
Jefferson M Tollner
Sinclair S Kusko
Maria L Caudy
Costa K Caldarera
Misaki S Malet
Antonio Q Doe
Aika K Marrier
James X Ostrosky
Adams N Schemmer
Johnson Q Malet
Johnson A Shinko
Emily I Marrier
Mujtaba O Inouye
IdCountryDate
1000Argentina2025-05-27
1001Italy2025-06-04
1002Brazil2025-05-23
1003Japan2025-06-02
1004Japan2025-06-05
1005India2025-05-27
1006France2025-06-02
1007Argentina2025-06-04
1008Argentina2025-06-04
1009India2025-05-19
1010Germany2025-06-01
1011Spain2025-06-11
1012Brazil2025-05-19
1013Germany2025-05-28
1014Brazil2025-06-10
1015Germany2025-06-05
1016Italy2025-06-04
1017France2025-06-09
1018Australia2025-05-29
1019Spain2025-06-03
1020Germany2025-06-04
1021Russia2025-06-09
1022France2025-05-18
1023Canada2025-05-18
1024Australia2025-06-08
1025Germany2025-06-05
1026United Kingdom2025-06-05
1027Italy2025-06-13
1028United Kingdom2025-05-25
1029Canada2025-05-30
1030Argentina2025-06-13
1031Germany2025-06-08
1032United Kingdom2025-06-04
1033Spain2025-06-15
1034Germany2025-06-07
1035India2025-06-01
1036Germany2025-06-09
1037Australia2025-05-18
1038Canada2025-05-28
1039India2025-05-19
1040United Kingdom2025-05-24
1041Germany2025-05-27
1042Australia2025-05-18
1043United Kingdom2025-05-24
1044India2025-06-13
1045United Kingdom2025-06-04
1046Russia2025-06-09
1047Japan2025-06-01
1048Germany2025-06-02
1049Germany2025-06-12

On-Demand Data

NameIdCountryDate
Stacey H Whobrey1000Japan2025-05-20
Munro G Malet1001Italy2025-05-25
Julie X Sergi1002Italy2025-05-24
Johnson Y Ostrosky1003Japan2025-05-31
Mujtaba I Doe1004Canada2025-06-13
Salvatore U Malet1005Italy2025-05-23
Emily I Figeroa1006United Kingdom2025-06-04
Ricardo E Slusarski1007Italy2025-05-20
Francesco P Chui1008Argentina2025-05-18
Clifford U Foller1009Argentina2025-05-29
Octavia W Doe1010Brazil2025-06-10
Tony U Stockham1011Russia2025-06-12
Francesco N Rim1012India2025-06-15
Claire L Caldarera1013Argentina2025-06-04
Izzy B Oldroyd1014Australia2025-06-02
Maria S Bolognia1015Argentina2025-06-08
Wickens S Shinko1016India2025-06-08
Antonio T Flosi1017Canada2025-05-25
Silvio J Caldarera1018Japan2025-06-06
Jones M Kusko1019France2025-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro M FollerUnited KingdomXuxue Feng UNQUALIFIED
Julie Q ShinkoArgentinaAnna Fali UNQUALIFIED
Aika S KolmetzSpainAmy Elsner NEGOTIATION
Aruna W GillianBrazilAnna Fali NEGOTIATION
Cody Q SlusarskiSpainBernardo Dominic UNQUALIFIED
Tony L PoquetteGermanyXuxue Feng NEGOTIATION
Nicolas L TollnerSpainAnna Fali NEGOTIATION
Ivar G SchemmerItalyElwin Sharvill NEGOTIATION
Smith T VocelkaAustraliaAsiya Javayant NEGOTIATION
Jennifer R CampainAustraliaElwin Sharvill QUALIFIED
Kadeem P NestleIndiaOnyama Limba NEGOTIATION
Smith Z GauchoAustraliaAmy Elsner UNQUALIFIED
Murillo W BowleyFranceAnna Fali RENEWAL
Mujtaba O FigeroaItalyAmy Elsner PROPOSAL
Jennifer G MaletUnited KingdomIvan Magalhaes NEW
Ricardo Z SchemmerBrazilAnna Fali QUALIFIED
Isabel W KuskoJapanAnna Fali NEW
Kadeem W GlickGermanyAnna Fali UNQUALIFIED
Alejandro G FlosiArgentinaElwin Sharvill QUALIFIED
Antonio T OldroydGermanyXuxue Feng QUALIFIED
Wickens Q MacleadAustraliaBernardo Dominic NEW
Chavez D MaletGermanyAnna Fali NEW
Ivar R StensethUnited KingdomOnyama Limba UNQUALIFIED
Isabel G InouyeAustraliaAsiya Javayant RENEWAL
Clifford K PoquetteJapanElwin Sharvill PROPOSAL
Sinclair Q PoquetteFranceElwin Sharvill PROPOSAL
Chavez R BowleyGermanyIoni Bowcher QUALIFIED
David O AmigonRussiaOnyama Limba PROPOSAL
Leon R MaletFranceIvan Magalhaes RENEWAL
Leja V SchemmerJapanXuxue Feng QUALIFIED
Chavez G OstroskyJapanBernardo Dominic PROPOSAL
Silvio G GauchoBrazilAsiya Javayant NEGOTIATION
Misaki F RutaArgentinaOnyama Limba PROPOSAL
Kaitlin T KuskoRussiaXuxue Feng NEGOTIATION
Jones E WhobreySpainAmy Elsner NEW
Octavia W AlbaresAustraliaIvan Magalhaes QUALIFIED
Jefferson C OstroskyBrazilIvan Magalhaes PROPOSAL
Kaitlin E KolmetzIndiaAnna Fali UNQUALIFIED
Adams E AlbaresAustraliaElwin Sharvill NEGOTIATION
Tony V WaycottSpainXuxue Feng 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>