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
Ricardo E WaycottCanadaElwin Sharvill NEW
Ricardo L StockhamGermanyStephen Shaw RENEWAL
Maria P MaletArgentinaIoni Bowcher NEGOTIATION
Johnson L SergiItalyAnna Fali NEGOTIATION
Claire N WaycottFranceBernardo Dominic QUALIFIED
Morrow T KolmetzSpainElwin Sharvill QUALIFIED
Adams T CaldareraJapanXuxue Feng UNQUALIFIED
Misaki F PerinBrazilAsiya Javayant UNQUALIFIED
Octavia N InouyeAustraliaIvan Magalhaes NEGOTIATION
Aruna F BologniaRussiaAsiya Javayant RENEWAL
Sinclair P WaycottAustraliaAsiya Javayant UNQUALIFIED
Misaki R NickaUnited KingdomStephen Shaw NEW
Francesco A PoquetteGermanyElwin Sharvill RENEWAL
Francesco D IturbideCanadaElwin Sharvill QUALIFIED
Clifford P DarakjyIndiaAmy Elsner NEW
Mujtaba P SchemmerSpainBernardo Dominic RENEWAL
Mujtaba I DoeJapanIvan Magalhaes NEW
Leon A SergiGermanyOnyama Limba UNQUALIFIED
Alejandro O GauchoGermanyAnna Fali PROPOSAL
Maria O FerenczFranceElwin Sharvill UNQUALIFIED
Johnson Q SlusarskiItalyElwin Sharvill QUALIFIED
Clifford G WhobreyItalyOnyama Limba NEW
Greenwood I VenereGermanyIvan Magalhaes PROPOSAL
Jones L SaylorsArgentinaElwin Sharvill NEGOTIATION
Jennifer L CaldareraItalyAmy Elsner NEGOTIATION
Wickens C BowleyBrazilIoni Bowcher NEW
Costa K WaycottRussiaAnna Fali UNQUALIFIED
Costa N RutaArgentinaIvan Magalhaes NEW
Juan Q DarakjyFranceIvan Magalhaes QUALIFIED
Adams N GarufiItalyIvan Magalhaes UNQUALIFIED
Darci J DarakjyJapanAsiya Javayant RENEWAL
Emily R MacleadBrazilAmy Elsner RENEWAL
Salvatore Z AmigonItalyElwin Sharvill RENEWAL
Alejandro J NestleJapanOnyama Limba UNQUALIFIED
Francesco C GillianSpainElwin Sharvill QUALIFIED
Ashley G InouyeArgentinaXuxue Feng PROPOSAL
Faith R InouyeBrazilOnyama Limba NEW
Darci B PaprockiFranceStephen Shaw NEW
Leja S FigeroaBrazilAmy Elsner PROPOSAL
Jefferson X SlusarskiCanadaBernardo Dominic UNQUALIFIED
Clifford C BologniaIndiaStephen Shaw NEGOTIATION
Arvin G ChuiArgentinaOnyama Limba RENEWAL
Greenwood W RutaRussiaAnna Fali PROPOSAL
Misaki I SchemmerRussiaAnna Fali UNQUALIFIED
Deepesh D MaletUnited KingdomAnna Fali UNQUALIFIED
Tony P PoquetteSpainStephen Shaw NEGOTIATION
Clifford I GlickUnited KingdomStephen Shaw NEW
Octavia T WieserCanadaAsiya Javayant NEW
Jeanfrancois Y FerenczAustraliaXuxue Feng RENEWAL
Murillo O GarufiIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin P BologniaUnited KingdomStephen Shaw PROPOSAL
Misaki E StensethArgentinaXuxue Feng UNQUALIFIED
Alejandro P CampainCanadaAnna Fali NEGOTIATION
Julie H GillianRussiaAmy Elsner NEW
Chavez C VenereSpainStephen Shaw NEGOTIATION
Izzy L WaycottUnited KingdomXuxue Feng PROPOSAL
Aruna H ButtSpainElwin Sharvill PROPOSAL
Nicolas B AmigonAustraliaElwin Sharvill UNQUALIFIED
Jefferson Q FigeroaSpainAmy Elsner PROPOSAL
Jeanfrancois N PoquetteBrazilIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja M CampainSpain2025-04-27Dorl, James J Esq UNQUALIFIED26Stephen Shaw
1001Jefferson B OstroskyGermany2025-04-18Chemel, James L Cpa UNQUALIFIED54Ivan Magalhaes
1002Stacey T BologniaSpain2025-04-27Rangoni Of Florence NEGOTIATION6Xuxue Feng
1003Munro Z CaudyUnited Kingdom2025-04-23Feltz Printing Service NEW83Bernardo Dominic
1004Mujtaba E DoeBrazil2025-04-16Rousseaux, Michael Esq NEW17Asiya Javayant
1005James E FollerUnited Kingdom2025-04-09Rangoni Of Florence QUALIFIED44Onyama Limba
1006Maisha K SlusarskiBrazil2025-04-06King, Christopher A Esq NEW26Bernardo Dominic
1007Salvatore X WaycottArgentina2025-04-28Chemel, James L Cpa QUALIFIED46Bernardo Dominic
1008James H PerinItaly2025-04-15Chemel, James L Cpa RENEWAL37Onyama Limba
1009Cody B DilliardFrance2025-04-22Feltz Printing Service NEGOTIATION34Onyama Limba
1010Julie E KolmetzArgentina2025-04-18Printing Dimensions NEW29Stephen Shaw
1011Wickens J MacleadAustralia2025-04-17Truhlar And Truhlar Attys QUALIFIED39Asiya Javayant
1012Salvatore C AmigonArgentina2025-04-13Feltz Printing Service PROPOSAL87Elwin Sharvill
1013Arvin V RulapaughRussia2025-04-17Chemel, James L Cpa PROPOSAL16Anna Fali
1014Mayumi P VocelkaRussia2025-04-09Feltz Printing Service QUALIFIED52Bernardo Dominic
1015Stacey S GlickAustralia2025-04-12Dorl, James J Esq NEGOTIATION30Xuxue Feng
1016Aruna W KolmetzFrance2025-04-18Chanay, Jeffrey A Esq PROPOSAL73Ioni Bowcher
1017Maisha J DoeBrazil2025-04-26Buckley Miller Wright QUALIFIED77Ioni Bowcher
1018Emily N StensethFrance2025-04-04Truhlar And Truhlar Attys QUALIFIED55Asiya Javayant
1019Claire B PoquetteItaly2025-04-24Feltz Printing Service QUALIFIED91Onyama Limba
1020Aditya W BowleyItaly2025-04-13Chanay, Jeffrey A Esq PROPOSAL56Asiya Javayant
1021Tony I NestleFrance2025-03-31Dorl, James J Esq UNQUALIFIED84Onyama Limba
1022Alejandro U BowleySpain2025-04-08Feltz Printing Service NEGOTIATION50Elwin Sharvill
1023Leja W MacleadGermany2025-04-17Benton, John B Jr QUALIFIED22Ioni Bowcher
1024Ashley C TollnerJapan2025-04-12Truhlar And Truhlar Attys NEGOTIATION69Xuxue Feng
1025Alejandro D SaylorsIndia2025-04-07Printing Dimensions QUALIFIED5Amy Elsner
1026Johnson F SaylorsGermany2025-04-15Rousseaux, Michael Esq NEGOTIATION92Asiya Javayant
1027Cody Z AmigonFrance2025-04-14Chemel, James L Cpa UNQUALIFIED93Ioni Bowcher
1028Murillo H BowleyArgentina2025-04-08Benton, John B Jr QUALIFIED90Anna Fali
1029Ivar B FlosiCanada2025-04-06Buckley Miller Wright NEGOTIATION23Xuxue Feng
1030Maisha S SchemmerRussia2025-04-09Buckley Miller Wright NEW2Ivan Magalhaes
1031Smith H SaylorsGermany2025-04-15Printing Dimensions QUALIFIED41Anna Fali
1032Kaitlin Z RulapaughJapan2025-04-15Feiner Bros QUALIFIED88Xuxue Feng
1033Leon A PaprockiGermany2025-04-22Dorl, James J Esq NEW22Xuxue Feng
1034Aditya V ChuiCanada2025-04-09Benton, John B Jr UNQUALIFIED30Bernardo Dominic
1035Ivar J AlbaresCanada2025-04-22Benton, John B Jr UNQUALIFIED48Asiya Javayant
1036Aditya J AlbaresUnited Kingdom2025-04-01Feiner Bros NEW58Ivan Magalhaes
1037Kaitlin Q WaycottArgentina2025-04-11Chemel, James L Cpa UNQUALIFIED44Elwin Sharvill
1038Arvin O SaylorsRussia2025-04-24Morlong Associates UNQUALIFIED6Ivan Magalhaes
1039Costa B PaprockiArgentina2025-03-31Rangoni Of Florence PROPOSAL40Ioni Bowcher
1040Arvin R ShinkoFrance2025-04-22Chanay, Jeffrey A Esq UNQUALIFIED64Ioni Bowcher
1041Francesco L OldroydItaly2025-04-11Dorl, James J Esq RENEWAL69Xuxue Feng
1042Maria P AlbaresJapan2025-04-09Rousseaux, Michael Esq RENEWAL70Elwin Sharvill
1043Darci Z VocelkaSpain2025-04-03Printing Dimensions QUALIFIED82Ivan Magalhaes
1044Chavez C MaletJapan2025-04-18Feiner Bros NEW22Xuxue Feng
1045Nicolas L TollnerFrance2025-04-18Rangoni Of Florence PROPOSAL49Asiya Javayant
1046Stacey Q MaletCanada2025-04-13Buckley Miller Wright NEW48Ivan Magalhaes
1047Ricardo Y VocelkaBrazil2025-04-27Truhlar And Truhlar Attys QUALIFIED88Anna Fali
1048Maisha T RutaJapan2025-04-14King, Christopher A Esq NEGOTIATION17Bernardo Dominic
1049Juan C DarakjyItaly2025-04-02Morlong Associates NEW40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Arvin K OldroydBrazilBernardo Dominic RENEWAL
Rodrigues J SergiCanadaStephen Shaw NEGOTIATION
Greenwood Q WaycottSpainIoni Bowcher NEGOTIATION
Octavia K PerinCanadaXuxue Feng NEGOTIATION
Julie K GarufiSpainAsiya Javayant NEW
Adams K PerinRussiaIoni Bowcher RENEWAL
Murillo F VenereIndiaIvan Magalhaes NEW
Julie R ShinkoSpainBernardo Dominic PROPOSAL
Darci C KolmetzItalyIoni Bowcher NEGOTIATION
Juan E DilliardGermanyAmy Elsner PROPOSAL
Cody O IturbideGermanyIvan Magalhaes QUALIFIED
Tony S RoysterAustraliaOnyama Limba QUALIFIED
Cody P RulapaughRussiaAmy Elsner QUALIFIED
Arvin V CaldareraBrazilIoni Bowcher NEGOTIATION
Clifford R SchemmerFranceStephen Shaw RENEWAL
Julie M NestleGermanyElwin Sharvill UNQUALIFIED
Jennifer O SergiItalyIvan Magalhaes UNQUALIFIED
Silvio D GlickGermanyAmy Elsner RENEWAL
Alejandro R MaletJapanAnna Fali UNQUALIFIED
Aika J DarakjyArgentinaStephen Shaw RENEWAL
Smith A RutaUnited KingdomAmy Elsner PROPOSAL
Izzy R DilliardItalyIoni Bowcher NEGOTIATION
Faith F ShinkoCanadaStephen Shaw UNQUALIFIED
Juan L CaudyArgentinaStephen Shaw RENEWAL
Salvatore M IturbideGermanyElwin Sharvill RENEWAL
Emily W MorascaArgentinaStephen Shaw QUALIFIED
Aditya R WaycottArgentinaAmy Elsner NEGOTIATION
Leja Y BowleyItalyXuxue Feng NEW
David M SaylorsCanadaAnna Fali NEW
Sinclair S RimRussiaElwin Sharvill NEW
Munro S OstroskyAustraliaIoni Bowcher QUALIFIED
Mayumi Y FollerItalyElwin Sharvill UNQUALIFIED
Mayumi F MarrierArgentinaAmy Elsner NEW
Mujtaba A PerinAustraliaXuxue Feng UNQUALIFIED
Cody D MaletRussiaBernardo Dominic QUALIFIED
James S ChuiItalyAmy Elsner UNQUALIFIED
Greenwood F VocelkaItalyAmy Elsner PROPOSAL
Jeanfrancois H StockhamAustraliaIvan Magalhaes PROPOSAL
Murillo E WhobreyAustraliaAmy Elsner NEGOTIATION
Arvin F WaycottGermanyStephen Shaw QUALIFIED
Alejandro F MaletItalyAmy Elsner RENEWAL
Silvio A OstroskySpainIoni Bowcher QUALIFIED
Ricardo N StensethAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois W DarakjyItalyIvan Magalhaes RENEWAL
Francesco A CaudyFranceAsiya Javayant QUALIFIED
Arvin O StockhamItalyAsiya Javayant NEGOTIATION
Ashley S WaycottCanadaElwin Sharvill RENEWAL
Izzy V OldroydAustraliaIoni Bowcher NEGOTIATION
Maisha C ButtBrazilBernardo Dominic RENEWAL
Mujtaba K IturbideSpainOnyama Limba QUALIFIED
Frozen Columns
Name
Leja R Poquette
Aruna D Nestle
Mujtaba Q Butt
Costa G Doe
Misaki D Slusarski
Darci Y Rim
Maisha H Darakjy
Antonio P Garufi
Nicolas W Caldarera
Arvin H Malet
Murillo S Rim
Mayumi B Bowley
James G Sergi
Sinclair Q Foller
Nicolas Q Perin
Octavia Y Inouye
Cody F Tollner
Stacey Q Iturbide
Deepesh K Perin
Maria K Slusarski
Isabel D Dilliard
James U Darakjy
Johnson T Kusko
Mujtaba X Doe
Mujtaba S Sergi
Juan K Rulapaugh
Emily E Vocelka
Murillo W Stockham
Murillo X Tollner
Morrow P Kusko
Murillo I Bowley
Ashley H Darakjy
Faith D Amigon
Jeanfrancois R Caudy
Ivar Q Garufi
Munro L Caudy
Johnson K Waycott
Mujtaba U Briddick
Maisha E Whobrey
Antonio O Tollner
Kaitlin M Amigon
Mujtaba O Poquette
Rodrigues F Albares
Chavez Y Tollner
Mayumi M Butt
Kadeem Q Schemmer
Rodrigues G Slusarski
Ricardo S Poquette
Maria W Gillian
Isabel M Dilliard
IdCountryDate
1000Australia2025-04-17
1001India2025-04-06
1002France2025-04-12
1003Brazil2025-04-13
1004United Kingdom2025-04-05
1005France2025-04-10
1006Argentina2025-04-13
1007Brazil2025-04-07
1008Canada2025-04-11
1009Russia2025-04-11
1010United Kingdom2025-04-11
1011Brazil2025-04-03
1012France2025-04-18
1013Spain2025-04-25
1014Canada2025-04-25
1015Brazil2025-04-15
1016Russia2025-04-16
1017Argentina2025-04-18
1018Brazil2025-04-04
1019United Kingdom2025-04-26
1020Brazil2025-04-01
1021Australia2025-04-21
1022United Kingdom2025-04-08
1023Japan2025-04-19
1024Australia2025-04-18
1025Italy2025-04-06
1026Canada2025-04-09
1027Japan2025-04-16
1028Brazil2025-04-10
1029Argentina2025-04-07
1030India2025-04-08
1031United Kingdom2025-04-23
1032Canada2025-04-19
1033India2025-04-25
1034India2025-04-28
1035Russia2025-04-16
1036Spain2025-04-17
1037Germany2025-04-15
1038Germany2025-04-07
1039Canada2025-04-08
1040France2025-04-15
1041Argentina2025-04-12
1042India2025-04-10
1043Italy2025-04-20
1044Australia2025-04-18
1045Canada2025-04-04
1046Germany2025-04-24
1047United Kingdom2025-04-26
1048Japan2025-04-07
1049Australia2025-04-20

On-Demand Data

NameIdCountryDate
Leja E Caldarera1000Brazil2025-04-02
James I Poquette1001Brazil2025-04-09
Salvatore J Ferencz1002Italy2025-04-26
Tony H Royster1003Japan2025-04-03
Darci Y Slusarski1004France2025-04-05
Claire O Darakjy1005Canada2025-04-03
Deepesh Q Paprocki1006Brazil2025-04-04
Aditya C Vocelka1007Canada2025-04-16
Deepesh X Tollner1008Germany2025-04-26
Ivar O Waycott1009Japan2025-04-12
Costa B Oldroyd1010France2025-04-28
Jeanfrancois V Chui1011Argentina2025-04-20
Ivar B Sergi1012India2025-04-24
Mujtaba P Glick1013Spain2025-04-25
Maria T Saylors1014Argentina2025-04-23
Munro J Ruta1015Brazil2025-04-04
Kadeem Z Kusko1016Russia2025-04-02
Ricardo Q Chui1017India2025-04-22
Juan A Bolognia1018United Kingdom2025-04-07
Aruna F Whobrey1019Italy2025-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa M VenereAustraliaElwin Sharvill UNQUALIFIED
Ivar N FigeroaGermanyAnna Fali QUALIFIED
Jones U RulapaughFranceIvan Magalhaes UNQUALIFIED
Wickens U ChuiArgentinaOnyama Limba QUALIFIED
Salvatore T OldroydIndiaXuxue Feng NEW
Leja X SergiCanadaOnyama Limba UNQUALIFIED
Julie H OstroskyGermanyElwin Sharvill PROPOSAL
Kaitlin X InouyeRussiaBernardo Dominic PROPOSAL
Mayumi N StensethJapanIvan Magalhaes UNQUALIFIED
James Q FlosiRussiaIoni Bowcher QUALIFIED
Leon N FlosiIndiaAsiya Javayant QUALIFIED
Adams H FollerCanadaBernardo Dominic NEGOTIATION
Clifford C DilliardItalyStephen Shaw UNQUALIFIED
James W RulapaughRussiaBernardo Dominic QUALIFIED
Aruna X TollnerRussiaStephen Shaw NEW
Greenwood P KuskoArgentinaBernardo Dominic UNQUALIFIED
Munro M ChuiCanadaElwin Sharvill QUALIFIED
Morrow E BologniaUnited KingdomBernardo Dominic RENEWAL
Silvio U DarakjyItalyXuxue Feng QUALIFIED
Octavia N BowleyItalyIoni Bowcher UNQUALIFIED
Mujtaba C VocelkaAustraliaAmy Elsner PROPOSAL
Antonio C BologniaGermanyOnyama Limba UNQUALIFIED
Nicolas S KolmetzItalyXuxue Feng UNQUALIFIED
David H PoquetteItalyStephen Shaw NEW
James O RulapaughBrazilAsiya Javayant RENEWAL
Antonio X StensethUnited KingdomAmy Elsner RENEWAL
Jeanfrancois J ButtItalyOnyama Limba PROPOSAL
Nicolas U SlusarskiArgentinaIvan Magalhaes QUALIFIED
Juan W GlickCanadaOnyama Limba QUALIFIED
Claire K NickaItalyIoni Bowcher NEGOTIATION
Kadeem I ChuiItalyAmy Elsner NEGOTIATION
Jefferson Q MacleadJapanBernardo Dominic UNQUALIFIED
Faith R SergiSpainAsiya Javayant RENEWAL
Wickens V SlusarskiCanadaOnyama Limba QUALIFIED
Smith R SlusarskiAustraliaOnyama Limba UNQUALIFIED
Octavia W BowleyCanadaAsiya Javayant QUALIFIED
Clifford F GarufiArgentinaIoni Bowcher PROPOSAL
Claire Z FlosiBrazilAsiya Javayant QUALIFIED
Kadeem S CaldareraFranceAmy Elsner PROPOSAL
Misaki Q SergiSpainOnyama Limba 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>