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
Mayumi F FollerArgentinaAmy Elsner NEW
Kadeem A MaletRussiaAnna Fali UNQUALIFIED
Emily H OstroskyItalyElwin Sharvill RENEWAL
Aditya E MarrierAustraliaOnyama Limba NEGOTIATION
Stacey J DoeSpainIvan Magalhaes UNQUALIFIED
Clifford X VocelkaItalyOnyama Limba NEW
Kadeem E NestleCanadaXuxue Feng UNQUALIFIED
Aruna R MarrierUnited KingdomStephen Shaw NEGOTIATION
Darci C OstroskyCanadaAnna Fali QUALIFIED
Alejandro L InouyeRussiaOnyama Limba RENEWAL
Adams S GlickCanadaStephen Shaw PROPOSAL
Izzy M FigeroaItalyOnyama Limba RENEWAL
Deepesh G CaldareraArgentinaIvan Magalhaes PROPOSAL
Maisha L ShinkoUnited KingdomIoni Bowcher NEW
Stacey X ChuiFranceStephen Shaw RENEWAL
Leja C MarrierCanadaIoni Bowcher RENEWAL
Cody J ShinkoItalyAmy Elsner PROPOSAL
Claire O VocelkaFranceAsiya Javayant PROPOSAL
Ivar N ShinkoBrazilIoni Bowcher PROPOSAL
Juan T VenereSpainStephen Shaw PROPOSAL
Aruna A NestleSpainAmy Elsner NEW
Kadeem T WaycottArgentinaAmy Elsner NEGOTIATION
Ashley V ChuiBrazilAsiya Javayant NEGOTIATION
Francesco A ChuiBrazilStephen Shaw PROPOSAL
Faith E TollnerItalyAmy Elsner RENEWAL
Juan J RimUnited KingdomElwin Sharvill NEW
Chavez P WieserCanadaIvan Magalhaes RENEWAL
Jefferson U BologniaUnited KingdomAnna Fali RENEWAL
Leja M GarufiArgentinaIoni Bowcher QUALIFIED
Faith G DoeRussiaOnyama Limba UNQUALIFIED
Nicolas K WaycottGermanyXuxue Feng NEW
Arvin W RoysterUnited KingdomIvan Magalhaes QUALIFIED
Nicolas P PaprockiSpainStephen Shaw NEGOTIATION
Juan J CaldareraSpainXuxue Feng NEW
Stacey Z GarufiSpainAsiya Javayant UNQUALIFIED
Aruna T FigeroaFranceXuxue Feng PROPOSAL
Chavez B FlosiItalyAnna Fali UNQUALIFIED
Aruna V PoquetteIndiaAmy Elsner RENEWAL
Greenwood S BologniaItalyAsiya Javayant QUALIFIED
Cody A InouyeIndiaOnyama Limba NEW
Antonio Y AmigonRussiaIvan Magalhaes NEGOTIATION
Greenwood Q DilliardItalyElwin Sharvill UNQUALIFIED
Chavez U GlickJapanAmy Elsner UNQUALIFIED
Ivar E AmigonRussiaXuxue Feng RENEWAL
Leja T CaldareraArgentinaAnna Fali NEW
Munro S SergiGermanyIoni Bowcher NEW
Izzy J SergiArgentinaXuxue Feng PROPOSAL
Aditya G FlosiSpainIvan Magalhaes PROPOSAL
Murillo L WieserAustraliaXuxue Feng UNQUALIFIED
Deepesh Y AlbaresGermanyAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem E RoysterBrazilIoni Bowcher QUALIFIED
Isabel B RulapaughJapanBernardo Dominic RENEWAL
Johnson K MorascaAustraliaAsiya Javayant QUALIFIED
Maisha D DoeCanadaElwin Sharvill NEGOTIATION
Claire S GauchoGermanyAsiya Javayant PROPOSAL
Arvin F RulapaughBrazilOnyama Limba QUALIFIED
Adams G VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues J FlosiCanadaBernardo Dominic NEW
Octavia R SaylorsRussiaStephen Shaw NEGOTIATION
Deepesh U PerinCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily H TollnerIndia2025-06-14Morlong Associates PROPOSAL32Bernardo Dominic
1001Mayumi G DoeFrance2025-05-26Morlong Associates UNQUALIFIED57Xuxue Feng
1002Faith W CaldareraCanada2025-05-21Printing Dimensions PROPOSAL17Ioni Bowcher
1003Kaitlin T CampainSpain2025-06-07Truhlar And Truhlar Attys NEGOTIATION91Onyama Limba
1004Alejandro I DoeCanada2025-06-14Chanay, Jeffrey A Esq NEGOTIATION61Xuxue Feng
1005Wickens O GarufiJapan2025-06-03Dorl, James J Esq UNQUALIFIED92Elwin Sharvill
1006Aruna X NickaBrazil2025-06-03Commercial Press RENEWAL75Onyama Limba
1007Tony F IturbideBrazil2025-05-31Benton, John B Jr NEGOTIATION34Elwin Sharvill
1008Izzy C CaldareraItaly2025-06-01Commercial Press UNQUALIFIED11Anna Fali
1009Aditya E CampainAustralia2025-05-25Chanay, Jeffrey A Esq NEW90Anna Fali
1010Johnson S DilliardRussia2025-05-18Feltz Printing Service NEGOTIATION68Ivan Magalhaes
1011Costa J ChuiBrazil2025-06-05Printing Dimensions NEW92Xuxue Feng
1012Greenwood Y StockhamJapan2025-05-29Dorl, James J Esq NEW36Stephen Shaw
1013Mayumi C FlosiRussia2025-05-17Chapman, Ross E Esq PROPOSAL88Ioni Bowcher
1014Izzy J CampainFrance2025-06-06Chanay, Jeffrey A Esq RENEWAL14Asiya Javayant
1015Jones F WieserSpain2025-06-15Buckley Miller Wright NEW33Anna Fali
1016Kaitlin Q VenereJapan2025-06-08Commercial Press RENEWAL14Anna Fali
1017Maria T PaprockiArgentina2025-05-21Feiner Bros PROPOSAL61Ioni Bowcher
1018Faith G CaldareraFrance2025-05-25Truhlar And Truhlar Attys PROPOSAL19Asiya Javayant
1019Sinclair X GillianSpain2025-06-09Feiner Bros PROPOSAL66Elwin Sharvill
1020Mujtaba J VenereJapan2025-05-25King, Christopher A Esq NEGOTIATION95Onyama Limba
1021Mujtaba N BologniaBrazil2025-06-03Truhlar And Truhlar Attys NEGOTIATION25Xuxue Feng
1022Izzy B InouyeAustralia2025-06-15Printing Dimensions RENEWAL40Stephen Shaw
1023Aditya D DarakjyFrance2025-05-31Benton, John B Jr NEGOTIATION63Anna Fali
1024Jennifer J NestleJapan2025-05-24Dorl, James J Esq QUALIFIED65Asiya Javayant
1025Antonio D WhobreyRussia2025-06-10Truhlar And Truhlar Attys QUALIFIED61Bernardo Dominic
1026Kadeem V WhobreyArgentina2025-05-23Printing Dimensions RENEWAL55Xuxue Feng
1027Deepesh V SchemmerAustralia2025-05-25Feltz Printing Service UNQUALIFIED71Ivan Magalhaes
1028Ashley B NestleFrance2025-05-19Chanay, Jeffrey A Esq QUALIFIED52Amy Elsner
1029James S NickaBrazil2025-05-28Morlong Associates RENEWAL74Amy Elsner
1030Smith X NestleBrazil2025-05-29Rangoni Of Florence PROPOSAL82Ioni Bowcher
1031Salvatore J MaletGermany2025-06-10Chemel, James L Cpa NEW70Elwin Sharvill
1032Isabel V OldroydArgentina2025-06-12Feltz Printing Service UNQUALIFIED55Onyama Limba
1033Cody Z GillianRussia2025-05-26Feiner Bros QUALIFIED81Ioni Bowcher
1034Deepesh P KuskoIndia2025-06-12Truhlar And Truhlar Attys RENEWAL35Amy Elsner
1035Octavia W PaprockiArgentina2025-06-11Feltz Printing Service PROPOSAL55Ivan Magalhaes
1036Emily O GlickAustralia2025-05-31Chapman, Ross E Esq RENEWAL72Anna Fali
1037Kadeem L CaudyFrance2025-06-14Feltz Printing Service NEGOTIATION48Elwin Sharvill
1038Nicolas G GauchoItaly2025-06-06Chemel, James L Cpa UNQUALIFIED18Amy Elsner
1039Clifford M KuskoGermany2025-06-09Feltz Printing Service PROPOSAL94Elwin Sharvill
1040Salvatore Z OstroskyBrazil2025-06-02Dorl, James J Esq NEW72Anna Fali
1041Aditya U GarufiAustralia2025-06-02Benton, John B Jr QUALIFIED56Bernardo Dominic
1042Ricardo D FollerBrazil2025-05-25Truhlar And Truhlar Attys UNQUALIFIED52Ivan Magalhaes
1043Mayumi R WieserItaly2025-06-14Rangoni Of Florence PROPOSAL66Asiya Javayant
1044Maria B FlosiBrazil2025-05-27Truhlar And Truhlar Attys PROPOSAL76Onyama Limba
1045Emily J DarakjyJapan2025-05-29Rangoni Of Florence RENEWAL9Elwin Sharvill
1046Costa W ButtUnited Kingdom2025-05-20Printing Dimensions NEW45Asiya Javayant
1047Nicolas J CaldareraUnited Kingdom2025-06-08Commercial Press PROPOSAL75Amy Elsner
1048Johnson V VenereIndia2025-06-03Feltz Printing Service NEGOTIATION12Ivan Magalhaes
1049Misaki I VenereSpain2025-05-17Commercial Press QUALIFIED22Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire C WieserBrazilAsiya Javayant NEGOTIATION
Kaitlin H TollnerArgentinaAnna Fali UNQUALIFIED
Stacey V WieserArgentinaOnyama Limba NEW
Kaitlin Z InouyeIndiaAsiya Javayant PROPOSAL
Jones E MacleadArgentinaXuxue Feng NEGOTIATION
Antonio Y AlbaresBrazilOnyama Limba PROPOSAL
Ricardo R CaudySpainBernardo Dominic QUALIFIED
Mujtaba R GarufiSpainIoni Bowcher NEGOTIATION
Julie E BowleyFranceIoni Bowcher QUALIFIED
Francesco I GauchoCanadaStephen Shaw PROPOSAL
Jones J OstroskyFranceStephen Shaw PROPOSAL
Jefferson P GarufiJapanStephen Shaw UNQUALIFIED
Izzy M KolmetzGermanyXuxue Feng NEGOTIATION
Ashley N WaycottArgentinaIvan Magalhaes NEGOTIATION
David W OstroskyItalyOnyama Limba RENEWAL
Darci D InouyeUnited KingdomElwin Sharvill NEW
Antonio U NickaIndiaOnyama Limba RENEWAL
Darci F GlickJapanStephen Shaw PROPOSAL
Aruna F InouyeAustraliaAsiya Javayant RENEWAL
Ricardo J FigeroaFranceXuxue Feng RENEWAL
Claire Y WieserIndiaIvan Magalhaes UNQUALIFIED
Jefferson M GauchoItalyIvan Magalhaes QUALIFIED
Aika K DoeItalyStephen Shaw QUALIFIED
Munro E ButtArgentinaAsiya Javayant PROPOSAL
Deepesh W BowleySpainAmy Elsner NEGOTIATION
Claire J FerenczIndiaAmy Elsner RENEWAL
Tony R KuskoUnited KingdomStephen Shaw QUALIFIED
Maria D OldroydArgentinaXuxue Feng RENEWAL
Jones S FigeroaCanadaXuxue Feng UNQUALIFIED
Jeanfrancois S OstroskyCanadaXuxue Feng UNQUALIFIED
Smith I PerinUnited KingdomBernardo Dominic UNQUALIFIED
Murillo R ButtItalyBernardo Dominic NEGOTIATION
Aruna M GarufiJapanAnna Fali UNQUALIFIED
Maisha N CampainArgentinaOnyama Limba RENEWAL
Johnson B InouyeRussiaElwin Sharvill RENEWAL
Ivar O WhobreyArgentinaStephen Shaw UNQUALIFIED
Aditya W StockhamJapanXuxue Feng NEGOTIATION
Antonio R BowleyCanadaIvan Magalhaes QUALIFIED
Silvio M CaudyFranceAsiya Javayant UNQUALIFIED
Misaki Z CaldareraArgentinaAsiya Javayant UNQUALIFIED
Nicolas Y FigeroaSpainAmy Elsner NEW
Antonio O WieserJapanElwin Sharvill RENEWAL
Izzy N CampainUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo H PaprockiSpainAmy Elsner RENEWAL
Greenwood F FerenczCanadaIoni Bowcher PROPOSAL
David K PaprockiBrazilAmy Elsner PROPOSAL
Deepesh A WieserFranceXuxue Feng PROPOSAL
Chavez R CampainIndiaOnyama Limba NEGOTIATION
Faith Y OldroydAustraliaXuxue Feng NEW
Isabel P IturbideBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Ivar B Nestle
Emily D Shinko
Deepesh A Marrier
Isabel P Tollner
Kaitlin S Schemmer
Salvatore K Amigon
Mayumi N Foller
Ivar L Poquette
Julie C Stockham
Antonio I Caudy
Greenwood B Slusarski
Jeanfrancois D Briddick
Chavez S Schemmer
Faith O Rim
Mujtaba E Campain
Isabel N Stockham
Clifford K Figeroa
Kadeem U Ferencz
Munro N Ruta
Darci X Briddick
Murillo V Slusarski
Chavez N Venere
Jones V Figeroa
Nicolas C Shinko
Maisha D Caldarera
Maisha N Butt
Octavia X Paprocki
Johnson Z Malet
Costa U Foller
Jefferson O Darakjy
Greenwood K Butt
Murillo U Nestle
Francesco D Gillian
David E Briddick
Jeanfrancois P Garufi
Leon I Doe
Deepesh L Maclead
Kaitlin N Ferencz
Tony X Morasca
Isabel X Figeroa
Jeanfrancois V Briddick
Izzy Q Malet
Jefferson B Darakjy
Aruna Y Iturbide
Jones R Malet
Costa X Paprocki
Jefferson P Albares
Juan N Glick
Murillo H Ostrosky
Rodrigues W Kusko
IdCountryDate
1000Spain2025-06-09
1001United Kingdom2025-06-08
1002Brazil2025-06-14
1003Italy2025-05-22
1004Brazil2025-06-05
1005Germany2025-05-19
1006Canada2025-05-25
1007India2025-06-15
1008Russia2025-05-20
1009United Kingdom2025-05-29
1010India2025-06-09
1011Australia2025-05-27
1012Japan2025-05-30
1013Russia2025-05-25
1014Brazil2025-06-07
1015Canada2025-06-13
1016Canada2025-06-02
1017Spain2025-06-13
1018Russia2025-05-25
1019France2025-05-19
1020Australia2025-05-21
1021Spain2025-06-12
1022Germany2025-06-07
1023Italy2025-05-19
1024Brazil2025-05-17
1025Russia2025-06-05
1026Russia2025-05-26
1027Japan2025-05-26
1028Brazil2025-06-08
1029India2025-06-02
1030Australia2025-06-07
1031France2025-06-05
1032Japan2025-05-22
1033France2025-06-15
1034Russia2025-05-23
1035Russia2025-05-30
1036Russia2025-06-03
1037Argentina2025-06-07
1038Spain2025-05-29
1039Italy2025-06-09
1040Canada2025-06-11
1041Spain2025-05-26
1042Germany2025-05-19
1043France2025-06-06
1044Germany2025-06-03
1045Russia2025-06-15
1046India2025-05-21
1047India2025-05-27
1048Argentina2025-05-30
1049Italy2025-06-12

On-Demand Data

NameIdCountryDate
Leja B Ruta1000Canada2025-05-18
Isabel P Kolmetz1001Australia2025-06-07
Antonio G Tollner1002France2025-05-30
Emily O Foller1003Canada2025-06-14
Isabel I Albares1004Russia2025-05-25
Jefferson L Gaucho1005Canada2025-06-05
Darci K Schemmer1006Canada2025-05-20
Jones Q Ostrosky1007Japan2025-05-22
Darci L Paprocki1008Spain2025-05-18
Julie O Ferencz1009Germany2025-05-21
Juan J Caldarera1010France2025-05-29
Deepesh A Nestle1011Canada2025-06-06
Francesco J Rulapaugh1012India2025-06-10
Izzy Z Ostrosky1013Spain2025-05-30
Mujtaba E Stockham1014France2025-05-26
Maria Q Wieser1015Canada2025-06-12
Nicolas R Dilliard1016Japan2025-05-30
Aruna X Wieser1017Russia2025-05-17
Murillo S Saylors1018Australia2025-05-27
Aruna P Bowley1019Russia2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel W AlbaresRussiaIoni Bowcher UNQUALIFIED
Deepesh Y RulapaughCanadaIoni Bowcher QUALIFIED
Murillo P VenereAustraliaElwin Sharvill PROPOSAL
Mujtaba E RoysterIndiaAnna Fali UNQUALIFIED
Francesco N GarufiArgentinaBernardo Dominic NEW
James W MorascaRussiaIvan Magalhaes RENEWAL
Ashley F GlickJapanAsiya Javayant RENEWAL
Antonio B DilliardGermanyIvan Magalhaes NEW
Misaki X GlickAustraliaOnyama Limba NEW
Emily R GarufiFranceBernardo Dominic NEGOTIATION
Jeanfrancois T SaylorsSpainAmy Elsner NEGOTIATION
Morrow X StockhamItalyElwin Sharvill RENEWAL
Leja Y FigeroaCanadaAnna Fali RENEWAL
Stacey E KuskoRussiaAsiya Javayant QUALIFIED
David W ChuiUnited KingdomIvan Magalhaes PROPOSAL
Johnson S RimUnited KingdomBernardo Dominic RENEWAL
Emily Y ChuiBrazilElwin Sharvill NEW
Octavia C SlusarskiRussiaStephen Shaw PROPOSAL
Clifford W SergiRussiaAsiya Javayant PROPOSAL
Alejandro P MaletRussiaElwin Sharvill NEGOTIATION
Aika H GillianJapanStephen Shaw UNQUALIFIED
Kadeem V MacleadIndiaXuxue Feng UNQUALIFIED
Tony R StensethGermanyElwin Sharvill QUALIFIED
Leja F FigeroaItalyAsiya Javayant UNQUALIFIED
David O GlickUnited KingdomElwin Sharvill NEGOTIATION
Clifford R FollerJapanStephen Shaw QUALIFIED
Rodrigues B MarrierSpainElwin Sharvill NEW
Leja S MaletCanadaBernardo Dominic QUALIFIED
Murillo T ButtSpainBernardo Dominic NEW
Julie U RoysterGermanyIvan Magalhaes PROPOSAL
Kadeem V OstroskyIndiaAnna Fali NEGOTIATION
Johnson Z PoquetteArgentinaBernardo Dominic NEW
Tony Q MarrierIndiaAmy Elsner PROPOSAL
Morrow Z StensethItalyElwin Sharvill PROPOSAL
Kadeem I DarakjyItalyElwin Sharvill QUALIFIED
Darci R NickaAustraliaAmy Elsner NEGOTIATION
Wickens G DoeJapanOnyama Limba RENEWAL
Arvin Q VocelkaRussiaIoni Bowcher UNQUALIFIED
Juan R TollnerAustraliaStephen Shaw NEGOTIATION
Jeanfrancois B BologniaRussiaAsiya Javayant 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>