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 M CampainIndiaAnna Fali RENEWAL
Sinclair Q FerenczBrazilElwin Sharvill QUALIFIED
Silvio W BowleyFranceAsiya Javayant PROPOSAL
Ashley Q RutaGermanyXuxue Feng PROPOSAL
David Q BologniaRussiaXuxue Feng UNQUALIFIED
Maria R IturbideUnited KingdomAmy Elsner NEW
David U GlickFranceIvan Magalhaes NEGOTIATION
Maisha W NickaArgentinaElwin Sharvill NEW
Claire M KolmetzArgentinaBernardo Dominic QUALIFIED
Jeanfrancois X GlickBrazilAnna Fali NEGOTIATION
Stacey A FollerItalyBernardo Dominic QUALIFIED
Kaitlin E ChuiCanadaStephen Shaw NEW
Clifford R NestleJapanAnna Fali RENEWAL
Aditya K VenereBrazilXuxue Feng UNQUALIFIED
Wickens A KuskoCanadaAnna Fali PROPOSAL
Silvio K RimFranceStephen Shaw RENEWAL
Isabel W WaycottArgentinaAmy Elsner NEGOTIATION
Aditya Y SaylorsCanadaStephen Shaw NEW
Ricardo R SergiGermanyXuxue Feng QUALIFIED
Isabel Q DoeCanadaIvan Magalhaes PROPOSAL
Morrow X FlosiArgentinaIoni Bowcher PROPOSAL
Clifford H NickaItalyElwin Sharvill UNQUALIFIED
Salvatore D AlbaresGermanyElwin Sharvill PROPOSAL
Aruna J OstroskySpainStephen Shaw NEGOTIATION
Jeanfrancois U RoysterJapanBernardo Dominic UNQUALIFIED
Maria T SlusarskiItalyAmy Elsner RENEWAL
Leon M DoeItalyAsiya Javayant NEW
Ashley H WieserCanadaIoni Bowcher QUALIFIED
Arvin X GarufiItalyIvan Magalhaes NEGOTIATION
Clifford B AmigonJapanXuxue Feng NEW
Mujtaba R BowleyUnited KingdomIvan Magalhaes NEGOTIATION
Murillo M DarakjyCanadaIvan Magalhaes PROPOSAL
Leon W VocelkaIndiaElwin Sharvill NEGOTIATION
Smith N GauchoRussiaIvan Magalhaes NEGOTIATION
Emily V InouyeGermanyOnyama Limba PROPOSAL
Morrow J MaletFranceAnna Fali NEW
Murillo E RimArgentinaStephen Shaw QUALIFIED
Izzy U VocelkaJapanAnna Fali NEW
Kaitlin G VocelkaRussiaAsiya Javayant UNQUALIFIED
Johnson U VocelkaGermanyAnna Fali NEW
Nicolas Z CampainBrazilElwin Sharvill NEW
Stacey K GarufiUnited KingdomStephen Shaw NEGOTIATION
Rodrigues Q PerinSpainStephen Shaw NEGOTIATION
Leon J DarakjyRussiaXuxue Feng RENEWAL
Greenwood X IturbideItalyStephen Shaw PROPOSAL
Claire L FollerSpainAmy Elsner UNQUALIFIED
Claire N StensethItalyAsiya Javayant UNQUALIFIED
Julie U DoeJapanAnna Fali PROPOSAL
Jeanfrancois U DarakjySpainAsiya Javayant NEW
Murillo A FerenczIndiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya B DilliardSpainElwin Sharvill NEW
Darci Q CaudyRussiaBernardo Dominic NEGOTIATION
Munro B WhobreyJapanAmy Elsner NEGOTIATION
Aruna P FerenczCanadaOnyama Limba NEW
Nicolas Q DoeCanadaOnyama Limba PROPOSAL
Sinclair S RulapaughRussiaBernardo Dominic QUALIFIED
Juan Q DoeSpainStephen Shaw QUALIFIED
Aika F CaldareraGermanyAnna Fali PROPOSAL
Leja J SlusarskiIndiaBernardo Dominic NEW
Murillo D PaprockiIndiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel M ButtUnited Kingdom2026-06-27Chapman, Ross E Esq RENEWAL80Stephen Shaw
1001Aditya K BowleySpain2026-07-21Morlong Associates NEGOTIATION14Elwin Sharvill
1002Jeanfrancois V GlickItaly2026-07-20King, Christopher A Esq PROPOSAL69Bernardo Dominic
1003Mujtaba P RimGermany2026-07-20Commercial Press UNQUALIFIED76Elwin Sharvill
1004Misaki R MaletAustralia2026-07-07Chapman, Ross E Esq NEGOTIATION44Asiya Javayant
1005Murillo A ChuiBrazil2026-07-06Commercial Press PROPOSAL11Onyama Limba
1006Faith O BriddickFrance2026-07-12Benton, John B Jr NEGOTIATION84Ioni Bowcher
1007Aditya D GlickUnited Kingdom2026-07-13Feltz Printing Service QUALIFIED21Xuxue Feng
1008James X GauchoFrance2026-07-17Printing Dimensions NEW81Amy Elsner
1009Sinclair Z BowleyIndia2026-07-16Chanay, Jeffrey A Esq PROPOSAL25Onyama Limba
1010Deepesh M StensethCanada2026-07-24Printing Dimensions RENEWAL40Anna Fali
1011Munro J NestleIndia2026-07-01Chapman, Ross E Esq RENEWAL43Amy Elsner
1012Juan I BologniaSpain2026-07-19Rousseaux, Michael Esq RENEWAL43Ioni Bowcher
1013Aika N GillianArgentina2026-07-17Chanay, Jeffrey A Esq RENEWAL2Elwin Sharvill
1014Mujtaba M MaletIndia2026-07-21Benton, John B Jr QUALIFIED77Xuxue Feng
1015Greenwood M BowleyFrance2026-07-01Rousseaux, Michael Esq NEGOTIATION9Asiya Javayant
1016Morrow U BowleyCanada2026-07-02King, Christopher A Esq NEW21Anna Fali
1017Jennifer E DilliardArgentina2026-07-10Dorl, James J Esq QUALIFIED3Amy Elsner
1018Clifford U CaldareraBrazil2026-07-15Morlong Associates RENEWAL54Anna Fali
1019David F SaylorsSpain2026-07-01Dorl, James J Esq QUALIFIED32Elwin Sharvill
1020Ivar K AmigonGermany2026-07-17King, Christopher A Esq QUALIFIED62Stephen Shaw
1021Julie K SlusarskiJapan2026-06-27Rangoni Of Florence UNQUALIFIED16Asiya Javayant
1022Johnson S GarufiCanada2026-06-27Commercial Press NEGOTIATION10Stephen Shaw
1023Tony T RoysterIndia2026-06-29Buckley Miller Wright RENEWAL36Ivan Magalhaes
1024Tony F RutaBrazil2026-07-10Commercial Press PROPOSAL75Elwin Sharvill
1025Deepesh J SlusarskiBrazil2026-07-07Truhlar And Truhlar Attys NEW95Onyama Limba
1026Wickens J NestleRussia2026-07-12Morlong Associates QUALIFIED0Elwin Sharvill
1027Misaki R GlickJapan2026-07-21Rangoni Of Florence NEGOTIATION36Xuxue Feng
1028Kaitlin A MorascaUnited Kingdom2026-07-20Commercial Press QUALIFIED79Elwin Sharvill
1029Aika W FigeroaFrance2026-07-23Rousseaux, Michael Esq PROPOSAL40Ioni Bowcher
1030Smith Q CaudyJapan2026-07-05Chapman, Ross E Esq UNQUALIFIED16Anna Fali
1031Leon I ChuiUnited Kingdom2026-07-10King, Christopher A Esq NEW82Ivan Magalhaes
1032Jennifer A RimItaly2026-07-22Feiner Bros NEW85Bernardo Dominic
1033Darci P StensethUnited Kingdom2026-07-01Commercial Press NEW69Amy Elsner
1034Francesco N SergiBrazil2026-07-22King, Christopher A Esq PROPOSAL3Onyama Limba
1035Emily H ButtFrance2026-06-28Feltz Printing Service PROPOSAL2Elwin Sharvill
1036Murillo R FlosiBrazil2026-07-08King, Christopher A Esq PROPOSAL74Bernardo Dominic
1037Isabel R RoysterFrance2026-07-01Printing Dimensions NEGOTIATION56Onyama Limba
1038Aika K MacleadRussia2026-07-03Morlong Associates NEGOTIATION15Amy Elsner
1039Misaki N MacleadAustralia2026-06-29Chemel, James L Cpa PROPOSAL78Ivan Magalhaes
1040Adams D MacleadRussia2026-07-21Dorl, James J Esq PROPOSAL24Stephen Shaw
1041Wickens E SchemmerCanada2026-07-07Feiner Bros PROPOSAL55Onyama Limba
1042Maisha Q MorascaArgentina2026-06-28Chemel, James L Cpa QUALIFIED24Anna Fali
1043Aditya R KuskoFrance2026-07-24King, Christopher A Esq PROPOSAL33Ivan Magalhaes
1044Kaitlin Q InouyeBrazil2026-07-12Commercial Press NEGOTIATION24Anna Fali
1045Darci Q MarrierItaly2026-07-23King, Christopher A Esq NEW61Elwin Sharvill
1046Smith D WieserArgentina2026-07-15Morlong Associates RENEWAL96Bernardo Dominic
1047James Z ChuiFrance2026-06-29Commercial Press NEW95Xuxue Feng
1048Sinclair J MarrierAustralia2026-07-15Dorl, James J Esq PROPOSAL59Stephen Shaw
1049Misaki G MaletAustralia2026-07-04Rangoni Of Florence NEGOTIATION57Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kadeem X KuskoArgentinaAmy Elsner NEGOTIATION
Smith N KuskoSpainStephen Shaw QUALIFIED
Chavez Y RoysterBrazilStephen Shaw NEW
Salvatore H ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Chavez W DilliardJapanAsiya Javayant NEW
Sinclair T PerinGermanyStephen Shaw PROPOSAL
Kaitlin X TollnerArgentinaBernardo Dominic PROPOSAL
Juan P BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro I PaprockiRussiaAmy Elsner NEW
Sinclair Z RoysterAustraliaBernardo Dominic QUALIFIED
Jeanfrancois W StensethGermanyAsiya Javayant PROPOSAL
Julie Y ButtRussiaStephen Shaw NEGOTIATION
Aditya H DarakjyItalyIvan Magalhaes UNQUALIFIED
Octavia Q StensethGermanyAnna Fali UNQUALIFIED
Wickens R MacleadRussiaAsiya Javayant RENEWAL
Adams L NestleRussiaAnna Fali NEW
Deepesh Z TollnerAustraliaBernardo Dominic QUALIFIED
Smith H CampainItalyAmy Elsner QUALIFIED
Mayumi R DilliardFranceStephen Shaw NEGOTIATION
Ivar S DoeFranceIoni Bowcher NEGOTIATION
Stacey O FollerItalyAmy Elsner NEGOTIATION
Jones C MorascaArgentinaIoni Bowcher PROPOSAL
Maria T MarrierRussiaXuxue Feng UNQUALIFIED
Antonio G NickaSpainXuxue Feng NEGOTIATION
Munro Q GillianFranceAsiya Javayant PROPOSAL
Aditya H PaprockiArgentinaBernardo Dominic RENEWAL
Antonio V SlusarskiJapanAsiya Javayant NEGOTIATION
Ashley A MorascaRussiaAmy Elsner UNQUALIFIED
Ricardo Q WieserUnited KingdomAsiya Javayant PROPOSAL
Antonio L MorascaCanadaStephen Shaw NEW
Faith N RulapaughUnited KingdomStephen Shaw QUALIFIED
Maria H FollerUnited KingdomStephen Shaw QUALIFIED
Clifford L SlusarskiRussiaAsiya Javayant PROPOSAL
Leon N RulapaughIndiaAsiya Javayant NEW
Alejandro I CaudyItalyAnna Fali NEW
Johnson L RutaItalyStephen Shaw NEW
Ricardo N KolmetzArgentinaAnna Fali UNQUALIFIED
Clifford D IturbideCanadaAnna Fali PROPOSAL
Misaki M VenereItalyAnna Fali UNQUALIFIED
Juan E CampainGermanyAnna Fali RENEWAL
Misaki G OldroydRussiaStephen Shaw QUALIFIED
Tony H ButtFranceBernardo Dominic NEW
Cody V AlbaresSpainAsiya Javayant UNQUALIFIED
Emily G WaycottRussiaBernardo Dominic PROPOSAL
Murillo P GillianGermanyXuxue Feng UNQUALIFIED
Julie L StensethSpainElwin Sharvill PROPOSAL
Octavia D WieserJapanIvan Magalhaes NEGOTIATION
Arvin B VocelkaBrazilStephen Shaw PROPOSAL
Cody E WaycottJapanBernardo Dominic NEW
Misaki K WaycottCanadaXuxue Feng UNQUALIFIED
Frozen Columns
Name
James B Saylors
Adams D Caudy
Aika Q Kolmetz
Antonio V Whobrey
Maria E Saylors
Francesco N Shinko
Morrow K Morasca
Johnson F Rulapaugh
Misaki N Vocelka
Morrow J Kolmetz
Francesco H Poquette
Antonio V Shinko
Sinclair N Figeroa
Leon O Inouye
Tony X Butt
Izzy I Paprocki
Leon S Caudy
Ivar Q Bowley
Francesco N Foller
Greenwood L Paprocki
Jennifer X Figeroa
Octavia F Caudy
Kadeem I Ostrosky
Maisha M Rim
Izzy Q Poquette
Aditya F Caldarera
Costa W Amigon
Chavez O Wieser
Stacey A Flosi
James W Kolmetz
Mayumi R Kolmetz
Costa K Ruta
Morrow R Sergi
Morrow C Glick
Aruna P Saylors
Arvin G Ruta
Johnson A Gillian
Mujtaba Z Morasca
Kadeem N Slusarski
James I Amigon
Leon R Whobrey
Adams P Sergi
Isabel F Stenseth
Ricardo K Wieser
Aruna C Ruta
Ricardo Q Foller
Stacey L Royster
Juan A Stockham
Jeanfrancois C Malet
Greenwood N Garufi
IdCountryDate
1000Australia2026-07-20
1001Germany2026-07-10
1002Canada2026-07-03
1003Brazil2026-06-26
1004Argentina2026-07-24
1005Japan2026-07-17
1006Brazil2026-07-24
1007Russia2026-06-30
1008Russia2026-07-12
1009Japan2026-07-15
1010India2026-07-05
1011Australia2026-07-10
1012Japan2026-07-19
1013India2026-07-08
1014France2026-07-09
1015Argentina2026-07-01
1016United Kingdom2026-07-22
1017United Kingdom2026-07-17
1018Italy2026-06-28
1019United Kingdom2026-06-28
1020India2026-07-17
1021Russia2026-07-18
1022Japan2026-07-07
1023Germany2026-07-10
1024United Kingdom2026-07-09
1025Spain2026-07-18
1026Russia2026-07-01
1027Australia2026-07-12
1028Italy2026-06-28
1029Germany2026-07-12
1030Australia2026-07-10
1031Brazil2026-06-30
1032Australia2026-07-12
1033Australia2026-07-15
1034India2026-07-11
1035Germany2026-07-12
1036Russia2026-07-05
1037Australia2026-06-26
1038Italy2026-07-01
1039France2026-07-18
1040Italy2026-07-22
1041Italy2026-07-04
1042United Kingdom2026-06-29
1043Russia2026-07-20
1044Japan2026-07-19
1045India2026-07-03
1046India2026-07-13
1047Brazil2026-07-17
1048Spain2026-07-01
1049Russia2026-06-26

On-Demand Data

NameIdCountryDate
Aruna K Figeroa1000India2026-07-19
Cody F Vocelka1001Italy2026-07-05
Salvatore N Ruta1002Argentina2026-07-10
Julie A Ostrosky1003Japan2026-06-27
Rodrigues A Schemmer1004United Kingdom2026-07-24
Aruna G Nestle1005India2026-07-18
Ivar P Shinko1006India2026-07-18
Adams P Malet1007United Kingdom2026-07-08
Emily X Chui1008France2026-07-16
Claire M Campain1009Australia2026-07-21
Munro L Butt1010France2026-06-26
Leon R Inouye1011Canada2026-07-01
Francesco M Briddick1012Italy2026-06-28
Rodrigues Z Wieser1013Spain2026-07-17
Juan L Bowley1014Japan2026-07-12
Leon K Caudy1015Japan2026-07-11
James K Glick1016France2026-06-26
Juan K Oldroyd1017United Kingdom2026-07-22
Isabel U Gillian1018India2026-06-30
Wickens X Rim1019Argentina2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams A SlusarskiFranceOnyama Limba UNQUALIFIED
Cody C PerinGermanyBernardo Dominic PROPOSAL
James E DoeFranceAmy Elsner NEW
David S KolmetzUnited KingdomIvan Magalhaes RENEWAL
Aruna J CaudyBrazilStephen Shaw NEW
Wickens R PoquetteGermanyAnna Fali NEW
Ashley O ButtGermanyElwin Sharvill PROPOSAL
Faith S RulapaughIndiaXuxue Feng QUALIFIED
Kadeem J FlosiArgentinaElwin Sharvill NEW
Clifford G RimBrazilAmy Elsner NEW
David O NestleUnited KingdomAnna Fali QUALIFIED
Leja S StensethSpainXuxue Feng QUALIFIED
Tony A PoquetteGermanyAnna Fali NEGOTIATION
Francesco J TollnerItalyIoni Bowcher UNQUALIFIED
Arvin F MacleadUnited KingdomStephen Shaw NEGOTIATION
Murillo N StockhamUnited KingdomIoni Bowcher RENEWAL
Stacey E AlbaresIndiaOnyama Limba PROPOSAL
Chavez G GillianJapanElwin Sharvill QUALIFIED
James G NestleRussiaStephen Shaw NEW
Rodrigues M OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Maria O SchemmerBrazilStephen Shaw NEGOTIATION
Izzy E TollnerUnited KingdomAnna Fali RENEWAL
Mujtaba A KuskoItalyElwin Sharvill RENEWAL
Jennifer U BowleyRussiaIoni Bowcher UNQUALIFIED
Alejandro C ChuiIndiaAmy Elsner PROPOSAL
Silvio A ShinkoItalyAnna Fali RENEWAL
Mayumi P FlosiFranceIoni Bowcher NEW
Darci V StensethRussiaXuxue Feng QUALIFIED
Ashley Q RutaIndiaOnyama Limba RENEWAL
Silvio E RutaIndiaAnna Fali UNQUALIFIED
Aruna K DoeUnited KingdomElwin Sharvill QUALIFIED
Nicolas U InouyeBrazilBernardo Dominic RENEWAL
Adams N SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Johnson V PerinArgentinaOnyama Limba RENEWAL
Misaki S WhobreyGermanyOnyama Limba NEW
Nicolas O MorascaGermanyOnyama Limba RENEWAL
Salvatore N PerinGermanyOnyama Limba RENEWAL
Kadeem S KolmetzSpainAnna Fali PROPOSAL
Francesco S OldroydRussiaAsiya Javayant RENEWAL
Adams W FerenczIndiaIoni Bowcher 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>