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 P MaletBrazilBernardo Dominic UNQUALIFIED
David X CaudyJapanAnna Fali PROPOSAL
Antonio K FollerSpainAnna Fali PROPOSAL
Cody V SaylorsItalyAmy Elsner NEGOTIATION
Munro N GlickArgentinaIoni Bowcher QUALIFIED
Cody L MorascaFranceIvan Magalhaes RENEWAL
Silvio N StensethBrazilOnyama Limba NEW
Salvatore H PerinRussiaElwin Sharvill QUALIFIED
Kaitlin A BriddickBrazilAmy Elsner QUALIFIED
Aruna J AlbaresBrazilIvan Magalhaes UNQUALIFIED
Salvatore R SaylorsFranceIoni Bowcher PROPOSAL
Isabel T ChuiBrazilStephen Shaw QUALIFIED
Stacey X StensethCanadaBernardo Dominic RENEWAL
Clifford B FigeroaRussiaIvan Magalhaes QUALIFIED
Mayumi O DilliardItalyAsiya Javayant QUALIFIED
Aika H FollerBrazilAsiya Javayant PROPOSAL
David T MaletArgentinaAsiya Javayant NEGOTIATION
Mayumi J RutaArgentinaBernardo Dominic QUALIFIED
Jones B StockhamCanadaAsiya Javayant UNQUALIFIED
Kadeem F FollerRussiaIvan Magalhaes QUALIFIED
Jennifer V VenereArgentinaIvan Magalhaes NEGOTIATION
Mayumi W MorascaBrazilStephen Shaw UNQUALIFIED
Tony I SergiFranceAsiya Javayant RENEWAL
Clifford I MarrierBrazilXuxue Feng UNQUALIFIED
Ivar L PoquetteIndiaStephen Shaw NEGOTIATION
David K GlickAustraliaAnna Fali QUALIFIED
Alejandro H BriddickSpainXuxue Feng NEGOTIATION
Kaitlin I FlosiItalyBernardo Dominic QUALIFIED
James M GarufiItalyIoni Bowcher NEGOTIATION
Jefferson U OldroydArgentinaAsiya Javayant NEGOTIATION
Greenwood G DarakjyRussiaIvan Magalhaes NEGOTIATION
Aditya V ChuiIndiaAmy Elsner RENEWAL
Aika C RulapaughAustraliaAsiya Javayant NEGOTIATION
Emily X MaletAustraliaStephen Shaw UNQUALIFIED
Jones X VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Wickens B ShinkoArgentinaBernardo Dominic NEGOTIATION
Morrow E ButtCanadaOnyama Limba UNQUALIFIED
Leja U WieserItalyXuxue Feng NEW
Alejandro V SaylorsIndiaIvan Magalhaes QUALIFIED
Misaki Z MaletGermanyElwin Sharvill QUALIFIED
David F PaprockiIndiaIvan Magalhaes PROPOSAL
Maisha T FigeroaRussiaBernardo Dominic QUALIFIED
Emily Q GillianArgentinaAnna Fali RENEWAL
Jefferson I MaletRussiaStephen Shaw PROPOSAL
Murillo W CaudyItalyOnyama Limba NEW
Jones Y PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Johnson Y VenereRussiaXuxue Feng QUALIFIED
Ivar C NestleItalyStephen Shaw UNQUALIFIED
Smith A NickaUnited KingdomIoni Bowcher NEGOTIATION
Izzy L VocelkaItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson K BologniaFranceStephen Shaw PROPOSAL
Smith Z SaylorsArgentinaAnna Fali UNQUALIFIED
Misaki J StensethBrazilIoni Bowcher RENEWAL
Johnson M ShinkoSpainAsiya Javayant QUALIFIED
Francesco U NestleRussiaBernardo Dominic QUALIFIED
Arvin E KolmetzSpainXuxue Feng PROPOSAL
Mujtaba P OstroskyJapanBernardo Dominic PROPOSAL
Jones T DarakjyBrazilOnyama Limba PROPOSAL
Chavez S BologniaBrazilXuxue Feng QUALIFIED
Maria Y MorascaUnited KingdomAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha I GillianSpain2026-07-02Chanay, Jeffrey A Esq RENEWAL78Bernardo Dominic
1001Faith D BowleyCanada2026-07-05Feltz Printing Service QUALIFIED16Ivan Magalhaes
1002Aditya F ChuiCanada2026-06-29Benton, John B Jr PROPOSAL67Onyama Limba
1003Antonio R WieserIndia2026-07-13Chapman, Ross E Esq UNQUALIFIED46Onyama Limba
1004Alejandro W BowleyAustralia2026-07-23Feiner Bros QUALIFIED45Bernardo Dominic
1005Emily C GauchoArgentina2026-07-03Printing Dimensions RENEWAL33Asiya Javayant
1006Maria Q KuskoAustralia2026-07-04Morlong Associates UNQUALIFIED62Amy Elsner
1007Silvio J BowleyJapan2026-06-28Benton, John B Jr PROPOSAL88Anna Fali
1008Ivar N MaletItaly2026-07-10Chapman, Ross E Esq RENEWAL15Onyama Limba
1009Munro J SergiBrazil2026-07-04Rousseaux, Michael Esq QUALIFIED48Elwin Sharvill
1010Nicolas I RimItaly2026-07-15Chanay, Jeffrey A Esq RENEWAL57Elwin Sharvill
1011Sinclair D CaldareraBrazil2026-07-01Chemel, James L Cpa NEW92Asiya Javayant
1012Murillo E VenereSpain2026-06-26Truhlar And Truhlar Attys RENEWAL8Xuxue Feng
1013Kaitlin X SchemmerAustralia2026-06-24Morlong Associates QUALIFIED28Asiya Javayant
1014Antonio C NestleGermany2026-06-25Benton, John B Jr PROPOSAL64Amy Elsner
1015Ricardo R AmigonSpain2026-07-20Dorl, James J Esq UNQUALIFIED65Ioni Bowcher
1016Silvio H PerinBrazil2026-06-30Chanay, Jeffrey A Esq NEGOTIATION24Xuxue Feng
1017Julie H DarakjyJapan2026-06-27Printing Dimensions RENEWAL75Onyama Limba
1018David J MacleadArgentina2026-07-21Morlong Associates RENEWAL56Asiya Javayant
1019Faith F GlickSpain2026-06-27Feiner Bros RENEWAL72Stephen Shaw
1020Clifford E KolmetzRussia2026-07-19Buckley Miller Wright NEW50Onyama Limba
1021Murillo M BowleyBrazil2026-07-04Feiner Bros NEW6Elwin Sharvill
1022Morrow O GauchoItaly2026-07-01Chapman, Ross E Esq NEW83Bernardo Dominic
1023Wickens V ShinkoSpain2026-07-06Rousseaux, Michael Esq PROPOSAL7Elwin Sharvill
1024Leon T MaletBrazil2026-07-04King, Christopher A Esq UNQUALIFIED50Xuxue Feng
1025Aditya L PaprockiAustralia2026-07-12Printing Dimensions NEW18Stephen Shaw
1026Arvin M OstroskyFrance2026-06-28Printing Dimensions RENEWAL72Asiya Javayant
1027Kadeem T PoquetteSpain2026-07-03Feiner Bros NEW96Onyama Limba
1028Faith J PaprockiFrance2026-07-02Chapman, Ross E Esq RENEWAL69Onyama Limba
1029Mujtaba I MorascaArgentina2026-07-04Benton, John B Jr PROPOSAL78Amy Elsner
1030Tony S AlbaresUnited Kingdom2026-06-27Commercial Press RENEWAL55Bernardo Dominic
1031Leja C SchemmerUnited Kingdom2026-07-09Chapman, Ross E Esq RENEWAL27Asiya Javayant
1032Francesco K MaletJapan2026-07-21Buckley Miller Wright PROPOSAL9Asiya Javayant
1033Ricardo W GarufiGermany2026-06-28King, Christopher A Esq UNQUALIFIED54Anna Fali
1034Deepesh Y StockhamUnited Kingdom2026-06-24Truhlar And Truhlar Attys PROPOSAL27Stephen Shaw
1035Misaki X DilliardRussia2026-07-05Rangoni Of Florence NEW74Anna Fali
1036Morrow K KuskoFrance2026-06-29Chanay, Jeffrey A Esq QUALIFIED22Elwin Sharvill
1037Leon M VenereJapan2026-07-10Feiner Bros NEGOTIATION74Amy Elsner
1038Ricardo S WaycottItaly2026-07-11Morlong Associates NEGOTIATION23Ioni Bowcher
1039Jeanfrancois I KolmetzIndia2026-07-14Commercial Press QUALIFIED37Xuxue Feng
1040Julie Y NestleItaly2026-07-21King, Christopher A Esq UNQUALIFIED36Ioni Bowcher
1041Adams E ChuiArgentina2026-06-29Feiner Bros QUALIFIED65Stephen Shaw
1042Misaki C StensethJapan2026-07-05Dorl, James J Esq PROPOSAL12Elwin Sharvill
1043Murillo T BologniaRussia2026-07-19Chemel, James L Cpa QUALIFIED77Ivan Magalhaes
1044Morrow F ShinkoBrazil2026-07-22King, Christopher A Esq NEGOTIATION8Xuxue Feng
1045Francesco I GillianBrazil2026-07-22Truhlar And Truhlar Attys RENEWAL32Bernardo Dominic
1046Clifford A GarufiAustralia2026-07-09Printing Dimensions PROPOSAL45Bernardo Dominic
1047Faith J BologniaFrance2026-07-23Printing Dimensions PROPOSAL42Asiya Javayant
1048Ivar J RoysterBrazil2026-07-04Rangoni Of Florence PROPOSAL15Anna Fali
1049Chavez U FigeroaCanada2026-07-17Morlong Associates PROPOSAL33Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Alejandro N IturbideItalyAnna Fali PROPOSAL
Cody M GarufiFranceOnyama Limba RENEWAL
Maisha H DarakjyAustraliaIoni Bowcher QUALIFIED
Morrow N KolmetzBrazilAmy Elsner UNQUALIFIED
Jefferson W SchemmerFranceAsiya Javayant NEGOTIATION
Octavia Q NestleFranceIoni Bowcher NEW
Adams M GauchoRussiaIvan Magalhaes RENEWAL
Adams R DarakjyArgentinaAmy Elsner QUALIFIED
Mujtaba F CampainAustraliaElwin Sharvill UNQUALIFIED
Jennifer U RulapaughCanadaIvan Magalhaes UNQUALIFIED
Morrow T KolmetzArgentinaBernardo Dominic QUALIFIED
Johnson S RimItalyAnna Fali PROPOSAL
Smith D IturbideCanadaBernardo Dominic PROPOSAL
Darci G DarakjyItalyElwin Sharvill RENEWAL
Octavia Y GarufiIndiaOnyama Limba NEGOTIATION
Ivar I GauchoIndiaBernardo Dominic NEGOTIATION
Tony O GlickSpainIvan Magalhaes NEW
Cody R MaletArgentinaStephen Shaw QUALIFIED
Julie I VocelkaRussiaIoni Bowcher UNQUALIFIED
Deepesh V BriddickAustraliaStephen Shaw NEW
Jones C NestleUnited KingdomOnyama Limba NEW
Maisha X NestleItalyAmy Elsner RENEWAL
Aika N CaudyRussiaXuxue Feng UNQUALIFIED
Maria H CaldareraBrazilAnna Fali PROPOSAL
Izzy X InouyeArgentinaXuxue Feng QUALIFIED
Morrow N WaycottGermanyBernardo Dominic RENEWAL
Emily N VenereRussiaIoni Bowcher NEW
Munro F CampainFranceXuxue Feng NEW
Mayumi C KolmetzBrazilIoni Bowcher RENEWAL
Juan L DoeSpainElwin Sharvill NEGOTIATION
Kaitlin Y RulapaughAustraliaXuxue Feng PROPOSAL
Deepesh L CaudyAustraliaBernardo Dominic NEGOTIATION
Maria R KuskoItalyBernardo Dominic PROPOSAL
Jones N MarrierArgentinaStephen Shaw QUALIFIED
Maria K MaletSpainXuxue Feng NEGOTIATION
Jennifer I FlosiUnited KingdomAnna Fali UNQUALIFIED
Misaki D MorascaCanadaXuxue Feng UNQUALIFIED
Deepesh G CaldareraItalyStephen Shaw UNQUALIFIED
Ashley S WaycottIndiaIoni Bowcher UNQUALIFIED
Morrow N ChuiAustraliaOnyama Limba NEW
Kaitlin M TollnerItalyAmy Elsner RENEWAL
Silvio R PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Clifford I PoquetteItalyElwin Sharvill PROPOSAL
Juan E MacleadFranceIvan Magalhaes UNQUALIFIED
Misaki P RulapaughGermanyBernardo Dominic NEW
Jones F BriddickBrazilAnna Fali NEW
Izzy U RimGermanyBernardo Dominic NEW
Wickens N BriddickArgentinaAnna Fali NEW
Izzy H WhobreyRussiaStephen Shaw PROPOSAL
Kadeem V VocelkaArgentinaAsiya Javayant NEW
Frozen Columns
Name
Izzy X Foller
Clifford A Kusko
James B Whobrey
James T Dilliard
Mujtaba P Foller
Rodrigues V Stenseth
Nicolas D Slusarski
Emily X Stenseth
Wickens C Caudy
Jeanfrancois P Waycott
Sinclair D Sergi
Faith B Tollner
Deepesh I Nestle
Jennifer O Caudy
Rodrigues H Stenseth
Johnson I Caudy
Adams P Marrier
Juan Z Rulapaugh
Ashley Z Darakjy
Jeanfrancois S Nicka
Tony U Iturbide
Jeanfrancois L Malet
Ashley W Doe
Deepesh T Bolognia
Leon W Maclead
Claire G Saylors
Chavez X Poquette
Johnson B Perin
Antonio J Oldroyd
Munro W Bolognia
Arvin Q Figeroa
Sinclair P Tollner
Alejandro E Garufi
Mayumi C Kusko
James S Nicka
Darci S Chui
Leja P Flosi
Aditya Z Gillian
Aruna S Maclead
Ashley N Rulapaugh
Deepesh Y Morasca
Antonio C Poquette
Silvio R Caldarera
Isabel O Gillian
Faith O Kusko
Cody O Ostrosky
Maisha U Inouye
Ivar G Ruta
Murillo E Malet
Octavia R Amigon
IdCountryDate
1000Canada2026-06-26
1001France2026-06-24
1002United Kingdom2026-07-13
1003Germany2026-06-27
1004Russia2026-06-27
1005Spain2026-07-13
1006Australia2026-07-21
1007Canada2026-06-27
1008France2026-07-07
1009Italy2026-06-26
1010United Kingdom2026-07-22
1011Australia2026-07-06
1012Canada2026-06-29
1013Brazil2026-07-19
1014United Kingdom2026-06-24
1015Japan2026-07-05
1016Canada2026-07-11
1017Australia2026-07-16
1018United Kingdom2026-06-27
1019Russia2026-07-16
1020Japan2026-07-03
1021Australia2026-06-28
1022India2026-07-22
1023United Kingdom2026-06-25
1024United Kingdom2026-07-01
1025Russia2026-07-19
1026France2026-06-26
1027Canada2026-07-12
1028Australia2026-07-05
1029Canada2026-07-21
1030United Kingdom2026-07-02
1031Italy2026-06-25
1032Germany2026-07-23
1033France2026-07-12
1034Japan2026-07-23
1035Spain2026-06-29
1036Brazil2026-06-26
1037Canada2026-07-10
1038Argentina2026-07-03
1039France2026-07-13
1040Australia2026-06-25
1041Japan2026-07-18
1042France2026-07-04
1043Canada2026-07-06
1044Spain2026-07-15
1045United Kingdom2026-07-05
1046Russia2026-07-04
1047Canada2026-07-09
1048Russia2026-06-26
1049Germany2026-07-06

On-Demand Data

NameIdCountryDate
Antonio N Glick1000Canada2026-07-21
Adams B Kolmetz1001Argentina2026-07-06
Maisha E Malet1002Germany2026-07-14
Sinclair M Sergi1003Australia2026-07-12
Greenwood O Kusko1004United Kingdom2026-07-22
Tony U Poquette1005France2026-07-03
Emily A Figeroa1006India2026-07-01
Maria Z Campain1007Russia2026-07-01
Kadeem N Flosi1008Australia2026-06-24
Aditya A Doe1009France2026-07-06
Darci Y Perin1010France2026-07-12
Jennifer W Rulapaugh1011Australia2026-07-16
Murillo J Malet1012United Kingdom2026-06-24
Francesco D Vocelka1013Brazil2026-07-14
James E Darakjy1014Australia2026-07-14
Aika H Rulapaugh1015Argentina2026-07-19
Adams C Malet1016Japan2026-07-13
Deepesh U Stockham1017United Kingdom2026-07-19
David Q Slusarski1018Argentina2026-07-21
Tony F Saylors1019Argentina2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley N TollnerCanadaStephen Shaw NEGOTIATION
Darci G RimItalyAnna Fali UNQUALIFIED
Claire J GlickCanadaBernardo Dominic RENEWAL
Jennifer J VenereAustraliaIvan Magalhaes QUALIFIED
Adams P SlusarskiCanadaAmy Elsner NEGOTIATION
Clifford M StensethJapanBernardo Dominic NEW
Jefferson J GarufiFranceElwin Sharvill RENEWAL
Jeanfrancois F VenereUnited KingdomBernardo Dominic RENEWAL
Isabel T StensethUnited KingdomIoni Bowcher PROPOSAL
Mujtaba J StockhamBrazilBernardo Dominic RENEWAL
Julie C FlosiCanadaAmy Elsner PROPOSAL
Clifford X MaletFranceAnna Fali QUALIFIED
Deepesh D WaycottAustraliaBernardo Dominic UNQUALIFIED
Arvin E KolmetzIndiaElwin Sharvill NEGOTIATION
David P AmigonJapanAmy Elsner RENEWAL
Julie N IturbideJapanIvan Magalhaes RENEWAL
Mujtaba C MaletItalyIvan Magalhaes QUALIFIED
James O KuskoItalyAmy Elsner UNQUALIFIED
Ashley O SchemmerFranceBernardo Dominic PROPOSAL
Kaitlin O PaprockiAustraliaAmy Elsner RENEWAL
Antonio Z ButtGermanyAmy Elsner UNQUALIFIED
Jennifer A KuskoJapanBernardo Dominic RENEWAL
Darci O BologniaFranceAmy Elsner UNQUALIFIED
Leja P PaprockiGermanyAmy Elsner NEGOTIATION
Leon R NestleRussiaAmy Elsner UNQUALIFIED
Nicolas F ButtFranceAmy Elsner NEGOTIATION
Clifford K OldroydUnited KingdomXuxue Feng RENEWAL
Alejandro B FerenczSpainStephen Shaw RENEWAL
Murillo Y KolmetzAustraliaAsiya Javayant RENEWAL
Nicolas U AlbaresSpainXuxue Feng QUALIFIED
Clifford W WaycottIndiaAsiya Javayant NEW
Antonio D DarakjyJapanStephen Shaw UNQUALIFIED
Ivar A NestleRussiaIoni Bowcher RENEWAL
Aika W VenereGermanyIoni Bowcher QUALIFIED
Greenwood V OstroskyIndiaElwin Sharvill NEW
Rodrigues T GauchoRussiaIvan Magalhaes NEGOTIATION
Jones M StockhamBrazilStephen Shaw UNQUALIFIED
Alejandro R PoquetteAustraliaAmy Elsner NEGOTIATION
Aditya A IturbideAustraliaBernardo Dominic QUALIFIED
Ashley D MarrierIndiaOnyama Limba QUALIFIED

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