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 S SlusarskiCanadaOnyama Limba NEGOTIATION
Clifford Y FollerGermanyElwin Sharvill NEGOTIATION
Adams K PerinCanadaOnyama Limba RENEWAL
Kadeem W DilliardIndiaAsiya Javayant UNQUALIFIED
Chavez Q MaletRussiaIoni Bowcher PROPOSAL
Mujtaba C MaletJapanAmy Elsner QUALIFIED
Ricardo U GarufiItalyBernardo Dominic RENEWAL
Jennifer J ButtUnited KingdomElwin Sharvill QUALIFIED
Tony U WhobreyIndiaAnna Fali QUALIFIED
Ivar H VenereJapanAsiya Javayant UNQUALIFIED
Cody N KuskoSpainBernardo Dominic NEGOTIATION
Leja S InouyeUnited KingdomStephen Shaw PROPOSAL
Johnson P MacleadUnited KingdomBernardo Dominic QUALIFIED
Aruna S CampainIndiaAsiya Javayant QUALIFIED
Munro M RimGermanyOnyama Limba RENEWAL
Ricardo I NestleBrazilAsiya Javayant UNQUALIFIED
Octavia U GillianRussiaIvan Magalhaes NEGOTIATION
Misaki H RulapaughAustraliaAmy Elsner PROPOSAL
Jones S MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Ivar M AlbaresJapanAsiya Javayant NEGOTIATION
Costa H MaletCanadaIvan Magalhaes UNQUALIFIED
Francesco J PoquetteItalyStephen Shaw NEW
Costa S RutaGermanyStephen Shaw RENEWAL
Jennifer N SlusarskiItalyIoni Bowcher RENEWAL
Chavez S SaylorsArgentinaXuxue Feng NEGOTIATION
Leon P StensethArgentinaBernardo Dominic NEW
Salvatore E StensethRussiaIvan Magalhaes UNQUALIFIED
Izzy Q GlickCanadaOnyama Limba RENEWAL
Emily G InouyeSpainStephen Shaw NEGOTIATION
Mujtaba U GarufiAustraliaOnyama Limba NEGOTIATION
Misaki I SlusarskiCanadaAsiya Javayant QUALIFIED
Jennifer B ButtUnited KingdomIoni Bowcher QUALIFIED
Jennifer E WhobreyArgentinaOnyama Limba PROPOSAL
Maria I WaycottGermanyAsiya Javayant QUALIFIED
Morrow V MaletGermanyElwin Sharvill PROPOSAL
Octavia Y MarrierUnited KingdomElwin Sharvill QUALIFIED
Juan J ChuiRussiaXuxue Feng NEGOTIATION
Smith A SlusarskiAustraliaAsiya Javayant NEW
Clifford I CaldareraRussiaAmy Elsner NEW
Aditya G GarufiBrazilOnyama Limba RENEWAL
Nicolas G DilliardGermanyAmy Elsner PROPOSAL
Ricardo E BriddickGermanyIoni Bowcher PROPOSAL
James A CaldareraGermanyIoni Bowcher PROPOSAL
Rodrigues F SaylorsUnited KingdomAsiya Javayant RENEWAL
Misaki F IturbideJapanXuxue Feng NEGOTIATION
Silvio M InouyeArgentinaXuxue Feng QUALIFIED
Murillo F OstroskyAustraliaAnna Fali NEW
Jones O RulapaughArgentinaElwin Sharvill UNQUALIFIED
Jennifer M CaudyGermanyAsiya Javayant PROPOSAL
Cody U AlbaresGermanyAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith Y FigeroaArgentinaOnyama Limba QUALIFIED
Chavez U KuskoAustraliaBernardo Dominic PROPOSAL
Jones T BowleyUnited KingdomAmy Elsner RENEWAL
Wickens S FerenczJapanOnyama Limba RENEWAL
Aditya H SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Aditya W NestleCanadaIoni Bowcher UNQUALIFIED
Cody D WieserFranceAnna Fali PROPOSAL
Isabel D AlbaresGermanyStephen Shaw PROPOSAL
Munro I NestleGermanyStephen Shaw QUALIFIED
Mayumi H DilliardGermanyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin B FerenczCanada2026-07-23Printing Dimensions NEW28Xuxue Feng
1001Smith F MorascaGermany2026-07-26King, Christopher A Esq NEGOTIATION74Elwin Sharvill
1002David L DoeUnited Kingdom2026-07-12Chemel, James L Cpa NEGOTIATION56Xuxue Feng
1003Isabel H StensethRussia2026-07-27Chapman, Ross E Esq UNQUALIFIED91Amy Elsner
1004Mayumi O FollerFrance2026-07-03Benton, John B Jr PROPOSAL30Anna Fali
1005Jeanfrancois H DilliardAustralia2026-07-23Rousseaux, Michael Esq RENEWAL92Amy Elsner
1006Tony C SaylorsCanada2026-07-27Chanay, Jeffrey A Esq PROPOSAL33Amy Elsner
1007Emily Z FerenczItaly2026-07-09Rousseaux, Michael Esq UNQUALIFIED90Onyama Limba
1008Faith M OstroskyJapan2026-07-22Feiner Bros NEGOTIATION21Amy Elsner
1009Antonio B MacleadUnited Kingdom2026-07-15Buckley Miller Wright RENEWAL55Ioni Bowcher
1010Aika O FigeroaJapan2026-07-15Rousseaux, Michael Esq QUALIFIED70Amy Elsner
1011Smith W WaycottJapan2026-07-19Morlong Associates PROPOSAL67Anna Fali
1012Stacey E ChuiRussia2026-07-24Benton, John B Jr NEGOTIATION87Elwin Sharvill
1013Octavia F NestleSpain2026-07-16Feiner Bros NEW95Bernardo Dominic
1014Wickens H RulapaughArgentina2026-07-15Printing Dimensions PROPOSAL18Ioni Bowcher
1015Munro Y MarrierJapan2026-07-24King, Christopher A Esq PROPOSAL81Xuxue Feng
1016Arvin N ChuiAustralia2026-07-07Morlong Associates NEW64Onyama Limba
1017Francesco T MaletSpain2026-07-09Chemel, James L Cpa NEGOTIATION24Ivan Magalhaes
1018Kaitlin I TollnerFrance2026-07-05Buckley Miller Wright RENEWAL2Ioni Bowcher
1019Murillo K VocelkaIndia2026-07-28Feiner Bros NEW14Amy Elsner
1020Juan X NestleIndia2026-07-18Feiner Bros RENEWAL20Amy Elsner
1021Antonio M DoeCanada2026-07-31Rousseaux, Michael Esq NEGOTIATION71Anna Fali
1022Jennifer Q TollnerJapan2026-07-13Printing Dimensions UNQUALIFIED20Amy Elsner
1023Morrow M BologniaGermany2026-07-04Benton, John B Jr NEGOTIATION3Xuxue Feng
1024Claire E ChuiUnited Kingdom2026-07-24Printing Dimensions UNQUALIFIED82Onyama Limba
1025Leja A OldroydAustralia2026-07-25King, Christopher A Esq RENEWAL62Ivan Magalhaes
1026Emily L SergiArgentina2026-07-16Buckley Miller Wright PROPOSAL95Xuxue Feng
1027Murillo W RoysterJapan2026-07-12Feltz Printing Service NEGOTIATION1Bernardo Dominic
1028Wickens V PerinIndia2026-07-07Commercial Press NEW94Onyama Limba
1029Silvio N SaylorsSpain2026-07-28Rangoni Of Florence QUALIFIED95Bernardo Dominic
1030Alejandro C BologniaBrazil2026-07-07Truhlar And Truhlar Attys PROPOSAL66Bernardo Dominic
1031Stacey B CaldareraIndia2026-07-25Feltz Printing Service RENEWAL79Amy Elsner
1032Murillo T MorascaUnited Kingdom2026-07-26Morlong Associates QUALIFIED42Onyama Limba
1033Munro V SchemmerRussia2026-07-16Chemel, James L Cpa PROPOSAL53Onyama Limba
1034Leja I FlosiBrazil2026-07-22Dorl, James J Esq QUALIFIED74Xuxue Feng
1035Wickens T IturbideFrance2026-07-16Truhlar And Truhlar Attys NEGOTIATION3Ioni Bowcher
1036Ricardo X OldroydArgentina2026-07-06Chanay, Jeffrey A Esq RENEWAL36Amy Elsner
1037Juan L AmigonArgentina2026-07-02Feiner Bros PROPOSAL39Ivan Magalhaes
1038Mayumi T InouyeItaly2026-07-28Truhlar And Truhlar Attys RENEWAL74Elwin Sharvill
1039Salvatore M BowleyFrance2026-07-14Benton, John B Jr NEGOTIATION56Asiya Javayant
1040Ashley P WaycottJapan2026-07-24Morlong Associates NEW45Bernardo Dominic
1041Tony I WaycottIndia2026-07-13Chapman, Ross E Esq NEW62Stephen Shaw
1042Ricardo G GauchoIndia2026-07-29Truhlar And Truhlar Attys QUALIFIED32Ioni Bowcher
1043Antonio X PerinBrazil2026-07-02Feiner Bros QUALIFIED45Elwin Sharvill
1044Kadeem A PaprockiArgentina2026-07-09Rousseaux, Michael Esq PROPOSAL83Amy Elsner
1045Isabel F InouyeBrazil2026-07-15Buckley Miller Wright NEW33Elwin Sharvill
1046Silvio W WhobreyUnited Kingdom2026-07-15King, Christopher A Esq NEW82Ivan Magalhaes
1047Costa O VocelkaItaly2026-07-07Benton, John B Jr PROPOSAL4Xuxue Feng
1048Jones R KolmetzArgentina2026-07-13Chanay, Jeffrey A Esq NEW82Amy Elsner
1049Johnson K FerenczJapan2026-07-25Truhlar And Truhlar Attys RENEWAL74Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio Z SaylorsRussiaAmy Elsner NEW
Julie E WaycottSpainStephen Shaw QUALIFIED
Silvio C FollerUnited KingdomStephen Shaw NEW
Darci Z MarrierSpainAmy Elsner NEW
Octavia A MaletAustraliaAmy Elsner QUALIFIED
Deepesh W BowleyIndiaXuxue Feng QUALIFIED
Ivar Q RulapaughSpainAnna Fali PROPOSAL
Octavia C VenereGermanyIoni Bowcher QUALIFIED
Jennifer R StensethRussiaBernardo Dominic NEGOTIATION
Smith R MaletSpainStephen Shaw QUALIFIED
Aditya C PoquetteAustraliaAmy Elsner NEGOTIATION
Faith X SergiRussiaIoni Bowcher UNQUALIFIED
Antonio K CaldareraFranceStephen Shaw NEW
Ashley U OldroydGermanyOnyama Limba NEW
Isabel C PaprockiSpainElwin Sharvill UNQUALIFIED
Murillo S MarrierSpainAmy Elsner NEGOTIATION
Ashley D MaletSpainXuxue Feng NEW
Morrow B GauchoIndiaAsiya Javayant NEGOTIATION
Stacey J SergiIndiaOnyama Limba NEGOTIATION
Rodrigues Z RulapaughSpainStephen Shaw NEGOTIATION
Isabel R FerenczIndiaXuxue Feng UNQUALIFIED
Murillo Z RutaJapanIoni Bowcher PROPOSAL
Aditya W GauchoUnited KingdomOnyama Limba NEW
Izzy W OldroydFranceIvan Magalhaes RENEWAL
Munro G BologniaFranceAmy Elsner NEGOTIATION
Emily U GlickFranceOnyama Limba PROPOSAL
Sinclair T FerenczItalyStephen Shaw PROPOSAL
Costa K CampainFranceElwin Sharvill PROPOSAL
Antonio R CaudyItalyXuxue Feng PROPOSAL
Maisha G CampainArgentinaIoni Bowcher RENEWAL
Adams C MaletUnited KingdomOnyama Limba RENEWAL
Munro B RutaIndiaIvan Magalhaes NEGOTIATION
Izzy S SchemmerIndiaStephen Shaw PROPOSAL
Maisha M SchemmerIndiaStephen Shaw RENEWAL
Smith T FigeroaCanadaOnyama Limba PROPOSAL
Kadeem W MarrierJapanOnyama Limba PROPOSAL
Mujtaba P MacleadIndiaOnyama Limba UNQUALIFIED
Tony A ShinkoIndiaAmy Elsner RENEWAL
Aruna S FigeroaBrazilStephen Shaw RENEWAL
Wickens S OldroydIndiaXuxue Feng RENEWAL
Maria U BologniaUnited KingdomIoni Bowcher QUALIFIED
Antonio Z GarufiRussiaIoni Bowcher QUALIFIED
Mayumi Y CampainRussiaAnna Fali NEGOTIATION
Juan X StockhamAustraliaAnna Fali RENEWAL
Chavez B BriddickAustraliaIvan Magalhaes NEGOTIATION
Greenwood W CaudyAustraliaAnna Fali PROPOSAL
Jennifer F SaylorsCanadaOnyama Limba RENEWAL
Izzy B TollnerCanadaElwin Sharvill PROPOSAL
Aruna R ButtArgentinaAnna Fali QUALIFIED
Antonio R VocelkaItalyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Johnson Y Kolmetz
Cody H Wieser
Chavez B Malet
Morrow G Rulapaugh
Aditya Y Paprocki
Smith X Vocelka
Antonio F Poquette
Claire P Schemmer
Leon E Rim
Alejandro R Chui
Faith C Whobrey
Adams K Briddick
Aruna P Ferencz
Ashley W Albares
Izzy X Marrier
Mayumi F Kusko
Alejandro V Kusko
Francesco T Malet
Clifford T Tollner
Jefferson D Glick
Clifford B Butt
Leon N Kolmetz
Mujtaba A Flosi
Ricardo N Albares
Smith Y Paprocki
Misaki P Schemmer
Kadeem J Inouye
Nicolas L Chui
Morrow Q Bolognia
Jefferson T Vocelka
Leon N Tollner
Ivar C Amigon
Smith W Albares
Jones E Venere
Kaitlin E Malet
Aditya B Garufi
Emily I Gillian
Stacey J Schemmer
Mujtaba J Perin
Leja D Kusko
Julie B Ferencz
Leja Z Figeroa
Jones W Dilliard
Nicolas R Darakjy
Leja E Venere
Juan B Kolmetz
Maria M Slusarski
Maria X Dilliard
Cody G Shinko
Aruna T Campain
IdCountryDate
1000Argentina2026-07-05
1001Russia2026-07-10
1002Brazil2026-07-12
1003Italy2026-07-20
1004Japan2026-07-03
1005United Kingdom2026-07-16
1006Argentina2026-07-11
1007Italy2026-07-04
1008France2026-07-08
1009Italy2026-07-13
1010Argentina2026-07-23
1011Italy2026-07-21
1012Brazil2026-07-16
1013Russia2026-07-08
1014Russia2026-07-26
1015Canada2026-07-22
1016India2026-07-09
1017United Kingdom2026-07-15
1018United Kingdom2026-07-22
1019Germany2026-07-11
1020Spain2026-07-05
1021Canada2026-07-10
1022Australia2026-07-19
1023Canada2026-07-12
1024Argentina2026-07-03
1025Russia2026-07-26
1026Canada2026-07-26
1027Australia2026-07-25
1028Australia2026-07-28
1029India2026-07-17
1030United Kingdom2026-07-25
1031United Kingdom2026-07-25
1032Russia2026-07-15
1033Brazil2026-07-24
1034Brazil2026-07-30
1035Australia2026-07-27
1036Canada2026-07-25
1037Argentina2026-07-10
1038France2026-07-31
1039France2026-07-19
1040United Kingdom2026-07-02
1041Canada2026-07-21
1042France2026-07-09
1043France2026-07-08
1044Italy2026-07-08
1045United Kingdom2026-07-04
1046Russia2026-07-19
1047Japan2026-07-27
1048Canada2026-07-16
1049Brazil2026-07-28

On-Demand Data

NameIdCountryDate
Antonio I Malet1000Russia2026-07-06
Aditya I Gaucho1001Argentina2026-07-16
Julie P Whobrey1002Japan2026-07-27
Julie Z Darakjy1003Italy2026-07-24
Mayumi U Inouye1004Japan2026-07-18
Ivar P Doe1005Argentina2026-07-27
Wickens L Caudy1006France2026-07-26
Costa T Schemmer1007Argentina2026-07-22
Johnson H Figeroa1008France2026-07-28
Leja U Dilliard1009Argentina2026-07-31
Stacey Z Ruta1010Spain2026-07-13
Claire N Briddick1011France2026-07-09
Faith F Rim1012Argentina2026-07-06
Faith K Maclead1013Brazil2026-07-10
Jones D Marrier1014Japan2026-07-05
Greenwood F Perin1015Brazil2026-07-10
Francesco P Shinko1016France2026-07-10
Darci G Rim1017Japan2026-07-16
Jennifer B Butt1018Germany2026-07-19
Mayumi W Bolognia1019Japan2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues A MaletSpainIoni Bowcher RENEWAL
Maria N NickaSpainIoni Bowcher NEW
Jeanfrancois O FlosiArgentinaAsiya Javayant UNQUALIFIED
Morrow K GauchoJapanXuxue Feng UNQUALIFIED
Silvio I RoysterAustraliaAmy Elsner PROPOSAL
Johnson F StensethGermanyElwin Sharvill NEW
Julie J DarakjyUnited KingdomIoni Bowcher NEW
Chavez Q FollerItalyAmy Elsner NEW
Adams I RimIndiaAmy Elsner PROPOSAL
Juan Y FigeroaSpainAsiya Javayant NEW
Isabel Z GarufiBrazilAsiya Javayant UNQUALIFIED
Jefferson W OldroydSpainOnyama Limba QUALIFIED
Nicolas T MacleadIndiaAsiya Javayant NEW
Jones U ChuiSpainAnna Fali QUALIFIED
Kadeem U TollnerBrazilIvan Magalhaes QUALIFIED
Aika T CampainIndiaXuxue Feng NEW
Adams S MaletBrazilXuxue Feng QUALIFIED
Claire A FollerIndiaAsiya Javayant NEGOTIATION
Leja J ButtBrazilElwin Sharvill PROPOSAL
Julie F WhobreyAustraliaXuxue Feng PROPOSAL
Kadeem P RutaIndiaStephen Shaw QUALIFIED
Claire A GauchoCanadaAnna Fali NEGOTIATION
Antonio W FerenczSpainElwin Sharvill QUALIFIED
Leja A PerinArgentinaAmy Elsner UNQUALIFIED
Misaki R RimUnited KingdomBernardo Dominic PROPOSAL
Kadeem P RoysterFranceIvan Magalhaes PROPOSAL
Munro N RoysterItalyXuxue Feng UNQUALIFIED
Wickens K MaletFranceIvan Magalhaes UNQUALIFIED
Murillo R WieserAustraliaIoni Bowcher NEW
Smith D VocelkaAustraliaStephen Shaw QUALIFIED
Aruna X FerenczBrazilIvan Magalhaes QUALIFIED
Clifford Z CaudyIndiaAsiya Javayant PROPOSAL
Greenwood K GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Cody C ShinkoGermanyAnna Fali QUALIFIED
Clifford T ChuiCanadaIvan Magalhaes UNQUALIFIED
Adams H WaycottUnited KingdomStephen Shaw UNQUALIFIED
Aika V AmigonCanadaAsiya Javayant UNQUALIFIED
Ivar U GauchoIndiaXuxue Feng PROPOSAL
Rodrigues P DoeFranceOnyama Limba QUALIFIED
Kadeem J BriddickCanadaIvan Magalhaes 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>