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
Jennifer M AmigonRussiaElwin Sharvill NEGOTIATION
Ricardo D GlickIndiaXuxue Feng PROPOSAL
Murillo G CaudyRussiaXuxue Feng UNQUALIFIED
Morrow W GauchoFranceStephen Shaw RENEWAL
Kaitlin Y SchemmerAustraliaIoni Bowcher UNQUALIFIED
Smith C FerenczCanadaIvan Magalhaes UNQUALIFIED
Julie P MorascaBrazilXuxue Feng UNQUALIFIED
Costa L GillianFranceBernardo Dominic NEGOTIATION
Aditya S NestleJapanIoni Bowcher PROPOSAL
Misaki X FigeroaUnited KingdomAsiya Javayant RENEWAL
Leon G AlbaresArgentinaOnyama Limba NEW
Isabel O SlusarskiGermanyOnyama Limba NEGOTIATION
Darci F InouyeSpainXuxue Feng NEGOTIATION
Izzy C FigeroaFranceIoni Bowcher PROPOSAL
David A FerenczFranceBernardo Dominic RENEWAL
Ricardo L CaldareraUnited KingdomElwin Sharvill QUALIFIED
Adams M MarrierBrazilIoni Bowcher NEW
Greenwood O DoeArgentinaAsiya Javayant NEW
Stacey U KolmetzItalyElwin Sharvill RENEWAL
Ashley O DoeAustraliaBernardo Dominic UNQUALIFIED
David W DarakjySpainOnyama Limba NEW
Claire E GillianItalyIvan Magalhaes NEW
Aditya A KuskoArgentinaElwin Sharvill RENEWAL
Leon P RimJapanXuxue Feng NEW
Leon U GillianAustraliaBernardo Dominic NEGOTIATION
Morrow X SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Rodrigues X OstroskyIndiaIoni Bowcher UNQUALIFIED
Francesco M BologniaArgentinaElwin Sharvill NEW
Adams G GlickRussiaAnna Fali RENEWAL
Leon D InouyeIndiaIvan Magalhaes QUALIFIED
Munro S GillianFranceAsiya Javayant PROPOSAL
Jeanfrancois X SaylorsFranceStephen Shaw QUALIFIED
Octavia T TollnerJapanOnyama Limba RENEWAL
Wickens O FlosiBrazilAsiya Javayant QUALIFIED
Antonio D GillianAustraliaIvan Magalhaes NEW
Leja H MaletIndiaOnyama Limba NEGOTIATION
Juan O MarrierCanadaAsiya Javayant QUALIFIED
Murillo T RutaIndiaAmy Elsner NEGOTIATION
Cody V MaletRussiaAmy Elsner UNQUALIFIED
Maria I WaycottIndiaBernardo Dominic NEW
Misaki Y WieserSpainAnna Fali QUALIFIED
Aditya O FlosiAustraliaStephen Shaw QUALIFIED
Smith H ButtItalyOnyama Limba RENEWAL
Emily U CaldareraSpainAsiya Javayant NEGOTIATION
Clifford D GlickJapanAsiya Javayant NEGOTIATION
Jefferson H StensethCanadaStephen Shaw NEGOTIATION
Izzy O ChuiCanadaStephen Shaw NEW
Chavez M CaudyFranceStephen Shaw NEGOTIATION
Jones B VenereFranceOnyama Limba NEGOTIATION
Clifford T DoeSpainAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy K CaudyAustraliaOnyama Limba PROPOSAL
Emily B FlosiSpainBernardo Dominic RENEWAL
Emily E RoysterCanadaElwin Sharvill PROPOSAL
Isabel I BriddickFranceAsiya Javayant QUALIFIED
David W IturbideSpainAnna Fali PROPOSAL
Claire F OstroskyCanadaElwin Sharvill UNQUALIFIED
Aruna S StensethBrazilXuxue Feng PROPOSAL
Munro F BologniaItalyAnna Fali NEW
Murillo H MacleadIndiaIvan Magalhaes PROPOSAL
Kadeem J TollnerBrazilAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika V FigeroaArgentina2026-07-15Chemel, James L Cpa NEGOTIATION72Ivan Magalhaes
1001Aditya F CaudyArgentina2026-06-24Printing Dimensions PROPOSAL48Elwin Sharvill
1002Mayumi H AmigonRussia2026-07-04Dorl, James J Esq PROPOSAL90Ioni Bowcher
1003Munro O RoysterAustralia2026-07-01Rousseaux, Michael Esq NEW36Onyama Limba
1004Sinclair C StockhamRussia2026-06-27Dorl, James J Esq NEGOTIATION12Bernardo Dominic
1005James E CampainItaly2026-07-18Rousseaux, Michael Esq NEGOTIATION25Ivan Magalhaes
1006Sinclair V RoysterFrance2026-07-21Morlong Associates UNQUALIFIED93Ivan Magalhaes
1007Isabel W TollnerIndia2026-07-09Commercial Press RENEWAL38Bernardo Dominic
1008Costa C DilliardGermany2026-07-05Feiner Bros NEW45Onyama Limba
1009Smith G DilliardAustralia2026-07-11Rousseaux, Michael Esq NEGOTIATION42Stephen Shaw
1010Tony V WaycottGermany2026-06-24Feltz Printing Service UNQUALIFIED45Bernardo Dominic
1011Wickens X RulapaughAustralia2026-07-06Dorl, James J Esq RENEWAL80Anna Fali
1012Clifford O AlbaresAustralia2026-07-17Rangoni Of Florence UNQUALIFIED24Asiya Javayant
1013Costa P DilliardRussia2026-06-23Dorl, James J Esq PROPOSAL28Ioni Bowcher
1014Izzy A ButtUnited Kingdom2026-07-13Commercial Press RENEWAL18Ivan Magalhaes
1015Faith N FerenczAustralia2026-07-14Printing Dimensions QUALIFIED16Anna Fali
1016Maria I SchemmerAustralia2026-07-17Morlong Associates NEW65Onyama Limba
1017Antonio O ShinkoIndia2026-07-11Truhlar And Truhlar Attys UNQUALIFIED84Stephen Shaw
1018Emily Q InouyeIndia2026-07-16Morlong Associates PROPOSAL5Asiya Javayant
1019Isabel O VocelkaItaly2026-07-06Truhlar And Truhlar Attys UNQUALIFIED27Asiya Javayant
1020Morrow X WieserItaly2026-07-15King, Christopher A Esq NEW92Elwin Sharvill
1021Adams J ButtUnited Kingdom2026-07-21King, Christopher A Esq NEW83Elwin Sharvill
1022Salvatore G MaletCanada2026-06-25Feiner Bros RENEWAL5Onyama Limba
1023Faith N AmigonGermany2026-07-16Dorl, James J Esq NEGOTIATION43Xuxue Feng
1024Rodrigues M KuskoFrance2026-06-29Truhlar And Truhlar Attys UNQUALIFIED18Elwin Sharvill
1025David E IturbideIndia2026-07-04Rangoni Of Florence NEGOTIATION28Amy Elsner
1026Jefferson A FerenczArgentina2026-06-26Truhlar And Truhlar Attys RENEWAL1Bernardo Dominic
1027Jefferson F IturbideJapan2026-06-28Truhlar And Truhlar Attys RENEWAL11Bernardo Dominic
1028James R GauchoFrance2026-06-27Commercial Press NEW51Elwin Sharvill
1029Alejandro I ChuiItaly2026-06-25Dorl, James J Esq UNQUALIFIED10Ivan Magalhaes
1030Clifford A OldroydArgentina2026-07-20Rangoni Of Florence UNQUALIFIED2Asiya Javayant
1031Misaki P MacleadGermany2026-06-26Chapman, Ross E Esq QUALIFIED57Anna Fali
1032Silvio P AmigonJapan2026-06-27Feltz Printing Service NEGOTIATION24Anna Fali
1033Darci W SergiArgentina2026-07-18Chapman, Ross E Esq PROPOSAL99Elwin Sharvill
1034Darci N BologniaJapan2026-07-13Chemel, James L Cpa NEGOTIATION57Ioni Bowcher
1035Octavia O OldroydUnited Kingdom2026-07-11Buckley Miller Wright RENEWAL81Onyama Limba
1036Greenwood Q FigeroaBrazil2026-07-20Feltz Printing Service QUALIFIED0Onyama Limba
1037Kadeem D MarrierSpain2026-07-04Morlong Associates NEW13Xuxue Feng
1038Antonio M RutaItaly2026-07-02Buckley Miller Wright NEW44Amy Elsner
1039Maisha E IturbideFrance2026-07-20Buckley Miller Wright RENEWAL50Bernardo Dominic
1040Jennifer P BologniaSpain2026-07-16Feiner Bros QUALIFIED70Bernardo Dominic
1041Costa W DarakjyBrazil2026-07-08Buckley Miller Wright RENEWAL64Xuxue Feng
1042Kaitlin Y ButtFrance2026-07-07Rangoni Of Florence UNQUALIFIED18Anna Fali
1043Octavia R TollnerArgentina2026-07-19Chapman, Ross E Esq NEGOTIATION16Elwin Sharvill
1044Morrow T StensethBrazil2026-07-11Benton, John B Jr PROPOSAL70Ioni Bowcher
1045Clifford F StockhamArgentina2026-07-16Chanay, Jeffrey A Esq NEW67Ivan Magalhaes
1046Ivar L DoeArgentina2026-07-11Dorl, James J Esq UNQUALIFIED26Onyama Limba
1047Leon K StensethBrazil2026-07-12Chapman, Ross E Esq NEW8Stephen Shaw
1048Leon D DilliardArgentina2026-07-16Feltz Printing Service RENEWAL80Stephen Shaw
1049Jennifer K RoysterGermany2026-07-10Rousseaux, Michael Esq RENEWAL55Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Izzy A VenereArgentinaBernardo Dominic PROPOSAL
Julie W NickaCanadaBernardo Dominic PROPOSAL
Cody C DilliardArgentinaOnyama Limba NEW
Clifford V OldroydJapanIoni Bowcher NEGOTIATION
Aruna T MarrierItalyIvan Magalhaes NEGOTIATION
Clifford W KuskoArgentinaStephen Shaw UNQUALIFIED
Johnson N PerinCanadaXuxue Feng RENEWAL
Ivar S OldroydBrazilStephen Shaw PROPOSAL
Jennifer H WaycottCanadaIoni Bowcher UNQUALIFIED
Julie L VenereAustraliaXuxue Feng UNQUALIFIED
Ashley A BowleyArgentinaXuxue Feng NEW
Costa U WhobreyRussiaOnyama Limba NEGOTIATION
Misaki I GlickUnited KingdomElwin Sharvill RENEWAL
Emily N TollnerCanadaIvan Magalhaes UNQUALIFIED
Costa W WaycottItalyBernardo Dominic NEGOTIATION
Morrow X StensethCanadaXuxue Feng NEGOTIATION
Leja B MorascaFranceOnyama Limba UNQUALIFIED
Costa X WaycottUnited KingdomAnna Fali NEGOTIATION
Costa C VenereCanadaOnyama Limba RENEWAL
Leja V BriddickUnited KingdomOnyama Limba NEGOTIATION
David M SergiCanadaAsiya Javayant UNQUALIFIED
Mujtaba W WhobreyBrazilAsiya Javayant NEGOTIATION
Salvatore U KuskoCanadaStephen Shaw NEGOTIATION
Izzy W KuskoUnited KingdomIvan Magalhaes NEW
Chavez A VenereIndiaStephen Shaw UNQUALIFIED
Julie C DarakjyCanadaXuxue Feng UNQUALIFIED
Aruna B OstroskyIndiaIoni Bowcher NEW
Morrow B SlusarskiRussiaAnna Fali RENEWAL
Mayumi B ChuiFranceAsiya Javayant UNQUALIFIED
Jeanfrancois O VocelkaBrazilElwin Sharvill QUALIFIED
Morrow R VocelkaFranceAnna Fali NEW
Misaki R WieserFranceOnyama Limba NEGOTIATION
Morrow O WieserGermanyAnna Fali PROPOSAL
David V MaletGermanyAmy Elsner NEW
Silvio M SlusarskiAustraliaOnyama Limba NEGOTIATION
Munro S GillianArgentinaStephen Shaw NEGOTIATION
Julie Q SlusarskiGermanyAmy Elsner UNQUALIFIED
Johnson O NickaIndiaXuxue Feng UNQUALIFIED
Jefferson T AmigonRussiaAnna Fali UNQUALIFIED
Morrow P SlusarskiSpainBernardo Dominic RENEWAL
Isabel Z MaletIndiaAsiya Javayant NEGOTIATION
Greenwood F FigeroaFranceElwin Sharvill NEW
Aruna E BriddickSpainIvan Magalhaes NEGOTIATION
Maisha Z CampainRussiaAmy Elsner NEGOTIATION
Octavia I ShinkoJapanXuxue Feng RENEWAL
Mayumi C BowleyFranceXuxue Feng NEW
Francesco V SlusarskiGermanyIoni Bowcher RENEWAL
Faith Z InouyeSpainStephen Shaw QUALIFIED
Clifford S SlusarskiArgentinaIvan Magalhaes PROPOSAL
Rodrigues U PerinArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Adams S Chui
Jennifer V Flosi
Salvatore X Kolmetz
Silvio L Caudy
Stacey R Shinko
Francesco W Tollner
Chavez A Amigon
Munro U Garufi
Isabel X Sergi
Maria I Vocelka
Julie S Briddick
Cody M Ostrosky
Chavez Y Darakjy
Smith D Albares
Julie Q Ferencz
Alejandro F Vocelka
Murillo M Tollner
Nicolas W Iturbide
Kadeem R Albares
Clifford Q Kolmetz
Maria D Sergi
Johnson T Stockham
Ivar Z Glick
Leon B Stenseth
Alejandro C Maclead
Nicolas J Stenseth
Johnson H Amigon
Octavia K Shinko
Munro M Glick
Ricardo R Bolognia
Francesco L Wieser
Mayumi O Sergi
Kadeem W Stockham
Wickens L Marrier
Costa D Dilliard
Aditya K Darakjy
Nicolas G Royster
Antonio F Royster
Ashley T Gaucho
Stacey U Foller
Aditya G Iturbide
Wickens Y Marrier
Stacey A Gaucho
James D Sergi
Jennifer A Perin
Deepesh I Rim
Rodrigues U Stenseth
Misaki C Gillian
Darci T Kusko
Deepesh C Whobrey
IdCountryDate
1000Argentina2026-07-02
1001Brazil2026-06-26
1002Russia2026-07-18
1003Russia2026-07-18
1004Germany2026-07-18
1005India2026-06-25
1006Russia2026-07-18
1007India2026-07-11
1008Russia2026-07-06
1009Spain2026-07-03
1010Japan2026-07-04
1011Brazil2026-07-04
1012Argentina2026-07-07
1013Spain2026-07-20
1014Brazil2026-07-01
1015Brazil2026-06-24
1016India2026-06-24
1017United Kingdom2026-07-10
1018Italy2026-07-06
1019Germany2026-06-29
1020Australia2026-06-24
1021Spain2026-06-25
1022Canada2026-06-30
1023France2026-07-11
1024Canada2026-06-24
1025Spain2026-07-06
1026Russia2026-07-09
1027India2026-07-02
1028Argentina2026-06-28
1029Russia2026-07-07
1030Spain2026-07-17
1031Russia2026-07-04
1032Russia2026-07-02
1033Germany2026-06-24
1034Japan2026-07-07
1035Argentina2026-07-02
1036Japan2026-07-18
1037United Kingdom2026-07-14
1038United Kingdom2026-06-30
1039Australia2026-06-29
1040Italy2026-07-18
1041Brazil2026-07-08
1042Argentina2026-06-28
1043United Kingdom2026-06-29
1044France2026-07-14
1045France2026-07-05
1046United Kingdom2026-07-14
1047Germany2026-07-21
1048Spain2026-07-22
1049Japan2026-07-18

On-Demand Data

NameIdCountryDate
Leja E Malet1000Germany2026-06-29
Johnson W Nestle1001Italy2026-06-26
Aditya D Stockham1002Japan2026-06-27
Claire L Slusarski1003Brazil2026-06-27
Tony N Amigon1004Spain2026-07-13
Rodrigues T Amigon1005United Kingdom2026-07-21
Jennifer W Stockham1006Argentina2026-07-12
Faith U Royster1007Spain2026-07-14
Morrow X Dilliard1008Japan2026-06-28
Maisha S Schemmer1009Germany2026-06-26
Claire H Malet1010Brazil2026-07-16
Tony M Caudy1011Germany2026-07-04
Silvio R Doe1012India2026-07-08
Jeanfrancois N Albares1013Canada2026-07-16
Kadeem Q Marrier1014United Kingdom2026-07-19
Alejandro S Waycott1015India2026-07-11
Adams V Oldroyd1016Italy2026-07-07
Maisha C Saylors1017Brazil2026-07-06
Jennifer Z Morasca1018Brazil2026-07-04
Smith V Butt1019Italy2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya A StensethFranceAmy Elsner RENEWAL
Aika U CaudyUnited KingdomIoni Bowcher QUALIFIED
Jennifer N SaylorsArgentinaStephen Shaw NEGOTIATION
Ricardo S PaprockiArgentinaIvan Magalhaes PROPOSAL
Misaki K GauchoFranceAnna Fali NEGOTIATION
Salvatore I InouyeAustraliaAnna Fali NEGOTIATION
Isabel T MaletSpainBernardo Dominic NEGOTIATION
Chavez M FerenczAustraliaAsiya Javayant RENEWAL
Julie W WhobreyRussiaIvan Magalhaes QUALIFIED
Stacey K ShinkoFranceIoni Bowcher QUALIFIED
Clifford U KuskoItalyAnna Fali QUALIFIED
Alejandro F SergiGermanyStephen Shaw NEGOTIATION
Rodrigues N ShinkoSpainXuxue Feng PROPOSAL
Jennifer T ShinkoCanadaIoni Bowcher UNQUALIFIED
Deepesh R FollerBrazilAnna Fali NEGOTIATION
Clifford Z RulapaughSpainAmy Elsner QUALIFIED
Misaki L GlickItalyIvan Magalhaes NEW
Johnson C WhobreyIndiaAsiya Javayant QUALIFIED
Nicolas Z VocelkaCanadaIoni Bowcher NEGOTIATION
Jones B DoeBrazilAmy Elsner PROPOSAL
Alejandro Z AlbaresBrazilBernardo Dominic PROPOSAL
Alejandro N IturbideGermanyAnna Fali UNQUALIFIED
Rodrigues Z WieserRussiaIoni Bowcher NEGOTIATION
Faith A GillianGermanyIvan Magalhaes NEGOTIATION
Rodrigues U WhobreyGermanyElwin Sharvill UNQUALIFIED
Octavia K RoysterAustraliaStephen Shaw NEGOTIATION
Isabel E KolmetzArgentinaElwin Sharvill QUALIFIED
Emily C VenereBrazilAsiya Javayant PROPOSAL
Jeanfrancois F DoeJapanBernardo Dominic NEGOTIATION
Ivar T SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Maisha I StockhamItalyXuxue Feng UNQUALIFIED
Jones Q CaudyBrazilIoni Bowcher QUALIFIED
Maria H BriddickCanadaOnyama Limba RENEWAL
Munro S TollnerIndiaOnyama Limba UNQUALIFIED
Emily R PerinUnited KingdomStephen Shaw RENEWAL
Morrow I BologniaCanadaElwin Sharvill PROPOSAL
James M BologniaCanadaIoni Bowcher NEW
Francesco F MaletItalyOnyama Limba NEGOTIATION
David F BriddickAustraliaStephen Shaw NEGOTIATION
Juan W RutaGermanyElwin Sharvill 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>