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
Isabel I SaylorsBrazilBernardo Dominic NEGOTIATION
Greenwood P KolmetzAustraliaAnna Fali NEW
Clifford Q PoquetteArgentinaElwin Sharvill NEGOTIATION
Adams C SergiIndiaAmy Elsner UNQUALIFIED
Ricardo R SlusarskiFranceElwin Sharvill RENEWAL
Johnson N WieserJapanStephen Shaw PROPOSAL
Jennifer Y RoysterCanadaIvan Magalhaes QUALIFIED
Jennifer Y GlickUnited KingdomOnyama Limba PROPOSAL
Emily K FerenczAustraliaStephen Shaw PROPOSAL
Aruna K PerinRussiaStephen Shaw NEGOTIATION
Misaki U GauchoGermanyIoni Bowcher NEGOTIATION
Costa A CaudyIndiaAmy Elsner RENEWAL
Octavia H KuskoRussiaIoni Bowcher RENEWAL
Tony N BowleyAustraliaXuxue Feng NEGOTIATION
Stacey W OldroydBrazilIvan Magalhaes NEW
Maisha H PaprockiGermanyAsiya Javayant QUALIFIED
David N FerenczItalyIoni Bowcher RENEWAL
Aika Z RulapaughItalyElwin Sharvill NEGOTIATION
Greenwood G GlickSpainXuxue Feng UNQUALIFIED
Rodrigues I CampainIndiaStephen Shaw QUALIFIED
Antonio T GillianUnited KingdomXuxue Feng NEGOTIATION
Murillo N ShinkoRussiaOnyama Limba NEGOTIATION
Jefferson M NestleRussiaIoni Bowcher UNQUALIFIED
Jennifer X DoeFranceElwin Sharvill RENEWAL
Darci D PoquetteSpainOnyama Limba NEGOTIATION
Deepesh X AlbaresGermanyXuxue Feng PROPOSAL
Murillo R RutaBrazilXuxue Feng PROPOSAL
James V CampainItalyAsiya Javayant NEGOTIATION
Cody B WhobreyCanadaXuxue Feng NEGOTIATION
Smith R PoquetteFranceAsiya Javayant RENEWAL
Claire O AlbaresAustraliaIvan Magalhaes NEGOTIATION
Adams Z SlusarskiGermanyOnyama Limba NEGOTIATION
Rodrigues C ChuiJapanOnyama Limba PROPOSAL
Claire U FollerCanadaElwin Sharvill PROPOSAL
Mujtaba R SaylorsUnited KingdomElwin Sharvill PROPOSAL
Clifford A CaudyAustraliaIoni Bowcher QUALIFIED
Adams B GauchoArgentinaXuxue Feng QUALIFIED
Darci J CampainItalyAnna Fali QUALIFIED
Sinclair Y OstroskyUnited KingdomAnna Fali RENEWAL
Wickens S DoeIndiaBernardo Dominic RENEWAL
Octavia D DarakjyBrazilAsiya Javayant PROPOSAL
Chavez W KuskoUnited KingdomIvan Magalhaes RENEWAL
Ricardo B PaprockiFranceXuxue Feng UNQUALIFIED
Emily T CaldareraFranceAsiya Javayant RENEWAL
Isabel W SaylorsFranceIvan Magalhaes RENEWAL
Mayumi H DarakjySpainAmy Elsner NEW
Tony A WhobreyUnited KingdomAmy Elsner QUALIFIED
Ashley D MarrierGermanyElwin Sharvill QUALIFIED
Aditya Q FerenczItalyAnna Fali QUALIFIED
James U KuskoFranceIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues B BriddickRussiaElwin Sharvill RENEWAL
Tony Y BologniaItalyAsiya Javayant UNQUALIFIED
James N BowleyIndiaAmy Elsner QUALIFIED
Ricardo C BowleyJapanStephen Shaw PROPOSAL
Francesco E InouyeAustraliaElwin Sharvill PROPOSAL
Leon K GarufiIndiaAsiya Javayant UNQUALIFIED
Deepesh T CaldareraArgentinaStephen Shaw QUALIFIED
Ashley Y CampainBrazilIoni Bowcher UNQUALIFIED
Morrow Q InouyeSpainIvan Magalhaes NEW
Mujtaba G WaycottCanadaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire N MacleadAustralia2025-06-12Chapman, Ross E Esq UNQUALIFIED14Onyama Limba
1001Aika J PoquetteJapan2025-05-29Rangoni Of Florence PROPOSAL70Bernardo Dominic
1002Faith E CaldareraJapan2025-06-03Dorl, James J Esq RENEWAL60Ioni Bowcher
1003Ashley E RutaSpain2025-06-15Rangoni Of Florence RENEWAL63Elwin Sharvill
1004Maria R WhobreyJapan2025-06-03Feiner Bros UNQUALIFIED82Asiya Javayant
1005Sinclair L AlbaresRussia2025-05-22Rangoni Of Florence UNQUALIFIED24Amy Elsner
1006Cody L FigeroaRussia2025-06-13King, Christopher A Esq QUALIFIED46Ivan Magalhaes
1007Cody A PerinAustralia2025-06-10King, Christopher A Esq NEW93Ioni Bowcher
1008Murillo V FlosiSpain2025-06-09Commercial Press UNQUALIFIED96Anna Fali
1009Maisha B GauchoArgentina2025-06-14Truhlar And Truhlar Attys QUALIFIED50Ivan Magalhaes
1010Silvio V ChuiGermany2025-05-19Rousseaux, Michael Esq NEW64Ivan Magalhaes
1011Octavia U BriddickArgentina2025-05-25Dorl, James J Esq UNQUALIFIED15Anna Fali
1012Claire Y StockhamGermany2025-06-07Rangoni Of Florence RENEWAL4Xuxue Feng
1013Misaki G SlusarskiUnited Kingdom2025-05-27Feltz Printing Service NEW31Ioni Bowcher
1014Kadeem T PoquetteUnited Kingdom2025-05-22King, Christopher A Esq QUALIFIED94Xuxue Feng
1015James R NestleSpain2025-05-24Truhlar And Truhlar Attys QUALIFIED82Elwin Sharvill
1016Munro N PerinBrazil2025-06-16Rangoni Of Florence UNQUALIFIED47Xuxue Feng
1017Claire R PoquetteIndia2025-06-16Buckley Miller Wright NEGOTIATION52Bernardo Dominic
1018Leon B TollnerIndia2025-06-06Chanay, Jeffrey A Esq QUALIFIED32Ivan Magalhaes
1019Aditya B OldroydGermany2025-06-03Chemel, James L Cpa UNQUALIFIED65Ivan Magalhaes
1020Kaitlin T ButtSpain2025-06-11Rangoni Of Florence NEW69Ivan Magalhaes
1021Kadeem T SchemmerGermany2025-05-25Printing Dimensions UNQUALIFIED35Ivan Magalhaes
1022Johnson V CampainArgentina2025-06-03Benton, John B Jr QUALIFIED54Anna Fali
1023Aruna S CaldareraAustralia2025-06-07Rousseaux, Michael Esq NEW88Ioni Bowcher
1024Mujtaba Y MacleadItaly2025-06-09Rousseaux, Michael Esq QUALIFIED13Xuxue Feng
1025David H FerenczAustralia2025-06-14Dorl, James J Esq RENEWAL32Amy Elsner
1026Alejandro U StockhamCanada2025-05-23Benton, John B Jr NEGOTIATION73Elwin Sharvill
1027Clifford K DoeAustralia2025-06-02Feltz Printing Service NEGOTIATION40Onyama Limba
1028Salvatore I RulapaughSpain2025-05-28Feltz Printing Service PROPOSAL2Anna Fali
1029Mayumi G SlusarskiJapan2025-05-27Buckley Miller Wright PROPOSAL1Stephen Shaw
1030Kaitlin A CampainArgentina2025-06-13Rangoni Of Florence UNQUALIFIED96Asiya Javayant
1031Leon R MaletItaly2025-05-29Rousseaux, Michael Esq PROPOSAL51Amy Elsner
1032Arvin O FlosiAustralia2025-05-20Feltz Printing Service QUALIFIED47Bernardo Dominic
1033Morrow X ButtArgentina2025-06-15Feltz Printing Service NEGOTIATION59Stephen Shaw
1034Misaki Y BriddickFrance2025-05-30Truhlar And Truhlar Attys QUALIFIED86Onyama Limba
1035Kaitlin I VocelkaFrance2025-06-11Rousseaux, Michael Esq PROPOSAL6Amy Elsner
1036Leja W GlickItaly2025-05-23Commercial Press UNQUALIFIED28Xuxue Feng
1037Tony P TollnerFrance2025-06-02Benton, John B Jr RENEWAL80Ioni Bowcher
1038Julie Y DilliardBrazil2025-05-28Morlong Associates NEW6Xuxue Feng
1039Isabel N OstroskySpain2025-05-18Printing Dimensions RENEWAL96Onyama Limba
1040Isabel K StensethUnited Kingdom2025-06-07Morlong Associates NEGOTIATION50Asiya Javayant
1041Antonio C WieserBrazil2025-06-14Truhlar And Truhlar Attys QUALIFIED45Xuxue Feng
1042Aruna C DilliardJapan2025-06-16Dorl, James J Esq QUALIFIED81Bernardo Dominic
1043Maisha R FollerBrazil2025-05-23Printing Dimensions RENEWAL59Anna Fali
1044Aditya A GillianFrance2025-06-09Chanay, Jeffrey A Esq QUALIFIED63Ivan Magalhaes
1045Sinclair E FlosiUnited Kingdom2025-06-03Morlong Associates NEW20Stephen Shaw
1046Munro L FerenczUnited Kingdom2025-06-02Truhlar And Truhlar Attys QUALIFIED31Asiya Javayant
1047Aruna Q FlosiArgentina2025-06-15King, Christopher A Esq QUALIFIED67Stephen Shaw
1048Leja O DoeUnited Kingdom2025-05-30Chapman, Ross E Esq RENEWAL84Ioni Bowcher
1049Emily L SchemmerFrance2025-06-15Chanay, Jeffrey A Esq UNQUALIFIED43Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin L AmigonFranceOnyama Limba RENEWAL
Wickens T MaletItalyStephen Shaw NEW
Munro W PoquetteJapanIvan Magalhaes PROPOSAL
Emily G NestleIndiaAsiya Javayant NEGOTIATION
Leon G PaprockiFranceElwin Sharvill QUALIFIED
Izzy W FollerArgentinaElwin Sharvill NEGOTIATION
David R RulapaughJapanXuxue Feng UNQUALIFIED
Aruna I NickaRussiaIoni Bowcher NEW
Mayumi Y GillianBrazilAsiya Javayant QUALIFIED
Nicolas L NickaIndiaBernardo Dominic NEGOTIATION
Greenwood G RulapaughSpainElwin Sharvill NEW
Leja U FollerFranceIvan Magalhaes NEW
Morrow K RulapaughJapanIoni Bowcher NEW
Costa N FigeroaCanadaXuxue Feng PROPOSAL
Julie I OstroskyRussiaElwin Sharvill NEW
Misaki T NestleFranceStephen Shaw RENEWAL
Morrow G RulapaughBrazilOnyama Limba NEW
Silvio S SergiGermanyStephen Shaw NEGOTIATION
Juan A VenereGermanyAmy Elsner QUALIFIED
Maisha E VocelkaSpainAsiya Javayant NEW
Deepesh I CampainItalyIvan Magalhaes NEGOTIATION
Antonio O MaletFranceIvan Magalhaes NEGOTIATION
Morrow L NestleFranceAsiya Javayant UNQUALIFIED
Kaitlin T DarakjyUnited KingdomAnna Fali NEGOTIATION
Silvio S TollnerItalyElwin Sharvill UNQUALIFIED
Silvio U SergiItalyOnyama Limba NEGOTIATION
Morrow G MacleadArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois I StockhamSpainIvan Magalhaes NEGOTIATION
Munro R BologniaRussiaIvan Magalhaes UNQUALIFIED
Emily A OldroydRussiaAsiya Javayant NEW
Aditya D FollerRussiaIoni Bowcher NEGOTIATION
Ricardo U RutaJapanIvan Magalhaes NEW
Cody T MorascaItalyStephen Shaw UNQUALIFIED
Izzy U SergiIndiaAsiya Javayant NEGOTIATION
Smith G RutaItalyAnna Fali NEW
Cody C OstroskySpainIvan Magalhaes NEW
Claire P CaudyBrazilStephen Shaw QUALIFIED
Silvio I TollnerItalyBernardo Dominic NEGOTIATION
Darci W RimItalyXuxue Feng QUALIFIED
Julie O SaylorsCanadaAmy Elsner NEW
Kaitlin L SlusarskiSpainAnna Fali PROPOSAL
Emily S CampainRussiaAnna Fali UNQUALIFIED
Leja H KuskoSpainIoni Bowcher PROPOSAL
Smith L SlusarskiItalyIoni Bowcher NEGOTIATION
Francesco H WaycottCanadaOnyama Limba NEW
Greenwood X MarrierArgentinaAmy Elsner QUALIFIED
Murillo V MacleadJapanBernardo Dominic RENEWAL
Kaitlin T TollnerIndiaAnna Fali RENEWAL
Izzy A SaylorsArgentinaStephen Shaw NEW
Leon G KuskoIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Julie I Glick
Misaki G Chui
Deepesh R Briddick
Wickens C Oldroyd
Greenwood R Vocelka
Arvin L Paprocki
Aruna J Figeroa
Rodrigues C Stenseth
Francesco P Bowley
Morrow W Ruta
Costa R Ostrosky
Greenwood Z Shinko
Leja L Malet
Misaki X Wieser
Leja K Glick
Izzy K Caudy
Jeanfrancois Y Royster
Aditya T Rim
Jeanfrancois E Shinko
Ashley Z Morasca
Greenwood Y Wieser
Aika B Butt
Aruna R Butt
Mayumi P Malet
Leon Y Kolmetz
Ricardo S Tollner
Jones R Amigon
Juan I Waycott
Isabel B Poquette
David Y Briddick
Julie F Bolognia
Alejandro G Malet
Silvio Y Campain
Kaitlin U Bolognia
Claire O Shinko
Francesco B Ruta
Kadeem X Nicka
Octavia W Kolmetz
Antonio Z Butt
Izzy C Foller
Kaitlin U Kusko
Mujtaba T Dilliard
Deepesh X Ferencz
Jeanfrancois Y Schemmer
Jones D Nestle
Emily R Chui
Mayumi J Garufi
Ricardo O Wieser
Aika I Nicka
James J Shinko
IdCountryDate
1000Germany2025-05-25
1001Canada2025-05-24
1002Brazil2025-05-27
1003Brazil2025-06-12
1004Japan2025-05-30
1005Australia2025-05-21
1006Japan2025-05-27
1007Spain2025-05-22
1008United Kingdom2025-06-04
1009Russia2025-05-30
1010Canada2025-05-31
1011Spain2025-06-14
1012Spain2025-06-10
1013Australia2025-05-29
1014Russia2025-05-19
1015Australia2025-06-16
1016India2025-06-12
1017France2025-06-14
1018France2025-05-18
1019Canada2025-06-16
1020Australia2025-06-04
1021Brazil2025-06-13
1022Italy2025-06-15
1023Australia2025-05-24
1024Brazil2025-06-05
1025Spain2025-05-21
1026United Kingdom2025-05-23
1027Spain2025-06-13
1028United Kingdom2025-05-24
1029Canada2025-05-26
1030Spain2025-06-06
1031Canada2025-06-09
1032Canada2025-06-13
1033Russia2025-06-15
1034Japan2025-06-09
1035Japan2025-05-26
1036Spain2025-06-01
1037Canada2025-06-09
1038Brazil2025-05-20
1039Australia2025-06-11
1040Japan2025-05-24
1041Japan2025-05-22
1042Russia2025-06-02
1043Germany2025-06-09
1044Argentina2025-06-13
1045Spain2025-05-25
1046Brazil2025-06-10
1047Argentina2025-06-12
1048India2025-05-24
1049Spain2025-05-27

On-Demand Data

NameIdCountryDate
Rodrigues G Wieser1000Japan2025-05-20
Costa J Nicka1001United Kingdom2025-06-07
Jennifer Q Inouye1002France2025-06-06
Chavez D Poquette1003Italy2025-05-27
Jefferson J Wieser1004France2025-06-07
Stacey O Albares1005Australia2025-06-10
Ashley J Gillian1006Brazil2025-05-19
Claire A Stenseth1007France2025-06-02
Deepesh J Garufi1008Australia2025-06-07
Greenwood D Inouye1009Spain2025-05-26
Wickens S Inouye1010Australia2025-06-04
Antonio I Stockham1011Brazil2025-06-06
Aruna Z Gaucho1012Canada2025-05-21
Ashley H Dilliard1013Germany2025-05-24
Chavez S Garufi1014Australia2025-05-26
David F Vocelka1015Russia2025-06-09
Smith N Maclead1016France2025-06-13
Jeanfrancois G Briddick1017Germany2025-05-18
Tony D Marrier1018Argentina2025-06-12
Isabel L Doe1019Japan2025-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith L FlosiSpainAmy Elsner UNQUALIFIED
Misaki O PerinAustraliaXuxue Feng QUALIFIED
Aditya E FigeroaUnited KingdomAnna Fali UNQUALIFIED
Johnson H OstroskyIndiaBernardo Dominic UNQUALIFIED
Aika B WieserSpainAmy Elsner RENEWAL
Mujtaba N WaycottAustraliaStephen Shaw NEGOTIATION
Jeanfrancois K ChuiGermanyAnna Fali NEGOTIATION
Chavez E RoysterSpainBernardo Dominic QUALIFIED
Ashley C NestleSpainAnna Fali QUALIFIED
Chavez O MaletJapanAmy Elsner NEW
Juan B FerenczRussiaAmy Elsner NEGOTIATION
Leon P WieserSpainAsiya Javayant PROPOSAL
David G MorascaUnited KingdomIoni Bowcher RENEWAL
Isabel O RimRussiaStephen Shaw UNQUALIFIED
Isabel M IturbideIndiaAnna Fali RENEWAL
Juan R InouyeBrazilIoni Bowcher PROPOSAL
Octavia U CaldareraArgentinaStephen Shaw RENEWAL
Greenwood X PoquetteRussiaAnna Fali NEW
Aika Y NestleAustraliaOnyama Limba NEGOTIATION
Juan U FollerGermanyStephen Shaw RENEWAL
Aruna M SaylorsIndiaIvan Magalhaes NEGOTIATION
Aika K OstroskyBrazilOnyama Limba PROPOSAL
Jefferson R SchemmerRussiaAmy Elsner RENEWAL
Leon G DilliardIndiaIvan Magalhaes PROPOSAL
Jennifer K VenereItalyAmy Elsner PROPOSAL
Greenwood H SchemmerRussiaAmy Elsner PROPOSAL
Octavia W KolmetzGermanyOnyama Limba NEW
Sinclair S MorascaArgentinaAsiya Javayant NEGOTIATION
Arvin C StockhamCanadaStephen Shaw NEGOTIATION
Adams K ButtSpainIoni Bowcher UNQUALIFIED
Jones T GillianUnited KingdomBernardo Dominic PROPOSAL
Kadeem U KuskoSpainAsiya Javayant QUALIFIED
Aika M BologniaUnited KingdomElwin Sharvill PROPOSAL
Silvio R VocelkaSpainOnyama Limba NEGOTIATION
Clifford D DilliardAustraliaAmy Elsner PROPOSAL
Chavez Y KolmetzJapanIoni Bowcher UNQUALIFIED
Jefferson H StensethRussiaOnyama Limba PROPOSAL
Johnson L FlosiBrazilBernardo Dominic PROPOSAL
Tony N StensethFranceBernardo Dominic RENEWAL
Morrow E RimFranceAnna Fali UNQUALIFIED

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