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
Ivar J FollerRussiaIoni Bowcher UNQUALIFIED
Murillo E KolmetzIndiaAsiya Javayant UNQUALIFIED
Murillo P FigeroaAustraliaAnna Fali QUALIFIED
Silvio Q IturbideRussiaElwin Sharvill QUALIFIED
David L SaylorsFranceAnna Fali UNQUALIFIED
Tony I ButtRussiaXuxue Feng PROPOSAL
Kadeem X ChuiBrazilBernardo Dominic NEGOTIATION
Adams G FollerAustraliaAnna Fali NEW
Claire R MarrierCanadaAnna Fali UNQUALIFIED
Jeanfrancois H ChuiBrazilBernardo Dominic QUALIFIED
Juan U ButtRussiaStephen Shaw PROPOSAL
Maisha R RimBrazilStephen Shaw QUALIFIED
Silvio Z DoeRussiaXuxue Feng QUALIFIED
Murillo S FerenczAustraliaStephen Shaw UNQUALIFIED
Leja E NickaJapanAsiya Javayant UNQUALIFIED
Aruna A InouyeAustraliaXuxue Feng PROPOSAL
Silvio X SlusarskiBrazilAmy Elsner UNQUALIFIED
Johnson G PoquetteSpainStephen Shaw NEGOTIATION
Mayumi Z FollerBrazilOnyama Limba RENEWAL
Faith X GarufiBrazilAmy Elsner PROPOSAL
Aika T GillianArgentinaOnyama Limba NEW
Kadeem T OldroydBrazilIoni Bowcher RENEWAL
Ricardo E StensethIndiaIoni Bowcher PROPOSAL
Tony R RulapaughArgentinaAnna Fali RENEWAL
Izzy S IturbideJapanXuxue Feng UNQUALIFIED
David K StockhamGermanyAnna Fali QUALIFIED
Darci Q SchemmerFranceBernardo Dominic PROPOSAL
Murillo H StensethItalyBernardo Dominic PROPOSAL
Kaitlin G PoquetteUnited KingdomIoni Bowcher PROPOSAL
Sinclair Z NestleIndiaXuxue Feng PROPOSAL
Maria X SaylorsRussiaXuxue Feng NEGOTIATION
Chavez Y CampainUnited KingdomAmy Elsner NEGOTIATION
Ricardo F FlosiSpainOnyama Limba RENEWAL
Faith S PerinCanadaAnna Fali RENEWAL
Stacey B RoysterCanadaAnna Fali NEGOTIATION
Ivar D SchemmerSpainOnyama Limba NEW
Salvatore G RutaIndiaIoni Bowcher NEGOTIATION
Claire L SaylorsGermanyAmy Elsner RENEWAL
Antonio U OstroskyGermanyIvan Magalhaes QUALIFIED
Jefferson W FerenczIndiaAsiya Javayant RENEWAL
Jeanfrancois G FlosiJapanIoni Bowcher RENEWAL
Alejandro P RimAustraliaIoni Bowcher RENEWAL
Nicolas O PerinItalyXuxue Feng UNQUALIFIED
Murillo C ShinkoFranceOnyama Limba NEGOTIATION
Jennifer K CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Smith L InouyeIndiaXuxue Feng NEGOTIATION
Julie E FigeroaArgentinaAnna Fali QUALIFIED
Cody Z StockhamBrazilAnna Fali UNQUALIFIED
David P WaycottJapanElwin Sharvill RENEWAL
Julie M StockhamBrazilElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley H FerenczUnited KingdomElwin Sharvill PROPOSAL
Sinclair R KolmetzIndiaAnna Fali NEW
Costa W MorascaRussiaOnyama Limba NEGOTIATION
Ivar U FlosiFranceAmy Elsner UNQUALIFIED
Costa B RimJapanIvan Magalhaes QUALIFIED
Darci U AlbaresIndiaAmy Elsner RENEWAL
Smith I SaylorsBrazilOnyama Limba NEW
Jennifer F BologniaSpainAsiya Javayant QUALIFIED
Sinclair L MacleadJapanAmy Elsner PROPOSAL
Stacey B MorascaRussiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa M BriddickBrazil2026-08-25Buckley Miller Wright NEGOTIATION55Onyama Limba
1001Tony B IturbideIndia2026-08-11King, Christopher A Esq QUALIFIED74Amy Elsner
1002Antonio O GauchoUnited Kingdom2026-08-04King, Christopher A Esq UNQUALIFIED61Ioni Bowcher
1003Jennifer L InouyeCanada2026-08-22Chapman, Ross E Esq RENEWAL57Ivan Magalhaes
1004Maisha O NickaArgentina2026-08-13Buckley Miller Wright PROPOSAL11Elwin Sharvill
1005Claire C GlickBrazil2026-08-11Dorl, James J Esq NEW51Onyama Limba
1006Silvio Y ShinkoGermany2026-08-26Commercial Press QUALIFIED83Elwin Sharvill
1007Alejandro K FerenczBrazil2026-08-24Chapman, Ross E Esq NEGOTIATION19Ioni Bowcher
1008Stacey E VocelkaAustralia2026-08-24Chemel, James L Cpa NEGOTIATION6Ioni Bowcher
1009Silvio Z OldroydCanada2026-08-28Chemel, James L Cpa RENEWAL94Ivan Magalhaes
1010Costa C FerenczRussia2026-08-21King, Christopher A Esq NEW93Elwin Sharvill
1011Maisha L VocelkaSpain2026-08-09Feltz Printing Service PROPOSAL30Ivan Magalhaes
1012Emily Q RimFrance2026-08-04Feiner Bros PROPOSAL37Ioni Bowcher
1013Octavia X RutaRussia2026-08-07Printing Dimensions PROPOSAL31Ioni Bowcher
1014Jeanfrancois V ButtSpain2026-08-31Chanay, Jeffrey A Esq RENEWAL29Asiya Javayant
1015Maria O ChuiUnited Kingdom2026-08-31Chemel, James L Cpa NEGOTIATION87Ioni Bowcher
1016Ashley D ShinkoAustralia2026-08-03Dorl, James J Esq UNQUALIFIED79Amy Elsner
1017Cody R ShinkoArgentina2026-08-11Chemel, James L Cpa RENEWAL85Stephen Shaw
1018Maria O WieserFrance2026-08-08Dorl, James J Esq UNQUALIFIED3Amy Elsner
1019James T SchemmerAustralia2026-08-03Morlong Associates UNQUALIFIED35Ioni Bowcher
1020Johnson E BowleyFrance2026-08-05Rousseaux, Michael Esq QUALIFIED54Bernardo Dominic
1021Maisha T GauchoIndia2026-08-17Buckley Miller Wright NEW70Bernardo Dominic
1022Francesco B NestleCanada2026-08-07Benton, John B Jr PROPOSAL85Asiya Javayant
1023Maria U DilliardUnited Kingdom2026-08-10Morlong Associates NEGOTIATION85Anna Fali
1024Ashley J OldroydCanada2026-09-01Truhlar And Truhlar Attys PROPOSAL79Xuxue Feng
1025Aika J VocelkaFrance2026-09-01Morlong Associates UNQUALIFIED35Asiya Javayant
1026Nicolas T RoysterAustralia2026-08-13Printing Dimensions PROPOSAL72Stephen Shaw
1027Stacey H PoquetteCanada2026-08-04Benton, John B Jr NEGOTIATION34Onyama Limba
1028Jones I MaletUnited Kingdom2026-08-29Chemel, James L Cpa NEW96Anna Fali
1029Munro B SchemmerArgentina2026-08-07Chapman, Ross E Esq UNQUALIFIED89Bernardo Dominic
1030Jefferson Q FerenczCanada2026-08-20Chapman, Ross E Esq NEGOTIATION57Anna Fali
1031Arvin N SaylorsBrazil2026-08-31Commercial Press PROPOSAL29Onyama Limba
1032Antonio U DarakjyAustralia2026-08-13Buckley Miller Wright UNQUALIFIED31Amy Elsner
1033Jefferson P SchemmerItaly2026-08-11Rangoni Of Florence NEW70Elwin Sharvill
1034Adams Q WieserJapan2026-08-18Benton, John B Jr UNQUALIFIED36Ioni Bowcher
1035Isabel H BologniaItaly2026-08-19Commercial Press NEW42Amy Elsner
1036Claire T SchemmerItaly2026-08-29Rousseaux, Michael Esq PROPOSAL43Anna Fali
1037Maria E CaudyJapan2026-08-04Truhlar And Truhlar Attys PROPOSAL8Asiya Javayant
1038Ivar A VocelkaItaly2026-08-05Morlong Associates NEW21Asiya Javayant
1039Mujtaba B StockhamGermany2026-08-21Morlong Associates UNQUALIFIED31Onyama Limba
1040Morrow Q GarufiGermany2026-08-05Printing Dimensions PROPOSAL31Asiya Javayant
1041Ashley M ShinkoAustralia2026-08-26Chanay, Jeffrey A Esq UNQUALIFIED69Asiya Javayant
1042Deepesh P WieserUnited Kingdom2026-08-18King, Christopher A Esq UNQUALIFIED7Ivan Magalhaes
1043Juan J CaudyIndia2026-08-23King, Christopher A Esq UNQUALIFIED31Xuxue Feng
1044Mujtaba J CaudyJapan2026-08-20Printing Dimensions UNQUALIFIED23Bernardo Dominic
1045Costa C AlbaresUnited Kingdom2026-08-23Chapman, Ross E Esq PROPOSAL20Onyama Limba
1046Greenwood S GillianAustralia2026-08-23Truhlar And Truhlar Attys NEW2Bernardo Dominic
1047Claire G InouyeIndia2026-08-22Feltz Printing Service NEW76Asiya Javayant
1048Francesco B DilliardItaly2026-08-23Rangoni Of Florence NEW2Xuxue Feng
1049Aika A BologniaUnited Kingdom2026-08-04Chanay, Jeffrey A Esq NEW25Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith O MacleadUnited KingdomStephen Shaw RENEWAL
David V KolmetzRussiaAmy Elsner PROPOSAL
Darci W GillianAustraliaOnyama Limba NEGOTIATION
Jennifer Q FigeroaRussiaOnyama Limba QUALIFIED
Greenwood L FlosiCanadaBernardo Dominic NEW
Claire P KolmetzGermanyAmy Elsner QUALIFIED
Munro B DarakjyJapanAnna Fali NEGOTIATION
Leon G BowleyFranceIoni Bowcher NEW
Adams K SlusarskiUnited KingdomStephen Shaw NEW
Wickens P OldroydFranceAmy Elsner RENEWAL
Darci B BriddickCanadaXuxue Feng RENEWAL
Mayumi S NickaCanadaOnyama Limba PROPOSAL
Ivar J MaletGermanyBernardo Dominic PROPOSAL
Jeanfrancois R GarufiCanadaAsiya Javayant RENEWAL
Jeanfrancois F BowleyRussiaAsiya Javayant NEW
Greenwood K RulapaughGermanyIvan Magalhaes QUALIFIED
Greenwood B RimCanadaIvan Magalhaes UNQUALIFIED
Ricardo O IturbideAustraliaOnyama Limba PROPOSAL
Costa C OldroydGermanyIoni Bowcher NEW
Aika E CampainIndiaAsiya Javayant PROPOSAL
Morrow U GlickBrazilXuxue Feng RENEWAL
Morrow M SaylorsBrazilOnyama Limba UNQUALIFIED
Arvin Z SlusarskiArgentinaElwin Sharvill PROPOSAL
Sinclair I NestleIndiaIvan Magalhaes UNQUALIFIED
Rodrigues Z NickaGermanyOnyama Limba UNQUALIFIED
Wickens T RutaItalyOnyama Limba NEW
Aruna U CampainCanadaOnyama Limba NEW
Greenwood P SlusarskiAustraliaStephen Shaw UNQUALIFIED
Greenwood F MorascaRussiaIvan Magalhaes NEGOTIATION
Ivar A ChuiItalyElwin Sharvill NEGOTIATION
Adams F DoeUnited KingdomStephen Shaw RENEWAL
Arvin X CampainSpainStephen Shaw RENEWAL
Murillo Y SergiRussiaAsiya Javayant UNQUALIFIED
Ricardo V OldroydAustraliaAsiya Javayant UNQUALIFIED
Misaki W CaldareraItalyIvan Magalhaes RENEWAL
Claire T SlusarskiAustraliaIoni Bowcher QUALIFIED
Izzy H CampainBrazilStephen Shaw RENEWAL
Emily B MaletBrazilAmy Elsner NEW
Kadeem D NestleJapanElwin Sharvill RENEWAL
Stacey M DilliardFranceIvan Magalhaes NEW
Jeanfrancois Z SlusarskiFranceStephen Shaw NEGOTIATION
Aika Z GillianItalyIvan Magalhaes UNQUALIFIED
Arvin X KolmetzGermanyAsiya Javayant NEW
Misaki E DarakjyGermanyIvan Magalhaes QUALIFIED
Mayumi Q ShinkoRussiaAsiya Javayant NEW
Nicolas V ChuiRussiaXuxue Feng NEW
Tony B ButtCanadaIoni Bowcher UNQUALIFIED
Greenwood O RimAustraliaStephen Shaw UNQUALIFIED
Antonio G ChuiUnited KingdomOnyama Limba PROPOSAL
Maisha O NickaArgentinaIvan Magalhaes RENEWAL
Frozen Columns
Name
David Y Nicka
Stacey S Nicka
Francesco H Waycott
David Y Sergi
Jeanfrancois L Schemmer
Rodrigues B Rim
Isabel P Bowley
Jeanfrancois H Whobrey
Adams J Rim
Tony H Nestle
Nicolas Q Albares
Misaki N Dilliard
Julie U Bolognia
Faith J Slusarski
Mayumi N Caudy
Misaki N Royster
Jennifer S Iturbide
Stacey N Perin
Salvatore G Maclead
Jones L Bowley
Alejandro Q Ferencz
Claire N Bowley
Tony L Chui
Ashley W Ferencz
Nicolas Q Morasca
David G Malet
Julie S Kolmetz
Isabel Y Poquette
Costa S Malet
Chavez U Venere
Jennifer C Ostrosky
Arvin C Kolmetz
Kaitlin W Caudy
Emily G Schemmer
Greenwood J Slusarski
Cody V Venere
Jeanfrancois S Doe
Faith C Bowley
Arvin K Paprocki
Antonio L Ruta
Nicolas V Garufi
Faith B Saylors
Ashley Y Darakjy
Cody A Slusarski
Antonio U Maclead
Aruna A Royster
Misaki Z Poquette
Mayumi E Doe
Stacey C Rulapaugh
Aika N Slusarski
IdCountryDate
1000Japan2026-08-19
1001France2026-08-28
1002Australia2026-08-27
1003Russia2026-08-14
1004Germany2026-08-16
1005Brazil2026-08-17
1006India2026-08-13
1007United Kingdom2026-08-18
1008Russia2026-08-16
1009Japan2026-08-31
1010Canada2026-08-20
1011United Kingdom2026-08-07
1012Russia2026-08-12
1013Russia2026-08-29
1014India2026-08-04
1015Japan2026-08-16
1016Japan2026-08-17
1017Australia2026-08-06
1018Canada2026-08-14
1019Spain2026-08-03
1020Argentina2026-08-10
1021Spain2026-08-04
1022Japan2026-08-04
1023Brazil2026-08-04
1024Argentina2026-08-27
1025Spain2026-08-05
1026Brazil2026-08-29
1027Italy2026-08-12
1028United Kingdom2026-08-18
1029Italy2026-08-12
1030Brazil2026-08-24
1031India2026-08-03
1032United Kingdom2026-08-29
1033Germany2026-08-29
1034India2026-09-01
1035Spain2026-08-29
1036Japan2026-08-10
1037United Kingdom2026-08-26
1038France2026-08-28
1039Argentina2026-08-07
1040Russia2026-08-21
1041Spain2026-08-25
1042Brazil2026-09-01
1043India2026-08-14
1044Italy2026-08-22
1045India2026-08-29
1046Brazil2026-08-27
1047Germany2026-08-11
1048Japan2026-08-18
1049United Kingdom2026-08-12

On-Demand Data

NameIdCountryDate
Izzy L Kolmetz1000Japan2026-08-07
Munro E Briddick1001Japan2026-08-06
Rodrigues X Bolognia1002Argentina2026-08-17
Maisha X Vocelka1003Spain2026-08-28
Rodrigues F Venere1004Russia2026-08-24
Nicolas U Chui1005Spain2026-08-31
Cody C Chui1006France2026-09-01
Leon U Ostrosky1007Germany2026-08-07
Kadeem O Whobrey1008Argentina2026-08-10
David H Venere1009Spain2026-08-24
Kaitlin X Figeroa1010Germany2026-08-27
Ivar U Kusko1011India2026-08-23
Ivar R Bolognia1012Brazil2026-08-16
Kadeem Q Saylors1013Australia2026-08-27
Misaki S Shinko1014Spain2026-08-30
Ashley A Morasca1015Spain2026-08-13
Aika B Caldarera1016France2026-08-28
Izzy G Bowley1017Italy2026-08-12
Maisha S Marrier1018Japan2026-08-10
Aditya R Malet1019Australia2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem F KolmetzSpainXuxue Feng QUALIFIED
Leja U GlickJapanIoni Bowcher UNQUALIFIED
Claire K RulapaughUnited KingdomAnna Fali UNQUALIFIED
Cody C BriddickJapanAsiya Javayant PROPOSAL
Chavez E SergiAustraliaAnna Fali NEGOTIATION
Julie K FollerSpainIvan Magalhaes NEGOTIATION
Murillo F ButtItalyAnna Fali NEGOTIATION
Leja R SchemmerGermanyAsiya Javayant RENEWAL
Clifford L WaycottUnited KingdomBernardo Dominic RENEWAL
Kadeem G BologniaItalyBernardo Dominic NEW
Johnson P SaylorsRussiaAmy Elsner PROPOSAL
Maisha A RulapaughIndiaBernardo Dominic QUALIFIED
Murillo H VenereIndiaXuxue Feng PROPOSAL
Salvatore A FlosiSpainOnyama Limba QUALIFIED
Munro U WhobreyGermanyAmy Elsner RENEWAL
Octavia Y CampainJapanAnna Fali UNQUALIFIED
Claire Z OstroskyAustraliaStephen Shaw RENEWAL
Arvin B AmigonRussiaXuxue Feng QUALIFIED
Leon E PaprockiUnited KingdomIoni Bowcher PROPOSAL
Juan D DoeIndiaIvan Magalhaes QUALIFIED
Kaitlin B MarrierCanadaStephen Shaw QUALIFIED
Nicolas U FigeroaJapanStephen Shaw RENEWAL
Mujtaba X FollerGermanyAsiya Javayant UNQUALIFIED
Ricardo O TollnerItalyBernardo Dominic UNQUALIFIED
Francesco D CampainGermanyElwin Sharvill RENEWAL
Johnson S PerinJapanAnna Fali PROPOSAL
Murillo L OstroskyBrazilStephen Shaw NEGOTIATION
Claire M NestleAustraliaAmy Elsner PROPOSAL
Emily Y GauchoFranceStephen Shaw NEGOTIATION
Ivar Z RimItalyAsiya Javayant QUALIFIED
Jeanfrancois P WaycottItalyIoni Bowcher RENEWAL
Costa U MarrierRussiaAmy Elsner UNQUALIFIED
Isabel T WhobreyBrazilOnyama Limba NEW
Isabel U ShinkoAustraliaAnna Fali NEW
Ricardo Y MacleadIndiaIoni Bowcher QUALIFIED
Arvin K AlbaresUnited KingdomAnna Fali RENEWAL
Sinclair S VocelkaFranceOnyama Limba PROPOSAL
Stacey K WaycottFranceIoni Bowcher NEW
Tony X MaletUnited KingdomXuxue Feng RENEWAL
Jennifer J NickaCanadaBernardo Dominic NEGOTIATION

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