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
Clifford R GauchoBrazilBernardo Dominic UNQUALIFIED
Ashley L FlosiArgentinaIvan Magalhaes NEW
Aruna X RimItalyXuxue Feng NEW
Murillo N NestleCanadaAnna Fali RENEWAL
Salvatore Z VenereBrazilStephen Shaw QUALIFIED
Leon X RoysterCanadaElwin Sharvill PROPOSAL
Silvio Y MaletRussiaAnna Fali UNQUALIFIED
Cody A MarrierRussiaStephen Shaw PROPOSAL
Silvio G OstroskyItalyAsiya Javayant RENEWAL
Deepesh E GauchoArgentinaIoni Bowcher RENEWAL
Francesco L GlickSpainElwin Sharvill PROPOSAL
Morrow Q InouyeSpainIvan Magalhaes NEW
Aruna L TollnerJapanXuxue Feng NEGOTIATION
Antonio U PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Izzy X CaldareraIndiaOnyama Limba QUALIFIED
Faith F PaprockiFranceAmy Elsner UNQUALIFIED
Wickens Z WieserCanadaStephen Shaw UNQUALIFIED
Maisha C MacleadCanadaAsiya Javayant QUALIFIED
Maisha X KuskoItalyIvan Magalhaes UNQUALIFIED
Silvio I SaylorsRussiaElwin Sharvill NEGOTIATION
Alejandro I RoysterRussiaBernardo Dominic QUALIFIED
Isabel Q CampainJapanXuxue Feng UNQUALIFIED
Julie F PerinIndiaIvan Magalhaes PROPOSAL
Isabel L FollerGermanyIoni Bowcher PROPOSAL
Adams B IturbideCanadaIoni Bowcher QUALIFIED
Julie Q BologniaBrazilStephen Shaw QUALIFIED
Maisha Y RimJapanXuxue Feng QUALIFIED
Maria P BowleyFranceOnyama Limba UNQUALIFIED
Kadeem S PerinCanadaAmy Elsner QUALIFIED
Chavez B VenereIndiaAnna Fali RENEWAL
David H SlusarskiIndiaXuxue Feng RENEWAL
Arvin J FerenczAustraliaBernardo Dominic QUALIFIED
Wickens Q StensethGermanyElwin Sharvill UNQUALIFIED
Isabel R BologniaSpainAnna Fali NEGOTIATION
Aruna W InouyeItalyXuxue Feng PROPOSAL
Alejandro I DilliardJapanAmy Elsner NEW
Nicolas C ButtSpainOnyama Limba RENEWAL
Kadeem L AlbaresCanadaStephen Shaw RENEWAL
Mayumi Z FerenczIndiaAnna Fali PROPOSAL
Darci U TollnerCanadaIoni Bowcher NEGOTIATION
Mujtaba F OstroskyBrazilAnna Fali UNQUALIFIED
Jeanfrancois Y WaycottUnited KingdomStephen Shaw PROPOSAL
Alejandro B GillianJapanElwin Sharvill UNQUALIFIED
Leon Y AmigonItalyOnyama Limba QUALIFIED
Alejandro R PoquetteAustraliaStephen Shaw UNQUALIFIED
Costa V DilliardUnited KingdomIvan Magalhaes NEW
David D WieserItalyOnyama Limba UNQUALIFIED
Isabel O SergiBrazilOnyama Limba QUALIFIED
Jennifer Z RulapaughGermanyBernardo Dominic NEGOTIATION
Julie V CaldareraItalyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa K GillianItalyAnna Fali RENEWAL
Cody O MacleadCanadaAmy Elsner QUALIFIED
Francesco X DoeIndiaXuxue Feng RENEWAL
Mayumi M ButtFranceIoni Bowcher NEW
Emily I VocelkaIndiaBernardo Dominic RENEWAL
Salvatore M WhobreyAustraliaAnna Fali RENEWAL
Francesco A PaprockiAustraliaIoni Bowcher PROPOSAL
Munro P VenereRussiaElwin Sharvill PROPOSAL
Kadeem T OstroskyIndiaIvan Magalhaes UNQUALIFIED
Darci Q FerenczItalyElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel E SaylorsFrance2025-04-23Chemel, James L Cpa PROPOSAL77Xuxue Feng
1001Izzy C FigeroaUnited Kingdom2025-04-27Printing Dimensions PROPOSAL65Anna Fali
1002Faith T OstroskyUnited Kingdom2025-04-18Rangoni Of Florence UNQUALIFIED98Asiya Javayant
1003Adams L RutaIndia2025-04-13Feiner Bros NEW50Bernardo Dominic
1004Jefferson D MacleadRussia2025-04-30Buckley Miller Wright UNQUALIFIED32Anna Fali
1005Misaki Q BriddickUnited Kingdom2025-04-27King, Christopher A Esq RENEWAL83Bernardo Dominic
1006Murillo J MaletJapan2025-04-01Benton, John B Jr QUALIFIED23Bernardo Dominic
1007Aditya U DarakjyRussia2025-04-01Chemel, James L Cpa PROPOSAL60Ioni Bowcher
1008Francesco F BriddickCanada2025-04-10Feiner Bros NEW75Ivan Magalhaes
1009Julie F BriddickFrance2025-04-26King, Christopher A Esq RENEWAL3Ioni Bowcher
1010Jennifer D TollnerItaly2025-04-24King, Christopher A Esq QUALIFIED41Ioni Bowcher
1011Emily J SlusarskiFrance2025-04-24Morlong Associates QUALIFIED84Xuxue Feng
1012Emily R GillianGermany2025-04-25Printing Dimensions QUALIFIED32Ivan Magalhaes
1013James N MacleadCanada2025-04-13Feltz Printing Service NEGOTIATION43Asiya Javayant
1014Claire A OldroydIndia2025-04-28Printing Dimensions RENEWAL75Amy Elsner
1015Silvio E SchemmerBrazil2025-04-13Commercial Press PROPOSAL97Asiya Javayant
1016Aika F AlbaresAustralia2025-04-08Feltz Printing Service RENEWAL22Asiya Javayant
1017Arvin R SergiGermany2025-04-15Chemel, James L Cpa RENEWAL52Bernardo Dominic
1018Julie U FigeroaGermany2025-04-11King, Christopher A Esq UNQUALIFIED84Ioni Bowcher
1019Ashley F NestleJapan2025-04-28Truhlar And Truhlar Attys PROPOSAL61Ioni Bowcher
1020Maria Y SergiFrance2025-04-17Benton, John B Jr NEW2Elwin Sharvill
1021Darci Q SchemmerBrazil2025-04-16Dorl, James J Esq PROPOSAL90Xuxue Feng
1022Arvin H OldroydIndia2025-04-15Dorl, James J Esq UNQUALIFIED69Amy Elsner
1023Johnson V PaprockiAustralia2025-04-12Chanay, Jeffrey A Esq UNQUALIFIED51Ioni Bowcher
1024Tony K KuskoIndia2025-04-12Feltz Printing Service RENEWAL73Bernardo Dominic
1025Ivar B GlickJapan2025-04-16Printing Dimensions QUALIFIED36Asiya Javayant
1026Adams K PaprockiIndia2025-04-26Truhlar And Truhlar Attys NEW87Ivan Magalhaes
1027Cody M AlbaresGermany2025-04-19Benton, John B Jr UNQUALIFIED25Ivan Magalhaes
1028Johnson X FollerAustralia2025-04-25Chapman, Ross E Esq NEW26Onyama Limba
1029Greenwood V VocelkaFrance2025-04-17Truhlar And Truhlar Attys UNQUALIFIED81Stephen Shaw
1030Deepesh J FlosiBrazil2025-04-03King, Christopher A Esq UNQUALIFIED65Anna Fali
1031Arvin B KuskoCanada2025-04-10Benton, John B Jr RENEWAL77Ivan Magalhaes
1032Antonio E GlickJapan2025-04-08Commercial Press PROPOSAL18Amy Elsner
1033Nicolas Q SergiIndia2025-04-26Feltz Printing Service NEGOTIATION0Ivan Magalhaes
1034Aruna D FlosiFrance2025-04-14Feiner Bros NEGOTIATION37Onyama Limba
1035Salvatore I AmigonArgentina2025-04-27Printing Dimensions NEGOTIATION5Ioni Bowcher
1036Deepesh V PerinItaly2025-04-05Buckley Miller Wright QUALIFIED2Xuxue Feng
1037Munro H WaycottIndia2025-04-18Buckley Miller Wright RENEWAL28Asiya Javayant
1038Emily N GarufiRussia2025-04-06Benton, John B Jr PROPOSAL63Amy Elsner
1039Claire S BowleyJapan2025-04-26Morlong Associates QUALIFIED53Anna Fali
1040Sinclair B RutaJapan2025-04-19Printing Dimensions QUALIFIED57Anna Fali
1041Silvio P RulapaughAustralia2025-04-18King, Christopher A Esq RENEWAL64Onyama Limba
1042Jennifer O ChuiRussia2025-04-06Rousseaux, Michael Esq UNQUALIFIED46Stephen Shaw
1043Greenwood D RoysterBrazil2025-04-09Morlong Associates RENEWAL42Elwin Sharvill
1044Rodrigues T RulapaughCanada2025-04-07Chemel, James L Cpa UNQUALIFIED83Ivan Magalhaes
1045Jones A SaylorsSpain2025-04-25Rangoni Of Florence UNQUALIFIED96Onyama Limba
1046Darci Y DoeCanada2025-04-19Chanay, Jeffrey A Esq UNQUALIFIED5Xuxue Feng
1047Maisha A NickaCanada2025-04-12Morlong Associates NEW83Onyama Limba
1048Costa T StockhamFrance2025-04-21Chanay, Jeffrey A Esq NEGOTIATION38Ivan Magalhaes
1049Ricardo X KolmetzAustralia2025-04-16Truhlar And Truhlar Attys NEW95Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jennifer C TollnerArgentinaOnyama Limba PROPOSAL
Ivar Q SaylorsGermanyElwin Sharvill PROPOSAL
Misaki S FlosiAustraliaAmy Elsner NEGOTIATION
Clifford X RutaGermanyBernardo Dominic UNQUALIFIED
Ivar N BologniaBrazilBernardo Dominic NEGOTIATION
Cody G GarufiAustraliaIoni Bowcher RENEWAL
Clifford J IturbideAustraliaElwin Sharvill RENEWAL
Tony T IturbideIndiaStephen Shaw QUALIFIED
Jefferson O MarrierJapanOnyama Limba NEGOTIATION
Maria L SlusarskiFranceIvan Magalhaes UNQUALIFIED
Aruna F CaudySpainElwin Sharvill NEW
Juan O FigeroaArgentinaIoni Bowcher QUALIFIED
Salvatore X ShinkoIndiaElwin Sharvill PROPOSAL
Octavia E GarufiBrazilOnyama Limba NEW
Jefferson C BologniaIndiaXuxue Feng NEGOTIATION
Wickens P CampainRussiaAmy Elsner UNQUALIFIED
Ivar M FigeroaArgentinaBernardo Dominic UNQUALIFIED
Mujtaba I RoysterCanadaBernardo Dominic UNQUALIFIED
James U StockhamArgentinaXuxue Feng RENEWAL
Arvin Z AlbaresArgentinaBernardo Dominic NEW
Nicolas Y MarrierAustraliaOnyama Limba NEGOTIATION
Faith E DilliardFranceIvan Magalhaes RENEWAL
Johnson G NickaArgentinaIoni Bowcher RENEWAL
Kadeem Z CampainFranceIoni Bowcher UNQUALIFIED
Cody E VenereUnited KingdomAmy Elsner PROPOSAL
Greenwood S ButtUnited KingdomAmy Elsner RENEWAL
Johnson V GauchoUnited KingdomOnyama Limba RENEWAL
Octavia J VenereAustraliaElwin Sharvill NEW
Isabel D WieserItalyIvan Magalhaes RENEWAL
Mayumi F IturbideAustraliaOnyama Limba QUALIFIED
James Y BowleyItalyIoni Bowcher NEW
Leja Y AlbaresFranceAmy Elsner PROPOSAL
Jennifer F FigeroaCanadaBernardo Dominic QUALIFIED
Kaitlin A WhobreyUnited KingdomAsiya Javayant PROPOSAL
Darci F TollnerUnited KingdomXuxue Feng PROPOSAL
Isabel F VocelkaIndiaStephen Shaw UNQUALIFIED
Kaitlin J SlusarskiGermanyElwin Sharvill RENEWAL
Izzy R MorascaBrazilIoni Bowcher NEGOTIATION
Stacey M IturbideUnited KingdomIoni Bowcher NEGOTIATION
Julie P VenereAustraliaIoni Bowcher PROPOSAL
Johnson C IturbideUnited KingdomElwin Sharvill NEGOTIATION
Jones R IturbideBrazilOnyama Limba NEGOTIATION
Faith N FerenczUnited KingdomStephen Shaw UNQUALIFIED
Maisha T FlosiBrazilAsiya Javayant NEGOTIATION
Faith B OstroskyArgentinaXuxue Feng UNQUALIFIED
Ashley Q BowleyUnited KingdomAmy Elsner QUALIFIED
Deepesh W GarufiSpainAsiya Javayant NEW
Stacey D PoquetteAustraliaBernardo Dominic RENEWAL
Stacey X AmigonIndiaIvan Magalhaes QUALIFIED
Kadeem Q SlusarskiFranceElwin Sharvill NEGOTIATION
Frozen Columns
Name
Ashley G Albares
Murillo I Malet
Morrow G Gillian
Jeanfrancois K Kolmetz
Salvatore J Glick
Wickens X Doe
Silvio X Paprocki
Octavia W Rulapaugh
Munro U Slusarski
Jeanfrancois D Poquette
Nicolas I Campain
Munro X Slusarski
Deepesh N Maclead
Kaitlin K Garufi
Chavez S Waycott
Jones Y Glick
Johnson P Briddick
Mujtaba X Bowley
James G Slusarski
Stacey G Flosi
Isabel I Dilliard
Leon M Stockham
Mayumi U Garufi
Ricardo K Maclead
Chavez Z Malet
Clifford T Rim
Wickens V Royster
Kadeem L Iturbide
Wickens Y Maclead
Ricardo G Rim
Claire Q Briddick
Johnson M Malet
Deepesh J Rim
Jefferson Z Gillian
Munro M Morasca
Salvatore I Garufi
Ivar A Kolmetz
Octavia F Shinko
Kaitlin L Gaucho
Cody O Chui
Isabel W Whobrey
Johnson O Whobrey
Wickens N Perin
Murillo D Venere
Leon W Nestle
Jones N Nicka
Jones Q Ostrosky
Leja T Caldarera
Tony H Darakjy
Juan X Gillian
IdCountryDate
1000Canada2025-04-05
1001Canada2025-04-12
1002Japan2025-04-17
1003Japan2025-04-09
1004France2025-04-02
1005Australia2025-04-14
1006Japan2025-04-18
1007France2025-04-22
1008Spain2025-04-12
1009United Kingdom2025-04-29
1010India2025-04-12
1011Germany2025-04-27
1012Canada2025-04-28
1013Australia2025-04-08
1014Argentina2025-04-03
1015France2025-04-05
1016Brazil2025-04-29
1017Spain2025-04-09
1018Argentina2025-04-22
1019Japan2025-04-24
1020Russia2025-04-28
1021Italy2025-04-30
1022Canada2025-04-15
1023Canada2025-04-14
1024United Kingdom2025-04-25
1025Germany2025-04-12
1026Italy2025-04-14
1027Spain2025-04-08
1028Australia2025-04-08
1029Argentina2025-04-01
1030Japan2025-04-22
1031Italy2025-04-05
1032Argentina2025-04-26
1033Russia2025-04-24
1034Germany2025-04-01
1035India2025-04-11
1036Brazil2025-04-19
1037Russia2025-04-14
1038Germany2025-04-30
1039Spain2025-04-28
1040Brazil2025-04-23
1041Japan2025-04-27
1042Canada2025-04-09
1043Canada2025-04-25
1044Spain2025-04-12
1045France2025-04-13
1046Canada2025-04-26
1047India2025-04-25
1048Australia2025-04-27
1049Germany2025-04-20

On-Demand Data

NameIdCountryDate
Nicolas B Chui1000Japan2025-04-01
Alejandro Y Morasca1001Japan2025-04-03
Rodrigues Z Rulapaugh1002Germany2025-04-21
Stacey Z Saylors1003United Kingdom2025-04-16
Deepesh I Garufi1004Russia2025-04-28
Smith T Morasca1005Italy2025-04-17
Aruna U Butt1006Germany2025-04-10
Antonio D Ostrosky1007Germany2025-04-17
James C Doe1008Spain2025-04-13
Claire M Marrier1009United Kingdom2025-04-13
Arvin T Albares1010Russia2025-04-04
Aditya I Darakjy1011Argentina2025-04-02
Tony F Inouye1012Japan2025-04-02
Rodrigues I Ostrosky1013Canada2025-04-14
Misaki T Poquette1014United Kingdom2025-04-24
Aika Q Shinko1015France2025-04-14
Mayumi B Saylors1016Japan2025-04-08
Julie T Venere1017United Kingdom2025-04-05
Jefferson R Schemmer1018France2025-04-12
Ricardo A Gillian1019Brazil2025-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Y CampainIndiaAnna Fali PROPOSAL
Stacey K AlbaresBrazilIoni Bowcher NEGOTIATION
Aruna G FlosiIndiaAnna Fali NEW
Chavez R StockhamCanadaElwin Sharvill UNQUALIFIED
Mujtaba U FigeroaJapanOnyama Limba NEGOTIATION
Misaki O AmigonJapanElwin Sharvill RENEWAL
Cody P DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Smith Y PaprockiGermanyAnna Fali NEW
Johnson F BologniaGermanyAsiya Javayant PROPOSAL
Maria S SchemmerBrazilStephen Shaw QUALIFIED
Misaki Y NickaCanadaAnna Fali NEGOTIATION
Smith L DarakjyUnited KingdomIoni Bowcher PROPOSAL
Deepesh Y CampainSpainAmy Elsner NEW
Munro W VenereItalyOnyama Limba PROPOSAL
Maria U SchemmerGermanyAnna Fali NEW
Francesco A VocelkaItalyAmy Elsner QUALIFIED
Morrow Q GauchoFranceXuxue Feng UNQUALIFIED
Aditya M KuskoJapanOnyama Limba PROPOSAL
Jones A SergiArgentinaStephen Shaw PROPOSAL
Claire C FollerJapanStephen Shaw NEGOTIATION
Kadeem S VenereAustraliaAmy Elsner NEW
Smith A RimBrazilElwin Sharvill PROPOSAL
Johnson U MaletItalyElwin Sharvill UNQUALIFIED
Wickens E IturbideGermanyIvan Magalhaes PROPOSAL
David S WaycottArgentinaIoni Bowcher RENEWAL
Maria N SchemmerArgentinaAmy Elsner QUALIFIED
Johnson Y StockhamFranceStephen Shaw UNQUALIFIED
Cody G OstroskyIndiaAnna Fali QUALIFIED
Misaki B SchemmerJapanElwin Sharvill NEW
Antonio Q SaylorsRussiaIoni Bowcher PROPOSAL
Aruna C AmigonCanadaOnyama Limba QUALIFIED
Kaitlin F SlusarskiCanadaAnna Fali RENEWAL
Jeanfrancois E SchemmerBrazilAsiya Javayant NEGOTIATION
Rodrigues N InouyeJapanElwin Sharvill RENEWAL
Octavia E MaletArgentinaXuxue Feng NEW
Aditya D GlickArgentinaXuxue Feng NEW
Jeanfrancois M FerenczItalyAsiya Javayant NEGOTIATION
Ivar I WieserBrazilAsiya Javayant RENEWAL
Chavez L MaletArgentinaStephen Shaw PROPOSAL
Alejandro Y WaycottBrazilOnyama Limba NEW

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