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
Cody D TollnerSpainStephen Shaw NEGOTIATION
Silvio I RulapaughArgentinaIoni Bowcher QUALIFIED
Julie Q AmigonAustraliaBernardo Dominic NEW
Murillo R GarufiAustraliaElwin Sharvill PROPOSAL
Claire H SchemmerCanadaXuxue Feng RENEWAL
Murillo V RimUnited KingdomAnna Fali QUALIFIED
Silvio F WhobreySpainOnyama Limba UNQUALIFIED
David P PoquetteArgentinaAnna Fali UNQUALIFIED
Aika E FigeroaFranceOnyama Limba QUALIFIED
Jennifer Q AlbaresFranceIoni Bowcher UNQUALIFIED
Ashley Q SlusarskiAustraliaAsiya Javayant QUALIFIED
Aditya P FerenczRussiaAmy Elsner RENEWAL
Maisha D BowleyFranceStephen Shaw QUALIFIED
Alejandro U RimArgentinaOnyama Limba NEGOTIATION
Rodrigues M DilliardArgentinaStephen Shaw RENEWAL
Maria J PerinCanadaXuxue Feng RENEWAL
Faith I PaprockiArgentinaAmy Elsner RENEWAL
Greenwood A StockhamUnited KingdomAnna Fali UNQUALIFIED
Claire P FlosiAustraliaElwin Sharvill PROPOSAL
James Y RulapaughItalyAsiya Javayant PROPOSAL
Munro W WhobreyItalyOnyama Limba PROPOSAL
Antonio N BowleyFranceAnna Fali PROPOSAL
Aika C PaprockiSpainIoni Bowcher PROPOSAL
Nicolas M NickaArgentinaOnyama Limba NEW
Alejandro X NickaAustraliaElwin Sharvill NEW
Chavez Z PoquetteRussiaAsiya Javayant NEGOTIATION
Jefferson Q FigeroaItalyIvan Magalhaes NEW
Ivar N VocelkaUnited KingdomStephen Shaw NEGOTIATION
Ivar U PerinArgentinaIoni Bowcher RENEWAL
Costa X InouyeRussiaIoni Bowcher QUALIFIED
Aika E DarakjyFranceAsiya Javayant QUALIFIED
Tony H AmigonIndiaAsiya Javayant UNQUALIFIED
Julie E PoquetteJapanBernardo Dominic NEGOTIATION
Aika V SlusarskiSpainAnna Fali UNQUALIFIED
Jones L FigeroaRussiaXuxue Feng RENEWAL
Chavez A CaudyGermanyIvan Magalhaes NEGOTIATION
Chavez V RutaSpainBernardo Dominic PROPOSAL
Isabel G AmigonAustraliaAsiya Javayant PROPOSAL
David N ChuiCanadaBernardo Dominic RENEWAL
Julie I PerinItalyAnna Fali NEW
Leja F CaldareraSpainIvan Magalhaes PROPOSAL
Ashley C DarakjyFranceStephen Shaw UNQUALIFIED
Chavez M WaycottIndiaAmy Elsner RENEWAL
Leon X AmigonFranceIvan Magalhaes NEW
Greenwood J IturbideIndiaElwin Sharvill QUALIFIED
Emily L PoquetteRussiaAnna Fali UNQUALIFIED
Octavia H VocelkaArgentinaBernardo Dominic RENEWAL
Darci C VenereRussiaIoni Bowcher QUALIFIED
Arvin B GarufiArgentinaOnyama Limba QUALIFIED
Jeanfrancois Y TollnerArgentinaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Faith Q KuskoFranceIvan Magalhaes QUALIFIED
Francesco U MaletBrazilElwin Sharvill RENEWAL
Maria R CaudyIndiaAsiya Javayant NEW
Leon Q DarakjyBrazilElwin Sharvill RENEWAL
Alejandro G BologniaItalyBernardo Dominic UNQUALIFIED
Costa G NestleAustraliaIvan Magalhaes QUALIFIED
Jefferson B SaylorsBrazilIoni Bowcher NEW
Kaitlin L BowleyCanadaOnyama Limba QUALIFIED
David A DoeArgentinaAnna Fali NEW
Claire G MorascaRussiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya W WaycottCanada2026-08-12Dorl, James J Esq QUALIFIED2Ioni Bowcher
1001Darci T MorascaSpain2026-08-05Feltz Printing Service PROPOSAL15Bernardo Dominic
1002Misaki T FollerArgentina2026-08-30Buckley Miller Wright RENEWAL8Elwin Sharvill
1003Francesco E WieserUnited Kingdom2026-08-15Buckley Miller Wright UNQUALIFIED76Onyama Limba
1004Deepesh U CaudyRussia2026-08-20Feltz Printing Service RENEWAL60Ioni Bowcher
1005Antonio E WaycottCanada2026-08-28Chanay, Jeffrey A Esq QUALIFIED59Asiya Javayant
1006Smith E MaletAustralia2026-09-01Feltz Printing Service NEW19Xuxue Feng
1007James W SlusarskiArgentina2026-08-21Feiner Bros NEGOTIATION4Stephen Shaw
1008Kadeem S IturbideBrazil2026-08-18King, Christopher A Esq RENEWAL73Amy Elsner
1009Costa Y ShinkoArgentina2026-08-03Rangoni Of Florence QUALIFIED17Stephen Shaw
1010Francesco L NickaRussia2026-08-24Commercial Press RENEWAL9Anna Fali
1011Kaitlin R CampainSpain2026-08-10Feltz Printing Service QUALIFIED82Amy Elsner
1012Leja M AmigonGermany2026-08-21King, Christopher A Esq RENEWAL50Anna Fali
1013Kaitlin Q NickaItaly2026-09-01Buckley Miller Wright NEW91Asiya Javayant
1014Mayumi M ShinkoItaly2026-08-20Chapman, Ross E Esq PROPOSAL39Ivan Magalhaes
1015Francesco H StockhamIndia2026-09-01Printing Dimensions PROPOSAL63Ioni Bowcher
1016Aditya O MaletFrance2026-08-06Benton, John B Jr NEGOTIATION94Stephen Shaw
1017Adams U OldroydIndia2026-08-29Truhlar And Truhlar Attys RENEWAL45Ioni Bowcher
1018Mayumi B OstroskyJapan2026-08-20Buckley Miller Wright QUALIFIED60Xuxue Feng
1019Ashley U GarufiCanada2026-08-09Buckley Miller Wright NEW40Ioni Bowcher
1020Chavez N FollerArgentina2026-08-05Rousseaux, Michael Esq NEW10Anna Fali
1021Wickens H WieserItaly2026-08-11Feiner Bros PROPOSAL31Elwin Sharvill
1022Arvin D CampainAustralia2026-08-10Rangoni Of Florence NEW57Elwin Sharvill
1023Leja A FlosiUnited Kingdom2026-08-03Feiner Bros RENEWAL46Onyama Limba
1024Misaki W AlbaresItaly2026-08-26Buckley Miller Wright NEW10Bernardo Dominic
1025Faith X PoquetteSpain2026-08-23Rangoni Of Florence UNQUALIFIED87Xuxue Feng
1026Aika X StockhamCanada2026-08-06Buckley Miller Wright NEW66Bernardo Dominic
1027Izzy G SchemmerSpain2026-08-05Printing Dimensions RENEWAL45Elwin Sharvill
1028Leon D BologniaSpain2026-08-28Feltz Printing Service NEGOTIATION49Bernardo Dominic
1029David E RutaRussia2026-08-15Rousseaux, Michael Esq UNQUALIFIED44Bernardo Dominic
1030Julie O FerenczSpain2026-08-25Printing Dimensions RENEWAL73Elwin Sharvill
1031Ivar F ShinkoFrance2026-08-09Truhlar And Truhlar Attys QUALIFIED3Asiya Javayant
1032Emily D ChuiJapan2026-08-21Chemel, James L Cpa NEW76Xuxue Feng
1033Juan L KuskoFrance2026-08-04Truhlar And Truhlar Attys NEW80Stephen Shaw
1034Rodrigues R SchemmerBrazil2026-08-24Printing Dimensions PROPOSAL47Elwin Sharvill
1035Emily B AlbaresIndia2026-08-18Printing Dimensions NEGOTIATION13Amy Elsner
1036Deepesh J IturbideIndia2026-08-20Truhlar And Truhlar Attys QUALIFIED89Ivan Magalhaes
1037Leja T BologniaUnited Kingdom2026-08-05Buckley Miller Wright UNQUALIFIED25Ivan Magalhaes
1038Mujtaba T KolmetzArgentina2026-08-09Printing Dimensions NEGOTIATION69Bernardo Dominic
1039Leja E NestleGermany2026-08-18Chanay, Jeffrey A Esq RENEWAL79Bernardo Dominic
1040Clifford S DoeSpain2026-08-28Truhlar And Truhlar Attys NEW14Amy Elsner
1041Jennifer H RulapaughJapan2026-08-20Rousseaux, Michael Esq RENEWAL17Ivan Magalhaes
1042Rodrigues D CaudySpain2026-08-25Rousseaux, Michael Esq RENEWAL63Bernardo Dominic
1043Aruna U DoeSpain2026-08-16Feltz Printing Service QUALIFIED24Stephen Shaw
1044Maria E PaprockiRussia2026-08-16Dorl, James J Esq UNQUALIFIED88Bernardo Dominic
1045Jennifer X AmigonUnited Kingdom2026-08-08Commercial Press NEW0Anna Fali
1046Mayumi N AmigonCanada2026-08-10King, Christopher A Esq PROPOSAL45Stephen Shaw
1047Juan K BriddickArgentina2026-09-01Feltz Printing Service NEW38Ivan Magalhaes
1048Isabel M InouyeItaly2026-08-13Morlong Associates PROPOSAL92Ioni Bowcher
1049Jennifer P NestleRussia2026-08-15Chemel, James L Cpa QUALIFIED34Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer E SlusarskiArgentinaOnyama Limba NEGOTIATION
Arvin E PoquetteUnited KingdomIoni Bowcher RENEWAL
Kadeem B PerinFranceAsiya Javayant RENEWAL
Murillo U StensethSpainOnyama Limba RENEWAL
Emily K SlusarskiCanadaAsiya Javayant NEGOTIATION
Faith G GarufiIndiaAnna Fali RENEWAL
Leon R FigeroaAustraliaAsiya Javayant NEW
Greenwood T FigeroaCanadaXuxue Feng NEW
Nicolas G RulapaughArgentinaXuxue Feng RENEWAL
Misaki W VocelkaItalyAnna Fali NEW
Maisha H MacleadBrazilStephen Shaw PROPOSAL
Maria P MarrierBrazilAmy Elsner QUALIFIED
Leja M MorascaRussiaStephen Shaw PROPOSAL
Octavia Q IturbideRussiaIoni Bowcher NEW
Munro W GarufiIndiaAnna Fali NEW
Jennifer I StockhamRussiaOnyama Limba UNQUALIFIED
Jones C GarufiFranceOnyama Limba NEW
Jeanfrancois Y DilliardItalyAnna Fali NEGOTIATION
Greenwood I RoysterUnited KingdomAnna Fali NEGOTIATION
Ivar G GlickJapanXuxue Feng PROPOSAL
Octavia R DilliardAustraliaIvan Magalhaes RENEWAL
Costa U RulapaughSpainElwin Sharvill RENEWAL
Wickens R MaletCanadaStephen Shaw RENEWAL
Kadeem G MacleadJapanIvan Magalhaes UNQUALIFIED
Munro R NickaCanadaAmy Elsner PROPOSAL
Kaitlin L BowleyRussiaOnyama Limba NEW
Jeanfrancois N AmigonJapanAsiya Javayant UNQUALIFIED
Aruna K BologniaFranceStephen Shaw PROPOSAL
Sinclair L ButtBrazilIvan Magalhaes NEGOTIATION
Ricardo C VocelkaSpainStephen Shaw NEGOTIATION
Kadeem S PaprockiCanadaXuxue Feng QUALIFIED
Mayumi T TollnerItalyStephen Shaw NEW
Maria A StensethJapanOnyama Limba QUALIFIED
Leja N GillianJapanBernardo Dominic UNQUALIFIED
David F VenereJapanBernardo Dominic NEGOTIATION
Smith Q TollnerItalyElwin Sharvill NEGOTIATION
Greenwood F ShinkoJapanIvan Magalhaes NEGOTIATION
Leon W MacleadItalyBernardo Dominic PROPOSAL
David J OldroydSpainIoni Bowcher PROPOSAL
Smith P GillianArgentinaAnna Fali QUALIFIED
Murillo P StockhamAustraliaBernardo Dominic NEW
Francesco E BologniaFranceIvan Magalhaes NEGOTIATION
David Z SlusarskiFranceOnyama Limba UNQUALIFIED
Wickens O InouyeIndiaOnyama Limba QUALIFIED
Chavez X PerinGermanyElwin Sharvill QUALIFIED
Octavia K FigeroaCanadaAmy Elsner RENEWAL
Costa V InouyeUnited KingdomAsiya Javayant QUALIFIED
Alejandro M MarrierBrazilOnyama Limba UNQUALIFIED
Jeanfrancois Y VocelkaAustraliaAnna Fali NEGOTIATION
Wickens G OldroydItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Murillo L Rulapaugh
James E Albares
Kadeem C Iturbide
Darci O Sergi
Wickens J Wieser
Kadeem T Butt
Maisha X Maclead
Izzy C Caudy
Aditya K Doe
Isabel U Stockham
Aditya L Perin
Munro M Rim
Greenwood E Albares
Claire P Gillian
Salvatore X Shinko
Smith D Albares
Costa Y Bowley
Francesco V Caudy
Ashley N Caudy
Adams H Shinko
Maisha B Briddick
Ashley X Kusko
Chavez H Glick
Ivar C Vocelka
Kadeem T Marrier
Alejandro Z Bolognia
Antonio V Malet
David G Saylors
Cody T Garufi
Leon Q Doe
Jefferson D Rim
Chavez S Caldarera
David M Wieser
Octavia T Figeroa
Silvio W Inouye
Costa F Campain
Isabel J Poquette
Costa F Paprocki
Deepesh Y Tollner
Mayumi B Albares
Maisha U Darakjy
Jennifer R Caldarera
Kadeem Q Kolmetz
Chavez B Marrier
Stacey R Doe
Ivar X Wieser
Adams J Ferencz
Juan I Marrier
Octavia X Gaucho
Costa S Shinko
IdCountryDate
1000Canada2026-09-01
1001Germany2026-08-27
1002Russia2026-08-14
1003Brazil2026-08-23
1004France2026-08-04
1005Italy2026-08-05
1006Canada2026-08-25
1007Spain2026-09-01
1008Australia2026-08-26
1009Spain2026-08-30
1010Canada2026-08-18
1011Canada2026-08-26
1012Argentina2026-08-30
1013Italy2026-08-15
1014Canada2026-08-09
1015Italy2026-08-26
1016Australia2026-08-05
1017India2026-08-08
1018Japan2026-08-25
1019Germany2026-09-01
1020Spain2026-08-19
1021Argentina2026-08-29
1022India2026-08-19
1023Spain2026-08-10
1024Germany2026-08-15
1025Italy2026-08-26
1026Argentina2026-08-05
1027Argentina2026-08-05
1028Argentina2026-08-07
1029France2026-08-19
1030Argentina2026-08-15
1031Japan2026-08-07
1032United Kingdom2026-08-27
1033Spain2026-08-19
1034Argentina2026-08-27
1035Argentina2026-08-14
1036Argentina2026-08-05
1037Italy2026-08-15
1038Brazil2026-08-14
1039Germany2026-08-20
1040Argentina2026-08-29
1041Japan2026-08-28
1042Russia2026-08-30
1043Brazil2026-08-08
1044Japan2026-08-31
1045Argentina2026-08-07
1046Germany2026-08-10
1047India2026-08-03
1048Canada2026-08-15
1049Germany2026-08-21

On-Demand Data

NameIdCountryDate
Morrow U Kolmetz1000France2026-08-25
Ricardo M Maclead1001India2026-08-19
Salvatore S Ostrosky1002India2026-08-22
Nicolas U Flosi1003Canada2026-08-06
Kaitlin K Campain1004France2026-08-04
Adams Z Wieser1005France2026-08-13
Silvio V Kusko1006Russia2026-08-29
Kaitlin M Malet1007Japan2026-08-21
Jeanfrancois H Rulapaugh1008Russia2026-08-27
Leja S Garufi1009Russia2026-08-22
Aditya K Morasca1010Spain2026-08-25
Aruna U Bolognia1011Brazil2026-08-08
Ivar C Caudy1012Italy2026-08-20
Salvatore M Ostrosky1013France2026-08-16
Aditya S Venere1014Russia2026-08-07
Julie W Stockham1015Spain2026-08-26
Smith T Kusko1016Italy2026-08-14
Jennifer J Ferencz1017Argentina2026-08-17
Claire T Ostrosky1018United Kingdom2026-08-05
Murillo U Royster1019Japan2026-08-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois D BriddickUnited KingdomStephen Shaw NEW
David W PoquetteFranceStephen Shaw NEW
Octavia X ButtUnited KingdomIvan Magalhaes NEW
Nicolas W RimGermanyBernardo Dominic RENEWAL
Misaki O IturbideFranceIoni Bowcher PROPOSAL
James D VenereCanadaOnyama Limba RENEWAL
Ivar K VenereBrazilOnyama Limba PROPOSAL
Chavez S NestleJapanXuxue Feng PROPOSAL
Ivar V CampainFranceAsiya Javayant UNQUALIFIED
Ricardo G PerinAustraliaBernardo Dominic NEW
Emily G VocelkaRussiaIvan Magalhaes PROPOSAL
Ashley A OldroydFranceAsiya Javayant RENEWAL
Chavez P InouyeGermanyStephen Shaw RENEWAL
Rodrigues N RoysterRussiaIvan Magalhaes RENEWAL
Munro R PerinGermanyBernardo Dominic QUALIFIED
Salvatore K OstroskyRussiaElwin Sharvill PROPOSAL
Aika F TollnerSpainAnna Fali NEGOTIATION
Izzy H WaycottBrazilIoni Bowcher QUALIFIED
Jennifer V DarakjyIndiaElwin Sharvill QUALIFIED
Mayumi T OldroydIndiaAnna Fali NEGOTIATION
Morrow L MorascaSpainAnna Fali NEW
Munro G RimFranceOnyama Limba UNQUALIFIED
Ricardo C NestleUnited KingdomIoni Bowcher UNQUALIFIED
Isabel J SchemmerGermanyAsiya Javayant QUALIFIED
Octavia Q KuskoIndiaAsiya Javayant RENEWAL
Tony I MarrierAustraliaIoni Bowcher UNQUALIFIED
Juan W SchemmerGermanyIoni Bowcher NEGOTIATION
Jefferson T DoeFranceXuxue Feng QUALIFIED
Silvio V IturbideJapanOnyama Limba QUALIFIED
Ricardo X PaprockiCanadaAsiya Javayant RENEWAL
Jeanfrancois R DarakjyArgentinaAmy Elsner NEW
Octavia R RutaRussiaStephen Shaw UNQUALIFIED
Kaitlin B KolmetzGermanyIvan Magalhaes NEW
Aditya H RimGermanyAmy Elsner NEW
Maria B VocelkaJapanBernardo Dominic UNQUALIFIED
Jennifer R FerenczAustraliaAsiya Javayant NEGOTIATION
Claire T RimCanadaAsiya Javayant UNQUALIFIED
Rodrigues N AmigonFranceAmy Elsner NEGOTIATION
Kadeem C MorascaUnited KingdomOnyama Limba RENEWAL
Darci H CaudyAustraliaIvan Magalhaes 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>