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
Sinclair P KolmetzJapanStephen Shaw QUALIFIED
Jones F SergiRussiaIvan Magalhaes RENEWAL
David V VocelkaFranceOnyama Limba NEW
Johnson Z FigeroaBrazilElwin Sharvill PROPOSAL
Jennifer K SergiCanadaStephen Shaw UNQUALIFIED
Chavez Q KuskoIndiaBernardo Dominic NEGOTIATION
Misaki N RutaSpainOnyama Limba NEGOTIATION
Isabel N RutaRussiaOnyama Limba NEW
Jennifer H OldroydGermanyAsiya Javayant RENEWAL
Mayumi K ShinkoFranceAmy Elsner NEGOTIATION
Cody T DoeIndiaIoni Bowcher NEGOTIATION
Munro L SergiGermanyIvan Magalhaes RENEWAL
Nicolas U GillianUnited KingdomElwin Sharvill QUALIFIED
Izzy B PaprockiSpainAsiya Javayant NEW
Juan K FigeroaItalyAsiya Javayant RENEWAL
Aditya G CaudyGermanyAmy Elsner NEGOTIATION
Alejandro R BologniaUnited KingdomAmy Elsner RENEWAL
Aika R SergiItalyAmy Elsner UNQUALIFIED
Stacey H MaletArgentinaAmy Elsner RENEWAL
Silvio W TollnerFranceBernardo Dominic RENEWAL
Octavia M IturbideAustraliaElwin Sharvill PROPOSAL
Ricardo G GillianItalyXuxue Feng PROPOSAL
Murillo G DilliardRussiaStephen Shaw RENEWAL
Aditya M MorascaAustraliaXuxue Feng NEW
Arvin I IturbideUnited KingdomAnna Fali NEW
Johnson V BologniaUnited KingdomElwin Sharvill NEW
Tony I FigeroaJapanBernardo Dominic RENEWAL
Jefferson W TollnerJapanBernardo Dominic RENEWAL
Isabel U MacleadIndiaIvan Magalhaes PROPOSAL
Arvin N SchemmerCanadaElwin Sharvill NEW
Kaitlin V PoquetteRussiaAsiya Javayant UNQUALIFIED
Chavez J ShinkoUnited KingdomXuxue Feng PROPOSAL
Silvio I CaudyCanadaStephen Shaw NEGOTIATION
Alejandro B RulapaughUnited KingdomBernardo Dominic QUALIFIED
Arvin C PoquetteItalyAnna Fali QUALIFIED
Ashley G PoquetteJapanBernardo Dominic QUALIFIED
Murillo D SchemmerIndiaAsiya Javayant NEW
Munro J BowleyRussiaXuxue Feng QUALIFIED
Ricardo L AlbaresCanadaAnna Fali NEW
Claire X DilliardAustraliaBernardo Dominic RENEWAL
Deepesh R ChuiSpainOnyama Limba RENEWAL
Darci U IturbideJapanStephen Shaw NEW
Izzy T CaldareraCanadaBernardo Dominic QUALIFIED
Juan J MaletAustraliaIoni Bowcher RENEWAL
Mujtaba G DoeIndiaOnyama Limba NEGOTIATION
Greenwood K IturbideRussiaAnna Fali RENEWAL
Izzy A BowleyFranceAmy Elsner NEW
Francesco D NestleBrazilIoni Bowcher NEGOTIATION
Antonio C BriddickIndiaOnyama Limba NEW
Chavez S ButtIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro W PerinIndiaXuxue Feng UNQUALIFIED
Leon Q StensethFranceAmy Elsner UNQUALIFIED
Costa Y AmigonBrazilElwin Sharvill QUALIFIED
Ivar H RoysterIndiaIvan Magalhaes QUALIFIED
Greenwood S GarufiFranceOnyama Limba PROPOSAL
Misaki C CaldareraAustraliaBernardo Dominic QUALIFIED
Mujtaba H FigeroaJapanAsiya Javayant NEGOTIATION
Cody F WhobreyFranceOnyama Limba UNQUALIFIED
Kadeem Z OldroydBrazilOnyama Limba UNQUALIFIED
Julie K MorascaUnited KingdomAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi P CampainFrance2026-06-03Morlong Associates RENEWAL95Amy Elsner
1001Smith G VenereIndia2026-06-04King, Christopher A Esq QUALIFIED51Xuxue Feng
1002Johnson F WhobreyFrance2026-06-29Benton, John B Jr UNQUALIFIED24Stephen Shaw
1003Antonio X DoeBrazil2026-06-19Feltz Printing Service RENEWAL72Elwin Sharvill
1004Jefferson N FerenczJapan2026-06-06Dorl, James J Esq UNQUALIFIED48Ioni Bowcher
1005Stacey T IturbideItaly2026-06-11Commercial Press RENEWAL84Ivan Magalhaes
1006David V CampainFrance2026-06-30Chapman, Ross E Esq RENEWAL74Anna Fali
1007Salvatore X DoeJapan2026-06-10Truhlar And Truhlar Attys NEGOTIATION47Ivan Magalhaes
1008Morrow I WhobreyCanada2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED67Ivan Magalhaes
1009Ricardo D FollerJapan2026-06-28Feltz Printing Service NEGOTIATION32Stephen Shaw
1010Mayumi Z PoquetteSpain2026-06-10Chemel, James L Cpa RENEWAL13Onyama Limba
1011Deepesh S RimIndia2026-06-28Chapman, Ross E Esq UNQUALIFIED90Xuxue Feng
1012Wickens M ChuiFrance2026-06-09King, Christopher A Esq QUALIFIED91Asiya Javayant
1013Nicolas A SergiArgentina2026-06-29Printing Dimensions QUALIFIED27Stephen Shaw
1014Darci F InouyeItaly2026-06-22Chemel, James L Cpa NEGOTIATION62Bernardo Dominic
1015Nicolas C SchemmerUnited Kingdom2026-06-29Printing Dimensions NEGOTIATION4Amy Elsner
1016Emily Z BologniaRussia2026-06-08Feltz Printing Service UNQUALIFIED74Amy Elsner
1017Jennifer Q SlusarskiRussia2026-06-21Feiner Bros NEW20Elwin Sharvill
1018Stacey T GauchoGermany2026-06-30Rousseaux, Michael Esq QUALIFIED97Xuxue Feng
1019Ashley W StensethBrazil2026-06-08Printing Dimensions RENEWAL62Xuxue Feng
1020Aditya Z RutaCanada2026-06-10Morlong Associates UNQUALIFIED21Xuxue Feng
1021Kadeem G VocelkaArgentina2026-06-23Truhlar And Truhlar Attys NEW38Ivan Magalhaes
1022Jones R MorascaAustralia2026-07-01King, Christopher A Esq NEGOTIATION54Ivan Magalhaes
1023Ricardo B DilliardGermany2026-06-02Chapman, Ross E Esq QUALIFIED40Xuxue Feng
1024Tony P NestleBrazil2026-06-16Dorl, James J Esq NEW93Anna Fali
1025Isabel N PoquetteJapan2026-06-30Feltz Printing Service RENEWAL72Asiya Javayant
1026Greenwood A VocelkaArgentina2026-06-29Morlong Associates RENEWAL10Elwin Sharvill
1027Aruna B MaletCanada2026-06-05Feiner Bros PROPOSAL66Onyama Limba
1028Costa K FlosiIndia2026-06-22Buckley Miller Wright NEGOTIATION84Bernardo Dominic
1029Emily N WieserRussia2026-06-07Truhlar And Truhlar Attys QUALIFIED55Ivan Magalhaes
1030Aruna S MorascaArgentina2026-06-20Feiner Bros NEGOTIATION86Anna Fali
1031Clifford R WaycottFrance2026-06-21Rangoni Of Florence RENEWAL12Amy Elsner
1032Julie U StockhamJapan2026-06-27Dorl, James J Esq NEGOTIATION55Ivan Magalhaes
1033Sinclair S NestleSpain2026-06-14Feiner Bros PROPOSAL12Ioni Bowcher
1034Chavez H GillianBrazil2026-06-21Printing Dimensions NEW57Ivan Magalhaes
1035Rodrigues J NestleItaly2026-06-26Chapman, Ross E Esq RENEWAL92Stephen Shaw
1036Nicolas W WaycottJapan2026-06-20Dorl, James J Esq NEW78Bernardo Dominic
1037Mayumi X ButtCanada2026-06-22Truhlar And Truhlar Attys UNQUALIFIED41Xuxue Feng
1038Chavez X DarakjyIndia2026-06-21Morlong Associates PROPOSAL56Elwin Sharvill
1039Aditya T StensethSpain2026-06-14Feiner Bros QUALIFIED62Onyama Limba
1040Faith C RoysterSpain2026-06-06Commercial Press NEGOTIATION19Amy Elsner
1041Leja M BriddickCanada2026-06-08Truhlar And Truhlar Attys NEW58Bernardo Dominic
1042Clifford U CampainArgentina2026-06-17Dorl, James J Esq RENEWAL65Ivan Magalhaes
1043Silvio P CaldareraItaly2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED17Ioni Bowcher
1044Francesco D KuskoBrazil2026-06-06Benton, John B Jr PROPOSAL46Asiya Javayant
1045Jeanfrancois C OstroskySpain2026-06-12Commercial Press PROPOSAL17Xuxue Feng
1046Jones T MacleadSpain2026-06-17Chemel, James L Cpa RENEWAL80Bernardo Dominic
1047Aika G DoeFrance2026-06-20Chemel, James L Cpa NEW57Ivan Magalhaes
1048Wickens V DilliardItaly2026-06-27Printing Dimensions NEW18Bernardo Dominic
1049Murillo D FollerUnited Kingdom2026-06-02Commercial Press NEGOTIATION60Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Claire B DarakjyBrazilBernardo Dominic NEW
Kadeem H InouyeCanadaAsiya Javayant UNQUALIFIED
Mayumi W RulapaughBrazilIvan Magalhaes RENEWAL
Octavia L ShinkoAustraliaBernardo Dominic PROPOSAL
Murillo C SergiSpainIvan Magalhaes UNQUALIFIED
Francesco S StensethJapanBernardo Dominic NEGOTIATION
Kadeem E FigeroaJapanAnna Fali PROPOSAL
Leon E GlickCanadaStephen Shaw UNQUALIFIED
Tony D BowleyGermanyStephen Shaw RENEWAL
Izzy X FollerGermanyStephen Shaw QUALIFIED
Silvio X AmigonBrazilAmy Elsner QUALIFIED
Deepesh B InouyeSpainIoni Bowcher NEGOTIATION
Munro K OstroskyItalyIoni Bowcher NEGOTIATION
Claire L GlickItalyBernardo Dominic PROPOSAL
Leja H BowleyArgentinaBernardo Dominic QUALIFIED
David R RimUnited KingdomAmy Elsner NEW
Arvin B NestleCanadaXuxue Feng NEGOTIATION
Jefferson N CaldareraUnited KingdomAsiya Javayant NEW
Stacey J CaudyFranceAmy Elsner NEW
Jones W WhobreyGermanyAnna Fali UNQUALIFIED
Julie O CaudyItalyAmy Elsner PROPOSAL
Isabel H StockhamIndiaOnyama Limba PROPOSAL
Octavia Z ButtGermanyAnna Fali RENEWAL
Jeanfrancois S GauchoGermanyElwin Sharvill PROPOSAL
Emily M GauchoUnited KingdomAsiya Javayant NEGOTIATION
Tony J AlbaresBrazilIvan Magalhaes PROPOSAL
Jennifer Z MorascaItalyAmy Elsner RENEWAL
Julie B WaycottRussiaElwin Sharvill RENEWAL
Aditya X VenereCanadaAnna Fali UNQUALIFIED
Misaki D DarakjyRussiaIoni Bowcher NEGOTIATION
Tony P StensethUnited KingdomIoni Bowcher NEGOTIATION
Stacey I AlbaresBrazilStephen Shaw QUALIFIED
Munro X DoeIndiaIoni Bowcher NEW
Jones J BologniaBrazilAsiya Javayant NEW
Jennifer S PaprockiUnited KingdomIoni Bowcher RENEWAL
Jennifer P FollerArgentinaElwin Sharvill RENEWAL
James Z ChuiRussiaElwin Sharvill RENEWAL
Chavez U ShinkoItalyXuxue Feng PROPOSAL
Mujtaba S VocelkaIndiaIvan Magalhaes NEGOTIATION
Murillo Y RimBrazilStephen Shaw PROPOSAL
Darci V FigeroaCanadaStephen Shaw NEGOTIATION
Emily V AlbaresAustraliaAmy Elsner RENEWAL
Kadeem I MaletIndiaStephen Shaw PROPOSAL
Salvatore K PoquetteIndiaXuxue Feng RENEWAL
Tony O DarakjyJapanBernardo Dominic NEGOTIATION
Silvio Z DarakjyItalyOnyama Limba NEGOTIATION
Morrow Q ButtArgentinaIvan Magalhaes QUALIFIED
Sinclair J BriddickCanadaAnna Fali PROPOSAL
Jeanfrancois T VenereItalyAnna Fali QUALIFIED
Jeanfrancois G SlusarskiJapanBernardo Dominic NEW
Frozen Columns
Name
Mayumi X Vocelka
Murillo M Flosi
Faith U Schemmer
Jennifer D Ferencz
Alejandro W Ruta
Salvatore G Ferencz
Jones P Wieser
Rodrigues C Ostrosky
Jeanfrancois P Sergi
Clifford W Marrier
Cody C Caldarera
Wickens I Nicka
Alejandro L Inouye
Salvatore E Vocelka
Jennifer G Inouye
Ashley E Vocelka
Francesco W Gaucho
Nicolas K Ferencz
Kaitlin L Saylors
Isabel D Caldarera
Adams X Shinko
Isabel X Gillian
Isabel K Perin
Stacey L Malet
Claire Z Iturbide
Chavez U Poquette
Aruna P Maclead
Costa A Inouye
Arvin S Glick
Murillo O Doe
Claire A Royster
Ricardo G Bowley
James E Darakjy
Leon D Saylors
Izzy U Amigon
Arvin S Schemmer
Leja T Stockham
Aruna C Gaucho
Arvin C Amigon
Misaki X Nicka
Isabel D Campain
Jones E Gaucho
Deepesh R Kusko
James H Perin
Aditya N Ostrosky
Wickens A Stenseth
Kaitlin X Saylors
Kadeem R Kusko
Leon M Oldroyd
Jeanfrancois O Ostrosky
IdCountryDate
1000Japan2026-06-24
1001Russia2026-06-07
1002Italy2026-06-26
1003Canada2026-06-28
1004Argentina2026-06-14
1005Brazil2026-06-24
1006Japan2026-06-15
1007Brazil2026-06-14
1008Spain2026-06-07
1009France2026-06-04
1010France2026-06-16
1011France2026-06-11
1012Canada2026-06-26
1013Canada2026-06-26
1014Australia2026-06-18
1015Germany2026-06-13
1016Japan2026-06-29
1017Japan2026-06-19
1018Australia2026-06-29
1019India2026-06-13
1020Italy2026-06-27
1021Argentina2026-06-23
1022France2026-06-05
1023Canada2026-06-21
1024India2026-06-16
1025Japan2026-06-12
1026Russia2026-06-07
1027Russia2026-06-13
1028India2026-06-14
1029Italy2026-06-25
1030Germany2026-06-24
1031Italy2026-06-12
1032Spain2026-06-10
1033Argentina2026-06-30
1034Japan2026-06-13
1035Russia2026-06-28
1036France2026-07-01
1037United Kingdom2026-06-12
1038Germany2026-06-23
1039Japan2026-06-13
1040France2026-06-09
1041Spain2026-06-13
1042India2026-06-18
1043India2026-06-17
1044France2026-06-07
1045Canada2026-06-07
1046Russia2026-06-06
1047Germany2026-06-16
1048Italy2026-06-16
1049Spain2026-07-01

On-Demand Data

NameIdCountryDate
Tony S Whobrey1000Argentina2026-06-27
Smith A Kusko1001Italy2026-06-06
Morrow T Oldroyd1002Australia2026-06-10
Smith W Kolmetz1003Japan2026-06-20
Stacey G Ruta1004Spain2026-06-08
Arvin P Maclead1005Russia2026-06-03
Maria L Flosi1006Argentina2026-06-08
Johnson J Venere1007France2026-06-21
Juan E Oldroyd1008France2026-06-19
Jennifer Y Schemmer1009India2026-06-05
Ricardo E Poquette1010India2026-06-27
Darci W Caldarera1011Russia2026-06-16
Leja T Glick1012India2026-06-13
Aditya Z Ferencz1013Japan2026-06-08
Deepesh P Vocelka1014India2026-07-01
Darci H Perin1015Canada2026-06-14
Darci E Caldarera1016Japan2026-06-13
Munro I Flosi1017Italy2026-06-06
Ivar A Rim1018Italy2026-06-30
Nicolas T Tollner1019India2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James E NestleUnited KingdomStephen Shaw NEW
Murillo K VocelkaIndiaIvan Magalhaes PROPOSAL
Cody W MaletJapanIoni Bowcher NEW
Leja H IturbideItalyElwin Sharvill NEW
Ashley W BriddickFranceBernardo Dominic QUALIFIED
Greenwood I ButtJapanStephen Shaw UNQUALIFIED
Deepesh W ButtBrazilOnyama Limba NEGOTIATION
Leon L IturbideUnited KingdomIvan Magalhaes NEGOTIATION
Murillo X BologniaIndiaAmy Elsner PROPOSAL
Greenwood G FollerSpainOnyama Limba RENEWAL
Sinclair L GarufiJapanAmy Elsner NEW
Izzy J CampainGermanyStephen Shaw PROPOSAL
Julie Q CaudyCanadaIvan Magalhaes QUALIFIED
Silvio P GillianArgentinaBernardo Dominic PROPOSAL
Mayumi P WaycottFranceAnna Fali RENEWAL
Misaki N SaylorsIndiaAnna Fali UNQUALIFIED
Morrow T FigeroaGermanyAnna Fali RENEWAL
Ashley C ShinkoRussiaIoni Bowcher UNQUALIFIED
Munro I SchemmerFranceAmy Elsner NEGOTIATION
Maisha W GlickBrazilOnyama Limba RENEWAL
Munro H KolmetzItalyIvan Magalhaes UNQUALIFIED
Faith P NestleItalyAmy Elsner NEGOTIATION
Sinclair X MacleadArgentinaAmy Elsner QUALIFIED
Ashley X CampainArgentinaOnyama Limba UNQUALIFIED
Francesco H BologniaAustraliaStephen Shaw UNQUALIFIED
Stacey Y StockhamRussiaIoni Bowcher QUALIFIED
Ivar C PaprockiSpainOnyama Limba NEGOTIATION
Murillo N NickaFranceAnna Fali RENEWAL
Kaitlin E CaudyAustraliaBernardo Dominic RENEWAL
Maisha W GillianBrazilAnna Fali UNQUALIFIED
Mujtaba O SaylorsCanadaIoni Bowcher NEGOTIATION
Silvio G OstroskyUnited KingdomIoni Bowcher NEW
Darci K FollerJapanOnyama Limba RENEWAL
Jones A NickaUnited KingdomElwin Sharvill UNQUALIFIED
Jones J ButtGermanyOnyama Limba UNQUALIFIED
Jeanfrancois M OldroydGermanyBernardo Dominic UNQUALIFIED
Salvatore I BowleyUnited KingdomIoni Bowcher NEW
Alejandro D KuskoRussiaElwin Sharvill PROPOSAL
Alejandro U PerinCanadaStephen Shaw NEW
James H InouyeJapanElwin Sharvill PROPOSAL

<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>