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 O RutaUnited KingdomIoni Bowcher RENEWAL
Stacey D OstroskyJapanAmy Elsner NEGOTIATION
Maria A VenereJapanAmy Elsner PROPOSAL
Kaitlin K AlbaresIndiaAmy Elsner UNQUALIFIED
Chavez D KuskoIndiaOnyama Limba PROPOSAL
Adams R InouyeCanadaStephen Shaw QUALIFIED
James H FlosiItalyOnyama Limba UNQUALIFIED
David I MarrierJapanElwin Sharvill RENEWAL
Darci S ButtGermanyIvan Magalhaes UNQUALIFIED
Munro J NickaArgentinaIvan Magalhaes NEW
Munro O MaletGermanyOnyama Limba QUALIFIED
Johnson U MarrierRussiaAnna Fali PROPOSAL
Clifford I CaudyRussiaAnna Fali PROPOSAL
Alejandro Y RimIndiaStephen Shaw QUALIFIED
Izzy Y TollnerFranceAsiya Javayant RENEWAL
Sinclair K WieserFranceStephen Shaw UNQUALIFIED
Leon V StensethIndiaBernardo Dominic PROPOSAL
Jeanfrancois C BriddickFranceIoni Bowcher UNQUALIFIED
Mujtaba I OldroydGermanyAsiya Javayant NEGOTIATION
Mayumi S KolmetzItalyBernardo Dominic NEW
Ivar R MacleadAustraliaIoni Bowcher NEW
Clifford O WieserArgentinaAsiya Javayant RENEWAL
Salvatore R StockhamJapanOnyama Limba NEW
Ivar F AlbaresAustraliaElwin Sharvill NEW
Julie W FollerFranceXuxue Feng UNQUALIFIED
Smith H CaldareraArgentinaElwin Sharvill NEW
Mujtaba A StensethAustraliaBernardo Dominic NEGOTIATION
Ricardo C MorascaBrazilOnyama Limba UNQUALIFIED
Cody N WhobreyCanadaXuxue Feng QUALIFIED
Clifford A KolmetzIndiaElwin Sharvill QUALIFIED
Faith W FollerIndiaIoni Bowcher RENEWAL
Mayumi L DoeGermanyAmy Elsner PROPOSAL
Silvio N AmigonJapanIvan Magalhaes UNQUALIFIED
Izzy W PoquetteSpainAsiya Javayant PROPOSAL
Costa C BowleyUnited KingdomXuxue Feng NEW
Wickens J OstroskyUnited KingdomOnyama Limba PROPOSAL
Kaitlin V PaprockiItalyIvan Magalhaes NEW
Clifford P WaycottBrazilIvan Magalhaes NEW
Jones A BriddickSpainAsiya Javayant RENEWAL
Arvin K DarakjyRussiaXuxue Feng NEGOTIATION
Costa P NestleAustraliaOnyama Limba NEW
Aruna F CaudyBrazilElwin Sharvill UNQUALIFIED
Clifford A RimArgentinaAnna Fali NEGOTIATION
Cody D TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Leja N GlickCanadaXuxue Feng NEGOTIATION
Jeanfrancois X GarufiBrazilAnna Fali NEGOTIATION
Leja X StensethUnited KingdomOnyama Limba NEGOTIATION
Faith M SchemmerAustraliaElwin Sharvill NEGOTIATION
Jones L TollnerCanadaBernardo Dominic UNQUALIFIED
Morrow R CaudyItalyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson E SergiAustraliaElwin Sharvill QUALIFIED
Ivar M GlickJapanXuxue Feng UNQUALIFIED
Rodrigues V CaldareraUnited KingdomAnna Fali RENEWAL
Sinclair Y FlosiUnited KingdomOnyama Limba QUALIFIED
Aruna O WieserIndiaAsiya Javayant PROPOSAL
Silvio U NickaGermanyAmy Elsner UNQUALIFIED
Julie W RoysterArgentinaIoni Bowcher NEGOTIATION
Clifford F MaletItalyAnna Fali QUALIFIED
Izzy Q OstroskyFranceStephen Shaw QUALIFIED
Clifford M ShinkoJapanAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja O VenereSpain2026-06-30Dorl, James J Esq UNQUALIFIED11Xuxue Feng
1001Faith P RoysterUnited Kingdom2026-06-24Feiner Bros PROPOSAL34Asiya Javayant
1002Kadeem Y CaudyArgentina2026-06-15King, Christopher A Esq UNQUALIFIED34Bernardo Dominic
1003Jones Q AmigonSpain2026-06-20Rousseaux, Michael Esq QUALIFIED85Elwin Sharvill
1004Jefferson S DilliardBrazil2026-07-06Rousseaux, Michael Esq UNQUALIFIED95Elwin Sharvill
1005Faith U IturbideItaly2026-06-18King, Christopher A Esq RENEWAL30Onyama Limba
1006Faith H RulapaughCanada2026-06-16Chemel, James L Cpa NEGOTIATION34Ivan Magalhaes
1007Ivar H CampainUnited Kingdom2026-07-05Truhlar And Truhlar Attys UNQUALIFIED99Onyama Limba
1008Jones R InouyeSpain2026-06-17Morlong Associates RENEWAL71Anna Fali
1009Arvin J GlickItaly2026-06-20Rangoni Of Florence PROPOSAL89Amy Elsner
1010Rodrigues D MaletFrance2026-07-06Morlong Associates UNQUALIFIED38Bernardo Dominic
1011Kaitlin H MarrierJapan2026-06-18Printing Dimensions NEW95Anna Fali
1012Clifford U KuskoItaly2026-07-05Feltz Printing Service PROPOSAL19Xuxue Feng
1013Cody S RimFrance2026-06-19Chapman, Ross E Esq NEGOTIATION75Ivan Magalhaes
1014Nicolas L FigeroaJapan2026-06-15Chapman, Ross E Esq RENEWAL74Ioni Bowcher
1015Cody Q RimBrazil2026-06-20Truhlar And Truhlar Attys NEGOTIATION26Anna Fali
1016Aruna I CaudyBrazil2026-06-14Feltz Printing Service UNQUALIFIED29Ioni Bowcher
1017Munro M StensethRussia2026-06-24Commercial Press UNQUALIFIED10Bernardo Dominic
1018David Y MaletFrance2026-06-13Truhlar And Truhlar Attys NEW33Xuxue Feng
1019Maisha Y CampainItaly2026-06-15Chanay, Jeffrey A Esq NEW47Ioni Bowcher
1020Jeanfrancois O GauchoSpain2026-06-29Chapman, Ross E Esq UNQUALIFIED45Anna Fali
1021Jones V BologniaRussia2026-06-29Rousseaux, Michael Esq NEGOTIATION22Xuxue Feng
1022Francesco T CampainJapan2026-06-20Chanay, Jeffrey A Esq QUALIFIED89Asiya Javayant
1023Ivar R TollnerCanada2026-06-15Rousseaux, Michael Esq NEGOTIATION65Stephen Shaw
1024Salvatore O ChuiGermany2026-07-05Commercial Press UNQUALIFIED12Bernardo Dominic
1025Jennifer X OldroydBrazil2026-06-27Morlong Associates NEGOTIATION71Stephen Shaw
1026Francesco L GlickAustralia2026-07-02Benton, John B Jr QUALIFIED6Stephen Shaw
1027David I DarakjyRussia2026-06-25Buckley Miller Wright RENEWAL53Stephen Shaw
1028Cody F SchemmerFrance2026-07-04Chapman, Ross E Esq QUALIFIED84Xuxue Feng
1029Maisha R ChuiJapan2026-06-20Printing Dimensions NEGOTIATION57Stephen Shaw
1030Misaki X PaprockiItaly2026-06-30Feiner Bros PROPOSAL36Amy Elsner
1031Salvatore S CaudyCanada2026-06-29Rangoni Of Florence RENEWAL80Anna Fali
1032Kaitlin H AlbaresGermany2026-06-09Truhlar And Truhlar Attys NEW25Ioni Bowcher
1033Aika Y PoquetteGermany2026-06-27Morlong Associates PROPOSAL55Asiya Javayant
1034Izzy W NickaBrazil2026-06-28Buckley Miller Wright QUALIFIED6Bernardo Dominic
1035Adams H BriddickGermany2026-07-04Chemel, James L Cpa RENEWAL16Amy Elsner
1036Rodrigues H RoysterBrazil2026-07-04Commercial Press PROPOSAL80Onyama Limba
1037Wickens W ChuiAustralia2026-07-03King, Christopher A Esq QUALIFIED37Asiya Javayant
1038Mayumi B FlosiFrance2026-06-19Chapman, Ross E Esq NEGOTIATION23Ivan Magalhaes
1039Misaki M GarufiRussia2026-06-24Dorl, James J Esq UNQUALIFIED22Elwin Sharvill
1040Chavez M KuskoIndia2026-06-22Rousseaux, Michael Esq RENEWAL90Asiya Javayant
1041Clifford U SchemmerJapan2026-07-01Dorl, James J Esq UNQUALIFIED49Bernardo Dominic
1042Francesco K FigeroaBrazil2026-07-05Chemel, James L Cpa NEW27Xuxue Feng
1043Tony L FollerRussia2026-06-27King, Christopher A Esq UNQUALIFIED65Bernardo Dominic
1044Munro Y NestleIndia2026-06-07Chanay, Jeffrey A Esq UNQUALIFIED30Elwin Sharvill
1045Aika Q RutaRussia2026-06-11Commercial Press NEGOTIATION12Ioni Bowcher
1046Johnson S CaldareraJapan2026-07-05Buckley Miller Wright NEGOTIATION88Amy Elsner
1047Aditya J FerenczBrazil2026-06-22Dorl, James J Esq PROPOSAL85Asiya Javayant
1048Ashley X DoeJapan2026-06-21Commercial Press NEGOTIATION17Onyama Limba
1049Silvio E FollerIndia2026-06-22Benton, John B Jr QUALIFIED61Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois V AlbaresGermanyStephen Shaw PROPOSAL
Emily G FollerFranceAnna Fali NEW
Ivar K MaletUnited KingdomIvan Magalhaes RENEWAL
Octavia J MaletGermanyStephen Shaw PROPOSAL
Isabel P DoeGermanyElwin Sharvill NEGOTIATION
Adams E BologniaSpainOnyama Limba NEW
Clifford M MaletSpainIoni Bowcher RENEWAL
Isabel J BologniaBrazilIoni Bowcher RENEWAL
Greenwood G CaldareraArgentinaStephen Shaw QUALIFIED
James K GauchoFranceIoni Bowcher UNQUALIFIED
Julie Z MaletGermanyOnyama Limba QUALIFIED
Johnson W CampainCanadaElwin Sharvill UNQUALIFIED
Chavez T DarakjyBrazilAmy Elsner QUALIFIED
Ashley A RimBrazilElwin Sharvill NEGOTIATION
Antonio M MaletArgentinaOnyama Limba UNQUALIFIED
Arvin O KolmetzAustraliaIoni Bowcher QUALIFIED
Wickens V RulapaughCanadaXuxue Feng NEGOTIATION
Francesco K DarakjyFranceAnna Fali NEGOTIATION
Claire U BowleyRussiaBernardo Dominic QUALIFIED
Costa Q BologniaSpainAsiya Javayant PROPOSAL
Deepesh S MorascaIndiaAsiya Javayant UNQUALIFIED
Munro E GauchoArgentinaXuxue Feng PROPOSAL
Izzy R KolmetzGermanyOnyama Limba NEW
Chavez F VenereGermanyBernardo Dominic UNQUALIFIED
Smith X WhobreySpainIoni Bowcher RENEWAL
Nicolas D BriddickItalyElwin Sharvill RENEWAL
Mayumi V FlosiItalyIvan Magalhaes NEGOTIATION
Mayumi U DoeCanadaXuxue Feng QUALIFIED
Arvin C OstroskyArgentinaXuxue Feng PROPOSAL
Alejandro W KolmetzJapanOnyama Limba UNQUALIFIED
Izzy Z PoquetteAustraliaXuxue Feng RENEWAL
Julie G RulapaughSpainBernardo Dominic RENEWAL
Izzy Z WaycottCanadaOnyama Limba UNQUALIFIED
Izzy L SlusarskiBrazilStephen Shaw PROPOSAL
Johnson B GlickBrazilXuxue Feng NEGOTIATION
Morrow X FerenczSpainElwin Sharvill NEGOTIATION
Octavia M PaprockiGermanyIoni Bowcher NEGOTIATION
Claire E BologniaGermanyXuxue Feng NEW
Leja M StensethRussiaXuxue Feng PROPOSAL
Juan T NestleItalyIvan Magalhaes PROPOSAL
Silvio Y FollerUnited KingdomBernardo Dominic QUALIFIED
Jones K TollnerCanadaXuxue Feng QUALIFIED
Kadeem N SchemmerFranceBernardo Dominic NEW
Sinclair Y GlickIndiaAsiya Javayant PROPOSAL
Jennifer M OldroydUnited KingdomXuxue Feng UNQUALIFIED
Darci L MaletJapanAsiya Javayant NEW
Mayumi Z KuskoCanadaOnyama Limba UNQUALIFIED
Faith U SchemmerArgentinaAnna Fali UNQUALIFIED
Maisha P CaudyUnited KingdomIoni Bowcher PROPOSAL
Claire S BowleyCanadaXuxue Feng RENEWAL
Frozen Columns
Name
Octavia H Darakjy
Mujtaba I Kolmetz
Clifford I Iturbide
Maisha G Maclead
Ricardo J Kusko
Adams H Doe
Maria V Venere
Chavez N Nestle
Jefferson V Malet
Julie V Saylors
Rodrigues Q Poquette
Nicolas G Inouye
Emily A Vocelka
Johnson T Nicka
David W Butt
Murillo M Oldroyd
Alejandro J Nicka
David E Darakjy
Murillo P Paprocki
Munro R Gaucho
Ricardo B Poquette
Costa P Shinko
Izzy A Glick
Octavia D Morasca
Jennifer C Glick
Adams K Albares
Salvatore E Foller
Julie H Slusarski
Jones Y Rulapaugh
Ricardo A Shinko
Aditya S Malet
Jefferson N Amigon
Alejandro J Albares
Smith K Venere
Mayumi F Perin
Costa J Royster
Murillo P Ostrosky
Octavia C Whobrey
Aditya A Venere
Ivar T Whobrey
Maria T Venere
Jones N Slusarski
Wickens X Vocelka
Jefferson Y Flosi
Deepesh H Inouye
James T Ruta
David A Campain
Kaitlin L Venere
Maisha A Ruta
Leja J Whobrey
IdCountryDate
1000Italy2026-06-23
1001Spain2026-06-23
1002India2026-06-12
1003Germany2026-07-01
1004United Kingdom2026-06-08
1005Japan2026-06-28
1006Argentina2026-07-05
1007Argentina2026-06-07
1008Spain2026-06-20
1009Spain2026-06-25
1010Italy2026-06-23
1011Spain2026-06-12
1012Brazil2026-06-20
1013Japan2026-06-15
1014Spain2026-07-01
1015Russia2026-06-24
1016Japan2026-06-27
1017France2026-06-15
1018Japan2026-07-06
1019Australia2026-06-28
1020Spain2026-06-15
1021France2026-06-07
1022Japan2026-06-16
1023Spain2026-06-24
1024Australia2026-06-20
1025Japan2026-06-23
1026Spain2026-06-28
1027Canada2026-06-08
1028Russia2026-06-11
1029Argentina2026-06-11
1030Argentina2026-06-19
1031India2026-06-17
1032United Kingdom2026-06-09
1033Canada2026-06-07
1034Canada2026-06-20
1035Brazil2026-06-08
1036Russia2026-06-29
1037France2026-06-30
1038Italy2026-06-10
1039Russia2026-06-07
1040Japan2026-06-18
1041Russia2026-07-04
1042Brazil2026-06-13
1043Germany2026-06-12
1044Germany2026-06-21
1045United Kingdom2026-06-15
1046Russia2026-06-14
1047France2026-06-16
1048Canada2026-06-11
1049Italy2026-06-30

On-Demand Data

NameIdCountryDate
Arvin W Vocelka1000Argentina2026-06-14
Maisha P Saylors1001Canada2026-06-15
Ashley T Albares1002India2026-06-26
Ashley S Dilliard1003Brazil2026-06-08
Darci W Chui1004Germany2026-07-01
Rodrigues C Dilliard1005Canada2026-06-28
Leja S Doe1006Australia2026-06-14
Jefferson E Kolmetz1007United Kingdom2026-06-07
Claire J Gaucho1008Brazil2026-07-03
Jennifer J Rim1009India2026-06-21
Antonio P Gillian1010Brazil2026-06-15
Tony A Marrier1011Argentina2026-07-05
Murillo Q Kusko1012Spain2026-06-21
Octavia C Paprocki1013Canada2026-06-13
Stacey K Stockham1014Argentina2026-06-16
Greenwood F Poquette1015Argentina2026-06-07
Faith K Marrier1016Canada2026-07-05
Murillo X Vocelka1017India2026-06-28
Aika J Garufi1018France2026-06-23
Chavez A Kusko1019Argentina2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie Y MacleadFranceAmy Elsner QUALIFIED
Julie T ChuiBrazilBernardo Dominic PROPOSAL
Ricardo W WaycottIndiaAsiya Javayant QUALIFIED
Salvatore R FollerGermanyAsiya Javayant PROPOSAL
Aruna T WaycottCanadaStephen Shaw NEW
Munro C MacleadIndiaOnyama Limba NEGOTIATION
Jeanfrancois B PerinItalyStephen Shaw PROPOSAL
Francesco Q FerenczSpainBernardo Dominic PROPOSAL
Maria Y SlusarskiItalyBernardo Dominic UNQUALIFIED
Sinclair I MaletCanadaElwin Sharvill UNQUALIFIED
Wickens X StockhamUnited KingdomIoni Bowcher RENEWAL
Emily J FlosiAustraliaIvan Magalhaes PROPOSAL
Tony O WhobreyIndiaXuxue Feng NEW
Francesco A WaycottJapanIvan Magalhaes NEGOTIATION
Stacey W MacleadArgentinaElwin Sharvill QUALIFIED
Jefferson L GauchoRussiaIvan Magalhaes NEW
Jefferson C OstroskyItalyStephen Shaw UNQUALIFIED
Mayumi F GillianUnited KingdomIvan Magalhaes NEW
Darci Y ButtArgentinaBernardo Dominic NEW
Nicolas F WaycottAustraliaIvan Magalhaes NEW
Johnson G BriddickUnited KingdomOnyama Limba NEGOTIATION
Deepesh W RutaSpainAnna Fali QUALIFIED
Jeanfrancois Z PoquetteGermanyElwin Sharvill UNQUALIFIED
Isabel N PerinSpainElwin Sharvill NEGOTIATION
Antonio O SaylorsJapanIvan Magalhaes NEGOTIATION
Morrow Z FerenczGermanyAmy Elsner UNQUALIFIED
Aika F AmigonAustraliaAmy Elsner QUALIFIED
Emily F CampainSpainStephen Shaw PROPOSAL
Ivar V FerenczBrazilAmy Elsner RENEWAL
Ashley Y MacleadArgentinaIoni Bowcher PROPOSAL
Murillo X MaletArgentinaAmy Elsner QUALIFIED
Chavez T CaldareraBrazilAnna Fali UNQUALIFIED
Deepesh Z AmigonIndiaXuxue Feng PROPOSAL
Tony P FerenczJapanBernardo Dominic UNQUALIFIED
Francesco P GarufiAustraliaAnna Fali QUALIFIED
Kaitlin I VocelkaFranceIvan Magalhaes PROPOSAL
Deepesh D NickaAustraliaIoni Bowcher UNQUALIFIED
Sinclair W RutaUnited KingdomOnyama Limba NEGOTIATION
Mujtaba O WhobreyFranceIoni Bowcher RENEWAL
Francesco I SchemmerCanadaAnna Fali UNQUALIFIED

<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>