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
Jones R GarufiFranceIoni Bowcher UNQUALIFIED
Juan Y TollnerRussiaStephen Shaw QUALIFIED
Alejandro L MorascaCanadaBernardo Dominic RENEWAL
Smith F FlosiUnited KingdomOnyama Limba RENEWAL
Isabel V OstroskyRussiaElwin Sharvill NEW
Leja N PaprockiFranceAmy Elsner PROPOSAL
Ricardo N DarakjyFranceBernardo Dominic NEW
Chavez E RutaItalyAsiya Javayant QUALIFIED
Sinclair Y DoeRussiaStephen Shaw NEW
Izzy I SlusarskiIndiaBernardo Dominic RENEWAL
Morrow L AlbaresGermanyAsiya Javayant PROPOSAL
Ricardo O OstroskyGermanyXuxue Feng UNQUALIFIED
Mayumi Y StensethArgentinaIoni Bowcher PROPOSAL
Costa B MorascaFranceElwin Sharvill PROPOSAL
Jeanfrancois K RimUnited KingdomOnyama Limba NEW
Silvio M FerenczGermanyIvan Magalhaes PROPOSAL
Claire K StensethAustraliaBernardo Dominic UNQUALIFIED
Nicolas I MaletAustraliaAsiya Javayant PROPOSAL
Adams F MacleadIndiaOnyama Limba NEW
Johnson D RoysterJapanAsiya Javayant PROPOSAL
Jefferson O ChuiBrazilAsiya Javayant QUALIFIED
Misaki Y ChuiArgentinaBernardo Dominic PROPOSAL
Jeanfrancois N VenereGermanyIvan Magalhaes RENEWAL
Deepesh A KolmetzBrazilElwin Sharvill NEGOTIATION
Emily Y FigeroaAustraliaOnyama Limba RENEWAL
Kadeem O KuskoRussiaElwin Sharvill PROPOSAL
David E GillianRussiaOnyama Limba NEW
Jefferson R GarufiFranceAsiya Javayant NEW
Costa W WieserRussiaIvan Magalhaes PROPOSAL
Octavia B PaprockiJapanIvan Magalhaes PROPOSAL
Arvin A NickaAustraliaAmy Elsner NEW
Aika Q DilliardJapanIoni Bowcher NEGOTIATION
Jefferson U SaylorsAustraliaOnyama Limba NEW
Adams Y CaldareraIndiaIvan Magalhaes PROPOSAL
Deepesh V OstroskyAustraliaXuxue Feng PROPOSAL
Morrow P VocelkaGermanyIvan Magalhaes QUALIFIED
Mayumi Q RoysterBrazilOnyama Limba UNQUALIFIED
Francesco V FerenczBrazilStephen Shaw NEGOTIATION
Salvatore A VocelkaRussiaElwin Sharvill QUALIFIED
Wickens I AmigonSpainIoni Bowcher UNQUALIFIED
Stacey S StockhamRussiaElwin Sharvill PROPOSAL
Murillo C BologniaAustraliaXuxue Feng PROPOSAL
Smith U RulapaughJapanAnna Fali NEW
Rodrigues M VenereItalyIvan Magalhaes RENEWAL
Stacey S NickaItalyStephen Shaw NEGOTIATION
Ricardo V OstroskyFranceStephen Shaw NEGOTIATION
Aruna R MaletIndiaAsiya Javayant PROPOSAL
Silvio L FigeroaFranceOnyama Limba NEW
Rodrigues I GlickRussiaBernardo Dominic NEGOTIATION
Rodrigues L StockhamSpainElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois F ButtFranceAsiya Javayant QUALIFIED
Wickens M CaudyBrazilAmy Elsner PROPOSAL
Octavia N MaletJapanElwin Sharvill NEW
Munro C CaudyCanadaStephen Shaw QUALIFIED
Ricardo O BriddickIndiaAsiya Javayant NEW
Leon V FigeroaIndiaBernardo Dominic PROPOSAL
Julie D BologniaGermanyIoni Bowcher NEW
Aika Z InouyeSpainElwin Sharvill NEGOTIATION
Ricardo K MacleadBrazilIoni Bowcher RENEWAL
Isabel D MorascaGermanyAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore T MarrierSpain2026-07-01Morlong Associates RENEWAL76Ivan Magalhaes
1001Adams J GauchoIndia2026-06-26King, Christopher A Esq NEGOTIATION97Amy Elsner
1002Costa W SlusarskiCanada2026-07-20Feiner Bros UNQUALIFIED81Anna Fali
1003Ivar D GillianCanada2026-07-09Truhlar And Truhlar Attys QUALIFIED79Xuxue Feng
1004James K ButtArgentina2026-07-17Morlong Associates QUALIFIED93Bernardo Dominic
1005Izzy V BologniaGermany2026-07-06Feiner Bros RENEWAL86Bernardo Dominic
1006Julie G MarrierItaly2026-07-14Rousseaux, Michael Esq PROPOSAL98Anna Fali
1007Jefferson V ChuiArgentina2026-07-05Printing Dimensions QUALIFIED28Ioni Bowcher
1008Kaitlin E RoysterIndia2026-07-04Rangoni Of Florence NEW31Stephen Shaw
1009Misaki J RutaGermany2026-07-03Rousseaux, Michael Esq UNQUALIFIED61Ivan Magalhaes
1010Isabel W ButtAustralia2026-06-22Chemel, James L Cpa UNQUALIFIED63Elwin Sharvill
1011Ivar Z DoeIndia2026-07-11Feltz Printing Service NEGOTIATION32Bernardo Dominic
1012Juan A ChuiIndia2026-06-25Buckley Miller Wright PROPOSAL69Stephen Shaw
1013Greenwood C FerenczUnited Kingdom2026-06-22Feltz Printing Service PROPOSAL16Xuxue Feng
1014Deepesh O CaudyJapan2026-07-17Chanay, Jeffrey A Esq NEW77Xuxue Feng
1015Mujtaba R CaldareraArgentina2026-06-30King, Christopher A Esq NEGOTIATION32Bernardo Dominic
1016Ricardo J KolmetzBrazil2026-06-22Feltz Printing Service NEGOTIATION8Amy Elsner
1017Julie U KuskoGermany2026-07-14Dorl, James J Esq NEGOTIATION87Ivan Magalhaes
1018Wickens G OstroskyFrance2026-07-06Benton, John B Jr PROPOSAL14Ioni Bowcher
1019Izzy A RoysterIndia2026-07-17Benton, John B Jr UNQUALIFIED61Xuxue Feng
1020Jefferson Z PerinRussia2026-07-06Buckley Miller Wright QUALIFIED2Onyama Limba
1021Faith D IturbideRussia2026-07-21Truhlar And Truhlar Attys NEW23Elwin Sharvill
1022Darci Z VenereBrazil2026-07-11Commercial Press PROPOSAL74Bernardo Dominic
1023Cody D SlusarskiUnited Kingdom2026-06-25Buckley Miller Wright RENEWAL66Xuxue Feng
1024Kaitlin C MacleadGermany2026-07-02Morlong Associates UNQUALIFIED54Bernardo Dominic
1025Arvin P MarrierJapan2026-06-27Commercial Press NEGOTIATION58Stephen Shaw
1026Silvio I RoysterArgentina2026-07-17Commercial Press NEW77Xuxue Feng
1027Claire C MacleadBrazil2026-07-01Printing Dimensions NEGOTIATION38Ioni Bowcher
1028Morrow A GillianCanada2026-07-04Chemel, James L Cpa UNQUALIFIED52Amy Elsner
1029Rodrigues N IturbideGermany2026-06-25Feltz Printing Service UNQUALIFIED19Ioni Bowcher
1030Mayumi E WaycottCanada2026-07-08Chapman, Ross E Esq NEGOTIATION34Stephen Shaw
1031Sinclair C SlusarskiUnited Kingdom2026-07-05Buckley Miller Wright QUALIFIED82Ioni Bowcher
1032Ashley C BowleyUnited Kingdom2026-07-17Printing Dimensions NEGOTIATION57Stephen Shaw
1033Ivar H NickaGermany2026-07-09Morlong Associates RENEWAL48Xuxue Feng
1034Silvio R MarrierUnited Kingdom2026-07-06Chapman, Ross E Esq NEGOTIATION64Stephen Shaw
1035Antonio P WieserArgentina2026-07-04Rousseaux, Michael Esq NEW54Ioni Bowcher
1036Faith V DarakjyUnited Kingdom2026-06-26Truhlar And Truhlar Attys NEGOTIATION72Asiya Javayant
1037James X SchemmerItaly2026-07-16King, Christopher A Esq NEW27Xuxue Feng
1038Greenwood P StensethUnited Kingdom2026-07-13Rangoni Of Florence QUALIFIED94Ioni Bowcher
1039Alejandro F NickaAustralia2026-07-03Chanay, Jeffrey A Esq NEW55Stephen Shaw
1040David K GauchoArgentina2026-07-18Feiner Bros QUALIFIED65Ioni Bowcher
1041Ricardo A FerenczArgentina2026-07-16Printing Dimensions QUALIFIED3Amy Elsner
1042Cody F WieserBrazil2026-07-11Feiner Bros NEW21Stephen Shaw
1043Chavez D MarrierJapan2026-07-03Morlong Associates RENEWAL71Anna Fali
1044Ashley E GauchoAustralia2026-07-19Benton, John B Jr RENEWAL75Xuxue Feng
1045Octavia Q SaylorsArgentina2026-06-28Dorl, James J Esq QUALIFIED28Stephen Shaw
1046Tony A BriddickFrance2026-06-22Dorl, James J Esq QUALIFIED39Amy Elsner
1047Aditya N VocelkaRussia2026-06-23Rangoni Of Florence RENEWAL10Ioni Bowcher
1048Kadeem W GlickJapan2026-07-12Buckley Miller Wright QUALIFIED37Ioni Bowcher
1049Tony R MaletSpain2026-06-26Feiner Bros PROPOSAL12Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo Z RulapaughItalyStephen Shaw NEGOTIATION
Johnson X StockhamFranceIoni Bowcher RENEWAL
Emily Z PaprockiCanadaAnna Fali RENEWAL
Claire F KolmetzGermanyStephen Shaw NEGOTIATION
Claire H NickaArgentinaOnyama Limba NEW
Mayumi P FigeroaUnited KingdomIoni Bowcher PROPOSAL
Rodrigues U GauchoUnited KingdomIoni Bowcher QUALIFIED
Ivar X NickaUnited KingdomStephen Shaw PROPOSAL
Francesco Z DarakjyAustraliaBernardo Dominic NEW
Jefferson F RimAustraliaAmy Elsner QUALIFIED
Deepesh P PerinGermanyAnna Fali NEW
Kaitlin D BologniaIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois N FollerItalyIoni Bowcher QUALIFIED
Salvatore F TollnerFranceXuxue Feng PROPOSAL
Julie Y SergiAustraliaIoni Bowcher NEW
Maisha N MarrierJapanXuxue Feng NEW
Leon W BriddickCanadaElwin Sharvill NEW
Tony D CampainBrazilElwin Sharvill NEW
Greenwood J FlosiAustraliaIoni Bowcher UNQUALIFIED
Rodrigues T GillianArgentinaAnna Fali RENEWAL
Cody F DarakjyGermanyOnyama Limba NEGOTIATION
Adams Y WhobreyArgentinaStephen Shaw NEGOTIATION
Costa A RulapaughGermanyBernardo Dominic NEW
Kaitlin A KuskoIndiaAsiya Javayant UNQUALIFIED
Costa W FerenczFranceBernardo Dominic PROPOSAL
Adams H MarrierGermanyElwin Sharvill PROPOSAL
Silvio T GlickSpainOnyama Limba RENEWAL
Cody K CampainGermanyElwin Sharvill NEGOTIATION
Leon F NestleAustraliaAsiya Javayant RENEWAL
Alejandro B RoysterRussiaIoni Bowcher UNQUALIFIED
Tony N ShinkoIndiaIvan Magalhaes NEW
Misaki R SchemmerAustraliaStephen Shaw UNQUALIFIED
Aruna W SlusarskiJapanIoni Bowcher QUALIFIED
Emily H RutaBrazilOnyama Limba UNQUALIFIED
James B WieserFranceAsiya Javayant PROPOSAL
Francesco M MarrierJapanIvan Magalhaes NEGOTIATION
Smith J CaudyBrazilIvan Magalhaes PROPOSAL
Aika A ChuiRussiaOnyama Limba RENEWAL
Kaitlin M CampainJapanXuxue Feng PROPOSAL
Costa W ButtIndiaElwin Sharvill QUALIFIED
Maria H RulapaughCanadaAsiya Javayant UNQUALIFIED
Smith H NickaUnited KingdomStephen Shaw NEW
Ricardo E PaprockiItalyAmy Elsner QUALIFIED
Clifford H AlbaresAustraliaStephen Shaw NEGOTIATION
Izzy X ShinkoGermanyIvan Magalhaes NEW
Aika M StockhamGermanyIoni Bowcher RENEWAL
Jennifer D OstroskyGermanyIoni Bowcher RENEWAL
Salvatore E NickaItalyOnyama Limba NEGOTIATION
Alejandro Q VenereGermanyXuxue Feng UNQUALIFIED
Jones B FerenczUnited KingdomXuxue Feng RENEWAL
Frozen Columns
Name
Julie A Glick
Alejandro D Ruta
Antonio R Malet
Alejandro F Vocelka
Darci H Schemmer
Ashley F Iturbide
Rodrigues F Oldroyd
Emily Y Ferencz
Jefferson A Ruta
Munro A Saylors
Salvatore I Briddick
Juan I Figeroa
Munro O Rulapaugh
Antonio S Iturbide
Maisha P Figeroa
Mayumi Q Inouye
Mayumi I Foller
Mayumi P Stenseth
Jeanfrancois V Poquette
Wickens F Glick
Clifford S Rim
Ricardo L Schemmer
Sinclair Q Nicka
Ivar M Inouye
Chavez F Poquette
Maria L Saylors
Ashley O Butt
Chavez J Slusarski
Greenwood S Saylors
Munro K Sergi
Julie R Caldarera
Aditya T Darakjy
Juan J Ferencz
Cody Z Slusarski
Stacey W Kusko
Ashley O Saylors
Aditya K Chui
Aruna Y Garufi
Misaki X Briddick
Tony Z Ferencz
Francesco B Perin
Kadeem A Darakjy
Aika G Garufi
Tony Z Rulapaugh
Nicolas X Schemmer
Emily Q Figeroa
Nicolas I Doe
Leon X Kusko
Izzy A Wieser
Ashley T Tollner
IdCountryDate
1000Russia2026-07-03
1001France2026-07-14
1002Canada2026-07-16
1003Canada2026-07-01
1004Canada2026-07-20
1005Spain2026-07-20
1006Australia2026-07-02
1007United Kingdom2026-07-06
1008India2026-07-17
1009Japan2026-06-23
1010France2026-07-06
1011Italy2026-07-08
1012United Kingdom2026-07-19
1013Russia2026-07-05
1014Italy2026-06-26
1015Brazil2026-07-01
1016France2026-07-01
1017Australia2026-07-07
1018India2026-06-22
1019Spain2026-07-17
1020Brazil2026-07-12
1021Russia2026-07-01
1022France2026-07-08
1023United Kingdom2026-07-15
1024France2026-07-12
1025Brazil2026-06-29
1026Argentina2026-07-20
1027Germany2026-07-14
1028United Kingdom2026-06-27
1029Germany2026-06-27
1030India2026-06-23
1031Italy2026-06-28
1032Germany2026-07-03
1033Russia2026-07-14
1034India2026-07-08
1035Brazil2026-07-19
1036Australia2026-06-25
1037Australia2026-07-10
1038France2026-06-23
1039Argentina2026-07-14
1040France2026-07-09
1041Australia2026-06-26
1042Germany2026-06-29
1043United Kingdom2026-06-22
1044Canada2026-07-05
1045Japan2026-06-27
1046Japan2026-06-27
1047Argentina2026-06-23
1048Russia2026-06-26
1049Australia2026-07-03

On-Demand Data

NameIdCountryDate
Aruna L Malet1000Japan2026-07-11
Mayumi L Gaucho1001Japan2026-07-21
Arvin S Figeroa1002Russia2026-06-23
Clifford B Caldarera1003Brazil2026-07-21
Ashley E Nestle1004France2026-07-07
Antonio I Kolmetz1005France2026-06-26
Julie K Rim1006Australia2026-07-14
Leja F Perin1007Brazil2026-07-05
Jeanfrancois I Nestle1008Spain2026-07-18
Claire H Marrier1009Australia2026-07-18
Nicolas V Inouye1010Argentina2026-07-10
Ivar Y Kusko1011France2026-06-26
James Y Oldroyd1012Brazil2026-07-17
Emily Q Morasca1013Australia2026-07-10
Jones C Gillian1014United Kingdom2026-07-13
Aruna Z Briddick1015Italy2026-06-30
Murillo E Marrier1016Germany2026-07-21
Isabel S Oldroyd1017Russia2026-07-11
Arvin J Albares1018Argentina2026-06-22
Salvatore X Sergi1019United Kingdom2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones U FlosiItalyAsiya Javayant PROPOSAL
Aika W ShinkoIndiaXuxue Feng PROPOSAL
Adams H GlickCanadaElwin Sharvill QUALIFIED
Silvio P MorascaRussiaAnna Fali NEW
Octavia Z ButtUnited KingdomBernardo Dominic NEW
Salvatore Y BowleyItalyElwin Sharvill QUALIFIED
James N RutaIndiaAmy Elsner RENEWAL
Mayumi M WieserUnited KingdomBernardo Dominic QUALIFIED
Emily F PoquetteGermanyAmy Elsner UNQUALIFIED
Kaitlin V SchemmerJapanIoni Bowcher RENEWAL
Costa S MorascaAustraliaXuxue Feng RENEWAL
Antonio F RoysterRussiaAnna Fali QUALIFIED
Aditya X InouyeFranceElwin Sharvill QUALIFIED
Rodrigues L GillianJapanAsiya Javayant UNQUALIFIED
Deepesh U MorascaRussiaBernardo Dominic PROPOSAL
Claire Y CaudyFranceElwin Sharvill UNQUALIFIED
Deepesh Z PerinJapanElwin Sharvill QUALIFIED
Smith V ChuiSpainIoni Bowcher NEW
Leja V NestleSpainAnna Fali NEGOTIATION
Rodrigues X VocelkaAustraliaBernardo Dominic RENEWAL
Rodrigues C WaycottFranceOnyama Limba PROPOSAL
Darci N WhobreyAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois C RoysterAustraliaIvan Magalhaes PROPOSAL
Kadeem I MaletJapanElwin Sharvill UNQUALIFIED
Emily X CaudyUnited KingdomXuxue Feng UNQUALIFIED
Wickens K KuskoItalyAsiya Javayant NEGOTIATION
Kaitlin U MorascaAustraliaBernardo Dominic QUALIFIED
Morrow B RutaUnited KingdomOnyama Limba NEGOTIATION
Octavia B WhobreyUnited KingdomXuxue Feng RENEWAL
Jefferson N ShinkoGermanyStephen Shaw QUALIFIED
Nicolas K SaylorsRussiaElwin Sharvill UNQUALIFIED
Ivar D CampainUnited KingdomAmy Elsner PROPOSAL
Clifford W KolmetzItalyAnna Fali UNQUALIFIED
Aditya G RutaAustraliaAmy Elsner RENEWAL
Jones B FigeroaJapanOnyama Limba PROPOSAL
Silvio U RutaRussiaAmy Elsner PROPOSAL
Costa D TollnerSpainAmy Elsner QUALIFIED
Silvio U ShinkoAustraliaAsiya Javayant PROPOSAL
Johnson U AlbaresJapanAmy Elsner NEW
Maria K MaletItalyStephen Shaw 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>