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 T TollnerIndiaElwin Sharvill PROPOSAL
Jeanfrancois Y AlbaresIndiaAsiya Javayant NEW
Jones O GlickCanadaAmy Elsner RENEWAL
Mujtaba S DoeFranceBernardo Dominic NEGOTIATION
Murillo G GauchoItalyElwin Sharvill NEW
Munro H DarakjyFranceAmy Elsner RENEWAL
Mujtaba U FlosiIndiaAnna Fali UNQUALIFIED
Jeanfrancois C FlosiJapanBernardo Dominic NEGOTIATION
Darci B KuskoGermanyStephen Shaw QUALIFIED
Faith O NickaBrazilIoni Bowcher UNQUALIFIED
Ivar W RutaUnited KingdomBernardo Dominic QUALIFIED
Sinclair M DilliardRussiaAnna Fali RENEWAL
Arvin C AmigonFranceAnna Fali NEW
Murillo K RoysterUnited KingdomElwin Sharvill RENEWAL
Aika D ShinkoRussiaBernardo Dominic PROPOSAL
Stacey M WhobreyBrazilElwin Sharvill NEW
Arvin A WaycottAustraliaOnyama Limba NEW
Rodrigues B WhobreyItalyOnyama Limba RENEWAL
Costa Z PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Maisha U StensethItalyAnna Fali NEW
Salvatore O WieserFranceAsiya Javayant RENEWAL
Rodrigues H KuskoCanadaAsiya Javayant NEGOTIATION
Jennifer A FollerFranceXuxue Feng NEW
Chavez G MacleadRussiaIvan Magalhaes UNQUALIFIED
Francesco M MarrierIndiaAnna Fali UNQUALIFIED
Jennifer S RoysterBrazilXuxue Feng NEGOTIATION
Ricardo C FigeroaSpainAmy Elsner NEGOTIATION
Jennifer O VenereFranceIvan Magalhaes UNQUALIFIED
Morrow A AmigonCanadaStephen Shaw RENEWAL
Alejandro U MarrierBrazilIoni Bowcher PROPOSAL
Jefferson R PoquetteSpainXuxue Feng RENEWAL
Cody Q StockhamAustraliaStephen Shaw UNQUALIFIED
Jennifer F VenereArgentinaElwin Sharvill QUALIFIED
Leon M DilliardIndiaIvan Magalhaes NEGOTIATION
Emily T GlickGermanyStephen Shaw QUALIFIED
Claire K FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Isabel K RimJapanXuxue Feng NEW
Jefferson H PerinCanadaStephen Shaw PROPOSAL
Kadeem V CaldareraFranceIvan Magalhaes RENEWAL
Aika F FigeroaRussiaOnyama Limba PROPOSAL
Clifford F NestleUnited KingdomOnyama Limba NEGOTIATION
Salvatore S VocelkaFranceStephen Shaw UNQUALIFIED
Jones D AmigonArgentinaBernardo Dominic QUALIFIED
Adams H RutaArgentinaOnyama Limba QUALIFIED
Stacey F BowleyBrazilAmy Elsner UNQUALIFIED
Stacey X ShinkoJapanXuxue Feng UNQUALIFIED
Silvio G OldroydFranceXuxue Feng NEW
Faith W CampainBrazilStephen Shaw QUALIFIED
Julie O GauchoIndiaAmy Elsner NEW
Maria U WieserJapanXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois N SergiGermanyBernardo Dominic NEW
David Y CaudyArgentinaIoni Bowcher UNQUALIFIED
Ivar O SchemmerUnited KingdomXuxue Feng PROPOSAL
Aika E CampainJapanXuxue Feng RENEWAL
David J FollerBrazilAnna Fali RENEWAL
Greenwood I NestleGermanyOnyama Limba UNQUALIFIED
Morrow J AmigonCanadaBernardo Dominic NEGOTIATION
Jennifer S FollerArgentinaIvan Magalhaes NEW
Kaitlin Y GillianFranceAmy Elsner QUALIFIED
Darci I MaletBrazilStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey U CaudyBrazil2025-05-19Chanay, Jeffrey A Esq PROPOSAL97Asiya Javayant
1001Ashley W SlusarskiAustralia2025-05-28Printing Dimensions PROPOSAL30Xuxue Feng
1002Isabel Z BologniaSpain2025-06-11Chapman, Ross E Esq RENEWAL95Ivan Magalhaes
1003Leon K GarufiCanada2025-06-12King, Christopher A Esq QUALIFIED63Elwin Sharvill
1004Ivar B CaudyJapan2025-05-30Rangoni Of Florence PROPOSAL41Onyama Limba
1005Munro F PerinUnited Kingdom2025-05-24Chanay, Jeffrey A Esq UNQUALIFIED25Amy Elsner
1006Darci H DarakjyItaly2025-06-12Dorl, James J Esq PROPOSAL47Ivan Magalhaes
1007Morrow K ChuiFrance2025-06-12Dorl, James J Esq QUALIFIED72Bernardo Dominic
1008Greenwood E AmigonSpain2025-05-25Morlong Associates QUALIFIED26Amy Elsner
1009Mayumi B RoysterJapan2025-06-08Buckley Miller Wright RENEWAL24Stephen Shaw
1010Silvio Z CaudyArgentina2025-06-08Printing Dimensions QUALIFIED11Stephen Shaw
1011Nicolas D DoeItaly2025-05-17King, Christopher A Esq RENEWAL94Anna Fali
1012Tony D OstroskyGermany2025-05-26Rousseaux, Michael Esq QUALIFIED41Ivan Magalhaes
1013Maisha K GarufiSpain2025-05-21King, Christopher A Esq QUALIFIED41Asiya Javayant
1014Julie F OstroskyJapan2025-06-14King, Christopher A Esq PROPOSAL37Amy Elsner
1015Emily J StockhamRussia2025-06-06King, Christopher A Esq RENEWAL21Amy Elsner
1016Jennifer N GillianJapan2025-05-31Feiner Bros UNQUALIFIED63Asiya Javayant
1017Julie V WaycottRussia2025-06-04Dorl, James J Esq NEW43Stephen Shaw
1018Smith I DarakjyCanada2025-05-21Printing Dimensions RENEWAL2Stephen Shaw
1019Alejandro M CaldareraFrance2025-06-06Rangoni Of Florence NEW43Elwin Sharvill
1020Aruna H GlickGermany2025-05-21Rousseaux, Michael Esq QUALIFIED41Amy Elsner
1021Ivar X CampainSpain2025-05-30King, Christopher A Esq NEW86Ioni Bowcher
1022Adams G KuskoIndia2025-05-31Feiner Bros QUALIFIED17Amy Elsner
1023Octavia S VenereSpain2025-06-13King, Christopher A Esq PROPOSAL82Stephen Shaw
1024Smith J CaudySpain2025-05-26Feiner Bros NEW96Xuxue Feng
1025Octavia I FlosiIndia2025-05-22Feltz Printing Service PROPOSAL42Stephen Shaw
1026Leja K NestleJapan2025-06-03Feltz Printing Service NEGOTIATION97Amy Elsner
1027Misaki J GlickArgentina2025-06-05Chemel, James L Cpa PROPOSAL98Asiya Javayant
1028Emily A NestleArgentina2025-05-30Commercial Press UNQUALIFIED67Ivan Magalhaes
1029James Z InouyeFrance2025-06-11Printing Dimensions QUALIFIED1Ivan Magalhaes
1030Jennifer K FigeroaGermany2025-06-12Benton, John B Jr PROPOSAL32Bernardo Dominic
1031Antonio D FollerGermany2025-05-25Rousseaux, Michael Esq NEGOTIATION84Ivan Magalhaes
1032Kadeem H DarakjySpain2025-05-26Chemel, James L Cpa RENEWAL62Bernardo Dominic
1033Adams H MorascaJapan2025-06-05Rangoni Of Florence UNQUALIFIED31Anna Fali
1034Antonio S SchemmerUnited Kingdom2025-05-18Morlong Associates RENEWAL23Bernardo Dominic
1035Nicolas B ShinkoRussia2025-05-29King, Christopher A Esq RENEWAL50Amy Elsner
1036Ashley W NickaIndia2025-06-05Truhlar And Truhlar Attys NEGOTIATION26Anna Fali
1037Cody U MarrierGermany2025-06-12Truhlar And Truhlar Attys NEGOTIATION28Xuxue Feng
1038Salvatore D FerenczJapan2025-06-13Truhlar And Truhlar Attys UNQUALIFIED69Ioni Bowcher
1039Rodrigues K ButtBrazil2025-06-06Printing Dimensions PROPOSAL22Stephen Shaw
1040Antonio S BologniaAustralia2025-06-05Truhlar And Truhlar Attys NEW59Xuxue Feng
1041Leja O StockhamIndia2025-05-27Truhlar And Truhlar Attys UNQUALIFIED38Ivan Magalhaes
1042Nicolas X SergiArgentina2025-06-08Rangoni Of Florence QUALIFIED57Xuxue Feng
1043Aruna T SaylorsSpain2025-06-03Rangoni Of Florence UNQUALIFIED21Stephen Shaw
1044Izzy G DilliardJapan2025-06-14Benton, John B Jr UNQUALIFIED6Anna Fali
1045Kadeem H InouyeAustralia2025-05-18Benton, John B Jr QUALIFIED1Stephen Shaw
1046Ashley F WaycottCanada2025-05-16Chemel, James L Cpa PROPOSAL69Xuxue Feng
1047Mujtaba U FigeroaIndia2025-06-06Chapman, Ross E Esq NEW80Anna Fali
1048Stacey W AmigonBrazil2025-05-31Commercial Press RENEWAL42Asiya Javayant
1049Maria K MarrierRussia2025-05-24Feltz Printing Service RENEWAL4Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley G SchemmerAustraliaStephen Shaw NEW
Maisha E MarrierJapanAnna Fali NEW
Izzy X BriddickIndiaStephen Shaw NEGOTIATION
Morrow N MarrierCanadaIvan Magalhaes UNQUALIFIED
Francesco Z DoeBrazilOnyama Limba RENEWAL
Misaki V TollnerSpainXuxue Feng NEW
Misaki K BriddickArgentinaIvan Magalhaes NEGOTIATION
Faith G WhobreyFranceIoni Bowcher UNQUALIFIED
Juan O GlickIndiaStephen Shaw RENEWAL
Maria A NestleCanadaIoni Bowcher NEGOTIATION
Isabel F InouyeJapanOnyama Limba UNQUALIFIED
Aruna I AmigonJapanIoni Bowcher NEW
Alejandro R BowleyArgentinaXuxue Feng NEW
Tony G DoeCanadaBernardo Dominic NEGOTIATION
Ashley M OstroskyIndiaXuxue Feng UNQUALIFIED
Ricardo N PerinRussiaBernardo Dominic QUALIFIED
Ricardo S MacleadGermanyOnyama Limba NEW
Kadeem W SergiCanadaIoni Bowcher UNQUALIFIED
Johnson Y MaletCanadaXuxue Feng UNQUALIFIED
Izzy I RoysterCanadaAnna Fali NEW
Adams Y DilliardIndiaAnna Fali RENEWAL
James U GauchoGermanyIoni Bowcher RENEWAL
Julie W PaprockiUnited KingdomIoni Bowcher NEGOTIATION
Arvin C GarufiRussiaAmy Elsner NEGOTIATION
Antonio V CampainFranceAmy Elsner QUALIFIED
Murillo F GlickAustraliaStephen Shaw PROPOSAL
Aditya B SaylorsGermanyIoni Bowcher PROPOSAL
Tony Z BologniaItalyAnna Fali NEW
Aruna K StockhamJapanAsiya Javayant RENEWAL
Faith V PerinFranceAnna Fali UNQUALIFIED
Izzy C FerenczJapanStephen Shaw UNQUALIFIED
Ashley X OstroskyCanadaXuxue Feng NEGOTIATION
Kaitlin U VenereAustraliaOnyama Limba UNQUALIFIED
Ashley L TollnerRussiaIoni Bowcher NEW
Stacey N MorascaAustraliaIvan Magalhaes QUALIFIED
Antonio X NickaGermanyIvan Magalhaes QUALIFIED
James A BowleyRussiaAmy Elsner UNQUALIFIED
Adams R SchemmerIndiaElwin Sharvill NEW
Johnson J RutaItalyOnyama Limba QUALIFIED
Claire O MorascaBrazilIvan Magalhaes NEW
Misaki T SaylorsItalyIvan Magalhaes PROPOSAL
Silvio F BriddickCanadaXuxue Feng QUALIFIED
Juan M ButtCanadaXuxue Feng UNQUALIFIED
Johnson M TollnerItalyStephen Shaw UNQUALIFIED
Jones O MacleadAustraliaAsiya Javayant PROPOSAL
Aika D DilliardUnited KingdomIvan Magalhaes PROPOSAL
Ashley Y DarakjyJapanElwin Sharvill NEW
Kadeem F SergiAustraliaAmy Elsner NEGOTIATION
Juan Q SlusarskiArgentinaBernardo Dominic NEGOTIATION
Misaki F RoysterFranceAsiya Javayant QUALIFIED
Frozen Columns
Name
Claire L Gillian
Claire X Wieser
Emily C Butt
Faith W Gaucho
Stacey O Stenseth
Rodrigues P Figeroa
Ricardo A Darakjy
Darci L Bolognia
Jeanfrancois Y Stenseth
Adams V Stenseth
Greenwood H Venere
Emily T Schemmer
Isabel G Poquette
Stacey I Tollner
Misaki G Stenseth
James D Albares
Silvio D Caudy
Costa D Schemmer
Smith X Darakjy
Clifford F Kusko
Costa F Rulapaugh
Maria S Nicka
Wickens W Gillian
Isabel L Ferencz
Jefferson P Garufi
Kadeem T Garufi
Jennifer W Briddick
Clifford R Perin
Mujtaba A Gaucho
Smith W Perin
Jeanfrancois J Chui
Aruna B Schemmer
Ricardo E Shinko
Silvio Q Whobrey
Isabel P Doe
Rodrigues M Darakjy
Alejandro B Butt
Adams T Slusarski
Salvatore N Doe
Costa N Vocelka
Deepesh X Venere
Kadeem T Tollner
Munro C Nicka
Cody U Amigon
Tony T Gaucho
Isabel G Saylors
Cody G Vocelka
David D Campain
Juan E Malet
Isabel Y Inouye
IdCountryDate
1000Argentina2025-06-13
1001Argentina2025-05-20
1002India2025-05-31
1003India2025-06-12
1004Brazil2025-05-22
1005Australia2025-05-28
1006Canada2025-06-11
1007United Kingdom2025-05-31
1008Canada2025-05-17
1009Brazil2025-06-02
1010Brazil2025-06-04
1011Canada2025-06-14
1012France2025-06-10
1013Australia2025-06-10
1014Germany2025-05-30
1015Argentina2025-05-17
1016Canada2025-06-03
1017Australia2025-06-02
1018France2025-05-22
1019Germany2025-06-13
1020Germany2025-05-21
1021Brazil2025-06-04
1022Japan2025-06-13
1023Italy2025-06-08
1024United Kingdom2025-05-31
1025France2025-06-14
1026Australia2025-05-29
1027India2025-05-22
1028Russia2025-06-04
1029United Kingdom2025-05-18
1030France2025-05-22
1031Australia2025-05-19
1032Spain2025-06-13
1033India2025-06-05
1034India2025-06-01
1035India2025-05-23
1036Australia2025-06-06
1037Canada2025-06-11
1038Spain2025-06-07
1039Russia2025-05-20
1040Spain2025-05-25
1041Japan2025-06-06
1042Canada2025-06-12
1043Brazil2025-06-04
1044Australia2025-06-12
1045United Kingdom2025-06-14
1046Japan2025-06-10
1047Russia2025-06-02
1048France2025-05-18
1049India2025-06-14

On-Demand Data

NameIdCountryDate
James J Dilliard1000Italy2025-05-16
Claire L Nestle1001Italy2025-06-07
Murillo E Figeroa1002Spain2025-05-23
Mujtaba G Caudy1003United Kingdom2025-05-23
Morrow P Albares1004Argentina2025-06-06
Emily X Kolmetz1005Canada2025-05-26
Jennifer V Nicka1006Brazil2025-06-06
David F Ostrosky1007United Kingdom2025-06-06
Jefferson K Kusko1008Germany2025-05-21
Munro Z Waycott1009United Kingdom2025-05-30
Smith I Flosi1010Canada2025-06-01
Aditya H Marrier1011Russia2025-05-26
Aditya L Iturbide1012United Kingdom2025-05-18
Smith U Paprocki1013India2025-06-10
Wickens L Flosi1014Germany2025-06-07
Clifford S Morasca1015Japan2025-05-29
Jennifer I Shinko1016India2025-06-07
Leja F Saylors1017India2025-05-27
Francesco B Caldarera1018Brazil2025-06-01
David E Oldroyd1019Argentina2025-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas R MacleadSpainOnyama Limba PROPOSAL
Cody R BologniaGermanyXuxue Feng RENEWAL
Munro P PoquetteRussiaIoni Bowcher PROPOSAL
Silvio F GarufiArgentinaBernardo Dominic UNQUALIFIED
Aditya Q WhobreyIndiaAnna Fali NEGOTIATION
Ivar J GlickArgentinaIoni Bowcher NEGOTIATION
Salvatore P BowleyRussiaIvan Magalhaes NEGOTIATION
Rodrigues M MaletCanadaIoni Bowcher NEGOTIATION
Darci A MaletSpainAsiya Javayant RENEWAL
Aruna M GillianRussiaOnyama Limba PROPOSAL
Octavia I StensethIndiaAnna Fali NEGOTIATION
Antonio P DilliardCanadaIoni Bowcher UNQUALIFIED
Alejandro E InouyeFranceBernardo Dominic PROPOSAL
Salvatore H ButtItalyStephen Shaw NEGOTIATION
Munro W NickaSpainXuxue Feng QUALIFIED
Julie M DarakjyJapanXuxue Feng QUALIFIED
James U FerenczIndiaAsiya Javayant NEGOTIATION
Rodrigues Q RoysterItalyAsiya Javayant UNQUALIFIED
Misaki U GillianBrazilIoni Bowcher UNQUALIFIED
Julie X DilliardUnited KingdomAsiya Javayant QUALIFIED
Aika H DarakjyGermanyBernardo Dominic UNQUALIFIED
Mayumi H WaycottItalyOnyama Limba NEW
Arvin P AmigonCanadaOnyama Limba QUALIFIED
Jefferson W GlickUnited KingdomAsiya Javayant PROPOSAL
Jones V RulapaughBrazilElwin Sharvill RENEWAL
Clifford A OstroskyJapanStephen Shaw PROPOSAL
Leja G DilliardAustraliaIoni Bowcher NEGOTIATION
Murillo H NickaSpainBernardo Dominic RENEWAL
Sinclair O MaletArgentinaXuxue Feng NEGOTIATION
Antonio A FlosiItalyXuxue Feng NEW
Emily H SaylorsIndiaBernardo Dominic RENEWAL
Clifford P StockhamCanadaStephen Shaw RENEWAL
Chavez R CaudyRussiaAnna Fali RENEWAL
Misaki W MacleadGermanyXuxue Feng QUALIFIED
Chavez Z ChuiJapanAmy Elsner NEW
Misaki L ButtFranceIoni Bowcher UNQUALIFIED
Leja F GlickUnited KingdomIvan Magalhaes RENEWAL
Francesco P BologniaJapanXuxue Feng NEW
David C FerenczArgentinaBernardo Dominic QUALIFIED
Deepesh E SergiSpainIoni Bowcher 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>