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
Tony G MaletJapanStephen Shaw NEGOTIATION
Silvio E WieserFranceBernardo Dominic NEGOTIATION
Deepesh G PaprockiGermanyAsiya Javayant PROPOSAL
Aruna D SergiJapanAsiya Javayant NEW
Clifford S DilliardAustraliaAmy Elsner UNQUALIFIED
Adams P OldroydIndiaAmy Elsner UNQUALIFIED
Alejandro L WhobreyFranceOnyama Limba UNQUALIFIED
Jeanfrancois X FerenczIndiaIvan Magalhaes UNQUALIFIED
Mujtaba J RimArgentinaElwin Sharvill NEW
Emily L GillianAustraliaAmy Elsner RENEWAL
Mujtaba U PerinItalyAmy Elsner QUALIFIED
Deepesh X RoysterJapanBernardo Dominic PROPOSAL
Misaki G BologniaItalyOnyama Limba QUALIFIED
Darci W CaldareraRussiaIvan Magalhaes NEGOTIATION
Adams B AmigonBrazilBernardo Dominic NEGOTIATION
Silvio Q DilliardIndiaIoni Bowcher NEGOTIATION
Salvatore B IturbideJapanIoni Bowcher UNQUALIFIED
Antonio Q MaletJapanIoni Bowcher NEW
Emily P ChuiGermanyStephen Shaw PROPOSAL
Smith M FollerJapanIvan Magalhaes QUALIFIED
Rodrigues Q OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Claire P IturbideRussiaIoni Bowcher NEGOTIATION
Izzy U FerenczAustraliaIvan Magalhaes QUALIFIED
Jefferson R BowleyBrazilIoni Bowcher PROPOSAL
Stacey I BologniaCanadaIvan Magalhaes NEGOTIATION
Emily G GarufiJapanAmy Elsner RENEWAL
Faith W SlusarskiJapanElwin Sharvill PROPOSAL
Jennifer J ShinkoAustraliaBernardo Dominic PROPOSAL
Ricardo P BriddickSpainXuxue Feng UNQUALIFIED
Emily D AlbaresUnited KingdomOnyama Limba NEW
Jennifer B MaletSpainIvan Magalhaes NEW
Jones W OstroskyCanadaIvan Magalhaes NEGOTIATION
Ivar M CampainUnited KingdomAsiya Javayant NEGOTIATION
James M StockhamArgentinaBernardo Dominic PROPOSAL
Francesco Q MorascaRussiaBernardo Dominic PROPOSAL
Jeanfrancois N FollerSpainOnyama Limba NEW
Isabel K CampainFranceStephen Shaw UNQUALIFIED
Deepesh W FlosiFranceStephen Shaw PROPOSAL
Jones K DoeCanadaBernardo Dominic QUALIFIED
Antonio C FerenczCanadaIoni Bowcher NEGOTIATION
Darci T RimArgentinaIvan Magalhaes NEW
Greenwood Z VocelkaItalyXuxue Feng UNQUALIFIED
Rodrigues L RimJapanAmy Elsner PROPOSAL
Silvio O CaudyItalyIoni Bowcher QUALIFIED
Costa E TollnerGermanyStephen Shaw RENEWAL
Adams T ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood W IturbideAustraliaAsiya Javayant UNQUALIFIED
Rodrigues Z BowleyArgentinaStephen Shaw UNQUALIFIED
Julie Y WaycottUnited KingdomElwin Sharvill NEW
Leon K SergiIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Leja A ShinkoArgentinaIoni Bowcher QUALIFIED
Emily Y KuskoArgentinaAmy Elsner NEW
Sinclair W MorascaJapanAnna Fali PROPOSAL
James W TollnerRussiaIoni Bowcher RENEWAL
Juan O DoeGermanyIoni Bowcher QUALIFIED
Emily U SaylorsCanadaElwin Sharvill NEW
Isabel G AlbaresGermanyIvan Magalhaes PROPOSAL
Salvatore W WhobreyItalyStephen Shaw QUALIFIED
Munro O FlosiItalyIvan Magalhaes NEW
Aika L SergiItalyAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio R BologniaIndia2026-06-30Chapman, Ross E Esq QUALIFIED75Anna Fali
1001Murillo I PaprockiSpain2026-06-19Rousseaux, Michael Esq NEW36Asiya Javayant
1002Wickens C InouyeIndia2026-06-12Benton, John B Jr PROPOSAL35Ivan Magalhaes
1003Aika O PaprockiUnited Kingdom2026-06-14Feltz Printing Service UNQUALIFIED18Asiya Javayant
1004Mujtaba I ButtRussia2026-06-06Commercial Press QUALIFIED11Ioni Bowcher
1005Maisha V MaletJapan2026-06-30Rangoni Of Florence UNQUALIFIED23Asiya Javayant
1006Smith X StensethIndia2026-06-29Chemel, James L Cpa PROPOSAL16Elwin Sharvill
1007Jefferson N PerinBrazil2026-06-05Buckley Miller Wright NEW82Ioni Bowcher
1008Johnson W TollnerJapan2026-06-17Rousseaux, Michael Esq PROPOSAL80Amy Elsner
1009Greenwood C NickaFrance2026-06-16King, Christopher A Esq NEGOTIATION34Amy Elsner
1010Emily V RutaRussia2026-06-13Rangoni Of Florence NEGOTIATION60Ivan Magalhaes
1011Rodrigues X GillianArgentina2026-06-08Buckley Miller Wright QUALIFIED6Xuxue Feng
1012Wickens T AlbaresFrance2026-06-28King, Christopher A Esq QUALIFIED89Stephen Shaw
1013Stacey F KolmetzIndia2026-06-02Rousseaux, Michael Esq UNQUALIFIED94Elwin Sharvill
1014Ivar P KolmetzBrazil2026-06-20Chapman, Ross E Esq PROPOSAL89Elwin Sharvill
1015Jennifer O StockhamGermany2026-06-21Commercial Press NEGOTIATION65Ioni Bowcher
1016Darci F PaprockiFrance2026-06-21Chapman, Ross E Esq NEGOTIATION79Stephen Shaw
1017Deepesh H VenereArgentina2026-06-05Feiner Bros NEGOTIATION30Elwin Sharvill
1018Ivar F WhobreyBrazil2026-06-17Feiner Bros NEGOTIATION99Onyama Limba
1019James S GauchoUnited Kingdom2026-06-23Rousseaux, Michael Esq NEW73Stephen Shaw
1020Antonio P SchemmerCanada2026-06-29Chanay, Jeffrey A Esq NEW60Anna Fali
1021Murillo I OldroydFrance2026-06-28Benton, John B Jr PROPOSAL41Ivan Magalhaes
1022Nicolas A CaudyBrazil2026-06-10Chapman, Ross E Esq QUALIFIED44Asiya Javayant
1023Aditya S KuskoAustralia2026-06-15Rousseaux, Michael Esq NEGOTIATION38Ivan Magalhaes
1024Rodrigues J AlbaresAustralia2026-06-07Rangoni Of Florence QUALIFIED74Onyama Limba
1025Rodrigues R RimSpain2026-06-09Rousseaux, Michael Esq UNQUALIFIED97Amy Elsner
1026Isabel U CaldareraAustralia2026-06-12Benton, John B Jr QUALIFIED44Anna Fali
1027Greenwood B FerenczUnited Kingdom2026-06-12King, Christopher A Esq QUALIFIED99Anna Fali
1028Adams M DoeArgentina2026-06-25Chanay, Jeffrey A Esq NEGOTIATION63Ioni Bowcher
1029Leon H NickaRussia2026-06-12Benton, John B Jr UNQUALIFIED96Anna Fali
1030Munro U KolmetzUnited Kingdom2026-06-20Chapman, Ross E Esq UNQUALIFIED1Ioni Bowcher
1031Ivar W VocelkaJapan2026-06-05Buckley Miller Wright NEW94Amy Elsner
1032Ivar A IturbideArgentina2026-06-05Feltz Printing Service QUALIFIED30Ivan Magalhaes
1033Smith R SergiFrance2026-06-17Rangoni Of Florence UNQUALIFIED9Asiya Javayant
1034Cody C VocelkaItaly2026-06-20Buckley Miller Wright RENEWAL50Elwin Sharvill
1035Sinclair G RoysterGermany2026-06-10Feiner Bros NEGOTIATION13Asiya Javayant
1036Kadeem J FlosiUnited Kingdom2026-06-26King, Christopher A Esq UNQUALIFIED79Anna Fali
1037Juan G DoeCanada2026-06-09Feltz Printing Service RENEWAL62Amy Elsner
1038Faith N DarakjyAustralia2026-06-05Benton, John B Jr UNQUALIFIED90Onyama Limba
1039Salvatore Z IturbideFrance2026-06-18Commercial Press NEGOTIATION33Ivan Magalhaes
1040Aika F SaylorsRussia2026-06-19Chanay, Jeffrey A Esq NEW77Anna Fali
1041Mujtaba C PoquetteGermany2026-06-28Feltz Printing Service NEGOTIATION1Amy Elsner
1042Jefferson L RimItaly2026-06-30Commercial Press NEW80Stephen Shaw
1043Ivar I SchemmerIndia2026-06-10Truhlar And Truhlar Attys QUALIFIED71Anna Fali
1044Aditya O BologniaGermany2026-06-24Feltz Printing Service RENEWAL89Ivan Magalhaes
1045Kaitlin V TollnerSpain2026-06-18Dorl, James J Esq NEW67Bernardo Dominic
1046Chavez Y StensethCanada2026-06-28Benton, John B Jr QUALIFIED76Asiya Javayant
1047Aika Z RulapaughJapan2026-06-15Rousseaux, Michael Esq NEGOTIATION74Anna Fali
1048Ricardo Y MarrierIndia2026-06-06Benton, John B Jr QUALIFIED68Onyama Limba
1049Izzy F MarrierRussia2026-06-21Rangoni Of Florence QUALIFIED89Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba G FigeroaAustraliaAsiya Javayant PROPOSAL
Kadeem U MaletBrazilIvan Magalhaes NEGOTIATION
Jennifer B MorascaArgentinaIoni Bowcher RENEWAL
Wickens F RulapaughCanadaAnna Fali NEGOTIATION
Mayumi U VenereGermanyOnyama Limba QUALIFIED
Jennifer Y FigeroaAustraliaIoni Bowcher RENEWAL
Nicolas I RutaIndiaBernardo Dominic NEGOTIATION
Johnson Y MaletRussiaAmy Elsner PROPOSAL
Izzy Z SergiFranceBernardo Dominic UNQUALIFIED
Rodrigues S BologniaBrazilOnyama Limba QUALIFIED
Octavia Y WaycottCanadaAmy Elsner UNQUALIFIED
Chavez F RoysterItalyOnyama Limba NEGOTIATION
Ivar M ChuiAustraliaStephen Shaw NEGOTIATION
David G GlickUnited KingdomAsiya Javayant NEW
Rodrigues C DoeItalyOnyama Limba NEGOTIATION
Greenwood G OstroskySpainBernardo Dominic UNQUALIFIED
Silvio U FerenczCanadaIoni Bowcher RENEWAL
Morrow S SergiAustraliaAnna Fali PROPOSAL
Tony Y DarakjyItalyIoni Bowcher UNQUALIFIED
Smith O DarakjyItalyStephen Shaw QUALIFIED
James I SergiJapanAsiya Javayant RENEWAL
Murillo I DarakjyAustraliaElwin Sharvill QUALIFIED
Murillo L SaylorsFranceBernardo Dominic RENEWAL
Alejandro S IturbideAustraliaXuxue Feng QUALIFIED
Francesco T GlickJapanIoni Bowcher QUALIFIED
Mayumi U PoquetteSpainIvan Magalhaes PROPOSAL
Wickens W SaylorsCanadaXuxue Feng NEW
David R ButtSpainIoni Bowcher NEW
Stacey K AlbaresFranceAnna Fali NEGOTIATION
Arvin C ChuiFranceElwin Sharvill PROPOSAL
Ashley Q RulapaughCanadaXuxue Feng UNQUALIFIED
Munro D ButtCanadaAmy Elsner RENEWAL
Aruna Q InouyeRussiaAnna Fali PROPOSAL
Tony P VocelkaFranceElwin Sharvill NEGOTIATION
Leja E FigeroaItalyElwin Sharvill NEW
Jeanfrancois N VenereGermanyAnna Fali NEW
Francesco A FollerItalyIvan Magalhaes NEGOTIATION
Clifford S GillianArgentinaBernardo Dominic PROPOSAL
Chavez G StockhamSpainXuxue Feng NEW
Jefferson X StockhamUnited KingdomAsiya Javayant NEGOTIATION
Salvatore B OstroskySpainAnna Fali NEW
Aruna M MorascaRussiaAnna Fali PROPOSAL
Nicolas O CaldareraBrazilXuxue Feng NEGOTIATION
Murillo O WaycottAustraliaBernardo Dominic NEGOTIATION
Darci V MorascaJapanAnna Fali UNQUALIFIED
Faith J SergiAustraliaAsiya Javayant NEGOTIATION
Francesco G CaldareraItalyStephen Shaw RENEWAL
Aika V NestleCanadaStephen Shaw UNQUALIFIED
Murillo V NestleCanadaIoni Bowcher NEW
Maria G SergiSpainStephen Shaw NEW
Frozen Columns
Name
Chavez Q Figeroa
Johnson D Amigon
Mayumi Z Nicka
Juan U Figeroa
Adams Z Rim
Octavia I Caldarera
Maria R Briddick
Emily C Darakjy
Smith H Doe
Kaitlin B Shinko
Morrow L Ostrosky
Juan A Oldroyd
Clifford N Kolmetz
Octavia J Malet
Jennifer E Inouye
James Y Flosi
Nicolas U Gillian
Costa R Iturbide
Greenwood T Malet
Leon C Caldarera
Izzy P Whobrey
Arvin T Nestle
Arvin Y Perin
Adams B Campain
Jennifer U Dilliard
Mayumi D Glick
Misaki K Chui
Nicolas O Kusko
Francesco X Doe
Leon W Royster
Octavia J Doe
Julie Q Inouye
Emily F Caldarera
Mayumi G Marrier
Aditya Y Doe
Murillo W Waycott
Ricardo D Flosi
Jefferson S Stenseth
Alejandro W Maclead
Smith D Ferencz
Mayumi P Vocelka
Darci I Caudy
Sinclair D Saylors
Juan G Maclead
Leon A Waycott
Munro C Nicka
Jeanfrancois Y Oldroyd
Octavia O Waycott
Ashley M Ostrosky
Claire R Saylors
IdCountryDate
1000Argentina2026-06-19
1001India2026-06-14
1002India2026-06-30
1003India2026-06-27
1004Brazil2026-06-19
1005Brazil2026-06-29
1006India2026-06-20
1007India2026-06-16
1008Canada2026-06-12
1009Canada2026-06-25
1010France2026-06-30
1011France2026-06-27
1012Italy2026-06-17
1013Germany2026-06-03
1014Argentina2026-06-23
1015Japan2026-06-10
1016Argentina2026-06-20
1017France2026-06-12
1018Russia2026-06-30
1019Italy2026-06-14
1020Russia2026-06-12
1021Brazil2026-06-24
1022Brazil2026-06-10
1023Russia2026-06-16
1024India2026-06-28
1025France2026-06-21
1026United Kingdom2026-06-23
1027Germany2026-06-11
1028Canada2026-06-23
1029France2026-06-30
1030Russia2026-06-06
1031United Kingdom2026-06-02
1032Germany2026-07-01
1033Germany2026-06-21
1034United Kingdom2026-06-14
1035Italy2026-06-18
1036United Kingdom2026-06-13
1037Australia2026-06-12
1038Italy2026-06-13
1039Russia2026-06-13
1040Australia2026-06-22
1041Russia2026-06-28
1042Canada2026-06-13
1043Australia2026-06-15
1044Russia2026-06-13
1045United Kingdom2026-06-20
1046France2026-06-29
1047Argentina2026-06-15
1048Brazil2026-06-11
1049Argentina2026-06-24

On-Demand Data

NameIdCountryDate
Stacey M Waycott1000Japan2026-06-21
Salvatore I Tollner1001Canada2026-06-09
Deepesh W Figeroa1002Italy2026-06-21
David Y Inouye1003Spain2026-06-19
James A Waycott1004United Kingdom2026-06-02
Jeanfrancois X Ostrosky1005Russia2026-06-20
Francesco V Nestle1006India2026-06-24
Emily T Oldroyd1007Brazil2026-06-23
Maisha F Briddick1008France2026-06-28
Isabel W Poquette1009Brazil2026-06-23
Isabel I Kusko1010India2026-06-20
Rodrigues C Bolognia1011Spain2026-07-01
Leja U Nestle1012Italy2026-06-05
Ashley T Slusarski1013Germany2026-06-09
Clifford G Figeroa1014Italy2026-06-14
Ricardo S Kusko1015Spain2026-06-24
James T Chui1016Australia2026-06-28
Jefferson L Butt1017India2026-06-26
Jennifer U Bowley1018United Kingdom2026-06-17
Ashley L Maclead1019Italy2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith O TollnerIndiaIvan Magalhaes RENEWAL
Aruna E NestleArgentinaAmy Elsner PROPOSAL
Johnson H FerenczJapanStephen Shaw QUALIFIED
Mayumi N MacleadBrazilElwin Sharvill QUALIFIED
Claire E ShinkoBrazilAsiya Javayant UNQUALIFIED
Cody L NickaGermanyAnna Fali PROPOSAL
Munro I MorascaIndiaIvan Magalhaes UNQUALIFIED
Kadeem F GillianUnited KingdomAmy Elsner NEGOTIATION
Maisha F CaudyBrazilIvan Magalhaes NEGOTIATION
Deepesh M PaprockiRussiaStephen Shaw NEW
Antonio B InouyeSpainXuxue Feng RENEWAL
Aruna P DilliardItalyStephen Shaw NEW
Mujtaba U SlusarskiBrazilOnyama Limba NEW
Johnson P MarrierSpainAmy Elsner NEW
Costa B AlbaresItalyStephen Shaw QUALIFIED
Salvatore Z FerenczFranceIvan Magalhaes NEGOTIATION
Jefferson U FerenczIndiaOnyama Limba UNQUALIFIED
Rodrigues H GlickUnited KingdomAnna Fali NEW
Julie A PerinFranceXuxue Feng NEW
David S MorascaBrazilAsiya Javayant QUALIFIED
Isabel G OldroydGermanyAmy Elsner NEGOTIATION
Greenwood L WhobreyUnited KingdomAnna Fali UNQUALIFIED
Antonio L AmigonIndiaOnyama Limba NEW
Ashley F IturbideBrazilIoni Bowcher PROPOSAL
Leja P ShinkoItalyIvan Magalhaes RENEWAL
Aika Q RulapaughCanadaXuxue Feng RENEWAL
Adams X FigeroaIndiaOnyama Limba UNQUALIFIED
Tony G ShinkoCanadaElwin Sharvill QUALIFIED
Aika L BriddickAustraliaOnyama Limba QUALIFIED
Izzy E OstroskyArgentinaIoni Bowcher UNQUALIFIED
Stacey H VenereUnited KingdomElwin Sharvill NEW
Kaitlin A MaletGermanyIvan Magalhaes PROPOSAL
Sinclair H NickaRussiaAsiya Javayant RENEWAL
Ricardo G RimArgentinaStephen Shaw UNQUALIFIED
Ashley H TollnerAustraliaIvan Magalhaes PROPOSAL
Emily J VenereUnited KingdomAsiya Javayant RENEWAL
Jefferson R PaprockiFranceIoni Bowcher NEGOTIATION
Deepesh H GillianUnited KingdomStephen Shaw QUALIFIED
Antonio G CaudyRussiaAsiya Javayant NEW
Deepesh Y RulapaughBrazilBernardo Dominic NEW

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