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
Jefferson X NestleRussiaAmy Elsner UNQUALIFIED
Johnson S PerinIndiaAmy Elsner RENEWAL
Johnson H DoeRussiaOnyama Limba NEGOTIATION
Maria D GlickAustraliaAsiya Javayant NEW
Stacey T BriddickArgentinaAnna Fali UNQUALIFIED
Smith Y NickaJapanXuxue Feng NEW
Tony R PerinGermanyOnyama Limba PROPOSAL
Munro K RutaIndiaAmy Elsner PROPOSAL
Costa I GillianUnited KingdomAsiya Javayant NEGOTIATION
Jefferson Q InouyeCanadaBernardo Dominic NEGOTIATION
Jennifer S OstroskyGermanyAsiya Javayant UNQUALIFIED
Cody N VenereGermanyIoni Bowcher NEGOTIATION
Ashley X InouyeFranceStephen Shaw NEGOTIATION
Faith F MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Smith P ButtItalyIvan Magalhaes NEGOTIATION
Johnson G WhobreyUnited KingdomXuxue Feng RENEWAL
Kadeem R BowleyItalyXuxue Feng NEW
Smith E SergiFranceIvan Magalhaes NEW
Morrow B OstroskyUnited KingdomIvan Magalhaes RENEWAL
Mujtaba W MarrierCanadaAmy Elsner QUALIFIED
Tony J CampainGermanyStephen Shaw RENEWAL
James E ShinkoGermanyIvan Magalhaes NEGOTIATION
Ashley E RoysterItalyIoni Bowcher NEW
Darci E MaletFranceOnyama Limba QUALIFIED
Salvatore C DoeAustraliaXuxue Feng QUALIFIED
Emily K MarrierBrazilOnyama Limba NEGOTIATION
Isabel H SergiJapanOnyama Limba UNQUALIFIED
Leon B ButtFranceIvan Magalhaes RENEWAL
Mujtaba X VenereItalyBernardo Dominic UNQUALIFIED
Maisha S PaprockiRussiaIoni Bowcher PROPOSAL
Nicolas H ButtItalyIoni Bowcher PROPOSAL
Mayumi S ShinkoIndiaElwin Sharvill PROPOSAL
Octavia F MarrierRussiaAnna Fali UNQUALIFIED
Cody P WhobreyCanadaXuxue Feng QUALIFIED
Kaitlin H DilliardIndiaIvan Magalhaes NEGOTIATION
Smith G SergiAustraliaIvan Magalhaes QUALIFIED
David P DilliardAustraliaElwin Sharvill NEW
Wickens Q BowleyItalyAsiya Javayant UNQUALIFIED
Jefferson H BowleyGermanyXuxue Feng UNQUALIFIED
Sinclair N CaldareraItalyElwin Sharvill UNQUALIFIED
Aditya P CaudyIndiaAsiya Javayant PROPOSAL
Maria A PoquetteAustraliaIvan Magalhaes PROPOSAL
Morrow B MarrierSpainAsiya Javayant UNQUALIFIED
Darci G FigeroaRussiaAnna Fali PROPOSAL
Emily D StensethArgentinaXuxue Feng NEW
Deepesh R WieserGermanyBernardo Dominic NEGOTIATION
Munro B InouyeJapanXuxue Feng NEGOTIATION
Costa G FigeroaBrazilAnna Fali NEW
Arvin V VenereBrazilBernardo Dominic RENEWAL
Deepesh D RimUnited KingdomStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja S PaprockiGermanyIvan Magalhaes PROPOSAL
Ashley H RoysterItalyIoni Bowcher PROPOSAL
Murillo E PerinSpainIvan Magalhaes QUALIFIED
Julie L RoysterUnited KingdomElwin Sharvill RENEWAL
Kadeem X MacleadIndiaAmy Elsner NEGOTIATION
Claire D TollnerSpainBernardo Dominic NEW
Ashley I MacleadBrazilIvan Magalhaes RENEWAL
Munro P ChuiRussiaAnna Fali PROPOSAL
Stacey K PaprockiItalyElwin Sharvill QUALIFIED
Jennifer E RutaRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio G BologniaIndia2025-06-01Feltz Printing Service RENEWAL46Amy Elsner
1001Isabel Z StockhamArgentina2025-06-09Rangoni Of Florence NEGOTIATION5Xuxue Feng
1002Julie J WhobreyAustralia2025-06-11Benton, John B Jr PROPOSAL47Asiya Javayant
1003Mujtaba N RoysterAustralia2025-05-22Chanay, Jeffrey A Esq RENEWAL14Elwin Sharvill
1004Juan Y DarakjyBrazil2025-05-26Commercial Press PROPOSAL83Ioni Bowcher
1005Aruna H BriddickGermany2025-06-16King, Christopher A Esq QUALIFIED14Amy Elsner
1006Sinclair K PoquetteAustralia2025-05-20Feiner Bros QUALIFIED34Ioni Bowcher
1007Sinclair S BowleyJapan2025-06-05Commercial Press QUALIFIED0Elwin Sharvill
1008Munro J InouyeFrance2025-05-21Chanay, Jeffrey A Esq NEW50Amy Elsner
1009Izzy F RutaRussia2025-06-05Chanay, Jeffrey A Esq QUALIFIED32Xuxue Feng
1010Mujtaba V CaldareraItaly2025-06-03Chemel, James L Cpa PROPOSAL39Amy Elsner
1011Antonio L IturbideJapan2025-05-20Benton, John B Jr QUALIFIED6Stephen Shaw
1012Misaki T DarakjyArgentina2025-05-24Chapman, Ross E Esq RENEWAL93Xuxue Feng
1013Faith K FollerRussia2025-05-22Feiner Bros NEW0Anna Fali
1014Juan Z CampainRussia2025-05-22Chapman, Ross E Esq NEGOTIATION48Xuxue Feng
1015Nicolas L CampainCanada2025-05-18Benton, John B Jr NEW25Anna Fali
1016Leon L DarakjyArgentina2025-05-24Commercial Press UNQUALIFIED47Asiya Javayant
1017Morrow R DarakjyBrazil2025-06-10Dorl, James J Esq UNQUALIFIED81Bernardo Dominic
1018Smith V GarufiRussia2025-05-23Benton, John B Jr NEGOTIATION74Asiya Javayant
1019Arvin C NickaCanada2025-06-01King, Christopher A Esq QUALIFIED3Stephen Shaw
1020Antonio R PoquetteUnited Kingdom2025-05-29Feiner Bros UNQUALIFIED5Xuxue Feng
1021Antonio H GarufiCanada2025-06-13Rangoni Of Florence QUALIFIED46Stephen Shaw
1022Chavez K NickaArgentina2025-05-18Buckley Miller Wright QUALIFIED87Anna Fali
1023Leon X InouyeBrazil2025-05-24Rousseaux, Michael Esq QUALIFIED53Onyama Limba
1024James L FerenczUnited Kingdom2025-05-21Printing Dimensions NEW22Ivan Magalhaes
1025Isabel S MaletAustralia2025-06-02Chapman, Ross E Esq NEGOTIATION9Onyama Limba
1026Stacey M VocelkaArgentina2025-06-03Dorl, James J Esq NEW97Ivan Magalhaes
1027Jones Q BriddickBrazil2025-05-21Chapman, Ross E Esq NEW0Asiya Javayant
1028Aika D SchemmerBrazil2025-05-23Feltz Printing Service PROPOSAL40Anna Fali
1029Juan Y BologniaUnited Kingdom2025-06-08Dorl, James J Esq PROPOSAL69Asiya Javayant
1030Aika D KuskoGermany2025-05-29Truhlar And Truhlar Attys NEW47Elwin Sharvill
1031Jefferson U ButtUnited Kingdom2025-06-07Truhlar And Truhlar Attys NEGOTIATION41Elwin Sharvill
1032Aditya Y NickaItaly2025-05-26Chapman, Ross E Esq NEW44Ivan Magalhaes
1033Julie F AlbaresRussia2025-06-15Buckley Miller Wright NEGOTIATION9Bernardo Dominic
1034Francesco B RoysterRussia2025-06-03Feiner Bros RENEWAL57Amy Elsner
1035Costa A VenereGermany2025-05-29Rangoni Of Florence UNQUALIFIED28Ioni Bowcher
1036Tony P MaletItaly2025-05-19Buckley Miller Wright PROPOSAL46Onyama Limba
1037Smith T PerinGermany2025-06-10Chapman, Ross E Esq NEGOTIATION29Stephen Shaw
1038Ricardo Y ShinkoRussia2025-05-22Chemel, James L Cpa UNQUALIFIED41Elwin Sharvill
1039Sinclair E OldroydJapan2025-05-28Rangoni Of Florence NEW70Bernardo Dominic
1040Jefferson D CaudyBrazil2025-05-30Chapman, Ross E Esq RENEWAL64Xuxue Feng
1041Julie T RimItaly2025-06-01Morlong Associates NEW91Xuxue Feng
1042Misaki C ButtUnited Kingdom2025-05-18Benton, John B Jr PROPOSAL74Elwin Sharvill
1043Clifford Y ButtCanada2025-06-13Commercial Press NEW46Ioni Bowcher
1044Munro G PaprockiBrazil2025-06-04Dorl, James J Esq RENEWAL40Onyama Limba
1045Arvin M OldroydGermany2025-06-03Feltz Printing Service NEW54Amy Elsner
1046Salvatore R WieserFrance2025-06-04Rousseaux, Michael Esq NEW47Stephen Shaw
1047Deepesh V SchemmerItaly2025-05-29Benton, John B Jr PROPOSAL89Xuxue Feng
1048Cody W IturbideRussia2025-05-27Chemel, James L Cpa QUALIFIED72Stephen Shaw
1049Arvin F OstroskyCanada2025-05-31Commercial Press UNQUALIFIED40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Morrow G NickaItalyIvan Magalhaes RENEWAL
Nicolas R NestleSpainIoni Bowcher PROPOSAL
Juan H GillianRussiaStephen Shaw NEW
Claire C SergiBrazilAnna Fali RENEWAL
Ashley B BriddickCanadaAnna Fali UNQUALIFIED
Chavez Z GarufiIndiaAmy Elsner UNQUALIFIED
Munro E FerenczFranceAsiya Javayant NEGOTIATION
Salvatore O StensethUnited KingdomAsiya Javayant QUALIFIED
Costa R KuskoArgentinaIvan Magalhaes NEW
Faith H NestleJapanAnna Fali RENEWAL
Smith J WhobreyJapanAsiya Javayant NEW
Isabel L ButtBrazilIvan Magalhaes UNQUALIFIED
Leja G SlusarskiFranceIoni Bowcher RENEWAL
Maisha F CaldareraRussiaOnyama Limba NEW
Tony K CampainCanadaStephen Shaw QUALIFIED
Jennifer O AlbaresFranceXuxue Feng PROPOSAL
Alejandro L KuskoJapanAsiya Javayant UNQUALIFIED
Costa W AlbaresJapanIvan Magalhaes RENEWAL
Jones W SaylorsFranceIoni Bowcher QUALIFIED
Jones I FlosiArgentinaAnna Fali NEGOTIATION
Ivar D OldroydIndiaAmy Elsner QUALIFIED
Costa L CaldareraFranceBernardo Dominic RENEWAL
Juan V WhobreyFranceAsiya Javayant RENEWAL
Alejandro S WieserItalyAsiya Javayant QUALIFIED
Chavez B FollerFranceXuxue Feng RENEWAL
Jennifer C GillianAustraliaIvan Magalhaes RENEWAL
Juan K PaprockiAustraliaAsiya Javayant NEGOTIATION
Tony O GlickItalyStephen Shaw PROPOSAL
Jeanfrancois X InouyeFranceOnyama Limba PROPOSAL
Kadeem K MaletGermanyOnyama Limba NEW
Ivar P SchemmerIndiaIvan Magalhaes NEW
David S KolmetzAustraliaXuxue Feng PROPOSAL
Aditya V RutaAustraliaIvan Magalhaes NEW
Aruna O CaldareraGermanyElwin Sharvill QUALIFIED
Misaki O GillianRussiaAmy Elsner NEGOTIATION
Leja Y GlickRussiaOnyama Limba UNQUALIFIED
Claire P CaudyIndiaOnyama Limba RENEWAL
Alejandro H ButtIndiaAnna Fali NEGOTIATION
Alejandro M GauchoJapanAnna Fali NEW
Faith V BowleyFranceIvan Magalhaes NEGOTIATION
James S StensethJapanAsiya Javayant QUALIFIED
Jones Z GillianAustraliaIoni Bowcher NEW
Leon V BologniaArgentinaStephen Shaw RENEWAL
Adams G IturbideJapanAsiya Javayant NEGOTIATION
Tony I PoquetteJapanElwin Sharvill UNQUALIFIED
Leja I AlbaresItalyElwin Sharvill NEGOTIATION
Mayumi U FigeroaCanadaOnyama Limba UNQUALIFIED
Jennifer Q RutaBrazilStephen Shaw PROPOSAL
Leja A GauchoArgentinaOnyama Limba NEW
Francesco E FigeroaAustraliaXuxue Feng PROPOSAL
Frozen Columns
Name
Cody A Paprocki
Adams R Poquette
Johnson C Oldroyd
Jefferson C Iturbide
Aika Z Iturbide
Munro D Dilliard
Izzy X Ferencz
Johnson H Rim
Izzy V Inouye
Ricardo L Inouye
Salvatore P Figeroa
Silvio C Caudy
Ashley E Morasca
David K Caldarera
Mayumi Q Rim
Deepesh Z Inouye
Nicolas W Schemmer
Wickens F Gillian
Greenwood W Rulapaugh
Julie N Perin
Tony I Malet
Maisha K Flosi
Greenwood L Nicka
Ashley W Oldroyd
Kaitlin X Venere
Silvio P Albares
Jeanfrancois D Ferencz
Claire A Royster
Juan H Rim
Jennifer P Garufi
Emily A Rulapaugh
Stacey F Kolmetz
Costa T Shinko
Antonio S Flosi
Octavia K Iturbide
Jennifer I Vocelka
Sinclair R Stenseth
Wickens Y Bolognia
Wickens L Tollner
Faith A Butt
Ivar Z Oldroyd
Maisha R Garufi
Aruna T Perin
Ivar E Ruta
David W Ruta
Silvio G Stockham
Juan D Waycott
Aditya M Malet
Morrow G Royster
Julie X Caudy
IdCountryDate
1000Italy2025-06-02
1001Russia2025-05-28
1002Russia2025-06-13
1003Japan2025-06-07
1004Australia2025-06-13
1005Canada2025-06-03
1006Brazil2025-05-28
1007Argentina2025-05-26
1008Argentina2025-06-11
1009Germany2025-05-23
1010Canada2025-05-21
1011Canada2025-05-26
1012Spain2025-06-09
1013India2025-06-11
1014Brazil2025-06-08
1015United Kingdom2025-05-18
1016Spain2025-06-10
1017Spain2025-06-16
1018Argentina2025-06-13
1019Italy2025-05-28
1020India2025-06-09
1021Japan2025-05-19
1022Australia2025-06-08
1023Argentina2025-06-01
1024Brazil2025-05-29
1025United Kingdom2025-06-06
1026Russia2025-06-12
1027Russia2025-06-05
1028Canada2025-06-15
1029United Kingdom2025-06-03
1030Russia2025-06-11
1031Japan2025-06-01
1032Italy2025-05-27
1033Brazil2025-05-23
1034United Kingdom2025-06-04
1035Argentina2025-06-16
1036Brazil2025-06-07
1037Brazil2025-06-14
1038Russia2025-05-25
1039France2025-05-28
1040Canada2025-05-21
1041Russia2025-06-13
1042Russia2025-06-02
1043United Kingdom2025-06-16
1044Australia2025-06-12
1045Italy2025-06-04
1046Russia2025-06-04
1047France2025-05-28
1048United Kingdom2025-05-22
1049Canada2025-06-07

On-Demand Data

NameIdCountryDate
Darci S Ostrosky1000Canada2025-05-29
Aika B Marrier1001United Kingdom2025-05-29
Adams F Bolognia1002Brazil2025-05-20
Aditya V Campain1003Brazil2025-05-27
Greenwood N Poquette1004Australia2025-05-30
Mayumi X Kusko1005India2025-06-15
Aika P Poquette1006Italy2025-06-13
Kaitlin U Ruta1007Canada2025-05-23
Johnson D Morasca1008Argentina2025-05-18
James K Butt1009Australia2025-06-02
Faith I Briddick1010France2025-06-06
Clifford X Glick1011Spain2025-06-05
Jefferson C Perin1012Japan2025-05-19
Alejandro W Oldroyd1013Australia2025-06-16
Francesco M Bolognia1014Canada2025-06-05
James B Foller1015Brazil2025-05-31
Jennifer E Waycott1016Italy2025-05-25
Aruna H Amigon1017France2025-06-06
Darci L Stockham1018Argentina2025-05-31
Silvio I Nestle1019Japan2025-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody M RoysterIndiaIvan Magalhaes NEW
Jones K StensethJapanBernardo Dominic NEW
Emily C PerinItalyAmy Elsner NEW
Silvio T NickaJapanXuxue Feng PROPOSAL
Francesco R BologniaItalyAsiya Javayant NEW
Johnson T PerinArgentinaAnna Fali NEGOTIATION
Julie O MaletRussiaBernardo Dominic UNQUALIFIED
Mujtaba Y TollnerIndiaElwin Sharvill UNQUALIFIED
Aditya K VenereAustraliaXuxue Feng UNQUALIFIED
Julie J ShinkoAustraliaStephen Shaw RENEWAL
Munro J GillianRussiaAsiya Javayant QUALIFIED
Maisha I ButtCanadaIvan Magalhaes RENEWAL
Claire W MorascaSpainAmy Elsner UNQUALIFIED
Wickens T SchemmerFranceIvan Magalhaes UNQUALIFIED
Salvatore G DilliardSpainBernardo Dominic NEW
Emily A SchemmerBrazilIvan Magalhaes PROPOSAL
Jeanfrancois P GlickItalyAsiya Javayant UNQUALIFIED
Aditya S NestleUnited KingdomBernardo Dominic NEW
Nicolas O PerinSpainAmy Elsner PROPOSAL
Jeanfrancois V VenereSpainIvan Magalhaes RENEWAL
Mayumi T MarrierSpainAnna Fali NEW
Jeanfrancois I SaylorsFranceAsiya Javayant NEGOTIATION
Emily X PaprockiArgentinaAnna Fali UNQUALIFIED
David H WhobreyFranceIvan Magalhaes NEW
Alejandro N RulapaughAustraliaIvan Magalhaes NEGOTIATION
Alejandro I FollerSpainIvan Magalhaes QUALIFIED
Leja L CampainRussiaXuxue Feng RENEWAL
Darci S VocelkaRussiaAnna Fali UNQUALIFIED
Jones E KolmetzCanadaOnyama Limba PROPOSAL
Jeanfrancois S SaylorsCanadaOnyama Limba UNQUALIFIED
Misaki Q RoysterItalyAnna Fali RENEWAL
Clifford A MacleadItalyStephen Shaw NEW
Ashley Q MarrierBrazilXuxue Feng UNQUALIFIED
Tony J FerenczBrazilAmy Elsner NEGOTIATION
Isabel D OldroydIndiaStephen Shaw UNQUALIFIED
Smith M ButtRussiaAsiya Javayant NEW
Rodrigues N WieserUnited KingdomAmy Elsner NEGOTIATION
Chavez V DoeUnited KingdomAsiya Javayant QUALIFIED
Jefferson P PoquetteJapanBernardo Dominic RENEWAL
Stacey R TollnerGermanyAnna Fali 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>