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
Johnson W ChuiUnited KingdomIvan Magalhaes QUALIFIED
Mayumi Y VocelkaArgentinaAsiya Javayant PROPOSAL
Jeanfrancois Q RimBrazilAnna Fali PROPOSAL
Arvin M IturbideArgentinaIoni Bowcher NEGOTIATION
Jones S DoeBrazilAsiya Javayant NEW
Greenwood Q BowleySpainIoni Bowcher RENEWAL
Mayumi C MacleadJapanStephen Shaw QUALIFIED
Kaitlin E PaprockiItalyAnna Fali PROPOSAL
Aika N MaletArgentinaIvan Magalhaes NEW
Misaki M GauchoRussiaIvan Magalhaes RENEWAL
Smith L WaycottRussiaAmy Elsner NEW
Faith D WhobreyFranceAmy Elsner RENEWAL
Munro F MacleadGermanyIvan Magalhaes PROPOSAL
James J ButtSpainBernardo Dominic NEW
Costa Y PoquetteBrazilBernardo Dominic NEGOTIATION
Alejandro E PaprockiArgentinaXuxue Feng PROPOSAL
Alejandro W BowleyItalyElwin Sharvill NEGOTIATION
Juan C MaletFranceAnna Fali UNQUALIFIED
Kaitlin O FerenczJapanAnna Fali QUALIFIED
Mujtaba B DarakjyAustraliaAmy Elsner PROPOSAL
Darci O StensethBrazilXuxue Feng UNQUALIFIED
Alejandro Z MorascaArgentinaIvan Magalhaes UNQUALIFIED
Sinclair C WaycottAustraliaIvan Magalhaes NEGOTIATION
Faith G RimUnited KingdomIvan Magalhaes QUALIFIED
Silvio E DoeIndiaXuxue Feng NEW
Alejandro F PerinGermanyXuxue Feng PROPOSAL
Emily D PerinUnited KingdomIoni Bowcher QUALIFIED
Cody I OldroydBrazilAsiya Javayant QUALIFIED
Nicolas M SaylorsItalyBernardo Dominic NEGOTIATION
Kadeem X ButtItalyAsiya Javayant UNQUALIFIED
Alejandro C GlickBrazilOnyama Limba PROPOSAL
Adams V StockhamFranceElwin Sharvill QUALIFIED
Izzy H OldroydFranceOnyama Limba RENEWAL
Isabel J KolmetzIndiaBernardo Dominic UNQUALIFIED
Munro B CaudyAustraliaElwin Sharvill RENEWAL
Maisha C DoeItalyIoni Bowcher NEW
Aditya L KuskoCanadaIvan Magalhaes QUALIFIED
Costa Y StockhamAustraliaAsiya Javayant QUALIFIED
Murillo V ShinkoGermanyIoni Bowcher NEGOTIATION
Johnson A MorascaSpainXuxue Feng NEGOTIATION
Jones D MorascaCanadaIoni Bowcher NEGOTIATION
Claire Q PaprockiSpainElwin Sharvill UNQUALIFIED
Leon B FollerAustraliaStephen Shaw NEW
Octavia B GarufiItalyOnyama Limba NEW
Antonio G NickaSpainIoni Bowcher UNQUALIFIED
Antonio E GauchoJapanAmy Elsner PROPOSAL
Maisha H SlusarskiArgentinaBernardo Dominic NEW
Mujtaba K MaletSpainElwin Sharvill UNQUALIFIED
David Q KuskoUnited KingdomAnna Fali RENEWAL
Clifford C TollnerFranceOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro G NestleBrazilBernardo Dominic PROPOSAL
Mayumi Y OldroydJapanIvan Magalhaes PROPOSAL
Greenwood F MacleadIndiaIoni Bowcher UNQUALIFIED
Aika D SlusarskiBrazilAnna Fali UNQUALIFIED
Cody A WhobreyItalyXuxue Feng QUALIFIED
Stacey Q IturbideCanadaAmy Elsner RENEWAL
Adams P ChuiBrazilAsiya Javayant NEW
Arvin Y CaldareraRussiaElwin Sharvill UNQUALIFIED
Leon U RimFranceIvan Magalhaes UNQUALIFIED
Clifford J ChuiFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody X NestleBrazil2026-06-28Feiner Bros QUALIFIED19Asiya Javayant
1001Arvin B MaletAustralia2026-06-27Feltz Printing Service UNQUALIFIED3Xuxue Feng
1002Maisha T ButtAustralia2026-07-06Truhlar And Truhlar Attys UNQUALIFIED62Anna Fali
1003Jones Y DarakjyArgentina2026-06-23Chapman, Ross E Esq PROPOSAL17Amy Elsner
1004Sinclair Y OldroydSpain2026-06-14Chapman, Ross E Esq QUALIFIED57Bernardo Dominic
1005Johnson X ChuiRussia2026-07-03Buckley Miller Wright NEW60Bernardo Dominic
1006Octavia C SaylorsArgentina2026-06-09Buckley Miller Wright PROPOSAL94Asiya Javayant
1007Chavez T RoysterArgentina2026-06-19King, Christopher A Esq PROPOSAL32Anna Fali
1008Jones U FigeroaCanada2026-06-10Chanay, Jeffrey A Esq NEGOTIATION30Amy Elsner
1009Arvin D StensethItaly2026-06-20King, Christopher A Esq PROPOSAL51Elwin Sharvill
1010Clifford N TollnerAustralia2026-06-09Chapman, Ross E Esq NEW53Asiya Javayant
1011Isabel Y MorascaGermany2026-06-24Commercial Press UNQUALIFIED13Amy Elsner
1012Darci H PaprockiItaly2026-07-06Rousseaux, Michael Esq PROPOSAL10Bernardo Dominic
1013Aika L InouyeJapan2026-06-30Buckley Miller Wright PROPOSAL31Anna Fali
1014Cody C AmigonIndia2026-06-19Chapman, Ross E Esq PROPOSAL86Asiya Javayant
1015Aruna A PoquetteCanada2026-07-07Rangoni Of Florence NEGOTIATION18Xuxue Feng
1016Faith G GauchoUnited Kingdom2026-07-05Benton, John B Jr QUALIFIED16Bernardo Dominic
1017Costa I RimArgentina2026-06-28Chanay, Jeffrey A Esq RENEWAL10Elwin Sharvill
1018Cody K RoysterGermany2026-07-02Benton, John B Jr RENEWAL14Ioni Bowcher
1019Ricardo J StensethAustralia2026-06-10Truhlar And Truhlar Attys UNQUALIFIED47Onyama Limba
1020Emily U BriddickItaly2026-06-27Commercial Press NEW25Ivan Magalhaes
1021Stacey P GlickIndia2026-06-21Rangoni Of Florence RENEWAL10Asiya Javayant
1022Ashley G IturbideAustralia2026-06-28King, Christopher A Esq QUALIFIED99Elwin Sharvill
1023Murillo F MaletGermany2026-06-29Dorl, James J Esq QUALIFIED16Anna Fali
1024Juan Y RulapaughFrance2026-07-04Commercial Press RENEWAL42Elwin Sharvill
1025Jefferson K RimCanada2026-06-18Feiner Bros QUALIFIED39Elwin Sharvill
1026Chavez V BriddickArgentina2026-07-06Truhlar And Truhlar Attys NEGOTIATION4Ioni Bowcher
1027Arvin T WaycottSpain2026-06-30Feiner Bros NEGOTIATION76Stephen Shaw
1028Jennifer I RulapaughJapan2026-06-25Buckley Miller Wright NEW41Ioni Bowcher
1029Mayumi F MorascaItaly2026-06-27Rangoni Of Florence NEW59Anna Fali
1030Ricardo U InouyeRussia2026-06-20Chanay, Jeffrey A Esq PROPOSAL59Anna Fali
1031David V CaldareraAustralia2026-07-04Morlong Associates NEW71Amy Elsner
1032Johnson M MorascaJapan2026-06-14Benton, John B Jr QUALIFIED83Stephen Shaw
1033Jefferson H RimUnited Kingdom2026-06-10Rousseaux, Michael Esq RENEWAL5Elwin Sharvill
1034Leon Q RulapaughItaly2026-06-29Chanay, Jeffrey A Esq QUALIFIED25Xuxue Feng
1035Faith Q PoquetteIndia2026-06-17King, Christopher A Esq UNQUALIFIED29Asiya Javayant
1036Smith C CampainGermany2026-06-08Rousseaux, Michael Esq QUALIFIED33Onyama Limba
1037Ashley C MacleadGermany2026-06-26Feiner Bros QUALIFIED56Asiya Javayant
1038Sinclair Z RoysterIndia2026-06-28Dorl, James J Esq PROPOSAL42Anna Fali
1039Tony N GauchoSpain2026-06-17Feltz Printing Service NEW50Amy Elsner
1040Silvio U OldroydGermany2026-07-01Dorl, James J Esq NEW56Bernardo Dominic
1041Stacey G BologniaAustralia2026-06-18Buckley Miller Wright PROPOSAL24Amy Elsner
1042Deepesh R KolmetzItaly2026-06-12Dorl, James J Esq UNQUALIFIED54Anna Fali
1043Salvatore G VocelkaBrazil2026-06-21Rangoni Of Florence QUALIFIED19Asiya Javayant
1044Mujtaba X DilliardSpain2026-06-21Feltz Printing Service NEW94Asiya Javayant
1045Munro W CampainIndia2026-07-01Dorl, James J Esq NEW24Xuxue Feng
1046Cody F NestleIndia2026-06-28Chapman, Ross E Esq NEGOTIATION56Onyama Limba
1047Stacey E RulapaughGermany2026-06-22Chemel, James L Cpa UNQUALIFIED59Onyama Limba
1048Aruna B NestleArgentina2026-07-07Dorl, James J Esq QUALIFIED49Onyama Limba
1049Kaitlin B RimRussia2026-06-14Chemel, James L Cpa UNQUALIFIED99Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria A WhobreyFranceAmy Elsner NEW
James B SaylorsRussiaAsiya Javayant RENEWAL
Sinclair S NestleRussiaAsiya Javayant NEGOTIATION
Sinclair S CaldareraAustraliaStephen Shaw PROPOSAL
Izzy L FlosiCanadaAsiya Javayant RENEWAL
David J BriddickUnited KingdomXuxue Feng QUALIFIED
Ashley B RimRussiaStephen Shaw UNQUALIFIED
Kadeem J FigeroaJapanAsiya Javayant RENEWAL
Adams R SergiBrazilAnna Fali RENEWAL
Murillo B RulapaughBrazilAsiya Javayant NEW
Jennifer W AlbaresArgentinaElwin Sharvill UNQUALIFIED
Ivar D AlbaresJapanElwin Sharvill UNQUALIFIED
Chavez Z StockhamRussiaXuxue Feng NEW
Francesco G IturbideGermanyXuxue Feng PROPOSAL
Mayumi L BriddickItalyAnna Fali NEW
Greenwood X IturbideUnited KingdomXuxue Feng UNQUALIFIED
Leon K MaletItalyStephen Shaw PROPOSAL
Arvin W CaldareraSpainOnyama Limba PROPOSAL
James U SlusarskiBrazilAnna Fali QUALIFIED
Antonio Y StockhamFranceElwin Sharvill QUALIFIED
Leon A SergiCanadaAmy Elsner RENEWAL
Aika Z SchemmerRussiaAsiya Javayant NEGOTIATION
Deepesh K NestleUnited KingdomBernardo Dominic UNQUALIFIED
Leja H FerenczIndiaStephen Shaw NEGOTIATION
Munro N SergiCanadaAmy Elsner RENEWAL
Greenwood P GauchoIndiaXuxue Feng NEGOTIATION
Maisha D IturbideAustraliaXuxue Feng RENEWAL
Wickens K OldroydAustraliaIoni Bowcher PROPOSAL
Wickens T ChuiRussiaIoni Bowcher RENEWAL
Adams P WhobreyItalyElwin Sharvill NEW
Wickens J GlickArgentinaAnna Fali QUALIFIED
Aruna I CampainArgentinaAnna Fali PROPOSAL
Aika Y DarakjyGermanyIoni Bowcher UNQUALIFIED
Izzy P RutaBrazilIoni Bowcher QUALIFIED
Ricardo I TollnerBrazilAmy Elsner QUALIFIED
Silvio O SaylorsItalyAnna Fali QUALIFIED
Leon D GillianFranceOnyama Limba RENEWAL
Stacey X VenereGermanyIoni Bowcher PROPOSAL
Leon J RimFranceAnna Fali QUALIFIED
Stacey H CampainBrazilIvan Magalhaes NEGOTIATION
Deepesh J StensethItalyElwin Sharvill RENEWAL
Mayumi W StockhamGermanyAsiya Javayant NEGOTIATION
Chavez Q FlosiIndiaAmy Elsner RENEWAL
David R GauchoAustraliaXuxue Feng PROPOSAL
Isabel H IturbideIndiaAsiya Javayant PROPOSAL
Wickens D PerinJapanStephen Shaw RENEWAL
Alejandro G MorascaSpainAnna Fali NEW
Ashley E SlusarskiArgentinaIvan Magalhaes RENEWAL
Jefferson Z BriddickFranceBernardo Dominic NEW
Nicolas J MorascaAustraliaBernardo Dominic RENEWAL
Frozen Columns
Name
Antonio I Butt
Misaki O Albares
Jefferson P Ruta
Kadeem I Dilliard
Stacey X Campain
Tony J Shinko
Kadeem A Schemmer
Rodrigues J Butt
Antonio I Saylors
Francesco S Nicka
Deepesh P Maclead
Greenwood Q Albares
Deepesh H Schemmer
Tony P Rim
Leja H Garufi
Ricardo N Waycott
Emily Q Caldarera
Alejandro Z Waycott
Jefferson C Venere
Ashley W Iturbide
Darci F Bolognia
Faith E Albares
Rodrigues A Vocelka
Maisha Z Malet
Jeanfrancois F Ruta
Aruna M Darakjy
Deepesh H Amigon
Antonio V Garufi
Sinclair F Stockham
Ricardo B Oldroyd
Johnson Q Malet
Arvin P Perin
Salvatore X Rulapaugh
Morrow Z Wieser
Morrow X Doe
Leja Q Figeroa
Kaitlin F Darakjy
Aika B Stockham
Tony C Stockham
Leja W Whobrey
Clifford I Kusko
Mujtaba L Royster
Faith I Ruta
Murillo Q Paprocki
Mujtaba Q Ruta
Octavia R Marrier
Mujtaba P Rim
Ashley F Gillian
Francesco P Shinko
Rodrigues L Malet
IdCountryDate
1000Japan2026-07-01
1001France2026-06-30
1002France2026-06-09
1003Germany2026-06-16
1004Spain2026-06-09
1005Italy2026-06-25
1006Russia2026-06-26
1007Russia2026-06-23
1008Brazil2026-07-01
1009Japan2026-06-29
1010India2026-06-17
1011France2026-06-24
1012Argentina2026-07-04
1013France2026-06-23
1014Australia2026-06-25
1015Germany2026-06-30
1016Argentina2026-06-18
1017United Kingdom2026-06-14
1018France2026-06-27
1019India2026-07-01
1020Australia2026-06-29
1021Russia2026-06-20
1022France2026-06-19
1023India2026-06-20
1024Australia2026-06-25
1025Australia2026-06-13
1026United Kingdom2026-06-16
1027Australia2026-06-19
1028Argentina2026-06-28
1029India2026-06-20
1030Spain2026-06-08
1031United Kingdom2026-06-20
1032Russia2026-06-20
1033Argentina2026-06-25
1034Australia2026-06-23
1035Italy2026-06-24
1036Australia2026-06-22
1037Germany2026-07-05
1038Argentina2026-06-11
1039Italy2026-07-05
1040Russia2026-06-17
1041Russia2026-07-01
1042Canada2026-06-28
1043France2026-06-28
1044Italy2026-06-19
1045Spain2026-06-25
1046France2026-06-10
1047Brazil2026-06-25
1048Italy2026-06-19
1049Australia2026-06-20

On-Demand Data

NameIdCountryDate
Antonio J Briddick1000Australia2026-06-25
Maria G Whobrey1001France2026-06-23
Izzy V Maclead1002United Kingdom2026-06-20
Adams C Whobrey1003Germany2026-06-22
Maria B Chui1004France2026-06-23
Adams E Tollner1005Russia2026-06-23
Juan G Wieser1006Italy2026-06-19
James F Whobrey1007Brazil2026-07-02
Leon S Ferencz1008United Kingdom2026-06-28
Smith P Kolmetz1009Germany2026-06-22
Sinclair G Ostrosky1010India2026-07-04
Maria C Butt1011Canada2026-06-19
Jennifer V Malet1012India2026-06-12
Tony N Foller1013India2026-07-03
Claire O Poquette1014Canada2026-06-29
Maisha I Whobrey1015Australia2026-06-13
Sinclair N Wieser1016Australia2026-06-17
Smith E Royster1017Australia2026-06-24
Ashley Y Briddick1018Spain2026-06-13
Kadeem L Rulapaugh1019Canada2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja H FerenczBrazilIoni Bowcher UNQUALIFIED
Silvio Y RimCanadaElwin Sharvill QUALIFIED
Misaki K CaudyJapanBernardo Dominic NEGOTIATION
Izzy W MaletJapanIvan Magalhaes UNQUALIFIED
Costa Z MaletSpainOnyama Limba RENEWAL
Alejandro W VenereGermanyOnyama Limba NEW
Mayumi R RulapaughItalyOnyama Limba NEW
Kaitlin R NestleCanadaIvan Magalhaes UNQUALIFIED
Smith I FlosiJapanXuxue Feng NEGOTIATION
Ashley G GillianAustraliaAmy Elsner NEGOTIATION
Murillo A GillianRussiaIoni Bowcher QUALIFIED
Jeanfrancois Q RimBrazilAnna Fali QUALIFIED
Johnson C CaudyJapanBernardo Dominic QUALIFIED
Leon C DarakjyBrazilAsiya Javayant PROPOSAL
Costa A KolmetzIndiaElwin Sharvill UNQUALIFIED
Maria F KolmetzItalyBernardo Dominic UNQUALIFIED
Maisha I RimArgentinaXuxue Feng NEGOTIATION
Octavia M OstroskyItalyAmy Elsner NEW
Kadeem K MarrierAustraliaIvan Magalhaes NEW
Alejandro R PaprockiIndiaAmy Elsner PROPOSAL
Faith E PoquetteSpainOnyama Limba NEW
Kaitlin U WieserIndiaElwin Sharvill UNQUALIFIED
Aruna I RutaFranceStephen Shaw UNQUALIFIED
Izzy S BowleyUnited KingdomXuxue Feng QUALIFIED
Silvio E DilliardIndiaAmy Elsner UNQUALIFIED
Adams T CaldareraJapanElwin Sharvill NEW
Wickens X WaycottSpainElwin Sharvill PROPOSAL
Kadeem B RutaItalyIoni Bowcher NEGOTIATION
James L AmigonJapanIvan Magalhaes QUALIFIED
Wickens A WhobreyBrazilXuxue Feng RENEWAL
Arvin K WhobreySpainOnyama Limba RENEWAL
Cody O OstroskyBrazilIoni Bowcher RENEWAL
Rodrigues V DoeItalyElwin Sharvill UNQUALIFIED
Kadeem X ShinkoGermanyXuxue Feng NEW
Darci E RimJapanAsiya Javayant NEGOTIATION
Octavia B MaletRussiaOnyama Limba PROPOSAL
Greenwood M InouyeJapanOnyama Limba QUALIFIED
Aditya F SlusarskiAustraliaAnna Fali QUALIFIED
Claire R NickaUnited KingdomElwin Sharvill QUALIFIED
Octavia P DoeCanadaIvan Magalhaes 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>