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
Munro Z DoeArgentinaIvan Magalhaes UNQUALIFIED
Clifford W FigeroaArgentinaIoni Bowcher NEGOTIATION
Tony A NickaIndiaBernardo Dominic NEW
Rodrigues J OstroskyJapanAmy Elsner RENEWAL
Wickens G ShinkoFranceAmy Elsner QUALIFIED
Cody H BriddickItalyIoni Bowcher RENEWAL
Isabel T RutaBrazilBernardo Dominic UNQUALIFIED
Rodrigues X PaprockiGermanyElwin Sharvill QUALIFIED
Leja F StensethUnited KingdomIoni Bowcher UNQUALIFIED
Misaki Q WhobreyRussiaAnna Fali NEW
Johnson P PerinGermanyIoni Bowcher QUALIFIED
David U OldroydItalyIvan Magalhaes UNQUALIFIED
Ricardo W KolmetzSpainAmy Elsner NEGOTIATION
Isabel D SlusarskiFranceAmy Elsner PROPOSAL
Emily Y NickaFranceOnyama Limba RENEWAL
Morrow D SlusarskiSpainElwin Sharvill NEGOTIATION
Adams N AmigonAustraliaXuxue Feng NEW
Salvatore N DarakjyArgentinaIoni Bowcher NEW
Izzy G MaletSpainAmy Elsner PROPOSAL
Nicolas O ShinkoAustraliaIvan Magalhaes QUALIFIED
Nicolas O RutaIndiaElwin Sharvill NEGOTIATION
David G FerenczUnited KingdomIoni Bowcher NEGOTIATION
Chavez M VenereArgentinaAmy Elsner NEGOTIATION
Misaki V InouyeGermanyAsiya Javayant PROPOSAL
Ivar Z BowleyAustraliaIvan Magalhaes PROPOSAL
Octavia V FlosiBrazilStephen Shaw QUALIFIED
Claire L WieserArgentinaIvan Magalhaes QUALIFIED
Clifford Q CampainIndiaAmy Elsner QUALIFIED
Kadeem L DoeBrazilAnna Fali RENEWAL
Ivar F FigeroaFranceIvan Magalhaes RENEWAL
Rodrigues M WieserCanadaBernardo Dominic UNQUALIFIED
Munro P SchemmerJapanIvan Magalhaes RENEWAL
Juan I MarrierIndiaElwin Sharvill RENEWAL
Ricardo Q AmigonCanadaAnna Fali RENEWAL
Julie B ChuiRussiaElwin Sharvill UNQUALIFIED
Cody U DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Tony Y AlbaresCanadaBernardo Dominic NEW
Alejandro Y MarrierCanadaAnna Fali UNQUALIFIED
Clifford F AmigonSpainIoni Bowcher QUALIFIED
Adams X SlusarskiBrazilIvan Magalhaes NEW
Maisha W RutaAustraliaAmy Elsner UNQUALIFIED
Rodrigues B MorascaCanadaElwin Sharvill NEGOTIATION
Juan N NestleAustraliaAsiya Javayant RENEWAL
Julie F CaudyGermanyOnyama Limba UNQUALIFIED
Deepesh N RulapaughItalyStephen Shaw RENEWAL
Aruna V CaudyJapanStephen Shaw QUALIFIED
Morrow D GarufiAustraliaStephen Shaw UNQUALIFIED
Isabel E MarrierBrazilAnna Fali PROPOSAL
Isabel B FigeroaCanadaOnyama Limba NEW
Juan H DarakjyRussiaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Claire M MarrierJapanBernardo Dominic NEGOTIATION
Darci C MacleadRussiaAnna Fali PROPOSAL
Aika H KuskoUnited KingdomAsiya Javayant QUALIFIED
Clifford I MaletRussiaAmy Elsner NEGOTIATION
Faith H FigeroaFranceAsiya Javayant PROPOSAL
James G MarrierArgentinaStephen Shaw PROPOSAL
Jefferson X TollnerGermanyOnyama Limba UNQUALIFIED
Costa D GillianItalyBernardo Dominic PROPOSAL
David S WieserGermanyOnyama Limba UNQUALIFIED
Morrow W MarrierIndiaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci V OldroydCanada2026-06-09Dorl, James J Esq PROPOSAL71Ivan Magalhaes
1001Murillo O CaldareraItaly2026-06-16King, Christopher A Esq RENEWAL50Stephen Shaw
1002Cody P NickaIndia2026-07-04Rangoni Of Florence RENEWAL59Amy Elsner
1003James Q CaldareraJapan2026-06-14Chemel, James L Cpa UNQUALIFIED5Ivan Magalhaes
1004Octavia S CaldareraIndia2026-07-03Morlong Associates PROPOSAL90Ivan Magalhaes
1005Izzy S DoeSpain2026-06-24King, Christopher A Esq UNQUALIFIED18Xuxue Feng
1006Maria D PerinCanada2026-06-30Morlong Associates QUALIFIED15Xuxue Feng
1007Salvatore J MaletSpain2026-06-27Chapman, Ross E Esq QUALIFIED55Xuxue Feng
1008Isabel K RutaItaly2026-06-15Dorl, James J Esq PROPOSAL28Asiya Javayant
1009Jefferson P BologniaFrance2026-06-19Morlong Associates RENEWAL74Xuxue Feng
1010Smith C SlusarskiAustralia2026-07-04King, Christopher A Esq RENEWAL52Ioni Bowcher
1011Salvatore M RimItaly2026-06-30Feltz Printing Service NEGOTIATION8Elwin Sharvill
1012Kaitlin O ChuiBrazil2026-06-11King, Christopher A Esq UNQUALIFIED55Amy Elsner
1013Johnson K RutaItaly2026-06-07King, Christopher A Esq RENEWAL72Elwin Sharvill
1014Francesco Q FerenczBrazil2026-06-13Chanay, Jeffrey A Esq NEGOTIATION99Xuxue Feng
1015Antonio L NestleFrance2026-06-10Feiner Bros RENEWAL69Amy Elsner
1016Leja Y RutaIndia2026-06-20Commercial Press NEW20Amy Elsner
1017James N NestleItaly2026-06-26Feiner Bros NEGOTIATION99Elwin Sharvill
1018Jones I GlickUnited Kingdom2026-07-05Buckley Miller Wright NEGOTIATION56Asiya Javayant
1019Francesco D GillianItaly2026-06-30Feltz Printing Service UNQUALIFIED55Amy Elsner
1020Rodrigues G IturbideGermany2026-06-11Printing Dimensions NEW20Anna Fali
1021Kadeem T TollnerSpain2026-06-20Printing Dimensions PROPOSAL21Onyama Limba
1022Smith R WaycottBrazil2026-06-08Commercial Press QUALIFIED83Stephen Shaw
1023Morrow D FerenczItaly2026-07-05Benton, John B Jr UNQUALIFIED56Amy Elsner
1024Ivar N FlosiAustralia2026-06-22Feiner Bros QUALIFIED24Ivan Magalhaes
1025Aika C RulapaughBrazil2026-06-11Buckley Miller Wright QUALIFIED3Onyama Limba
1026Jefferson L PerinGermany2026-06-07Commercial Press NEGOTIATION12Asiya Javayant
1027Stacey Y KuskoCanada2026-06-29Dorl, James J Esq QUALIFIED97Ioni Bowcher
1028Murillo E NestleRussia2026-07-05Truhlar And Truhlar Attys QUALIFIED92Asiya Javayant
1029Rodrigues G RoysterSpain2026-06-30Chanay, Jeffrey A Esq RENEWAL72Stephen Shaw
1030Leja S SchemmerAustralia2026-06-09Printing Dimensions QUALIFIED10Asiya Javayant
1031Jennifer R CaudyFrance2026-06-19Rousseaux, Michael Esq NEW63Anna Fali
1032Faith X NestleCanada2026-06-16Chemel, James L Cpa PROPOSAL61Xuxue Feng
1033Stacey B WieserIndia2026-06-28Chemel, James L Cpa NEGOTIATION4Ioni Bowcher
1034David M SlusarskiSpain2026-07-01Buckley Miller Wright NEW17Xuxue Feng
1035Misaki I PaprockiCanada2026-06-07Truhlar And Truhlar Attys NEGOTIATION51Anna Fali
1036Juan Q IturbideAustralia2026-06-14Feltz Printing Service NEW64Xuxue Feng
1037Stacey O FigeroaRussia2026-07-05Chanay, Jeffrey A Esq PROPOSAL53Stephen Shaw
1038David Q AmigonItaly2026-06-17Feiner Bros UNQUALIFIED32Ivan Magalhaes
1039Smith H KuskoAustralia2026-07-03Chanay, Jeffrey A Esq NEGOTIATION11Anna Fali
1040Jeanfrancois A BowleyFrance2026-06-09Printing Dimensions RENEWAL26Amy Elsner
1041Ricardo U MaletGermany2026-06-28Truhlar And Truhlar Attys QUALIFIED87Ioni Bowcher
1042Ashley B MarrierArgentina2026-06-12Printing Dimensions RENEWAL16Asiya Javayant
1043Silvio Q KolmetzArgentina2026-06-24Truhlar And Truhlar Attys QUALIFIED52Stephen Shaw
1044Munro D FlosiArgentina2026-07-04Buckley Miller Wright UNQUALIFIED8Elwin Sharvill
1045Smith W DarakjyUnited Kingdom2026-06-24Printing Dimensions QUALIFIED54Anna Fali
1046Izzy G RulapaughAustralia2026-07-01King, Christopher A Esq QUALIFIED63Asiya Javayant
1047Claire S SchemmerItaly2026-06-15Feltz Printing Service NEW12Ivan Magalhaes
1048Nicolas E MaletJapan2026-06-27Chemel, James L Cpa UNQUALIFIED30Amy Elsner
1049Morrow A CaudyRussia2026-06-14Rangoni Of Florence NEW47Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Juan B PoquetteSpainXuxue Feng NEGOTIATION
Munro L DilliardGermanyAnna Fali QUALIFIED
Johnson E MacleadUnited KingdomStephen Shaw QUALIFIED
Ashley A BowleyAustraliaIvan Magalhaes NEGOTIATION
Francesco J OldroydItalyAnna Fali RENEWAL
Tony B GlickArgentinaBernardo Dominic NEGOTIATION
Julie Z InouyeUnited KingdomAsiya Javayant QUALIFIED
Deepesh M FerenczSpainStephen Shaw UNQUALIFIED
Kadeem Z DoeRussiaStephen Shaw QUALIFIED
Aditya S BriddickArgentinaOnyama Limba QUALIFIED
Isabel Z IturbideBrazilBernardo Dominic PROPOSAL
Chavez P GauchoArgentinaOnyama Limba PROPOSAL
Leon E StensethRussiaXuxue Feng RENEWAL
Alejandro G WaycottItalyStephen Shaw NEGOTIATION
Leon V OstroskyBrazilAsiya Javayant NEW
Alejandro U RutaBrazilElwin Sharvill UNQUALIFIED
Aika F SergiIndiaXuxue Feng PROPOSAL
Silvio J GlickRussiaElwin Sharvill PROPOSAL
Salvatore P GarufiFranceStephen Shaw UNQUALIFIED
Isabel N DoeUnited KingdomXuxue Feng PROPOSAL
Rodrigues W WhobreyAustraliaOnyama Limba NEGOTIATION
Maisha A MacleadArgentinaIvan Magalhaes PROPOSAL
Costa M RoysterUnited KingdomAmy Elsner NEGOTIATION
Tony Y StockhamBrazilAnna Fali UNQUALIFIED
James A RulapaughUnited KingdomStephen Shaw PROPOSAL
Aditya S VocelkaUnited KingdomElwin Sharvill NEW
Julie X FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Ricardo Y DarakjyCanadaIoni Bowcher UNQUALIFIED
Ricardo K MaletUnited KingdomAsiya Javayant PROPOSAL
Claire Y WieserFranceIoni Bowcher UNQUALIFIED
Tony Y KolmetzItalyIoni Bowcher QUALIFIED
David I OldroydAustraliaBernardo Dominic PROPOSAL
Greenwood D PaprockiArgentinaStephen Shaw RENEWAL
Cody C InouyeBrazilIoni Bowcher QUALIFIED
Aika A OstroskyRussiaIoni Bowcher UNQUALIFIED
Greenwood O NickaFranceAsiya Javayant NEGOTIATION
Tony D FerenczFranceBernardo Dominic UNQUALIFIED
Johnson Y OldroydArgentinaIvan Magalhaes QUALIFIED
Clifford Z PoquetteSpainXuxue Feng QUALIFIED
Aika N GarufiIndiaElwin Sharvill PROPOSAL
Sinclair O CaudyIndiaBernardo Dominic RENEWAL
Silvio J FollerArgentinaAnna Fali QUALIFIED
Jeanfrancois C KolmetzJapanXuxue Feng NEGOTIATION
David Z DoeRussiaIoni Bowcher QUALIFIED
Ivar Z WhobreySpainXuxue Feng NEW
Mujtaba S MaletSpainIvan Magalhaes NEGOTIATION
Murillo U OldroydArgentinaStephen Shaw UNQUALIFIED
Tony J RoysterGermanyAsiya Javayant NEW
Darci V RimJapanIvan Magalhaes UNQUALIFIED
Kaitlin B GlickArgentinaStephen Shaw PROPOSAL
Frozen Columns
Name
Isabel N Campain
Adams G Briddick
Claire J Garufi
Wickens F Bowley
Rodrigues F Sergi
Leon J Paprocki
Mayumi N Garufi
Costa Z Maclead
Ricardo E Tollner
Smith R Bolognia
Julie B Ostrosky
Leon H Royster
Ivar P Shinko
Izzy L Garufi
Salvatore P Saylors
Claire T Dilliard
Emily O Marrier
Faith R Foller
Jeanfrancois D Shinko
Jeanfrancois C Poquette
Munro E Gaucho
Stacey Z Venere
Francesco G Paprocki
Kaitlin X Wieser
Francesco G Wieser
Nicolas F Ruta
Julie H Stockham
Johnson V Venere
Aditya W Perin
Johnson G Malet
Leja Y Wieser
David W Stockham
Antonio D Ferencz
Aditya P Royster
Faith T Rulapaugh
Ricardo G Doe
James D Stockham
Leon J Albares
Kaitlin S Saylors
Ashley E Maclead
Stacey W Sergi
Jones F Tollner
Greenwood U Malet
Rodrigues Z Amigon
Isabel X Darakjy
Stacey L Malet
Julie V Royster
Emily W Wieser
Aika P Nicka
Salvatore K Stenseth
IdCountryDate
1000Argentina2026-06-27
1001United Kingdom2026-07-01
1002Spain2026-06-22
1003Germany2026-06-13
1004Italy2026-06-20
1005Australia2026-06-21
1006India2026-06-28
1007Australia2026-06-23
1008Russia2026-06-26
1009Germany2026-06-08
1010Germany2026-07-02
1011Argentina2026-07-02
1012Argentina2026-06-17
1013Australia2026-06-06
1014France2026-06-26
1015United Kingdom2026-06-13
1016Argentina2026-06-23
1017Spain2026-06-23
1018Australia2026-06-10
1019Italy2026-06-27
1020Spain2026-06-30
1021Argentina2026-06-11
1022Spain2026-07-02
1023Argentina2026-07-03
1024France2026-06-06
1025Brazil2026-06-07
1026Russia2026-06-16
1027Australia2026-06-13
1028Spain2026-06-19
1029Germany2026-06-16
1030Canada2026-06-17
1031Canada2026-07-01
1032United Kingdom2026-06-08
1033Canada2026-06-21
1034Germany2026-06-20
1035United Kingdom2026-07-03
1036Canada2026-06-17
1037Russia2026-06-20
1038Italy2026-06-14
1039Brazil2026-07-03
1040Brazil2026-06-06
1041Canada2026-06-12
1042Italy2026-07-03
1043Italy2026-06-26
1044Italy2026-06-25
1045Canada2026-06-15
1046Brazil2026-06-23
1047Australia2026-07-03
1048Brazil2026-06-26
1049Canada2026-06-18

On-Demand Data

NameIdCountryDate
Darci Y Wieser1000Canada2026-07-01
Johnson H Garufi1001Russia2026-06-09
Smith J Rim1002Italy2026-06-26
Misaki L Kusko1003Brazil2026-06-24
Isabel N Gillian1004Canada2026-07-02
Mujtaba M Slusarski1005Brazil2026-06-07
Smith F Campain1006Italy2026-06-24
Ashley E Venere1007India2026-06-27
Aditya B Dilliard1008Argentina2026-06-09
Claire Q Butt1009India2026-06-19
Mayumi Y Briddick1010Australia2026-06-29
Jeanfrancois Y Paprocki1011Canada2026-06-24
Salvatore N Gillian1012Australia2026-06-27
Silvio P Vocelka1013Canada2026-06-06
Wickens N Ferencz1014United Kingdom2026-06-10
Jefferson I Ferencz1015France2026-06-26
Wickens M Amigon1016Australia2026-06-09
Salvatore L Butt1017Australia2026-06-19
Octavia Q Garufi1018United Kingdom2026-06-30
James Y Vocelka1019Japan2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith Z OldroydRussiaIoni Bowcher QUALIFIED
Johnson N SlusarskiCanadaIvan Magalhaes RENEWAL
Jennifer P PoquetteJapanXuxue Feng PROPOSAL
Antonio W WaycottArgentinaXuxue Feng UNQUALIFIED
Silvio J WaycottRussiaIoni Bowcher QUALIFIED
Maisha S SchemmerJapanAsiya Javayant RENEWAL
Jennifer N InouyeBrazilXuxue Feng QUALIFIED
Francesco D CaudyFranceAmy Elsner RENEWAL
James Q MarrierBrazilAmy Elsner PROPOSAL
Isabel I OldroydAustraliaAmy Elsner NEGOTIATION
Claire I RimAustraliaAmy Elsner NEGOTIATION
Clifford X KolmetzAustraliaXuxue Feng UNQUALIFIED
Smith C GauchoAustraliaElwin Sharvill NEW
Salvatore O GlickIndiaBernardo Dominic QUALIFIED
David A GarufiBrazilIvan Magalhaes NEW
Murillo Y WhobreyBrazilXuxue Feng RENEWAL
Costa L RimIndiaOnyama Limba NEGOTIATION
Emily N FlosiAustraliaStephen Shaw UNQUALIFIED
Antonio O WhobreyUnited KingdomAmy Elsner NEGOTIATION
Emily A GlickAustraliaElwin Sharvill RENEWAL
Mayumi M OldroydArgentinaIoni Bowcher RENEWAL
Jennifer N InouyeBrazilAnna Fali UNQUALIFIED
Rodrigues W KolmetzUnited KingdomAnna Fali RENEWAL
Murillo L GlickArgentinaXuxue Feng UNQUALIFIED
Julie W PoquetteFranceBernardo Dominic QUALIFIED
Jeanfrancois U MorascaArgentinaOnyama Limba NEGOTIATION
Sinclair Z PerinArgentinaAnna Fali NEW
Jennifer Z MaletGermanyBernardo Dominic NEW
Wickens W InouyeRussiaAmy Elsner NEGOTIATION
Mayumi Q CaldareraGermanyAmy Elsner PROPOSAL
Johnson E GlickFranceXuxue Feng UNQUALIFIED
Ricardo K VenereUnited KingdomOnyama Limba NEGOTIATION
Leja J SlusarskiSpainElwin Sharvill PROPOSAL
Clifford N RutaBrazilElwin Sharvill UNQUALIFIED
Munro W DilliardRussiaOnyama Limba NEGOTIATION
Murillo M RimIndiaIoni Bowcher RENEWAL
Jones P FlosiAustraliaAnna Fali NEGOTIATION
Tony N RoysterRussiaAnna Fali NEW
Silvio D CaldareraArgentinaStephen Shaw UNQUALIFIED
Kadeem I CaldareraUnited KingdomIoni 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>