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
Claire L SlusarskiBrazilIoni Bowcher UNQUALIFIED
Leon P KolmetzGermanyXuxue Feng PROPOSAL
Misaki C NickaJapanStephen Shaw UNQUALIFIED
Ricardo J DarakjyIndiaBernardo Dominic NEW
Sinclair Y StockhamUnited KingdomIvan Magalhaes PROPOSAL
Arvin W SchemmerRussiaBernardo Dominic UNQUALIFIED
Aruna T BologniaItalyElwin Sharvill UNQUALIFIED
Kadeem A InouyeBrazilXuxue Feng PROPOSAL
Antonio M FerenczUnited KingdomAsiya Javayant RENEWAL
Misaki M IturbideAustraliaStephen Shaw NEGOTIATION
Clifford V MorascaArgentinaStephen Shaw RENEWAL
Silvio U RutaSpainAnna Fali PROPOSAL
Stacey A OldroydArgentinaOnyama Limba UNQUALIFIED
Rodrigues A InouyeUnited KingdomAnna Fali QUALIFIED
Mujtaba P FigeroaBrazilXuxue Feng NEW
Isabel M SlusarskiIndiaAmy Elsner NEW
Francesco P BowleyBrazilXuxue Feng QUALIFIED
Jennifer C CampainItalyIvan Magalhaes RENEWAL
Aruna I IturbideAustraliaBernardo Dominic NEW
Chavez I GillianItalyIvan Magalhaes QUALIFIED
Kaitlin P NickaFranceIoni Bowcher NEGOTIATION
Juan Y PoquetteItalyAsiya Javayant UNQUALIFIED
Johnson C AmigonRussiaElwin Sharvill RENEWAL
Smith P MaletIndiaAmy Elsner NEW
Chavez E MorascaFranceStephen Shaw NEGOTIATION
Jennifer Y SchemmerJapanStephen Shaw PROPOSAL
Faith V TollnerSpainIvan Magalhaes NEGOTIATION
Ivar I RoysterUnited KingdomXuxue Feng NEGOTIATION
Wickens J VocelkaItalyAsiya Javayant PROPOSAL
Faith E MaletItalyIvan Magalhaes NEW
Stacey V CaldareraArgentinaAsiya Javayant NEGOTIATION
Octavia H DarakjyArgentinaStephen Shaw NEW
Jeanfrancois E GlickCanadaStephen Shaw QUALIFIED
Cody X WaycottArgentinaAsiya Javayant RENEWAL
Emily T SchemmerUnited KingdomStephen Shaw PROPOSAL
Kadeem V PerinSpainElwin Sharvill PROPOSAL
Ricardo B WhobreyBrazilXuxue Feng QUALIFIED
Jeanfrancois K CampainCanadaStephen Shaw QUALIFIED
Nicolas S GillianCanadaStephen Shaw NEW
Alejandro K MaletFranceIvan Magalhaes NEGOTIATION
Jennifer D RoysterRussiaIvan Magalhaes RENEWAL
Darci H StockhamRussiaElwin Sharvill NEW
Costa U MaletGermanyBernardo Dominic UNQUALIFIED
Faith P GarufiSpainBernardo Dominic NEW
Alejandro Q RulapaughCanadaXuxue Feng UNQUALIFIED
Izzy M WaycottGermanyElwin Sharvill NEW
Izzy V MarrierUnited KingdomAnna Fali NEW
Arvin F StensethRussiaStephen Shaw NEGOTIATION
Julie E WhobreyGermanyAsiya Javayant QUALIFIED
Nicolas Q MorascaSpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Salvatore Q ChuiItalyIoni Bowcher NEW
Jeanfrancois D DoeRussiaAmy Elsner NEGOTIATION
Clifford F OldroydItalyXuxue Feng PROPOSAL
Jones M RimIndiaIoni Bowcher RENEWAL
Antonio O MacleadIndiaAsiya Javayant NEGOTIATION
Sinclair W NestleIndiaAnna Fali RENEWAL
Deepesh X AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Misaki M FigeroaAustraliaIvan Magalhaes NEGOTIATION
Murillo V StockhamCanadaAsiya Javayant UNQUALIFIED
Jones A RutaItalyAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Q OstroskyItaly2026-08-01King, Christopher A Esq QUALIFIED84Ioni Bowcher
1001Greenwood V MarrierItaly2026-08-23Rousseaux, Michael Esq QUALIFIED63Asiya Javayant
1002Johnson W WaycottSpain2026-08-26King, Christopher A Esq UNQUALIFIED81Ivan Magalhaes
1003Johnson Q StockhamJapan2026-08-11Feltz Printing Service QUALIFIED98Elwin Sharvill
1004Jones Y FigeroaGermany2026-08-09Morlong Associates RENEWAL9Onyama Limba
1005Mujtaba M NestleSpain2026-08-10Truhlar And Truhlar Attys RENEWAL23Ioni Bowcher
1006Faith L InouyeAustralia2026-08-11Feltz Printing Service PROPOSAL35Amy Elsner
1007Costa L NestleArgentina2026-07-31Chapman, Ross E Esq UNQUALIFIED18Anna Fali
1008Julie Y IturbideFrance2026-08-08Printing Dimensions QUALIFIED42Anna Fali
1009Antonio T MorascaBrazil2026-08-12Dorl, James J Esq RENEWAL75Xuxue Feng
1010Darci F PoquetteRussia2026-08-08Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1011Izzy N NickaGermany2026-08-05Chemel, James L Cpa NEGOTIATION59Anna Fali
1012Aika E NestleCanada2026-08-09Buckley Miller Wright PROPOSAL91Stephen Shaw
1013Chavez U PoquetteAustralia2026-07-29Morlong Associates NEW76Elwin Sharvill
1014Aruna C RoysterSpain2026-08-04Chapman, Ross E Esq NEGOTIATION15Elwin Sharvill
1015Silvio V PaprockiGermany2026-08-04King, Christopher A Esq PROPOSAL23Bernardo Dominic
1016Smith I PerinIndia2026-08-08Chapman, Ross E Esq NEW57Xuxue Feng
1017James H CaldareraRussia2026-08-10Feiner Bros UNQUALIFIED56Elwin Sharvill
1018Nicolas Y BowleyUnited Kingdom2026-08-12Chanay, Jeffrey A Esq QUALIFIED36Elwin Sharvill
1019Kaitlin A CaudyUnited Kingdom2026-08-24Buckley Miller Wright NEW88Anna Fali
1020Kaitlin J WhobreyGermany2026-08-06Rousseaux, Michael Esq NEW37Xuxue Feng
1021Ashley U SchemmerItaly2026-07-30Benton, John B Jr PROPOSAL50Xuxue Feng
1022Deepesh B MacleadIndia2026-08-10Rousseaux, Michael Esq NEW60Bernardo Dominic
1023Juan F PoquetteArgentina2026-08-24Rousseaux, Michael Esq UNQUALIFIED88Stephen Shaw
1024Cody P GauchoFrance2026-08-09Chanay, Jeffrey A Esq NEGOTIATION48Stephen Shaw
1025Misaki J DoeIndia2026-08-24Chanay, Jeffrey A Esq NEGOTIATION43Amy Elsner
1026Mayumi U KolmetzRussia2026-08-01Benton, John B Jr NEW11Asiya Javayant
1027Salvatore X MacleadCanada2026-08-13Truhlar And Truhlar Attys NEGOTIATION54Onyama Limba
1028Aika S StensethJapan2026-07-31Commercial Press NEW41Ioni Bowcher
1029Wickens E WieserUnited Kingdom2026-07-29Chemel, James L Cpa NEW17Amy Elsner
1030Aruna G CampainGermany2026-08-17Rousseaux, Michael Esq QUALIFIED61Asiya Javayant
1031Rodrigues W WieserRussia2026-08-13Buckley Miller Wright UNQUALIFIED52Anna Fali
1032Kadeem G MarrierBrazil2026-07-31Chanay, Jeffrey A Esq RENEWAL8Amy Elsner
1033James Q GlickBrazil2026-08-08Truhlar And Truhlar Attys QUALIFIED39Onyama Limba
1034Antonio U BriddickRussia2026-08-26Feltz Printing Service QUALIFIED4Bernardo Dominic
1035David S StockhamIndia2026-08-01Buckley Miller Wright PROPOSAL98Amy Elsner
1036Sinclair R GarufiJapan2026-08-08Dorl, James J Esq RENEWAL94Stephen Shaw
1037Izzy M RimBrazil2026-08-01King, Christopher A Esq PROPOSAL74Bernardo Dominic
1038Emily Y PaprockiBrazil2026-08-02Rousseaux, Michael Esq NEW52Asiya Javayant
1039Julie B SergiIndia2026-08-05Buckley Miller Wright NEGOTIATION18Ivan Magalhaes
1040Clifford A FlosiSpain2026-08-10Benton, John B Jr PROPOSAL53Elwin Sharvill
1041Aika U OldroydIndia2026-08-06Buckley Miller Wright UNQUALIFIED41Ioni Bowcher
1042Juan O SergiArgentina2026-08-26Rangoni Of Florence NEW67Onyama Limba
1043Wickens K GarufiJapan2026-08-24Rousseaux, Michael Esq UNQUALIFIED37Stephen Shaw
1044James R FlosiRussia2026-08-10Morlong Associates QUALIFIED80Ivan Magalhaes
1045Alejandro T KuskoUnited Kingdom2026-08-11Rangoni Of Florence QUALIFIED2Xuxue Feng
1046Johnson L SergiIndia2026-08-06Chanay, Jeffrey A Esq NEGOTIATION4Anna Fali
1047Darci K FigeroaItaly2026-08-17Buckley Miller Wright RENEWAL12Asiya Javayant
1048Stacey A InouyeAustralia2026-08-05Chanay, Jeffrey A Esq NEW71Stephen Shaw
1049Wickens I ChuiCanada2026-07-29King, Christopher A Esq PROPOSAL0Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Sinclair A SchemmerSpainIvan Magalhaes NEGOTIATION
Johnson P FlosiItalyStephen Shaw QUALIFIED
Izzy R SchemmerItalyAsiya Javayant NEGOTIATION
Tony I DoeUnited KingdomIoni Bowcher PROPOSAL
Ricardo Y GillianSpainAnna Fali PROPOSAL
Silvio M ChuiBrazilAmy Elsner UNQUALIFIED
Mayumi F MaletSpainOnyama Limba QUALIFIED
Claire E IturbideCanadaBernardo Dominic NEGOTIATION
James Z GarufiItalyAmy Elsner RENEWAL
Izzy K DilliardItalyOnyama Limba QUALIFIED
Rodrigues A VocelkaSpainAnna Fali NEW
Maisha A RimCanadaXuxue Feng QUALIFIED
Aditya K ButtItalyStephen Shaw UNQUALIFIED
Leja F MorascaGermanyElwin Sharvill PROPOSAL
Maria B OstroskyArgentinaAsiya Javayant PROPOSAL
Ivar T TollnerGermanyStephen Shaw PROPOSAL
Silvio J StensethRussiaBernardo Dominic QUALIFIED
Morrow X CampainFranceXuxue Feng NEGOTIATION
Leon L RoysterRussiaElwin Sharvill QUALIFIED
Leja I RimRussiaBernardo Dominic NEW
Emily O KuskoArgentinaIvan Magalhaes RENEWAL
Adams B WaycottAustraliaXuxue Feng UNQUALIFIED
Juan R NickaGermanyElwin Sharvill PROPOSAL
Johnson N InouyeItalyOnyama Limba PROPOSAL
Ivar W GarufiSpainAnna Fali NEGOTIATION
Mujtaba K GillianGermanyStephen Shaw PROPOSAL
Arvin G VocelkaGermanyAnna Fali NEGOTIATION
Aditya H StockhamItalyIoni Bowcher UNQUALIFIED
Silvio V ChuiUnited KingdomXuxue Feng UNQUALIFIED
Ashley K MorascaArgentinaOnyama Limba RENEWAL
Emily Z RimFranceAmy Elsner RENEWAL
Murillo U SergiItalyStephen Shaw QUALIFIED
Julie D CaldareraFranceIvan Magalhaes NEW
Ashley S GauchoGermanyAmy Elsner RENEWAL
Leja Y BologniaRussiaAsiya Javayant QUALIFIED
Jennifer Y MaletIndiaAnna Fali RENEWAL
Nicolas P NickaUnited KingdomElwin Sharvill UNQUALIFIED
Leon T AmigonIndiaStephen Shaw PROPOSAL
Sinclair G TollnerFranceStephen Shaw NEW
Adams B MaletCanadaStephen Shaw NEW
Stacey M GlickRussiaAsiya Javayant QUALIFIED
Juan E GarufiBrazilAsiya Javayant QUALIFIED
Munro O WhobreyAustraliaAmy Elsner RENEWAL
Leja R RimFranceAsiya Javayant NEGOTIATION
Arvin B KolmetzGermanyIoni Bowcher NEGOTIATION
Wickens D ShinkoAustraliaAsiya Javayant RENEWAL
David N BowleyJapanIoni Bowcher RENEWAL
Faith R AmigonAustraliaXuxue Feng RENEWAL
Faith Y AlbaresSpainOnyama Limba RENEWAL
Jefferson H FerenczArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Morrow P Wieser
Jennifer N Kusko
Mujtaba U Vocelka
Adams M Poquette
Johnson R Slusarski
Ricardo Z Flosi
Jefferson C Foller
Jefferson P Stockham
Chavez H Albares
Morrow T Briddick
Wickens X Albares
Aditya J Saylors
Silvio S Caldarera
Cody B Wieser
Leja B Figeroa
Clifford F Royster
Julie J Wieser
Maisha Q Rulapaugh
Cody L Royster
Jones P Foller
Leja P Marrier
Julie W Venere
Izzy O Bolognia
Johnson Y Iturbide
Morrow B Kolmetz
Wickens S Kolmetz
Claire W Chui
Isabel A Perin
Silvio U Bolognia
Alejandro V Kusko
Maria O Inouye
Jennifer F Oldroyd
Ricardo T Marrier
Antonio O Chui
Kaitlin A Oldroyd
James F Amigon
Mayumi M Garufi
Rodrigues E Ruta
Claire V Malet
Mayumi L Saylors
Emily G Figeroa
Mujtaba S Paprocki
Ricardo H Stockham
Alejandro J Saylors
Tony V Garufi
Wickens H Garufi
Salvatore W Garufi
Greenwood B Darakjy
Darci R Bolognia
Jeanfrancois A Figeroa
IdCountryDate
1000Japan2026-08-09
1001Russia2026-08-06
1002Italy2026-07-29
1003Japan2026-08-07
1004Argentina2026-08-13
1005Italy2026-08-17
1006Italy2026-08-06
1007Japan2026-08-11
1008Argentina2026-08-24
1009Canada2026-08-03
1010France2026-08-10
1011Russia2026-08-24
1012Russia2026-08-05
1013Australia2026-08-11
1014Australia2026-08-05
1015Argentina2026-08-08
1016Australia2026-08-09
1017Spain2026-08-26
1018Japan2026-08-14
1019Brazil2026-08-23
1020Japan2026-08-11
1021Russia2026-08-24
1022United Kingdom2026-08-08
1023Brazil2026-08-04
1024Canada2026-08-06
1025Spain2026-08-15
1026Spain2026-07-30
1027Germany2026-08-15
1028France2026-08-20
1029Australia2026-08-21
1030France2026-08-20
1031Japan2026-08-02
1032Argentina2026-07-31
1033Germany2026-08-15
1034France2026-08-10
1035India2026-08-15
1036Australia2026-08-17
1037Japan2026-08-13
1038Australia2026-08-09
1039Germany2026-08-19
1040United Kingdom2026-08-17
1041Canada2026-08-08
1042Japan2026-08-25
1043Japan2026-08-13
1044Brazil2026-08-23
1045Germany2026-08-01
1046France2026-07-31
1047Argentina2026-08-05
1048France2026-08-26
1049Australia2026-08-21

On-Demand Data

NameIdCountryDate
Ivar D Butt1000United Kingdom2026-08-23
Clifford J Kolmetz1001India2026-08-17
Stacey Q Kusko1002Germany2026-08-17
Sinclair F Royster1003Russia2026-08-20
David E Chui1004Australia2026-08-14
Aruna E Rulapaugh1005France2026-08-04
Emily Y Chui1006United Kingdom2026-07-30
Aruna W Figeroa1007Germany2026-08-22
Jefferson W Morasca1008Germany2026-08-17
Greenwood A Iturbide1009Brazil2026-08-14
Ricardo N Glick1010Canada2026-08-15
Wickens W Maclead1011Italy2026-08-10
Mujtaba H Flosi1012France2026-08-06
Chavez A Tollner1013Japan2026-07-28
Smith Z Stenseth1014Spain2026-08-02
Leja F Butt1015Brazil2026-08-03
Claire W Poquette1016Russia2026-08-07
Ashley G Tollner1017France2026-08-17
Costa P Malet1018Spain2026-08-19
Jennifer Q Flosi1019Canada2026-08-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon B DarakjyRussiaAsiya Javayant UNQUALIFIED
Izzy R BowleyFranceAnna Fali QUALIFIED
Izzy H WieserSpainElwin Sharvill QUALIFIED
Isabel K DoeRussiaOnyama Limba UNQUALIFIED
Arvin Q NestleAustraliaBernardo Dominic QUALIFIED
Kadeem Y SergiCanadaIvan Magalhaes RENEWAL
Adams N RutaItalyXuxue Feng NEW
Murillo D StockhamSpainXuxue Feng UNQUALIFIED
Cody C StensethRussiaAmy Elsner NEW
Izzy Z NestleBrazilXuxue Feng NEGOTIATION
Jeanfrancois I MacleadCanadaElwin Sharvill PROPOSAL
Leon C PaprockiIndiaAsiya Javayant PROPOSAL
Ricardo C PerinFranceBernardo Dominic QUALIFIED
Isabel E MaletUnited KingdomElwin Sharvill RENEWAL
Arvin Z NickaUnited KingdomXuxue Feng RENEWAL
Rodrigues L SlusarskiCanadaOnyama Limba PROPOSAL
Ashley E RoysterRussiaBernardo Dominic QUALIFIED
Cody G NickaCanadaElwin Sharvill UNQUALIFIED
Emily E PerinSpainAnna Fali RENEWAL
Wickens P PoquetteFranceBernardo Dominic NEGOTIATION
Munro K StensethRussiaAnna Fali RENEWAL
Ricardo U ButtSpainIvan Magalhaes QUALIFIED
Cody B KolmetzIndiaOnyama Limba NEGOTIATION
Aika Z ButtJapanBernardo Dominic PROPOSAL
Greenwood Y PerinGermanyAnna Fali NEGOTIATION
Chavez N MacleadArgentinaBernardo Dominic NEW
Greenwood W OldroydSpainBernardo Dominic NEGOTIATION
Alejandro R ButtIndiaAsiya Javayant UNQUALIFIED
Jones J FlosiSpainXuxue Feng QUALIFIED
Emily L VocelkaAustraliaAmy Elsner NEGOTIATION
Greenwood H RutaArgentinaAmy Elsner NEW
Leon F DarakjyJapanAsiya Javayant NEW
Francesco O CaudyRussiaAsiya Javayant QUALIFIED
David Y GlickAustraliaStephen Shaw QUALIFIED
Leon P ButtIndiaElwin Sharvill UNQUALIFIED
Izzy W FerenczAustraliaAnna Fali PROPOSAL
Emily J DoeAustraliaAsiya Javayant UNQUALIFIED
Ricardo P DoeCanadaAnna Fali UNQUALIFIED
Sinclair S SaylorsArgentinaIoni Bowcher NEGOTIATION
Alejandro F ShinkoRussiaIoni Bowcher 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>