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
Arvin Z VenereJapanAsiya Javayant QUALIFIED
Mujtaba F MaletIndiaOnyama Limba QUALIFIED
Deepesh T GlickUnited KingdomAnna Fali RENEWAL
Claire Q WhobreyFranceAmy Elsner NEW
Salvatore K GarufiCanadaXuxue Feng UNQUALIFIED
Johnson Q NickaItalyAmy Elsner NEW
Tony Q StockhamCanadaIoni Bowcher UNQUALIFIED
Maria C ButtArgentinaXuxue Feng UNQUALIFIED
Faith D GlickFranceAmy Elsner RENEWAL
Leja F FerenczArgentinaIvan Magalhaes QUALIFIED
Antonio P VocelkaJapanAmy Elsner UNQUALIFIED
Nicolas I PoquetteJapanStephen Shaw RENEWAL
Mujtaba T MaletCanadaOnyama Limba UNQUALIFIED
Aruna F MacleadArgentinaIoni Bowcher NEW
Tony D WaycottIndiaBernardo Dominic RENEWAL
Kadeem B OstroskySpainIoni Bowcher NEW
Mujtaba C DarakjyArgentinaAnna Fali NEGOTIATION
Wickens Y MaletAustraliaBernardo Dominic UNQUALIFIED
Aruna G IturbideRussiaAnna Fali RENEWAL
Chavez U CaldareraGermanyBernardo Dominic NEW
Aika F NestleSpainElwin Sharvill PROPOSAL
Cody H OstroskySpainElwin Sharvill NEGOTIATION
Ricardo Z NestleItalyBernardo Dominic NEW
Jeanfrancois J SchemmerJapanElwin Sharvill QUALIFIED
Octavia P AlbaresArgentinaXuxue Feng RENEWAL
Salvatore J DilliardFranceIvan Magalhaes PROPOSAL
Sinclair B CampainIndiaBernardo Dominic QUALIFIED
Wickens K ShinkoSpainOnyama Limba RENEWAL
Mujtaba Q GarufiBrazilStephen Shaw NEW
Adams G BowleyCanadaElwin Sharvill QUALIFIED
Leon U MacleadJapanXuxue Feng NEW
Wickens U SaylorsItalyIoni Bowcher PROPOSAL
Jefferson V GauchoFranceAsiya Javayant NEGOTIATION
Chavez T MacleadRussiaAmy Elsner NEGOTIATION
Julie B MaletGermanyBernardo Dominic UNQUALIFIED
Emily G NestleCanadaXuxue Feng NEW
Nicolas T BriddickUnited KingdomAsiya Javayant QUALIFIED
Kaitlin W GillianAustraliaIoni Bowcher PROPOSAL
Deepesh S RulapaughItalyAmy Elsner UNQUALIFIED
Juan Q FollerItalyOnyama Limba NEGOTIATION
Alejandro R KuskoRussiaElwin Sharvill RENEWAL
Adams Q CaldareraJapanAmy Elsner UNQUALIFIED
Claire B DarakjyUnited KingdomAmy Elsner RENEWAL
Faith K PaprockiItalyAnna Fali PROPOSAL
Morrow D KolmetzCanadaAnna Fali NEW
Jennifer P WieserGermanyStephen Shaw PROPOSAL
Munro U StensethArgentinaBernardo Dominic RENEWAL
Jefferson M OldroydCanadaAmy Elsner UNQUALIFIED
Chavez E ChuiFranceAsiya Javayant NEW
Rodrigues V PerinGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
David H DilliardJapanStephen Shaw RENEWAL
Leon G MaletUnited KingdomIvan Magalhaes NEGOTIATION
Ashley Z VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Johnson Y GillianGermanyIvan Magalhaes NEGOTIATION
Antonio Y AmigonAustraliaIvan Magalhaes NEW
Johnson S DarakjyRussiaElwin Sharvill NEGOTIATION
Greenwood M StockhamFranceStephen Shaw PROPOSAL
Deepesh P BologniaRussiaElwin Sharvill UNQUALIFIED
Deepesh X CaldareraSpainXuxue Feng NEW
Kadeem M TollnerCanadaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio G PaprockiRussia2026-07-23Printing Dimensions PROPOSAL37Elwin Sharvill
1001Aika F KuskoArgentina2026-08-01Benton, John B Jr NEW77Amy Elsner
1002Jennifer A PaprockiAustralia2026-07-17Dorl, James J Esq PROPOSAL32Ivan Magalhaes
1003Adams I AlbaresGermany2026-07-20Truhlar And Truhlar Attys NEGOTIATION83Elwin Sharvill
1004Cody B MaletGermany2026-07-17Rousseaux, Michael Esq QUALIFIED40Ivan Magalhaes
1005Jeanfrancois D WieserCanada2026-07-30Commercial Press QUALIFIED28Asiya Javayant
1006Mayumi Q MacleadRussia2026-08-06Morlong Associates UNQUALIFIED22Anna Fali
1007Leja H AmigonRussia2026-07-19Dorl, James J Esq RENEWAL80Asiya Javayant
1008Jeanfrancois B BriddickItaly2026-07-19Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1009Arvin R IturbideUnited Kingdom2026-08-08Truhlar And Truhlar Attys UNQUALIFIED51Anna Fali
1010Smith T GarufiAustralia2026-08-09King, Christopher A Esq UNQUALIFIED31Elwin Sharvill
1011Julie C RimIndia2026-08-02Truhlar And Truhlar Attys UNQUALIFIED17Bernardo Dominic
1012Jennifer H WhobreyCanada2026-07-28Buckley Miller Wright UNQUALIFIED18Stephen Shaw
1013Jones U PoquetteRussia2026-07-28Buckley Miller Wright NEGOTIATION13Xuxue Feng
1014Wickens H SlusarskiJapan2026-07-12Truhlar And Truhlar Attys UNQUALIFIED12Ivan Magalhaes
1015Jeanfrancois T SchemmerSpain2026-07-30Chanay, Jeffrey A Esq PROPOSAL30Ivan Magalhaes
1016Claire E MaletRussia2026-07-12Printing Dimensions QUALIFIED62Asiya Javayant
1017Darci B WaycottBrazil2026-07-22Morlong Associates UNQUALIFIED63Onyama Limba
1018Rodrigues E FerenczCanada2026-07-14Chanay, Jeffrey A Esq PROPOSAL53Ivan Magalhaes
1019Mujtaba Y FollerRussia2026-08-10Morlong Associates UNQUALIFIED33Ioni Bowcher
1020Deepesh K MaletGermany2026-08-01Feiner Bros RENEWAL95Stephen Shaw
1021Silvio J CaldareraItaly2026-07-16Morlong Associates NEW3Amy Elsner
1022Alejandro X GlickSpain2026-08-04Feiner Bros QUALIFIED43Xuxue Feng
1023Smith S VocelkaItaly2026-07-14Chanay, Jeffrey A Esq QUALIFIED75Ioni Bowcher
1024Greenwood Z RulapaughAustralia2026-08-09Rousseaux, Michael Esq PROPOSAL60Stephen Shaw
1025Stacey I FigeroaArgentina2026-08-08Feiner Bros RENEWAL9Anna Fali
1026Emily G KuskoJapan2026-07-31Morlong Associates RENEWAL54Bernardo Dominic
1027David A OldroydBrazil2026-07-30Chemel, James L Cpa NEGOTIATION92Stephen Shaw
1028Claire E RulapaughItaly2026-07-14Chanay, Jeffrey A Esq NEGOTIATION43Anna Fali
1029Johnson Z NickaGermany2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED0Onyama Limba
1030Faith P PaprockiCanada2026-07-18Chemel, James L Cpa NEW13Ioni Bowcher
1031David L ButtUnited Kingdom2026-07-20Truhlar And Truhlar Attys UNQUALIFIED22Stephen Shaw
1032Wickens A ButtBrazil2026-08-10Printing Dimensions QUALIFIED69Onyama Limba
1033Cody H GillianUnited Kingdom2026-08-04Benton, John B Jr UNQUALIFIED1Xuxue Feng
1034Chavez H WhobreyUnited Kingdom2026-08-05Chapman, Ross E Esq PROPOSAL58Bernardo Dominic
1035Stacey Q RimFrance2026-07-15Printing Dimensions NEW80Bernardo Dominic
1036Misaki Q OldroydFrance2026-08-08Buckley Miller Wright PROPOSAL36Bernardo Dominic
1037Clifford H DarakjyCanada2026-08-05Chanay, Jeffrey A Esq QUALIFIED93Onyama Limba
1038Maisha K DarakjyArgentina2026-07-12Benton, John B Jr RENEWAL77Onyama Limba
1039James B BologniaGermany2026-07-30Chanay, Jeffrey A Esq PROPOSAL69Bernardo Dominic
1040Rodrigues O IturbideAustralia2026-08-02Benton, John B Jr PROPOSAL36Xuxue Feng
1041Johnson L PoquetteRussia2026-07-22Chapman, Ross E Esq UNQUALIFIED70Ivan Magalhaes
1042Tony Q MaletIndia2026-08-01Feltz Printing Service UNQUALIFIED5Amy Elsner
1043Leon B GauchoBrazil2026-08-02Benton, John B Jr QUALIFIED48Asiya Javayant
1044Silvio A GlickIndia2026-07-25King, Christopher A Esq NEGOTIATION53Asiya Javayant
1045Greenwood H PerinBrazil2026-07-25Chemel, James L Cpa RENEWAL69Stephen Shaw
1046Adams H BriddickCanada2026-08-02Chanay, Jeffrey A Esq NEW37Xuxue Feng
1047Sinclair S KolmetzArgentina2026-07-13Buckley Miller Wright QUALIFIED69Anna Fali
1048Claire F VenereArgentina2026-07-17Printing Dimensions NEGOTIATION96Elwin Sharvill
1049Maisha P StockhamSpain2026-07-18Feltz Printing Service RENEWAL72Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Y RulapaughRussiaOnyama Limba QUALIFIED
Jeanfrancois T TollnerCanadaAmy Elsner PROPOSAL
Leon F RulapaughArgentinaAsiya Javayant UNQUALIFIED
Clifford D CampainRussiaAnna Fali QUALIFIED
Deepesh X CaldareraSpainStephen Shaw PROPOSAL
Aruna J WieserFranceAmy Elsner RENEWAL
Mayumi K PerinFranceXuxue Feng NEW
Francesco J RutaBrazilXuxue Feng QUALIFIED
Jeanfrancois C DoeUnited KingdomAmy Elsner NEGOTIATION
Smith L KolmetzFranceAnna Fali RENEWAL
Greenwood W RulapaughArgentinaIoni Bowcher RENEWAL
Jefferson V WhobreyArgentinaStephen Shaw NEW
Murillo O RoysterRussiaIvan Magalhaes PROPOSAL
Leon Q RulapaughArgentinaAmy Elsner PROPOSAL
Nicolas G KuskoCanadaAmy Elsner RENEWAL
Cody I NestleItalyAmy Elsner PROPOSAL
Claire B CampainGermanyXuxue Feng RENEWAL
Aditya A MorascaJapanIoni Bowcher UNQUALIFIED
Julie R OstroskyGermanyXuxue Feng PROPOSAL
Nicolas T GarufiJapanIvan Magalhaes NEGOTIATION
Leon I MarrierSpainIvan Magalhaes UNQUALIFIED
Faith O CampainAustraliaOnyama Limba UNQUALIFIED
Izzy B AlbaresAustraliaAnna Fali QUALIFIED
Antonio Q MacleadBrazilAsiya Javayant NEW
Smith J MaletJapanAmy Elsner PROPOSAL
James K PaprockiFranceXuxue Feng PROPOSAL
Francesco G ShinkoIndiaStephen Shaw RENEWAL
Sinclair Q KuskoIndiaAnna Fali PROPOSAL
Nicolas O PaprockiFranceAmy Elsner NEGOTIATION
Aruna F RoysterCanadaXuxue Feng RENEWAL
Johnson Y ShinkoItalyAsiya Javayant NEW
Stacey V PoquetteFranceElwin Sharvill UNQUALIFIED
Arvin F RimRussiaXuxue Feng UNQUALIFIED
Claire L MarrierBrazilAsiya Javayant NEW
Greenwood G GillianFranceElwin Sharvill UNQUALIFIED
Misaki S BriddickGermanyIoni Bowcher PROPOSAL
Deepesh D MaletArgentinaIvan Magalhaes RENEWAL
Mayumi W CampainGermanyIoni Bowcher PROPOSAL
Deepesh H ShinkoRussiaBernardo Dominic NEGOTIATION
Ashley S OstroskyJapanAsiya Javayant NEGOTIATION
Ricardo R ShinkoGermanyStephen Shaw RENEWAL
Alejandro C CaldareraBrazilElwin Sharvill QUALIFIED
Aika S GillianIndiaBernardo Dominic NEGOTIATION
Alejandro M GauchoSpainStephen Shaw PROPOSAL
Jones B MorascaCanadaElwin Sharvill UNQUALIFIED
Misaki T MarrierItalyBernardo Dominic PROPOSAL
Isabel I ChuiAustraliaXuxue Feng NEGOTIATION
Salvatore C DarakjyBrazilAmy Elsner UNQUALIFIED
Mayumi Z RulapaughFranceAmy Elsner NEW
Francesco E CaldareraUnited KingdomBernardo Dominic RENEWAL
Frozen Columns
Name
Juan I Sergi
Mujtaba R Ferencz
Juan H Garufi
Leja W Garufi
Leja G Caldarera
Faith Y Sergi
Jefferson F Stenseth
Adams H Amigon
Costa Z Bolognia
Johnson N Schemmer
Clifford D Morasca
Johnson J Shinko
Ivar B Ruta
Chavez N Amigon
Juan W Kusko
Claire I Gillian
Aruna G Butt
Octavia K Briddick
Nicolas T Slusarski
James X Ostrosky
Leja B Darakjy
Claire T Caudy
Deepesh S Doe
Aruna C Kusko
Izzy H Waycott
Salvatore A Garufi
Kaitlin Y Caudy
Munro A Tollner
Juan R Wieser
Izzy E Kusko
Darci B Venere
Darci B Caldarera
Aika U Albares
Aditya J Poquette
Nicolas M Stenseth
Silvio R Vocelka
Misaki S Paprocki
Greenwood A Ruta
Greenwood J Venere
Maria Z Rulapaugh
Aditya R Maclead
Octavia M Foller
Tony B Malet
Aruna C Tollner
Wickens W Dilliard
Antonio A Gaucho
Greenwood M Nestle
Mujtaba V Ostrosky
Leja F Perin
Darci V Flosi
IdCountryDate
1000United Kingdom2026-08-06
1001Italy2026-08-08
1002Brazil2026-07-17
1003France2026-07-26
1004Germany2026-07-19
1005Japan2026-07-26
1006Brazil2026-07-20
1007Argentina2026-07-31
1008Australia2026-07-17
1009United Kingdom2026-07-31
1010Germany2026-07-13
1011India2026-07-26
1012Argentina2026-08-02
1013Japan2026-07-29
1014France2026-07-15
1015United Kingdom2026-07-31
1016India2026-07-26
1017Germany2026-08-10
1018Italy2026-07-14
1019Canada2026-07-15
1020Russia2026-08-10
1021Germany2026-07-25
1022France2026-07-18
1023Australia2026-08-10
1024Germany2026-08-04
1025Japan2026-08-09
1026Spain2026-08-08
1027Spain2026-07-22
1028Canada2026-07-18
1029Brazil2026-07-16
1030France2026-08-07
1031Japan2026-07-12
1032Italy2026-08-03
1033Canada2026-07-13
1034Australia2026-08-05
1035France2026-08-09
1036India2026-07-28
1037Italy2026-07-23
1038Australia2026-07-13
1039Spain2026-08-07
1040United Kingdom2026-08-04
1041Argentina2026-07-12
1042Italy2026-08-09
1043Spain2026-07-30
1044Brazil2026-08-09
1045Australia2026-07-30
1046United Kingdom2026-08-01
1047Brazil2026-07-18
1048Spain2026-07-31
1049Japan2026-07-27

On-Demand Data

NameIdCountryDate
Jeanfrancois N Venere1000Spain2026-07-14
Morrow P Rim1001India2026-07-24
Mujtaba W Poquette1002Germany2026-08-03
Aditya O Maclead1003Canada2026-07-24
Emily J Malet1004Brazil2026-07-25
Maria O Ferencz1005Spain2026-07-24
Stacey A Wieser1006France2026-07-30
Cody F Malet1007Russia2026-07-25
Darci S Shinko1008Italy2026-07-22
Claire B Butt1009Russia2026-07-26
Morrow I Gillian1010India2026-08-10
Isabel V Albares1011Russia2026-08-09
Jefferson F Wieser1012Germany2026-07-19
Misaki R Gaucho1013Italy2026-07-29
Smith V Shinko1014Spain2026-07-17
Aditya Z Waycott1015Russia2026-07-24
Rodrigues Y Marrier1016Argentina2026-07-15
Jennifer M Dilliard1017Australia2026-07-14
Emily B Perin1018Japan2026-07-16
Silvio Y Oldroyd1019Argentina2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco N PaprockiRussiaStephen Shaw QUALIFIED
Mujtaba M MacleadSpainXuxue Feng NEGOTIATION
Stacey U IturbideGermanyBernardo Dominic NEW
David J SlusarskiCanadaElwin Sharvill QUALIFIED
Munro Y PoquetteUnited KingdomElwin Sharvill QUALIFIED
Chavez F FigeroaJapanElwin Sharvill PROPOSAL
Deepesh H CampainArgentinaOnyama Limba NEGOTIATION
Isabel T MarrierArgentinaOnyama Limba QUALIFIED
Arvin F FlosiArgentinaBernardo Dominic PROPOSAL
Mayumi G PerinGermanyIvan Magalhaes NEW
Jennifer Q GillianUnited KingdomBernardo Dominic QUALIFIED
Mayumi U MarrierUnited KingdomElwin Sharvill NEGOTIATION
Murillo X ShinkoFranceAsiya Javayant PROPOSAL
Aika V ShinkoArgentinaIoni Bowcher PROPOSAL
Julie P NestleIndiaAnna Fali QUALIFIED
Salvatore U FlosiFranceAmy Elsner QUALIFIED
Maria F DarakjyIndiaAmy Elsner NEGOTIATION
Claire N IturbideAustraliaBernardo Dominic QUALIFIED
Maria Z MacleadArgentinaElwin Sharvill NEW
Misaki O SergiJapanAnna Fali NEW
Maria B SchemmerArgentinaElwin Sharvill NEW
Leon P SchemmerCanadaAmy Elsner RENEWAL
Jefferson T WieserIndiaAmy Elsner QUALIFIED
Aruna T GarufiAustraliaIvan Magalhaes UNQUALIFIED
Emily J TollnerJapanAmy Elsner NEGOTIATION
Murillo X FerenczItalyElwin Sharvill NEW
Francesco K InouyeUnited KingdomIvan Magalhaes PROPOSAL
Tony E TollnerBrazilAsiya Javayant NEGOTIATION
Jennifer S DilliardIndiaStephen Shaw RENEWAL
Costa W BriddickBrazilBernardo Dominic RENEWAL
Leon U FollerGermanyIvan Magalhaes NEW
Nicolas Q StensethCanadaAnna Fali PROPOSAL
Smith W MacleadFranceStephen Shaw NEW
Isabel N FollerSpainElwin Sharvill PROPOSAL
Faith Y DoeRussiaIvan Magalhaes NEGOTIATION
Johnson Q BowleyCanadaIoni Bowcher QUALIFIED
Salvatore I TollnerIndiaBernardo Dominic UNQUALIFIED
Murillo J GarufiBrazilIoni Bowcher NEGOTIATION
Wickens M DarakjyUnited KingdomBernardo Dominic NEW
Morrow Y ChuiSpainStephen Shaw 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>