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
Rodrigues M PoquetteCanadaOnyama Limba QUALIFIED
Kadeem D RutaCanadaAmy Elsner NEW
Sinclair T SaylorsAustraliaElwin Sharvill RENEWAL
Antonio K AmigonJapanIvan Magalhaes RENEWAL
Kaitlin J OstroskyRussiaBernardo Dominic PROPOSAL
Isabel C MorascaJapanAsiya Javayant UNQUALIFIED
Wickens F AmigonArgentinaStephen Shaw UNQUALIFIED
Costa L RutaUnited KingdomAnna Fali PROPOSAL
David C ShinkoIndiaElwin Sharvill NEW
Emily M GauchoBrazilStephen Shaw UNQUALIFIED
Arvin G MaletIndiaAnna Fali NEGOTIATION
Misaki K SchemmerCanadaAnna Fali NEW
Clifford O CaldareraBrazilIoni Bowcher NEW
Tony D SchemmerAustraliaAmy Elsner NEGOTIATION
Chavez D MaletAustraliaBernardo Dominic QUALIFIED
Misaki V PoquetteAustraliaIoni Bowcher QUALIFIED
Johnson A BriddickBrazilBernardo Dominic NEW
Octavia W OstroskyArgentinaAnna Fali UNQUALIFIED
Smith R CampainJapanIvan Magalhaes RENEWAL
Julie U MarrierRussiaXuxue Feng UNQUALIFIED
Silvio C PoquetteSpainStephen Shaw UNQUALIFIED
Leon V InouyeGermanyXuxue Feng RENEWAL
Arvin R WieserCanadaXuxue Feng QUALIFIED
Ashley T FerenczArgentinaXuxue Feng QUALIFIED
Faith D CaudyFranceElwin Sharvill UNQUALIFIED
Rodrigues W BologniaJapanAmy Elsner QUALIFIED
Jeanfrancois O RutaAustraliaAmy Elsner RENEWAL
Isabel E KolmetzFranceBernardo Dominic PROPOSAL
Ivar K WieserIndiaAsiya Javayant UNQUALIFIED
Chavez H WhobreyArgentinaBernardo Dominic QUALIFIED
Misaki L TollnerAustraliaOnyama Limba PROPOSAL
Murillo C AlbaresGermanyAmy Elsner NEGOTIATION
Nicolas E KolmetzBrazilAmy Elsner QUALIFIED
Aditya X BologniaCanadaAsiya Javayant PROPOSAL
Octavia S MarrierJapanXuxue Feng PROPOSAL
Murillo R GauchoAustraliaAnna Fali PROPOSAL
Arvin E InouyeCanadaAnna Fali NEGOTIATION
Ivar B WaycottRussiaXuxue Feng UNQUALIFIED
Octavia Y DilliardIndiaOnyama Limba UNQUALIFIED
David S RoysterUnited KingdomStephen Shaw PROPOSAL
Francesco M StockhamJapanElwin Sharvill NEW
Antonio G PaprockiGermanyAnna Fali NEW
Aruna L ChuiSpainBernardo Dominic QUALIFIED
Emily Z PoquetteFranceAsiya Javayant NEGOTIATION
Mujtaba A FigeroaArgentinaXuxue Feng UNQUALIFIED
Adams R WaycottBrazilStephen Shaw NEW
Smith A BowleyItalyAmy Elsner QUALIFIED
Smith K FigeroaSpainElwin Sharvill RENEWAL
Emily Y SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba B WieserGermanyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco B PoquetteCanadaAsiya Javayant RENEWAL
Maisha H TollnerRussiaStephen Shaw NEGOTIATION
Izzy J DilliardRussiaBernardo Dominic RENEWAL
Rodrigues N RoysterBrazilAsiya Javayant NEW
Jefferson F MaletUnited KingdomIvan Magalhaes NEGOTIATION
Cody R DoeRussiaXuxue Feng QUALIFIED
Alejandro L WieserGermanyAnna Fali PROPOSAL
James M VenereAustraliaIvan Magalhaes NEW
Kadeem I KolmetzAustraliaIvan Magalhaes RENEWAL
Sinclair Q VenereBrazilXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie I InouyeGermany2025-04-19Feiner Bros RENEWAL35Anna Fali
1001Wickens S VenereSpain2025-04-22Truhlar And Truhlar Attys NEW38Onyama Limba
1002Maria P TollnerItaly2025-04-16Rousseaux, Michael Esq UNQUALIFIED63Elwin Sharvill
1003Nicolas L SergiAustralia2025-04-12Printing Dimensions RENEWAL42Bernardo Dominic
1004Silvio Q AlbaresArgentina2025-04-09Commercial Press QUALIFIED20Elwin Sharvill
1005Alejandro E GlickUnited Kingdom2025-04-04Chanay, Jeffrey A Esq QUALIFIED63Asiya Javayant
1006Francesco V StensethSpain2025-04-30Buckley Miller Wright RENEWAL8Anna Fali
1007Rodrigues P InouyeBrazil2025-04-11Chemel, James L Cpa QUALIFIED14Onyama Limba
1008Jennifer T BriddickCanada2025-04-05Commercial Press RENEWAL99Ivan Magalhaes
1009Claire O FerenczFrance2025-04-13Buckley Miller Wright PROPOSAL46Ioni Bowcher
1010Francesco T NestleGermany2025-04-12Morlong Associates QUALIFIED98Asiya Javayant
1011Kaitlin S ButtAustralia2025-04-11King, Christopher A Esq NEGOTIATION4Anna Fali
1012Smith L CampainArgentina2025-04-19Rangoni Of Florence QUALIFIED66Asiya Javayant
1013Deepesh P NestleGermany2025-04-05Benton, John B Jr RENEWAL13Asiya Javayant
1014Cody U KuskoAustralia2025-04-17Commercial Press NEW80Ioni Bowcher
1015Wickens D SchemmerArgentina2025-04-27Truhlar And Truhlar Attys RENEWAL5Stephen Shaw
1016Sinclair G GlickItaly2025-04-03Truhlar And Truhlar Attys PROPOSAL23Bernardo Dominic
1017Sinclair T DoeUnited Kingdom2025-04-03King, Christopher A Esq NEGOTIATION21Xuxue Feng
1018Wickens H GillianRussia2025-04-06Benton, John B Jr UNQUALIFIED42Asiya Javayant
1019Clifford C CampainFrance2025-04-01Commercial Press NEW31Xuxue Feng
1020Maisha S PoquetteCanada2025-04-01Chanay, Jeffrey A Esq NEW44Amy Elsner
1021David N NickaUnited Kingdom2025-04-16Chapman, Ross E Esq PROPOSAL49Xuxue Feng
1022Johnson X GillianItaly2025-04-02Buckley Miller Wright NEW54Amy Elsner
1023Ricardo F SlusarskiAustralia2025-04-25Printing Dimensions QUALIFIED38Amy Elsner
1024Izzy O MaletAustralia2025-04-21Morlong Associates QUALIFIED46Onyama Limba
1025Maisha I KolmetzSpain2025-04-25Rousseaux, Michael Esq UNQUALIFIED79Elwin Sharvill
1026Mayumi S MaletFrance2025-04-13Feltz Printing Service PROPOSAL43Xuxue Feng
1027Julie Z NestleGermany2025-04-11Rousseaux, Michael Esq UNQUALIFIED67Xuxue Feng
1028Izzy F AlbaresBrazil2025-04-12King, Christopher A Esq QUALIFIED2Amy Elsner
1029Emily F FigeroaAustralia2025-04-02Feiner Bros NEW65Ioni Bowcher
1030Emily K DoeGermany2025-04-30Rangoni Of Florence NEW12Onyama Limba
1031Greenwood B VocelkaUnited Kingdom2025-04-12Morlong Associates NEGOTIATION21Amy Elsner
1032Cody A StensethSpain2025-04-14Dorl, James J Esq RENEWAL56Anna Fali
1033Murillo B WaycottIndia2025-04-19Chapman, Ross E Esq RENEWAL0Ivan Magalhaes
1034Ricardo U InouyeUnited Kingdom2025-04-29Rangoni Of Florence RENEWAL38Stephen Shaw
1035Sinclair V IturbideRussia2025-04-07Printing Dimensions QUALIFIED32Ivan Magalhaes
1036Antonio W SaylorsIndia2025-04-03Truhlar And Truhlar Attys QUALIFIED15Ioni Bowcher
1037Kadeem O DarakjyArgentina2025-04-11Dorl, James J Esq QUALIFIED58Onyama Limba
1038Wickens J AlbaresFrance2025-04-23King, Christopher A Esq QUALIFIED31Onyama Limba
1039Maisha N WaycottRussia2025-04-17Feltz Printing Service NEGOTIATION0Stephen Shaw
1040Claire L OldroydUnited Kingdom2025-04-24Chapman, Ross E Esq UNQUALIFIED49Ioni Bowcher
1041Ricardo O RimSpain2025-04-17King, Christopher A Esq RENEWAL56Onyama Limba
1042Faith U VenereItaly2025-04-26Morlong Associates NEGOTIATION44Ioni Bowcher
1043Tony L MorascaRussia2025-04-02Chemel, James L Cpa QUALIFIED26Bernardo Dominic
1044Rodrigues Z WieserCanada2025-04-04Printing Dimensions NEW43Amy Elsner
1045Mayumi R RutaCanada2025-04-09Printing Dimensions NEGOTIATION93Amy Elsner
1046Octavia X DilliardFrance2025-04-02King, Christopher A Esq PROPOSAL6Anna Fali
1047Alejandro Y NestleJapan2025-04-14Chemel, James L Cpa UNQUALIFIED54Stephen Shaw
1048Johnson W FerenczJapan2025-04-12Truhlar And Truhlar Attys NEGOTIATION28Elwin Sharvill
1049Costa C SlusarskiGermany2025-04-07Chapman, Ross E Esq PROPOSAL75Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Julie T FerenczUnited KingdomAmy Elsner UNQUALIFIED
Jefferson I DarakjyFranceIvan Magalhaes NEW
Isabel I PaprockiGermanyOnyama Limba NEW
Munro G GarufiArgentinaXuxue Feng RENEWAL
Julie A MaletIndiaOnyama Limba NEW
Costa B RulapaughCanadaAmy Elsner UNQUALIFIED
Ivar P StensethBrazilAmy Elsner NEGOTIATION
Johnson F PerinCanadaIvan Magalhaes NEGOTIATION
Jennifer N PoquetteBrazilXuxue Feng NEW
Emily A GauchoUnited KingdomXuxue Feng QUALIFIED
Izzy D GarufiItalyBernardo Dominic NEW
Clifford U WhobreyFranceBernardo Dominic UNQUALIFIED
Claire E SchemmerSpainOnyama Limba NEW
Claire B OstroskyUnited KingdomOnyama Limba PROPOSAL
Ashley B MorascaFranceAnna Fali UNQUALIFIED
Tony D SlusarskiJapanOnyama Limba UNQUALIFIED
Salvatore B PoquetteBrazilXuxue Feng UNQUALIFIED
Greenwood V PerinItalyIvan Magalhaes RENEWAL
Morrow W ShinkoIndiaAnna Fali NEW
Clifford M BriddickSpainAsiya Javayant RENEWAL
Rodrigues D WieserCanadaAsiya Javayant UNQUALIFIED
Ricardo E SaylorsGermanyAsiya Javayant RENEWAL
Ashley V StensethCanadaElwin Sharvill NEW
Aruna J DoeRussiaAnna Fali PROPOSAL
Juan N FigeroaSpainIoni Bowcher PROPOSAL
Ashley W StockhamAustraliaAnna Fali RENEWAL
Antonio Z WieserAustraliaXuxue Feng PROPOSAL
Isabel T KuskoItalyIvan Magalhaes RENEWAL
Chavez D CaldareraItalyAmy Elsner UNQUALIFIED
Octavia C RutaRussiaStephen Shaw PROPOSAL
Alejandro Y FigeroaCanadaXuxue Feng PROPOSAL
Maisha U FollerBrazilAnna Fali NEW
Maria H InouyeArgentinaElwin Sharvill RENEWAL
Francesco H RulapaughUnited KingdomXuxue Feng UNQUALIFIED
Aruna K OstroskyUnited KingdomBernardo Dominic NEW
Costa V FerenczArgentinaBernardo Dominic PROPOSAL
Silvio U CaudySpainIoni Bowcher NEGOTIATION
Faith P OstroskyItalyAnna Fali NEW
Isabel X RulapaughSpainBernardo Dominic QUALIFIED
Aditya I DarakjyCanadaOnyama Limba NEGOTIATION
Francesco L TollnerSpainAsiya Javayant UNQUALIFIED
Aruna L RoysterGermanyBernardo Dominic NEW
Octavia K RoysterAustraliaStephen Shaw UNQUALIFIED
Francesco W BologniaFranceIoni Bowcher NEW
Greenwood R ChuiGermanyAsiya Javayant NEGOTIATION
Cody N GillianSpainIoni Bowcher NEW
Clifford R RutaAustraliaElwin Sharvill NEW
David V GillianUnited KingdomElwin Sharvill NEGOTIATION
Leon T CaldareraFranceAnna Fali QUALIFIED
Murillo R StockhamRussiaXuxue Feng RENEWAL
Frozen Columns
Name
Kadeem H Bowley
Jeanfrancois N Foller
Ashley O Kolmetz
James T Whobrey
Costa L Stockham
Jennifer L Caudy
Antonio B Rim
Leja J Marrier
Rodrigues X Sergi
Jones Y Ostrosky
Mujtaba D Bolognia
Stacey D Campain
Stacey O Figeroa
Misaki A Briddick
Arvin O Kusko
Octavia N Nestle
Ricardo H Albares
Maisha A Bowley
Darci S Tollner
Ivar E Gaucho
Antonio T Glick
Jefferson I Shinko
Octavia V Caldarera
Antonio S Bowley
Sinclair P Kusko
Misaki B Bolognia
Stacey H Paprocki
Leja P Foller
Isabel Z Wieser
Jennifer E Iturbide
Octavia A Garufi
Jefferson Z Stenseth
Izzy C Oldroyd
Maisha N Whobrey
Juan N Poquette
Faith M Butt
Munro I Caldarera
Izzy J Kusko
Isabel W Marrier
Deepesh O Malet
Mayumi L Tollner
Salvatore K Ostrosky
Jennifer T Paprocki
Claire W Stenseth
David I Campain
Stacey I Chui
Johnson K Campain
Ashley J Campain
Darci K Bolognia
Antonio X Sergi
IdCountryDate
1000Spain2025-04-27
1001Brazil2025-04-19
1002Brazil2025-04-16
1003United Kingdom2025-04-30
1004Japan2025-04-20
1005France2025-04-15
1006Germany2025-04-13
1007Italy2025-04-25
1008Russia2025-04-12
1009Italy2025-04-15
1010Japan2025-04-03
1011Russia2025-04-16
1012Italy2025-04-14
1013Germany2025-04-18
1014Argentina2025-04-16
1015Canada2025-04-29
1016Australia2025-04-07
1017India2025-04-20
1018Germany2025-04-01
1019Spain2025-04-05
1020Canada2025-04-18
1021Brazil2025-04-05
1022Brazil2025-04-13
1023France2025-04-12
1024Australia2025-04-24
1025Brazil2025-04-20
1026Canada2025-04-21
1027Italy2025-04-28
1028United Kingdom2025-04-14
1029Australia2025-04-06
1030India2025-04-07
1031Australia2025-04-08
1032United Kingdom2025-04-03
1033Germany2025-04-30
1034Japan2025-04-01
1035Italy2025-04-01
1036India2025-04-03
1037India2025-04-12
1038France2025-04-29
1039Spain2025-04-02
1040Canada2025-04-01
1041Japan2025-04-23
1042Russia2025-04-01
1043Argentina2025-04-02
1044Brazil2025-04-23
1045Italy2025-04-28
1046Germany2025-04-24
1047Italy2025-04-12
1048Russia2025-04-17
1049United Kingdom2025-04-28

On-Demand Data

NameIdCountryDate
Julie S Ruta1000United Kingdom2025-04-22
David X Campain1001United Kingdom2025-04-17
Jennifer P Malet1002Canada2025-04-06
Darci B Slusarski1003Russia2025-04-06
Stacey F Albares1004Brazil2025-04-26
Aditya S Nicka1005Brazil2025-04-05
Juan Z Shinko1006Italy2025-04-05
Johnson I Bowley1007France2025-04-19
Deepesh B Stenseth1008Argentina2025-04-24
Ivar I Stockham1009Germany2025-04-21
Octavia R Marrier1010Argentina2025-04-03
Emily V Poquette1011Argentina2025-04-02
Darci B Caudy1012Germany2025-04-02
Sinclair S Chui1013United Kingdom2025-04-05
Ivar V Vocelka1014Canada2025-04-29
Sinclair V Gaucho1015India2025-04-05
Aditya B Maclead1016Italy2025-04-06
Aruna T Marrier1017France2025-04-21
James V Glick1018Australia2025-04-08
Jeanfrancois I Kusko1019Italy2025-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Z SergiRussiaBernardo Dominic UNQUALIFIED
Kaitlin P CaudyArgentinaIoni Bowcher QUALIFIED
Arvin T OstroskyGermanyAmy Elsner QUALIFIED
Johnson D OstroskyIndiaElwin Sharvill UNQUALIFIED
Tony T RoysterUnited KingdomOnyama Limba UNQUALIFIED
Ashley T TollnerJapanAmy Elsner QUALIFIED
Jones Z GarufiSpainElwin Sharvill RENEWAL
Johnson T MorascaGermanyBernardo Dominic QUALIFIED
Adams E RimIndiaIoni Bowcher PROPOSAL
Arvin A PerinJapanElwin Sharvill NEW
Jefferson F AmigonJapanBernardo Dominic QUALIFIED
Emily L TollnerGermanyBernardo Dominic NEGOTIATION
Francesco Y StensethItalyAsiya Javayant PROPOSAL
Julie Y MaletAustraliaIoni Bowcher RENEWAL
Nicolas A FigeroaSpainAmy Elsner NEW
David X FollerAustraliaIoni Bowcher UNQUALIFIED
Antonio Q PerinGermanyAnna Fali QUALIFIED
Rodrigues C WieserAustraliaStephen Shaw NEGOTIATION
Jennifer O MorascaIndiaAsiya Javayant UNQUALIFIED
David B MaletAustraliaAnna Fali PROPOSAL
David S TollnerCanadaOnyama Limba RENEWAL
Ashley P ButtGermanyStephen Shaw PROPOSAL
Greenwood P KuskoUnited KingdomIvan Magalhaes RENEWAL
Antonio V MarrierJapanAsiya Javayant UNQUALIFIED
Wickens J NickaFranceStephen Shaw NEW
Jones M StensethSpainStephen Shaw RENEWAL
Rodrigues Y GillianGermanyXuxue Feng QUALIFIED
Sinclair E OstroskyFranceAmy Elsner UNQUALIFIED
Jennifer I IturbideRussiaElwin Sharvill RENEWAL
James V NickaRussiaIoni Bowcher UNQUALIFIED
Murillo J CaudyGermanyIvan Magalhaes NEW
Leja M SergiRussiaAsiya Javayant UNQUALIFIED
Misaki S CaudyArgentinaElwin Sharvill RENEWAL
Antonio F FlosiAustraliaIvan Magalhaes RENEWAL
Morrow V BriddickSpainOnyama Limba NEW
Mujtaba O ChuiSpainAnna Fali UNQUALIFIED
Jefferson C OldroydItalyIoni Bowcher UNQUALIFIED
Deepesh Y CaldareraArgentinaIoni Bowcher NEGOTIATION
Cody W VocelkaUnited KingdomXuxue Feng NEGOTIATION
Maria D RimArgentinaStephen Shaw RENEWAL

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