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
Kaitlin K GauchoUnited KingdomXuxue Feng PROPOSAL
Nicolas K KolmetzGermanyOnyama Limba NEW
Leja V FollerItalyAnna Fali NEGOTIATION
Jones V KuskoIndiaOnyama Limba NEGOTIATION
Jeanfrancois V NickaBrazilAnna Fali NEGOTIATION
Kadeem N BriddickIndiaIoni Bowcher RENEWAL
Morrow Y VocelkaFranceElwin Sharvill PROPOSAL
Leon H CampainItalyIoni Bowcher QUALIFIED
Johnson M NickaRussiaIvan Magalhaes NEW
Maisha Y DilliardUnited KingdomStephen Shaw QUALIFIED
Tony B SergiJapanAmy Elsner PROPOSAL
Antonio P MacleadGermanyIoni Bowcher QUALIFIED
Leon L SergiGermanyIvan Magalhaes UNQUALIFIED
Aditya B MaletJapanBernardo Dominic RENEWAL
Wickens I MarrierRussiaXuxue Feng NEW
Morrow X NestleGermanyAmy Elsner NEGOTIATION
Sinclair S NestleGermanyOnyama Limba RENEWAL
Octavia M AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Leon V ButtItalyIoni Bowcher RENEWAL
Julie W BowleyUnited KingdomXuxue Feng QUALIFIED
Emily D StensethBrazilStephen Shaw NEGOTIATION
Kadeem L FlosiSpainBernardo Dominic UNQUALIFIED
Rodrigues L PerinSpainAsiya Javayant NEGOTIATION
Misaki G StockhamRussiaBernardo Dominic RENEWAL
Ashley X DoeBrazilAmy Elsner RENEWAL
Deepesh C MaletArgentinaAnna Fali QUALIFIED
Isabel J StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Octavia V RulapaughAustraliaElwin Sharvill RENEWAL
Ashley K FlosiRussiaXuxue Feng NEW
Deepesh R FerenczAustraliaElwin Sharvill UNQUALIFIED
Kadeem U IturbideJapanAnna Fali QUALIFIED
Rodrigues C MaletGermanyIvan Magalhaes QUALIFIED
David P MorascaAustraliaBernardo Dominic UNQUALIFIED
Mujtaba O RoysterBrazilXuxue Feng NEW
Isabel V MorascaBrazilIvan Magalhaes UNQUALIFIED
Alejandro K CampainItalyOnyama Limba UNQUALIFIED
Misaki M ChuiSpainIoni Bowcher UNQUALIFIED
Izzy E GillianGermanyXuxue Feng NEGOTIATION
Leon R MaletBrazilStephen Shaw NEGOTIATION
Costa E SlusarskiJapanIoni Bowcher PROPOSAL
David A RoysterJapanElwin Sharvill QUALIFIED
Nicolas V NickaFranceIoni Bowcher NEGOTIATION
Jeanfrancois H BowleyRussiaIoni Bowcher QUALIFIED
Nicolas M BologniaArgentinaIvan Magalhaes RENEWAL
Chavez V RoysterUnited KingdomAnna Fali NEW
Adams X StockhamItalyElwin Sharvill PROPOSAL
Ricardo C CampainItalyAnna Fali NEGOTIATION
Octavia M CampainIndiaElwin Sharvill RENEWAL
Izzy A KolmetzGermanyElwin Sharvill UNQUALIFIED
Francesco P PoquetteIndiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow Y BriddickCanadaAmy Elsner UNQUALIFIED
Jones E MarrierCanadaOnyama Limba QUALIFIED
Emily W GillianCanadaIvan Magalhaes QUALIFIED
Octavia K VocelkaItalyIvan Magalhaes UNQUALIFIED
Aditya M BologniaRussiaAmy Elsner PROPOSAL
Jeanfrancois M IturbideJapanElwin Sharvill NEGOTIATION
Morrow B SaylorsBrazilIvan Magalhaes NEW
Jones P RulapaughAustraliaIvan Magalhaes PROPOSAL
Octavia O FerenczAustraliaAmy Elsner QUALIFIED
Jones C KuskoUnited KingdomXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens T SlusarskiIndia2026-08-23Rangoni Of Florence NEW82Anna Fali
1001Clifford G OstroskyAustralia2026-08-05Truhlar And Truhlar Attys RENEWAL30Bernardo Dominic
1002Stacey O PerinBrazil2026-08-20Commercial Press QUALIFIED49Ivan Magalhaes
1003Julie Y DilliardFrance2026-08-21Buckley Miller Wright QUALIFIED66Asiya Javayant
1004Claire O OstroskySpain2026-08-02King, Christopher A Esq QUALIFIED31Onyama Limba
1005Arvin O ShinkoBrazil2026-08-08Chapman, Ross E Esq RENEWAL30Elwin Sharvill
1006Johnson Y VocelkaCanada2026-08-09Morlong Associates RENEWAL60Xuxue Feng
1007Sinclair T OldroydBrazil2026-08-13Chapman, Ross E Esq RENEWAL63Ioni Bowcher
1008Jefferson V SaylorsBrazil2026-08-05King, Christopher A Esq NEW29Stephen Shaw
1009Aruna L RulapaughSpain2026-08-23Rousseaux, Michael Esq QUALIFIED26Xuxue Feng
1010Maisha J CampainBrazil2026-08-06King, Christopher A Esq NEW90Stephen Shaw
1011Jefferson X StockhamSpain2026-07-30Rousseaux, Michael Esq PROPOSAL40Xuxue Feng
1012Adams L GauchoJapan2026-08-11King, Christopher A Esq PROPOSAL34Anna Fali
1013Francesco U RoysterSpain2026-08-03King, Christopher A Esq RENEWAL12Elwin Sharvill
1014Kaitlin B PerinUnited Kingdom2026-07-29Feltz Printing Service QUALIFIED16Ivan Magalhaes
1015Octavia E VenereUnited Kingdom2026-08-22Chapman, Ross E Esq UNQUALIFIED90Stephen Shaw
1016Clifford E KolmetzItaly2026-08-01Rousseaux, Michael Esq RENEWAL24Ioni Bowcher
1017Jennifer N GillianJapan2026-08-05Rangoni Of Florence NEW78Ioni Bowcher
1018Ivar Q FlosiUnited Kingdom2026-08-09Rousseaux, Michael Esq RENEWAL98Ivan Magalhaes
1019Claire W FerenczJapan2026-08-15Chanay, Jeffrey A Esq PROPOSAL98Ivan Magalhaes
1020Stacey V RulapaughFrance2026-08-22Morlong Associates NEW59Stephen Shaw
1021Francesco L PoquetteUnited Kingdom2026-08-11Feiner Bros UNQUALIFIED76Anna Fali
1022Leja L BriddickGermany2026-08-22Chapman, Ross E Esq NEGOTIATION85Elwin Sharvill
1023Ashley E DoeUnited Kingdom2026-08-04Morlong Associates PROPOSAL31Bernardo Dominic
1024Juan Q IturbideUnited Kingdom2026-07-30Truhlar And Truhlar Attys PROPOSAL75Asiya Javayant
1025Stacey D InouyeRussia2026-08-13Feiner Bros NEGOTIATION27Xuxue Feng
1026Jennifer M RoysterBrazil2026-08-07Benton, John B Jr QUALIFIED92Bernardo Dominic
1027Wickens F SergiFrance2026-08-01Dorl, James J Esq NEGOTIATION92Bernardo Dominic
1028Izzy O IturbideSpain2026-07-31Morlong Associates NEGOTIATION64Ioni Bowcher
1029Maisha W BowleyCanada2026-08-02Truhlar And Truhlar Attys NEGOTIATION87Onyama Limba
1030Juan G MaletFrance2026-08-22Benton, John B Jr RENEWAL6Ivan Magalhaes
1031Leja K FollerBrazil2026-08-15Chanay, Jeffrey A Esq RENEWAL76Elwin Sharvill
1032Francesco Y KuskoUnited Kingdom2026-08-08Rangoni Of Florence QUALIFIED40Stephen Shaw
1033Mayumi Q StensethSpain2026-08-19Benton, John B Jr NEGOTIATION6Stephen Shaw
1034Emily L OstroskyCanada2026-07-30Feltz Printing Service RENEWAL56Ioni Bowcher
1035Darci J FlosiRussia2026-08-13Morlong Associates NEW63Xuxue Feng
1036Mujtaba O DilliardGermany2026-08-02Benton, John B Jr NEW25Ioni Bowcher
1037Chavez K CaudyItaly2026-07-28Morlong Associates PROPOSAL39Elwin Sharvill
1038Maria P RutaSpain2026-07-29Chemel, James L Cpa QUALIFIED10Onyama Limba
1039Salvatore U DoeSpain2026-08-03Chemel, James L Cpa NEW22Elwin Sharvill
1040Maria A SchemmerArgentina2026-08-26Feltz Printing Service NEW6Asiya Javayant
1041Sinclair J AmigonFrance2026-08-23Chanay, Jeffrey A Esq QUALIFIED48Ioni Bowcher
1042Misaki U PerinItaly2026-08-10Truhlar And Truhlar Attys UNQUALIFIED58Asiya Javayant
1043Julie K SlusarskiAustralia2026-08-09King, Christopher A Esq RENEWAL53Stephen Shaw
1044Munro F PoquetteCanada2026-08-14Benton, John B Jr NEGOTIATION67Stephen Shaw
1045Murillo R StensethItaly2026-08-24Feiner Bros QUALIFIED49Anna Fali
1046Tony R GarufiItaly2026-08-19Morlong Associates UNQUALIFIED24Elwin Sharvill
1047Claire D RulapaughFrance2026-08-17Chanay, Jeffrey A Esq RENEWAL26Onyama Limba
1048Murillo A CaudyCanada2026-08-04Chapman, Ross E Esq UNQUALIFIED2Anna Fali
1049Kadeem N WaycottAustralia2026-08-24Rousseaux, Michael Esq QUALIFIED19Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Murillo O GillianGermanyAsiya Javayant RENEWAL
Emily O MaletCanadaAmy Elsner UNQUALIFIED
Nicolas S TollnerItalyOnyama Limba NEW
Leja C CaldareraUnited KingdomOnyama Limba PROPOSAL
Greenwood J FlosiGermanyAnna Fali PROPOSAL
David B MarrierUnited KingdomIoni Bowcher NEGOTIATION
Julie Y FerenczSpainBernardo Dominic UNQUALIFIED
Kadeem U MaletIndiaXuxue Feng NEGOTIATION
Ricardo Q CampainGermanyAmy Elsner PROPOSAL
Wickens U PaprockiGermanyBernardo Dominic RENEWAL
Ivar N VocelkaGermanyIoni Bowcher NEW
Ricardo Z AlbaresSpainElwin Sharvill PROPOSAL
Sinclair N AlbaresGermanyStephen Shaw NEGOTIATION
Antonio K VenereArgentinaOnyama Limba RENEWAL
Alejandro P ButtCanadaElwin Sharvill RENEWAL
Silvio A FlosiGermanyIoni Bowcher PROPOSAL
Morrow B BologniaJapanIvan Magalhaes QUALIFIED
Sinclair O BologniaIndiaBernardo Dominic UNQUALIFIED
Darci S ChuiItalyBernardo Dominic NEW
Mayumi E SaylorsGermanyIoni Bowcher NEGOTIATION
Leja I KuskoCanadaAmy Elsner NEW
Claire O InouyeArgentinaAmy Elsner UNQUALIFIED
Smith X BologniaRussiaAnna Fali PROPOSAL
Arvin O VocelkaCanadaAnna Fali RENEWAL
Aika M BowleySpainIoni Bowcher QUALIFIED
Cody B MaletRussiaElwin Sharvill NEW
Ashley H StensethJapanElwin Sharvill NEGOTIATION
Tony Z AlbaresBrazilAmy Elsner NEGOTIATION
Ashley D FigeroaRussiaIvan Magalhaes QUALIFIED
Aruna S CaudyGermanyIoni Bowcher RENEWAL
Sinclair P FlosiJapanIvan Magalhaes RENEWAL
Aditya X FlosiAustraliaBernardo Dominic PROPOSAL
Adams Y OldroydArgentinaStephen Shaw UNQUALIFIED
Jefferson P CaldareraAustraliaAnna Fali NEGOTIATION
James E RoysterCanadaStephen Shaw NEW
Misaki W VocelkaIndiaElwin Sharvill PROPOSAL
Silvio Y CaudyIndiaAmy Elsner RENEWAL
Alejandro G SchemmerIndiaOnyama Limba QUALIFIED
Cody E CaudyArgentinaStephen Shaw NEW
Nicolas D DarakjyRussiaStephen Shaw PROPOSAL
Sinclair Q FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Misaki X GauchoAustraliaIvan Magalhaes NEGOTIATION
Aika O FollerGermanyBernardo Dominic QUALIFIED
Deepesh C AlbaresIndiaElwin Sharvill UNQUALIFIED
Francesco T StockhamGermanyIoni Bowcher NEW
David D CaldareraRussiaStephen Shaw QUALIFIED
Leon F PaprockiAustraliaStephen Shaw QUALIFIED
Aditya B GillianJapanStephen Shaw PROPOSAL
Jefferson H ChuiSpainXuxue Feng QUALIFIED
Wickens J AmigonAustraliaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Costa L Marrier
Cody P Wieser
Ricardo L Saylors
Izzy F Malet
Salvatore J Wieser
Aditya L Slusarski
Julie X Tollner
James A Maclead
Sinclair V Slusarski
Claire Z Dilliard
Mujtaba C Doe
Emily E Poquette
Wickens L Ferencz
Misaki S Flosi
Ashley M Figeroa
Aditya D Sergi
Leon Z Whobrey
Adams O Vocelka
Stacey Y Schemmer
Sinclair S Glick
Juan I Oldroyd
Arvin U Rulapaugh
Mujtaba P Nicka
Wickens Z Vocelka
Johnson L Saylors
Arvin J Gillian
Jennifer T Doe
Nicolas M Dilliard
Morrow B Figeroa
Julie G Chui
Faith Y Vocelka
Ivar D Oldroyd
Aika O Ostrosky
Johnson L Dilliard
Clifford U Glick
Misaki X Chui
Jefferson R Campain
Tony B Albares
Misaki Z Saylors
Morrow Q Campain
Arvin Y Amigon
Clifford H Malet
Maisha I Albares
Munro H Sergi
Leja D Kolmetz
Leja T Glick
Greenwood V Briddick
Salvatore U Shinko
Darci S Malet
Arvin R Caldarera
IdCountryDate
1000Spain2026-08-07
1001France2026-08-10
1002India2026-08-06
1003Italy2026-07-30
1004India2026-08-04
1005Spain2026-08-09
1006Germany2026-07-29
1007Russia2026-08-26
1008Japan2026-08-15
1009Spain2026-08-03
1010France2026-08-11
1011Canada2026-07-28
1012Russia2026-08-11
1013France2026-08-20
1014India2026-08-24
1015Russia2026-08-06
1016Brazil2026-08-23
1017Canada2026-08-16
1018Japan2026-08-25
1019Germany2026-08-04
1020India2026-08-08
1021Canada2026-08-03
1022Russia2026-08-08
1023Canada2026-08-01
1024Brazil2026-08-17
1025Canada2026-08-16
1026Brazil2026-08-08
1027Argentina2026-08-20
1028Australia2026-08-20
1029India2026-08-09
1030Australia2026-08-05
1031Brazil2026-08-16
1032Brazil2026-07-28
1033Canada2026-08-22
1034Brazil2026-08-02
1035India2026-08-19
1036Germany2026-08-15
1037India2026-08-22
1038India2026-08-06
1039Australia2026-08-18
1040Australia2026-08-18
1041Russia2026-08-18
1042Canada2026-08-24
1043France2026-08-09
1044Italy2026-08-20
1045Brazil2026-08-22
1046India2026-08-15
1047Brazil2026-08-08
1048Argentina2026-08-05
1049India2026-08-13

On-Demand Data

NameIdCountryDate
Maisha F Foller1000India2026-07-31
Octavia W Saylors1001Italy2026-08-21
Munro G Ostrosky1002Russia2026-08-21
Ivar R Whobrey1003Spain2026-07-29
Aika L Malet1004United Kingdom2026-08-15
Tony S Gaucho1005Australia2026-08-02
Jeanfrancois D Foller1006Canada2026-08-18
Octavia N Oldroyd1007Brazil2026-08-05
Jones T Whobrey1008Japan2026-08-07
Mayumi T Briddick1009Brazil2026-08-07
Aditya X Oldroyd1010Italy2026-08-03
David T Kolmetz1011France2026-08-06
Emily P Foller1012Japan2026-08-03
James X Malet1013Canada2026-07-29
Rodrigues Y Albares1014India2026-08-25
Deepesh A Vocelka1015Germany2026-08-10
Nicolas Z Caldarera1016Canada2026-07-29
Kadeem N Vocelka1017Argentina2026-08-12
Silvio L Briddick1018Australia2026-08-26
Jeanfrancois Q Iturbide1019United Kingdom2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem D MarrierItalyAsiya Javayant RENEWAL
Jeanfrancois L GauchoFranceStephen Shaw UNQUALIFIED
Greenwood Y BriddickSpainBernardo Dominic PROPOSAL
Tony U InouyeArgentinaAsiya Javayant QUALIFIED
Kadeem X KuskoSpainXuxue Feng QUALIFIED
Leon J DilliardIndiaBernardo Dominic NEGOTIATION
Wickens N ShinkoSpainStephen Shaw NEW
Francesco K AmigonJapanAmy Elsner RENEWAL
Johnson O ButtCanadaOnyama Limba NEW
Ashley H MaletRussiaXuxue Feng NEGOTIATION
Misaki J IturbideArgentinaElwin Sharvill NEW
Claire X StensethJapanStephen Shaw QUALIFIED
Stacey B BowleyAustraliaOnyama Limba PROPOSAL
Leon P ShinkoAustraliaBernardo Dominic NEW
Kadeem H MaletArgentinaAsiya Javayant RENEWAL
Adams O InouyeArgentinaXuxue Feng RENEWAL
Maisha E InouyeArgentinaAsiya Javayant NEGOTIATION
Greenwood R BologniaJapanElwin Sharvill RENEWAL
Maria X GlickIndiaStephen Shaw NEW
Cody X RutaSpainXuxue Feng PROPOSAL
Rodrigues L DilliardRussiaIoni Bowcher UNQUALIFIED
Silvio N KuskoUnited KingdomAsiya Javayant NEGOTIATION
Smith U NickaFranceIoni Bowcher NEGOTIATION
Sinclair T OstroskyIndiaStephen Shaw NEGOTIATION
Stacey P MaletIndiaIvan Magalhaes NEW
Kaitlin X IturbideRussiaIvan Magalhaes NEW
David G CaudyCanadaAnna Fali NEW
Isabel T AlbaresAustraliaAnna Fali NEGOTIATION
Jones F OldroydArgentinaIoni Bowcher NEW
Silvio V KolmetzCanadaAsiya Javayant QUALIFIED
Izzy S SchemmerGermanyBernardo Dominic RENEWAL
Greenwood M BologniaGermanyIoni Bowcher UNQUALIFIED
Munro S OldroydUnited KingdomXuxue Feng PROPOSAL
Leon N FollerJapanXuxue Feng QUALIFIED
Mujtaba M KuskoFranceIoni Bowcher NEGOTIATION
Murillo P MaletItalyAnna Fali RENEWAL
Aditya V BowleyRussiaIvan Magalhaes NEW
Kaitlin B StockhamJapanIoni Bowcher NEW
Julie N WaycottJapanIvan Magalhaes PROPOSAL
Claire L AlbaresArgentinaAmy Elsner 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>