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
Juan A ButtAustraliaXuxue Feng PROPOSAL
Stacey K KolmetzItalyAnna Fali QUALIFIED
Murillo O ShinkoSpainAnna Fali UNQUALIFIED
James N SergiGermanyXuxue Feng NEGOTIATION
Smith S MaletFranceAmy Elsner QUALIFIED
Tony F ButtBrazilElwin Sharvill UNQUALIFIED
Munro D AlbaresSpainXuxue Feng PROPOSAL
Adams P WhobreySpainIoni Bowcher UNQUALIFIED
Darci W WaycottBrazilXuxue Feng NEW
Stacey V WaycottUnited KingdomBernardo Dominic RENEWAL
Maria N AmigonSpainAsiya Javayant NEW
Claire M MaletItalyXuxue Feng PROPOSAL
Nicolas B FerenczItalyOnyama Limba PROPOSAL
Leja L RimFranceIvan Magalhaes NEW
Salvatore U DilliardRussiaOnyama Limba RENEWAL
Salvatore D CaldareraBrazilStephen Shaw NEGOTIATION
Kadeem G DilliardIndiaStephen Shaw QUALIFIED
Misaki Y DilliardRussiaAnna Fali UNQUALIFIED
Jones U RoysterRussiaAmy Elsner QUALIFIED
Adams U FerenczRussiaIvan Magalhaes NEW
Julie Y AmigonGermanyAnna Fali UNQUALIFIED
Aditya E NickaUnited KingdomOnyama Limba RENEWAL
Octavia P ButtJapanBernardo Dominic PROPOSAL
Rodrigues B AlbaresArgentinaAmy Elsner QUALIFIED
Silvio O StockhamJapanAmy Elsner UNQUALIFIED
Alejandro W FerenczAustraliaOnyama Limba UNQUALIFIED
Wickens E MacleadUnited KingdomBernardo Dominic NEGOTIATION
Mayumi H StockhamFranceElwin Sharvill QUALIFIED
Mujtaba J PerinArgentinaIoni Bowcher UNQUALIFIED
Ivar C PaprockiGermanyAmy Elsner QUALIFIED
Darci L BologniaIndiaIvan Magalhaes QUALIFIED
Aika O GillianJapanXuxue Feng RENEWAL
Ivar Q OldroydIndiaElwin Sharvill RENEWAL
Tony X SergiUnited KingdomXuxue Feng QUALIFIED
Tony C MaletAustraliaAnna Fali UNQUALIFIED
Jefferson A CampainItalyBernardo Dominic UNQUALIFIED
James L DarakjyGermanyElwin Sharvill NEGOTIATION
Stacey U SchemmerArgentinaIvan Magalhaes PROPOSAL
Leja K FollerGermanyIoni Bowcher NEGOTIATION
Alejandro O SergiFranceElwin Sharvill UNQUALIFIED
Darci U WhobreyRussiaOnyama Limba NEW
Mayumi S MaletFranceOnyama Limba UNQUALIFIED
David G BologniaJapanElwin Sharvill PROPOSAL
Leja X AlbaresRussiaElwin Sharvill QUALIFIED
Sinclair B VocelkaItalyXuxue Feng NEGOTIATION
Nicolas Z PaprockiFranceAmy Elsner NEGOTIATION
Antonio V CampainFranceOnyama Limba RENEWAL
Stacey Z OstroskyRussiaElwin Sharvill RENEWAL
Maria O GarufiBrazilAnna Fali QUALIFIED
Octavia G RulapaughAustraliaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin O GlickBrazilAsiya Javayant NEGOTIATION
Leja S FigeroaGermanyIoni Bowcher NEGOTIATION
Antonio E SchemmerJapanAmy Elsner PROPOSAL
Kaitlin V WhobreyRussiaBernardo Dominic NEGOTIATION
Deepesh T DoeSpainXuxue Feng RENEWAL
Morrow X BowleyGermanyElwin Sharvill NEGOTIATION
Greenwood F DoeUnited KingdomAsiya Javayant NEW
Darci A TollnerJapanAsiya Javayant QUALIFIED
Salvatore K FerenczUnited KingdomAmy Elsner UNQUALIFIED
Chavez D VocelkaArgentinaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody J RutaUnited Kingdom2026-08-13Chanay, Jeffrey A Esq UNQUALIFIED52Elwin Sharvill
1001Tony T ChuiUnited Kingdom2026-08-13Morlong Associates NEGOTIATION8Elwin Sharvill
1002Nicolas R KuskoJapan2026-08-10Commercial Press RENEWAL87Amy Elsner
1003Aruna A KolmetzUnited Kingdom2026-07-15Feiner Bros NEGOTIATION44Bernardo Dominic
1004Kaitlin E ShinkoCanada2026-07-17Rangoni Of Florence UNQUALIFIED20Elwin Sharvill
1005Sinclair S InouyeSpain2026-07-23Printing Dimensions RENEWAL83Ioni Bowcher
1006Murillo C RulapaughRussia2026-08-05Chemel, James L Cpa NEGOTIATION73Elwin Sharvill
1007Darci E AmigonRussia2026-08-12Chemel, James L Cpa PROPOSAL25Onyama Limba
1008Rodrigues A KuskoAustralia2026-08-10Chemel, James L Cpa NEGOTIATION54Stephen Shaw
1009Jeanfrancois J DarakjyFrance2026-07-15Chanay, Jeffrey A Esq PROPOSAL65Onyama Limba
1010James O VenereArgentina2026-07-27Buckley Miller Wright QUALIFIED88Ioni Bowcher
1011Izzy U FigeroaAustralia2026-08-09King, Christopher A Esq RENEWAL96Onyama Limba
1012Nicolas H FigeroaAustralia2026-08-11Buckley Miller Wright NEW69Ioni Bowcher
1013Johnson C MorascaFrance2026-08-05Feiner Bros RENEWAL18Ioni Bowcher
1014Clifford M RulapaughJapan2026-08-01Chanay, Jeffrey A Esq QUALIFIED9Bernardo Dominic
1015Isabel F PerinGermany2026-07-22Chemel, James L Cpa NEGOTIATION74Asiya Javayant
1016Aditya M MacleadJapan2026-07-31Dorl, James J Esq RENEWAL42Elwin Sharvill
1017Ivar V WhobreyAustralia2026-08-03Commercial Press QUALIFIED92Onyama Limba
1018Clifford Q StensethFrance2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED99Xuxue Feng
1019Wickens U TollnerSpain2026-07-27Dorl, James J Esq NEW14Amy Elsner
1020Deepesh O RoysterCanada2026-07-20Dorl, James J Esq NEGOTIATION15Onyama Limba
1021Faith B SchemmerJapan2026-07-27Truhlar And Truhlar Attys QUALIFIED54Ivan Magalhaes
1022Aika S ShinkoJapan2026-07-28Commercial Press UNQUALIFIED75Stephen Shaw
1023Tony R GillianGermany2026-07-19Feltz Printing Service PROPOSAL42Asiya Javayant
1024Maisha A FlosiArgentina2026-07-25Truhlar And Truhlar Attys QUALIFIED21Onyama Limba
1025Clifford V ButtArgentina2026-07-22Printing Dimensions PROPOSAL53Xuxue Feng
1026Costa Y InouyeGermany2026-08-06Benton, John B Jr NEGOTIATION36Bernardo Dominic
1027Isabel U AlbaresJapan2026-08-04Morlong Associates QUALIFIED27Anna Fali
1028Octavia K BologniaCanada2026-07-27Chanay, Jeffrey A Esq QUALIFIED67Stephen Shaw
1029Francesco V SchemmerUnited Kingdom2026-08-03Feiner Bros NEGOTIATION29Amy Elsner
1030Aika P CaldareraRussia2026-08-06Feltz Printing Service NEW74Stephen Shaw
1031Murillo C StensethItaly2026-08-03Printing Dimensions RENEWAL52Amy Elsner
1032Claire N ShinkoArgentina2026-08-08King, Christopher A Esq QUALIFIED59Stephen Shaw
1033Isabel W MarrierFrance2026-08-01Chanay, Jeffrey A Esq QUALIFIED84Onyama Limba
1034Stacey W IturbideSpain2026-08-06Feiner Bros NEW67Stephen Shaw
1035Darci H FerenczIndia2026-08-01King, Christopher A Esq NEGOTIATION56Elwin Sharvill
1036Jeanfrancois K WaycottJapan2026-07-22Morlong Associates UNQUALIFIED92Ivan Magalhaes
1037Deepesh F PerinFrance2026-07-15Feltz Printing Service NEGOTIATION98Asiya Javayant
1038Antonio B VocelkaArgentina2026-07-20Commercial Press RENEWAL57Asiya Javayant
1039Ivar J BowleyCanada2026-08-02Dorl, James J Esq RENEWAL67Bernardo Dominic
1040James N SchemmerFrance2026-08-10Chemel, James L Cpa UNQUALIFIED84Asiya Javayant
1041Stacey E GauchoGermany2026-07-28Rousseaux, Michael Esq UNQUALIFIED74Asiya Javayant
1042Isabel U StensethAustralia2026-08-05Truhlar And Truhlar Attys QUALIFIED2Anna Fali
1043Ashley M RoysterUnited Kingdom2026-07-15Chapman, Ross E Esq UNQUALIFIED35Ioni Bowcher
1044Antonio C BowleySpain2026-08-12Printing Dimensions NEW6Stephen Shaw
1045Isabel B DilliardGermany2026-08-13Chemel, James L Cpa NEGOTIATION58Onyama Limba
1046Misaki W ButtIndia2026-07-25King, Christopher A Esq NEW63Xuxue Feng
1047Deepesh Y SergiGermany2026-07-29Morlong Associates UNQUALIFIED28Onyama Limba
1048Juan P BowleyCanada2026-07-21Truhlar And Truhlar Attys UNQUALIFIED46Bernardo Dominic
1049James N RulapaughCanada2026-07-20Chanay, Jeffrey A Esq QUALIFIED23Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams C AmigonGermanyOnyama Limba QUALIFIED
Claire M AmigonArgentinaOnyama Limba QUALIFIED
Munro H CaldareraItalyAsiya Javayant NEGOTIATION
Kadeem Z AmigonAustraliaXuxue Feng PROPOSAL
Jeanfrancois H GlickArgentinaIoni Bowcher RENEWAL
Johnson F CaudyIndiaXuxue Feng PROPOSAL
James B ButtRussiaElwin Sharvill UNQUALIFIED
Stacey Z PoquetteFranceStephen Shaw RENEWAL
Cody E WaycottIndiaIvan Magalhaes QUALIFIED
Wickens K VenereBrazilAsiya Javayant RENEWAL
Maisha Q PoquetteGermanyBernardo Dominic UNQUALIFIED
Aditya F SlusarskiRussiaAnna Fali UNQUALIFIED
Clifford G DilliardRussiaOnyama Limba NEW
Cody U WieserArgentinaXuxue Feng UNQUALIFIED
Nicolas P MacleadItalyAsiya Javayant RENEWAL
Costa S SaylorsFranceStephen Shaw QUALIFIED
Misaki B AmigonGermanyOnyama Limba NEW
Maria C BriddickAustraliaOnyama Limba RENEWAL
Stacey F SergiFranceIvan Magalhaes NEGOTIATION
Jones E PerinFranceStephen Shaw UNQUALIFIED
Ivar S SaylorsBrazilStephen Shaw NEW
Tony G DilliardGermanyXuxue Feng QUALIFIED
Murillo Y CaudyArgentinaAsiya Javayant PROPOSAL
Clifford H RimItalyAnna Fali UNQUALIFIED
Aditya N PoquetteItalyIvan Magalhaes QUALIFIED
Aditya D IturbideIndiaOnyama Limba NEW
Ivar Q SlusarskiRussiaAsiya Javayant RENEWAL
Jeanfrancois P OldroydCanadaElwin Sharvill PROPOSAL
Leja H GillianCanadaXuxue Feng NEW
Ricardo A FlosiSpainStephen Shaw RENEWAL
Mayumi K ShinkoIndiaAmy Elsner NEW
Murillo V PaprockiItalyAmy Elsner RENEWAL
Isabel A KuskoItalyBernardo Dominic PROPOSAL
Emily A PerinArgentinaBernardo Dominic NEW
Maisha D RimBrazilOnyama Limba NEW
Jefferson M GillianArgentinaStephen Shaw NEW
Arvin J SergiUnited KingdomXuxue Feng RENEWAL
Sinclair Q PaprockiSpainAnna Fali NEGOTIATION
Ricardo X SaylorsCanadaXuxue Feng RENEWAL
James K KolmetzFranceAmy Elsner NEGOTIATION
Johnson D BowleyGermanyStephen Shaw QUALIFIED
Aditya X VenereArgentinaAnna Fali UNQUALIFIED
Octavia V FerenczAustraliaStephen Shaw NEW
Kaitlin W KolmetzGermanyXuxue Feng RENEWAL
Octavia D AmigonBrazilIoni Bowcher NEGOTIATION
Smith U InouyeRussiaAmy Elsner PROPOSAL
Maisha G VenereJapanElwin Sharvill RENEWAL
James I SaylorsAustraliaBernardo Dominic UNQUALIFIED
Isabel G SergiItalyAnna Fali NEGOTIATION
Jennifer N PaprockiCanadaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Emily G Doe
Maisha S Doe
Munro A Gillian
Leja G Ferencz
Misaki V Sergi
Emily C Chui
Leon P Malet
Maisha X Rulapaugh
Cody A Nestle
Munro Y Foller
Jeanfrancois N Inouye
Smith Y Rulapaugh
Jennifer H Maclead
Antonio V Morasca
Wickens T Garufi
Mayumi I Stenseth
Faith T Stenseth
Darci R Venere
Greenwood K Butt
Kaitlin M Kolmetz
Darci I Amigon
Rodrigues S Kolmetz
Aditya C Malet
Isabel X Campain
Cody I Stenseth
Cody E Iturbide
Leja U Poquette
Faith Q Garufi
Mujtaba E Campain
Stacey H Marrier
Octavia S Paprocki
Maisha O Kusko
Munro K Gillian
Cody Y Wieser
Aika A Waycott
Munro H Doe
Kaitlin Z Nicka
Jennifer J Caudy
Ricardo G Stenseth
Jefferson L Perin
Aika L Caudy
Adams Q Gillian
Maria N Albares
Salvatore P Garufi
Munro P Inouye
Jennifer V Kolmetz
Kadeem B Darakjy
Misaki W Briddick
Kaitlin I Inouye
Mujtaba G Sergi
IdCountryDate
1000Spain2026-08-02
1001Russia2026-07-19
1002Germany2026-08-02
1003Canada2026-07-19
1004Australia2026-07-23
1005France2026-07-30
1006Australia2026-07-28
1007United Kingdom2026-07-20
1008Australia2026-07-16
1009Russia2026-07-23
1010France2026-08-10
1011Spain2026-08-08
1012France2026-08-11
1013Germany2026-07-19
1014France2026-08-08
1015Australia2026-07-25
1016Russia2026-08-01
1017Spain2026-08-08
1018Spain2026-07-17
1019Canada2026-07-23
1020Russia2026-08-04
1021Argentina2026-07-16
1022Canada2026-08-03
1023Germany2026-07-15
1024Spain2026-08-08
1025Japan2026-07-27
1026Germany2026-08-04
1027Japan2026-08-03
1028Brazil2026-07-28
1029Australia2026-08-12
1030Australia2026-07-25
1031Russia2026-07-20
1032Spain2026-07-28
1033Japan2026-07-26
1034Italy2026-07-25
1035Brazil2026-08-12
1036Germany2026-07-21
1037Canada2026-07-21
1038Italy2026-08-02
1039France2026-07-23
1040India2026-08-11
1041Brazil2026-07-15
1042France2026-07-18
1043Japan2026-08-10
1044United Kingdom2026-08-07
1045Japan2026-07-19
1046Brazil2026-07-22
1047Italy2026-07-31
1048Spain2026-07-19
1049Argentina2026-08-01

On-Demand Data

NameIdCountryDate
Maisha G Flosi1000Russia2026-07-15
Salvatore C Butt1001France2026-07-28
Mayumi J Sergi1002Australia2026-07-15
Claire B Amigon1003Italy2026-08-10
Francesco G Slusarski1004Italy2026-08-07
Jeanfrancois F Kusko1005Canada2026-07-31
Greenwood M Malet1006Canada2026-07-25
Octavia T Perin1007Brazil2026-08-08
Mujtaba P Briddick1008Spain2026-07-24
Jeanfrancois N Darakjy1009Brazil2026-07-15
Salvatore W Nicka1010France2026-07-25
Faith U Poquette1011Argentina2026-07-20
Ashley N Iturbide1012Spain2026-08-08
Greenwood P Flosi1013Australia2026-07-22
Jennifer F Gaucho1014Canada2026-08-11
Nicolas S Doe1015Italy2026-08-08
Jennifer Z Slusarski1016Brazil2026-08-03
Misaki S Caudy1017Russia2026-07-22
Kaitlin C Marrier1018Australia2026-07-19
Tony K Wieser1019Argentina2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood G AlbaresBrazilBernardo Dominic UNQUALIFIED
Johnson M ChuiJapanBernardo Dominic QUALIFIED
Morrow R GarufiBrazilXuxue Feng PROPOSAL
Sinclair R NickaGermanyAsiya Javayant NEW
Julie V InouyeArgentinaElwin Sharvill QUALIFIED
Jeanfrancois Q BologniaGermanyBernardo Dominic UNQUALIFIED
Morrow N GauchoIndiaAnna Fali PROPOSAL
Claire D MaletRussiaAnna Fali QUALIFIED
Juan L SergiAustraliaAmy Elsner NEGOTIATION
Nicolas Z ChuiItalyAsiya Javayant PROPOSAL
Chavez B SchemmerIndiaXuxue Feng PROPOSAL
Murillo C SaylorsRussiaIvan Magalhaes QUALIFIED
Aika N TollnerBrazilAnna Fali NEGOTIATION
Kadeem W VenereFranceAmy Elsner QUALIFIED
Jones Y RoysterArgentinaElwin Sharvill NEGOTIATION
Ricardo Q FollerArgentinaStephen Shaw QUALIFIED
Mujtaba D PoquetteRussiaIvan Magalhaes QUALIFIED
Izzy E WaycottIndiaOnyama Limba NEW
Isabel C DilliardJapanStephen Shaw RENEWAL
Greenwood U GauchoSpainAnna Fali QUALIFIED
Rodrigues Y BologniaItalyStephen Shaw NEGOTIATION
Murillo G GillianUnited KingdomStephen Shaw RENEWAL
Mayumi K FigeroaBrazilStephen Shaw QUALIFIED
Clifford D WaycottAustraliaXuxue Feng PROPOSAL
Jefferson V FerenczItalyAmy Elsner PROPOSAL
Nicolas B SlusarskiRussiaXuxue Feng RENEWAL
Alejandro K MaletRussiaAmy Elsner QUALIFIED
Sinclair T StockhamIndiaAsiya Javayant NEGOTIATION
Faith S NickaSpainBernardo Dominic NEGOTIATION
Adams P BriddickBrazilAnna Fali PROPOSAL
Clifford Q ChuiGermanyAmy Elsner UNQUALIFIED
Rodrigues W AmigonJapanIvan Magalhaes RENEWAL
Aruna N PoquetteArgentinaAnna Fali NEGOTIATION
Deepesh D InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Darci S AmigonSpainOnyama Limba RENEWAL
Jennifer U GarufiRussiaAnna Fali QUALIFIED
Octavia Z VocelkaBrazilElwin Sharvill QUALIFIED
Aika B VenereAustraliaElwin Sharvill PROPOSAL
Kaitlin Q ChuiItalyAmy Elsner UNQUALIFIED
Jennifer R ShinkoJapanAmy Elsner 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>