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
Smith K OldroydSpainAnna Fali PROPOSAL
Cody D ButtIndiaXuxue Feng RENEWAL
Francesco P CaudyJapanElwin Sharvill QUALIFIED
Deepesh U GarufiBrazilOnyama Limba UNQUALIFIED
Costa S FollerJapanAnna Fali RENEWAL
Alejandro P BriddickAustraliaBernardo Dominic NEGOTIATION
Jennifer L BologniaIndiaStephen Shaw RENEWAL
James H DarakjyJapanIvan Magalhaes RENEWAL
Jennifer L MarrierRussiaIvan Magalhaes NEGOTIATION
Francesco W WieserBrazilElwin Sharvill QUALIFIED
Jefferson F KolmetzIndiaBernardo Dominic NEW
Cody Y SaylorsGermanyAnna Fali UNQUALIFIED
Claire O SaylorsGermanyIvan Magalhaes NEGOTIATION
Aditya L GarufiItalyIvan Magalhaes NEGOTIATION
Antonio D BowleyCanadaOnyama Limba RENEWAL
Ivar P ButtIndiaAmy Elsner NEW
Costa W MaletGermanyElwin Sharvill RENEWAL
Tony B NestleUnited KingdomOnyama Limba QUALIFIED
Adams I MorascaArgentinaOnyama Limba QUALIFIED
Clifford J CampainRussiaOnyama Limba QUALIFIED
Darci X StockhamAustraliaAmy Elsner RENEWAL
Murillo N KuskoSpainAnna Fali PROPOSAL
Morrow Z NestleAustraliaAmy Elsner NEGOTIATION
Claire X MorascaArgentinaStephen Shaw PROPOSAL
Leja H PerinItalyAsiya Javayant QUALIFIED
Darci G IturbideUnited KingdomAnna Fali RENEWAL
Morrow S GarufiArgentinaStephen Shaw NEGOTIATION
Smith D VenereItalyStephen Shaw UNQUALIFIED
Leja L PaprockiGermanyAmy Elsner NEW
Ashley P BriddickIndiaAmy Elsner UNQUALIFIED
Adams I SaylorsJapanAsiya Javayant UNQUALIFIED
Leon Q MorascaUnited KingdomBernardo Dominic RENEWAL
Izzy X SchemmerAustraliaAnna Fali QUALIFIED
James W GlickCanadaBernardo Dominic NEW
Adams N WaycottCanadaOnyama Limba PROPOSAL
Jefferson M PoquetteBrazilAmy Elsner UNQUALIFIED
Johnson N ShinkoSpainAmy Elsner NEW
Wickens R WaycottUnited KingdomIvan Magalhaes RENEWAL
Faith F FlosiUnited KingdomBernardo Dominic QUALIFIED
Johnson O SergiArgentinaAsiya Javayant PROPOSAL
Morrow Y DarakjyCanadaXuxue Feng UNQUALIFIED
Greenwood T BologniaJapanStephen Shaw QUALIFIED
Leon P OldroydSpainIoni Bowcher QUALIFIED
Emily S GillianFranceIvan Magalhaes RENEWAL
Izzy E ButtItalyXuxue Feng PROPOSAL
Cody V CaudyFranceIoni Bowcher PROPOSAL
Emily C CaldareraRussiaStephen Shaw NEW
Isabel M OldroydIndiaIvan Magalhaes UNQUALIFIED
Wickens B RulapaughJapanBernardo Dominic UNQUALIFIED
Maria I BowleyIndiaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ashley U PaprockiCanadaAnna Fali UNQUALIFIED
Clifford M NestleArgentinaXuxue Feng RENEWAL
Wickens W SaylorsSpainElwin Sharvill PROPOSAL
Nicolas D BriddickIndiaBernardo Dominic PROPOSAL
James I RoysterItalyAmy Elsner NEGOTIATION
Cody X BologniaFranceElwin Sharvill QUALIFIED
Smith Y StockhamFranceAmy Elsner RENEWAL
David Z IturbideArgentinaAnna Fali PROPOSAL
Sinclair T GillianItalyXuxue Feng RENEWAL
Juan E KuskoIndiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair D FollerJapan2026-07-01Truhlar And Truhlar Attys QUALIFIED12Xuxue Feng
1001Sinclair R IturbideAustralia2026-06-25Rousseaux, Michael Esq UNQUALIFIED53Bernardo Dominic
1002Munro G BologniaArgentina2026-06-22Chanay, Jeffrey A Esq NEGOTIATION34Xuxue Feng
1003Kadeem B GarufiRussia2026-07-17Chapman, Ross E Esq RENEWAL39Onyama Limba
1004Wickens O OldroydArgentina2026-07-07Printing Dimensions NEW92Ioni Bowcher
1005Rodrigues Q FerenczArgentina2026-07-17Dorl, James J Esq QUALIFIED92Ivan Magalhaes
1006Murillo R OstroskyIndia2026-07-02Chanay, Jeffrey A Esq NEGOTIATION51Amy Elsner
1007Morrow O RimIndia2026-06-26Chapman, Ross E Esq UNQUALIFIED10Asiya Javayant
1008Maisha C MaletCanada2026-07-14Rousseaux, Michael Esq RENEWAL31Asiya Javayant
1009Wickens C PoquetteFrance2026-07-18King, Christopher A Esq NEW8Stephen Shaw
1010Costa D NickaSpain2026-07-04Feiner Bros UNQUALIFIED2Stephen Shaw
1011Sinclair B RulapaughFrance2026-06-24Commercial Press NEGOTIATION24Asiya Javayant
1012Jennifer F GarufiSpain2026-07-10Rangoni Of Florence QUALIFIED27Anna Fali
1013David F AlbaresSpain2026-07-18Rousseaux, Michael Esq QUALIFIED57Amy Elsner
1014Rodrigues R ButtRussia2026-07-07Truhlar And Truhlar Attys NEGOTIATION12Stephen Shaw
1015Aika I OldroydAustralia2026-07-17Rousseaux, Michael Esq UNQUALIFIED89Anna Fali
1016Julie F StensethCanada2026-06-21Feiner Bros NEGOTIATION14Elwin Sharvill
1017Leja V CampainAustralia2026-07-19Feltz Printing Service NEW52Ivan Magalhaes
1018Aditya T MorascaArgentina2026-06-22Buckley Miller Wright NEGOTIATION80Elwin Sharvill
1019Aika O IturbideBrazil2026-07-20Chemel, James L Cpa NEGOTIATION51Asiya Javayant
1020Deepesh V GarufiUnited Kingdom2026-07-09Rousseaux, Michael Esq NEW39Xuxue Feng
1021Leon F AlbaresAustralia2026-06-23Feiner Bros NEW70Xuxue Feng
1022Maisha D BriddickJapan2026-06-21Commercial Press QUALIFIED21Ivan Magalhaes
1023Silvio K DoeGermany2026-06-23Benton, John B Jr NEGOTIATION27Stephen Shaw
1024Salvatore X MaletCanada2026-07-09Chemel, James L Cpa PROPOSAL23Ioni Bowcher
1025Francesco W RulapaughUnited Kingdom2026-07-06Commercial Press QUALIFIED4Anna Fali
1026Kaitlin S NickaItaly2026-06-21Chapman, Ross E Esq RENEWAL69Amy Elsner
1027Arvin Z SaylorsBrazil2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED70Ivan Magalhaes
1028Leon X OldroydItaly2026-07-18Rangoni Of Florence RENEWAL21Elwin Sharvill
1029Chavez V CaudyJapan2026-06-28Chanay, Jeffrey A Esq NEW3Ivan Magalhaes
1030Stacey N IturbideFrance2026-07-08Chanay, Jeffrey A Esq QUALIFIED87Stephen Shaw
1031Claire D RoysterBrazil2026-06-23Rangoni Of Florence NEGOTIATION65Amy Elsner
1032Chavez W StensethAustralia2026-06-22Dorl, James J Esq UNQUALIFIED74Ivan Magalhaes
1033Arvin I GarufiAustralia2026-07-13Rangoni Of Florence RENEWAL79Onyama Limba
1034Juan Z WaycottCanada2026-06-22Chapman, Ross E Esq QUALIFIED34Amy Elsner
1035Ashley M SlusarskiBrazil2026-07-19Morlong Associates NEW3Ivan Magalhaes
1036Sinclair U SchemmerAustralia2026-06-30Printing Dimensions RENEWAL0Bernardo Dominic
1037Aruna Q OldroydIndia2026-06-29Morlong Associates UNQUALIFIED20Anna Fali
1038Mujtaba K MacleadAustralia2026-07-02Rousseaux, Michael Esq QUALIFIED35Amy Elsner
1039Clifford L SergiArgentina2026-06-30Rousseaux, Michael Esq UNQUALIFIED90Elwin Sharvill
1040Jones Q RimItaly2026-07-10Buckley Miller Wright UNQUALIFIED90Ioni Bowcher
1041Costa R RoysterUnited Kingdom2026-07-20Rousseaux, Michael Esq UNQUALIFIED37Anna Fali
1042Salvatore B SaylorsRussia2026-07-10Chemel, James L Cpa UNQUALIFIED18Anna Fali
1043Isabel N NickaGermany2026-07-17Printing Dimensions RENEWAL26Amy Elsner
1044Ricardo E ShinkoItaly2026-07-16Printing Dimensions NEW74Amy Elsner
1045Johnson D WieserSpain2026-06-22Feiner Bros NEW16Xuxue Feng
1046Kadeem R BologniaJapan2026-07-12Dorl, James J Esq PROPOSAL14Bernardo Dominic
1047Maria M FerenczJapan2026-07-01Commercial Press PROPOSAL55Xuxue Feng
1048Cody P ChuiItaly2026-06-25Feltz Printing Service UNQUALIFIED17Amy Elsner
1049Aditya Z StensethGermany2026-06-30Benton, John B Jr RENEWAL17Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Morrow W SchemmerBrazilBernardo Dominic RENEWAL
Sinclair P GlickIndiaElwin Sharvill NEW
Mujtaba U NickaArgentinaAnna Fali RENEWAL
Jefferson Q RulapaughAustraliaIvan Magalhaes NEW
Clifford B BowleyArgentinaAsiya Javayant UNQUALIFIED
Mujtaba E DarakjyCanadaOnyama Limba UNQUALIFIED
Nicolas K StockhamRussiaAnna Fali RENEWAL
Greenwood F GlickArgentinaOnyama Limba NEGOTIATION
Kadeem U VenereRussiaIvan Magalhaes PROPOSAL
Octavia A DarakjyGermanyOnyama Limba PROPOSAL
Tony R AlbaresGermanyAmy Elsner QUALIFIED
Nicolas A MaletRussiaIvan Magalhaes UNQUALIFIED
Costa R PaprockiJapanBernardo Dominic QUALIFIED
Costa M MorascaGermanyAnna Fali NEGOTIATION
Munro X MaletBrazilIoni Bowcher PROPOSAL
Darci K AmigonItalyAsiya Javayant PROPOSAL
Aika C AlbaresUnited KingdomIoni Bowcher NEGOTIATION
Smith A MarrierUnited KingdomAsiya Javayant NEGOTIATION
Octavia M StockhamIndiaXuxue Feng QUALIFIED
Ricardo H VocelkaCanadaBernardo Dominic NEW
Salvatore V SchemmerGermanyIoni Bowcher QUALIFIED
James O NickaFranceAmy Elsner QUALIFIED
Cody H MacleadAustraliaAnna Fali UNQUALIFIED
Julie L VenereRussiaElwin Sharvill QUALIFIED
Jones Y NickaCanadaAsiya Javayant QUALIFIED
Maisha J WaycottRussiaAnna Fali UNQUALIFIED
Octavia Q WieserUnited KingdomOnyama Limba PROPOSAL
Greenwood S ShinkoArgentinaIoni Bowcher QUALIFIED
Kadeem Y FollerAustraliaOnyama Limba QUALIFIED
Deepesh L InouyeIndiaOnyama Limba NEW
Jones B AlbaresFranceStephen Shaw NEW
James S StensethJapanIoni Bowcher PROPOSAL
Cody T FollerUnited KingdomOnyama Limba UNQUALIFIED
Johnson V SchemmerJapanAnna Fali RENEWAL
Octavia Q DarakjyItalyElwin Sharvill NEW
Arvin A AmigonUnited KingdomOnyama Limba RENEWAL
James L SlusarskiIndiaIoni Bowcher PROPOSAL
Aruna C RoysterJapanIvan Magalhaes UNQUALIFIED
James F PaprockiCanadaIoni Bowcher NEW
Francesco K RutaAustraliaIvan Magalhaes RENEWAL
Emily B FigeroaArgentinaIoni Bowcher UNQUALIFIED
Murillo S KuskoUnited KingdomAnna Fali RENEWAL
Costa N OstroskyItalyStephen Shaw NEW
Chavez D KolmetzArgentinaAsiya Javayant QUALIFIED
Morrow C GlickFranceAsiya Javayant QUALIFIED
Emily K KuskoArgentinaAmy Elsner QUALIFIED
Alejandro R BriddickUnited KingdomAnna Fali NEGOTIATION
Wickens M IturbideArgentinaElwin Sharvill UNQUALIFIED
Tony N MacleadUnited KingdomAnna Fali NEW
Aruna Z MarrierGermanyAnna Fali RENEWAL
Frozen Columns
Name
Chavez J Vocelka
Arvin F Briddick
Stacey N Nicka
Kadeem B Kolmetz
James J Dilliard
Aruna C Vocelka
Jennifer I Tollner
Greenwood Y Butt
Rodrigues A Whobrey
Kadeem W Tollner
Darci Y Paprocki
Aruna X Dilliard
Tony B Garufi
Faith J Ruta
Julie M Malet
Misaki Z Morasca
Juan P Darakjy
Rodrigues C Ferencz
Aika Y Amigon
Alejandro K Poquette
Johnson E Glick
Kadeem I Figeroa
Greenwood X Butt
Aika R Doe
Aruna E Briddick
Kaitlin D Foller
Jennifer G Rulapaugh
Jefferson W Campain
Juan N Ostrosky
Smith B Royster
Julie F Maclead
Smith S Stenseth
Isabel H Flosi
Stacey L Butt
Deepesh J Rim
Ivar U Rulapaugh
Antonio D Figeroa
Misaki Y Nicka
Leon I Foller
Francesco P Stockham
Emily K Venere
Kaitlin K Bowley
Misaki G Poquette
Juan P Gaucho
Wickens M Nicka
Silvio K Shinko
Leja Y Schemmer
David X Foller
Costa Y Kusko
Kadeem R Ostrosky
IdCountryDate
1000Spain2026-07-07
1001Japan2026-07-18
1002Australia2026-06-26
1003Australia2026-06-30
1004Canada2026-07-02
1005Spain2026-07-08
1006Italy2026-07-15
1007Japan2026-07-14
1008United Kingdom2026-07-02
1009Brazil2026-07-19
1010India2026-06-22
1011Argentina2026-07-02
1012Russia2026-07-10
1013Russia2026-07-05
1014Italy2026-07-01
1015Italy2026-07-09
1016Spain2026-07-09
1017Japan2026-07-07
1018Brazil2026-07-14
1019Spain2026-06-29
1020India2026-07-13
1021Australia2026-06-24
1022Japan2026-07-19
1023France2026-07-07
1024Japan2026-06-25
1025Italy2026-07-11
1026France2026-06-25
1027Germany2026-07-11
1028Italy2026-07-20
1029Germany2026-07-04
1030Canada2026-07-10
1031India2026-06-23
1032Australia2026-07-20
1033Italy2026-07-08
1034Australia2026-06-30
1035India2026-06-21
1036Brazil2026-06-21
1037Russia2026-07-20
1038Spain2026-07-13
1039India2026-06-27
1040India2026-07-17
1041Canada2026-06-21
1042India2026-07-15
1043Russia2026-07-16
1044Canada2026-07-04
1045Brazil2026-07-10
1046Argentina2026-07-02
1047India2026-06-29
1048Germany2026-07-07
1049Australia2026-07-05

On-Demand Data

NameIdCountryDate
Octavia K Marrier1000Germany2026-07-02
Smith R Albares1001France2026-06-29
Arvin N Sergi1002Argentina2026-07-10
Nicolas X Darakjy1003Argentina2026-07-05
Kaitlin N Iturbide1004Spain2026-06-29
Jennifer D Inouye1005France2026-07-13
Faith Q Marrier1006Canada2026-07-18
Maria F Briddick1007Russia2026-06-25
Kadeem G Doe1008Brazil2026-07-18
Nicolas B Shinko1009India2026-07-13
Tony T Ruta1010Brazil2026-07-12
Mujtaba C Bolognia1011Italy2026-06-25
Julie V Ostrosky1012Japan2026-07-07
Misaki O Malet1013Russia2026-06-30
James R Maclead1014Argentina2026-07-04
Jennifer Q Inouye1015Spain2026-07-12
Francesco U Royster1016Italy2026-06-24
Juan E Malet1017Brazil2026-07-13
Clifford G Maclead1018Brazil2026-07-09
Aruna U Bowley1019Canada2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair N CaldareraAustraliaBernardo Dominic PROPOSAL
Francesco K GillianAustraliaXuxue Feng QUALIFIED
Jones C FlosiIndiaIoni Bowcher NEGOTIATION
Arvin U WieserIndiaAsiya Javayant NEGOTIATION
Stacey P OstroskyAustraliaAnna Fali NEW
Wickens U MorascaRussiaStephen Shaw PROPOSAL
Johnson M ChuiItalyBernardo Dominic NEW
Juan P CampainGermanyAnna Fali NEGOTIATION
Salvatore F RoysterArgentinaBernardo Dominic NEW
Antonio U GlickArgentinaAmy Elsner PROPOSAL
Alejandro R BriddickFranceAsiya Javayant NEW
Murillo P CampainJapanBernardo Dominic PROPOSAL
Mayumi S MaletAustraliaXuxue Feng RENEWAL
Kaitlin Q AlbaresCanadaAnna Fali QUALIFIED
Kadeem P VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Ashley Y BriddickBrazilAmy Elsner NEW
Faith B MorascaRussiaXuxue Feng PROPOSAL
Clifford L MarrierFranceIvan Magalhaes RENEWAL
Misaki A PoquetteJapanOnyama Limba UNQUALIFIED
Claire N GlickItalyAnna Fali PROPOSAL
Tony F ShinkoItalyAnna Fali QUALIFIED
Francesco W FlosiRussiaXuxue Feng QUALIFIED
Jennifer E DarakjyArgentinaAmy Elsner PROPOSAL
Mayumi H ShinkoItalyXuxue Feng NEW
Johnson U TollnerSpainIoni Bowcher QUALIFIED
Johnson B GlickIndiaIoni Bowcher QUALIFIED
Wickens B IturbideBrazilIvan Magalhaes PROPOSAL
Greenwood B DilliardCanadaStephen Shaw UNQUALIFIED
Isabel K DilliardItalyAmy Elsner RENEWAL
Adams A MarrierArgentinaIvan Magalhaes NEGOTIATION
Jones N FollerBrazilOnyama Limba QUALIFIED
Ashley V MaletCanadaStephen Shaw QUALIFIED
David F KuskoAustraliaAsiya Javayant NEW
Salvatore X RoysterJapanIoni Bowcher NEGOTIATION
Jones C SchemmerItalyIvan Magalhaes NEGOTIATION
Jones A IturbideIndiaElwin Sharvill PROPOSAL
Rodrigues Z CaudyAustraliaIoni Bowcher UNQUALIFIED
Morrow Y MorascaRussiaBernardo Dominic NEW
Cody P MaletGermanyAsiya Javayant RENEWAL
Antonio A ButtAustraliaElwin Sharvill UNQUALIFIED

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