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
Johnson K WhobreyArgentinaOnyama Limba RENEWAL
Faith C PaprockiRussiaElwin Sharvill UNQUALIFIED
Kadeem V MacleadRussiaAsiya Javayant RENEWAL
Wickens X RimUnited KingdomBernardo Dominic RENEWAL
Aika S GillianGermanyIvan Magalhaes NEW
Jeanfrancois P KuskoUnited KingdomXuxue Feng NEGOTIATION
David J AmigonItalyElwin Sharvill QUALIFIED
James C WhobreyArgentinaAnna Fali NEGOTIATION
Greenwood S ButtBrazilBernardo Dominic RENEWAL
Mujtaba Z StensethFranceAsiya Javayant PROPOSAL
Clifford Z MaletFranceAsiya Javayant RENEWAL
Izzy Y MacleadJapanBernardo Dominic RENEWAL
Francesco B BologniaGermanyStephen Shaw NEW
Salvatore J FigeroaJapanIvan Magalhaes NEGOTIATION
Aruna S WaycottAustraliaBernardo Dominic NEGOTIATION
Alejandro A IturbideGermanyStephen Shaw PROPOSAL
Jennifer L VocelkaRussiaAnna Fali NEW
Deepesh Z WaycottAustraliaOnyama Limba PROPOSAL
Ricardo X VenereUnited KingdomBernardo Dominic PROPOSAL
Jones P NestleFranceOnyama Limba NEW
Leja N AmigonGermanyAnna Fali UNQUALIFIED
Cody G DoeItalyAmy Elsner NEGOTIATION
Tony G TollnerUnited KingdomAmy Elsner NEGOTIATION
Nicolas O RoysterBrazilStephen Shaw NEGOTIATION
Morrow I SlusarskiGermanyIoni Bowcher NEGOTIATION
Jones K ChuiSpainBernardo Dominic QUALIFIED
Emily Z SaylorsRussiaIvan Magalhaes QUALIFIED
Salvatore O CaldareraUnited KingdomOnyama Limba PROPOSAL
Munro W GlickBrazilIvan Magalhaes NEW
Silvio Q InouyeSpainStephen Shaw PROPOSAL
Jones N FlosiAustraliaIoni Bowcher UNQUALIFIED
Sinclair Z MaletCanadaXuxue Feng RENEWAL
Darci Y WieserRussiaElwin Sharvill UNQUALIFIED
Francesco E SchemmerUnited KingdomAmy Elsner NEW
Julie D MacleadAustraliaAnna Fali QUALIFIED
Chavez R OstroskyArgentinaAsiya Javayant QUALIFIED
Aditya C BowleyItalyXuxue Feng NEGOTIATION
Wickens Z VocelkaArgentinaIvan Magalhaes RENEWAL
Jefferson P RutaBrazilAnna Fali QUALIFIED
Ashley R MacleadUnited KingdomIoni Bowcher NEGOTIATION
Mayumi I SergiGermanyAsiya Javayant PROPOSAL
Kadeem R FigeroaAustraliaIoni Bowcher NEGOTIATION
Juan U StensethItalyAsiya Javayant NEW
Juan F StockhamGermanyAmy Elsner QUALIFIED
Leja X BriddickCanadaElwin Sharvill PROPOSAL
David X ChuiArgentinaStephen Shaw PROPOSAL
Kadeem N VocelkaItalyXuxue Feng QUALIFIED
Ashley J FerenczRussiaXuxue Feng RENEWAL
Faith Q NestleUnited KingdomStephen Shaw PROPOSAL
Misaki V GillianGermanyIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja M MaletItalyIoni Bowcher NEW
Kaitlin T BriddickSpainElwin Sharvill RENEWAL
Sinclair F BologniaBrazilIoni Bowcher NEW
Maria I ChuiAustraliaAnna Fali NEGOTIATION
James F IturbideRussiaIoni Bowcher NEW
Jennifer D PerinUnited KingdomStephen Shaw NEW
Nicolas E CaldareraRussiaXuxue Feng PROPOSAL
Mayumi I BologniaJapanStephen Shaw NEW
Izzy D CaudyGermanyXuxue Feng UNQUALIFIED
Isabel O MacleadCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro M CaudyBrazil2026-07-10Benton, John B Jr RENEWAL80Ioni Bowcher
1001Francesco S StensethRussia2026-07-24Benton, John B Jr NEGOTIATION38Ioni Bowcher
1002Aika A WieserUnited Kingdom2026-07-26Dorl, James J Esq UNQUALIFIED9Onyama Limba
1003Misaki Z GauchoJapan2026-07-13Morlong Associates NEGOTIATION17Ioni Bowcher
1004Ricardo I FollerJapan2026-07-24Rangoni Of Florence NEGOTIATION34Bernardo Dominic
1005Misaki P VenereGermany2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED20Bernardo Dominic
1006Mayumi Z VocelkaArgentina2026-07-16Buckley Miller Wright NEGOTIATION15Onyama Limba
1007Izzy W TollnerCanada2026-07-16Chemel, James L Cpa UNQUALIFIED51Bernardo Dominic
1008Izzy Y OstroskyRussia2026-07-14Chemel, James L Cpa QUALIFIED57Stephen Shaw
1009Darci Q VenereItaly2026-07-25Chapman, Ross E Esq QUALIFIED8Asiya Javayant
1010Isabel O StockhamSpain2026-07-02Feiner Bros NEGOTIATION45Onyama Limba
1011Jennifer S RulapaughItaly2026-07-17Printing Dimensions NEW89Anna Fali
1012Aruna G BologniaGermany2026-07-14Buckley Miller Wright NEGOTIATION23Ioni Bowcher
1013Emily W StensethJapan2026-07-13Rousseaux, Michael Esq UNQUALIFIED11Xuxue Feng
1014Wickens T FerenczFrance2026-07-24Dorl, James J Esq PROPOSAL4Onyama Limba
1015Mayumi D BriddickAustralia2026-07-27Buckley Miller Wright RENEWAL13Anna Fali
1016Greenwood A TollnerFrance2026-07-04Truhlar And Truhlar Attys NEGOTIATION69Xuxue Feng
1017Maisha N WhobreyGermany2026-07-13Feiner Bros NEGOTIATION69Xuxue Feng
1018James Y FigeroaJapan2026-07-15Feltz Printing Service NEW5Bernardo Dominic
1019Julie K KolmetzFrance2026-06-30Chapman, Ross E Esq NEW10Onyama Limba
1020Mujtaba H MaletItaly2026-07-14Feiner Bros PROPOSAL60Elwin Sharvill
1021Isabel T ButtCanada2026-07-05Chemel, James L Cpa QUALIFIED99Stephen Shaw
1022Ashley K RutaCanada2026-07-01Chanay, Jeffrey A Esq PROPOSAL56Ivan Magalhaes
1023Alejandro M ButtBrazil2026-07-10Chemel, James L Cpa QUALIFIED55Bernardo Dominic
1024Johnson M KolmetzArgentina2026-07-27Chemel, James L Cpa UNQUALIFIED94Ioni Bowcher
1025Aditya W CampainItaly2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED50Amy Elsner
1026Aruna H MaletArgentina2026-07-12Dorl, James J Esq RENEWAL50Anna Fali
1027James V StensethRussia2026-07-17Feiner Bros PROPOSAL31Asiya Javayant
1028Costa I CaudyGermany2026-07-02Commercial Press PROPOSAL51Bernardo Dominic
1029Leon B FlosiGermany2026-07-25Chemel, James L Cpa UNQUALIFIED38Asiya Javayant
1030Clifford E OstroskyAustralia2026-07-18Printing Dimensions NEW11Stephen Shaw
1031Salvatore P WaycottJapan2026-07-19Printing Dimensions QUALIFIED88Bernardo Dominic
1032Leon B VocelkaUnited Kingdom2026-07-27Truhlar And Truhlar Attys NEW13Amy Elsner
1033Clifford W GarufiFrance2026-07-27Morlong Associates UNQUALIFIED74Elwin Sharvill
1034Adams M KuskoGermany2026-07-26Printing Dimensions RENEWAL99Elwin Sharvill
1035Mayumi U KuskoSpain2026-07-29Chemel, James L Cpa UNQUALIFIED64Elwin Sharvill
1036Izzy Z AlbaresItaly2026-07-10Feiner Bros QUALIFIED53Anna Fali
1037Aika J OstroskyCanada2026-07-28Rangoni Of Florence RENEWAL44Onyama Limba
1038Maria F ShinkoRussia2026-07-25Rangoni Of Florence NEW51Ioni Bowcher
1039Kaitlin I DilliardUnited Kingdom2026-07-05Feiner Bros PROPOSAL1Elwin Sharvill
1040Kadeem Z VenereJapan2026-07-16Truhlar And Truhlar Attys NEGOTIATION27Ivan Magalhaes
1041Izzy X WaycottAustralia2026-07-19Benton, John B Jr RENEWAL95Stephen Shaw
1042Ashley W GauchoItaly2026-07-13Rangoni Of Florence NEW95Onyama Limba
1043Leja K SaylorsBrazil2026-07-12Benton, John B Jr QUALIFIED12Stephen Shaw
1044Chavez W DilliardIndia2026-07-11Rangoni Of Florence NEGOTIATION43Anna Fali
1045Leon Q SaylorsUnited Kingdom2026-07-06Chemel, James L Cpa UNQUALIFIED58Bernardo Dominic
1046Kaitlin V MarrierSpain2026-07-06Rousseaux, Michael Esq NEW50Elwin Sharvill
1047Kadeem R GillianArgentina2026-07-13Benton, John B Jr QUALIFIED49Bernardo Dominic
1048Maisha Z SlusarskiAustralia2026-07-25Rousseaux, Michael Esq UNQUALIFIED92Ivan Magalhaes
1049Leon K MaletItaly2026-07-13Morlong Associates NEW52Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Misaki D BologniaFranceXuxue Feng RENEWAL
Jones E BologniaFranceAnna Fali UNQUALIFIED
Isabel Q GillianCanadaAnna Fali UNQUALIFIED
Jennifer H NickaAustraliaElwin Sharvill NEGOTIATION
Johnson F AmigonIndiaIoni Bowcher QUALIFIED
Aika M MarrierUnited KingdomAmy Elsner PROPOSAL
Sinclair G GarufiBrazilAmy Elsner PROPOSAL
Murillo V BowleySpainIoni Bowcher NEW
Julie E KolmetzSpainBernardo Dominic RENEWAL
David A InouyeGermanyElwin Sharvill NEW
Darci B MacleadAustraliaAmy Elsner NEW
Izzy E MaletFranceXuxue Feng UNQUALIFIED
Arvin X KolmetzUnited KingdomOnyama Limba RENEWAL
Johnson R TollnerBrazilOnyama Limba PROPOSAL
Kaitlin V GlickUnited KingdomXuxue Feng NEGOTIATION
Aruna A IturbideIndiaIvan Magalhaes RENEWAL
Nicolas X SchemmerArgentinaAnna Fali PROPOSAL
Aditya H ShinkoCanadaAnna Fali RENEWAL
Ivar N IturbideArgentinaXuxue Feng RENEWAL
Morrow U WieserUnited KingdomAnna Fali QUALIFIED
Deepesh W GauchoItalyStephen Shaw NEGOTIATION
Clifford Q FlosiBrazilAmy Elsner NEW
Deepesh H RutaUnited KingdomElwin Sharvill NEGOTIATION
Misaki W KuskoArgentinaIvan Magalhaes NEW
Arvin U FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Arvin Y ShinkoFranceIoni Bowcher NEW
Aditya C SergiBrazilIoni Bowcher NEW
Leon F AlbaresAustraliaAmy Elsner QUALIFIED
Munro W PaprockiSpainIoni Bowcher NEGOTIATION
Jeanfrancois G MaletSpainAnna Fali NEGOTIATION
Alejandro D FigeroaIndiaIvan Magalhaes PROPOSAL
Mujtaba E OstroskyBrazilBernardo Dominic PROPOSAL
Leja K PaprockiUnited KingdomBernardo Dominic NEW
Misaki X NickaItalyIoni Bowcher QUALIFIED
Kadeem Y DoeRussiaElwin Sharvill NEW
Isabel U IturbideJapanElwin Sharvill QUALIFIED
Arvin A DilliardSpainXuxue Feng UNQUALIFIED
Francesco U FerenczBrazilStephen Shaw QUALIFIED
Nicolas C SchemmerItalyOnyama Limba NEW
Ivar J NestleSpainOnyama Limba NEGOTIATION
Greenwood Q VenereCanadaAnna Fali PROPOSAL
Cody P SergiSpainOnyama Limba RENEWAL
Murillo B RulapaughRussiaIoni Bowcher NEW
Maisha U FollerAustraliaIvan Magalhaes PROPOSAL
Jones S MaletRussiaAnna Fali PROPOSAL
Silvio W SchemmerArgentinaIoni Bowcher UNQUALIFIED
Deepesh K ShinkoIndiaStephen Shaw NEW
Aditya N GlickArgentinaAnna Fali NEW
Greenwood E SaylorsArgentinaXuxue Feng PROPOSAL
Jeanfrancois P VenereRussiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Rodrigues Z Oldroyd
Octavia Q Gaucho
Alejandro P Venere
Aditya G Rulapaugh
Jennifer M Maclead
Kaitlin F Ruta
Sinclair D Malet
Wickens E Whobrey
Maria O Bolognia
Claire M Waycott
Leon J Darakjy
Maisha F Albares
Claire Z Garufi
Leja Q Garufi
Mayumi N Poquette
Ricardo S Malet
Ricardo F Perin
Adams S Vocelka
Leon U Malet
Cody S Butt
Salvatore Q Doe
Juan G Gaucho
Johnson B Shinko
Greenwood C Bowley
Alejandro F Ferencz
Ricardo P Ostrosky
Mujtaba O Wieser
Rodrigues L Chui
Stacey Y Stenseth
Aruna Y Caldarera
Arvin V Tollner
Maria U Malet
Morrow G Whobrey
Ashley V Amigon
Morrow S Shinko
Salvatore X Dilliard
Salvatore R Chui
Juan T Vocelka
Misaki A Darakjy
Jeanfrancois F Wieser
Silvio L Wieser
Aika G Vocelka
Chavez J Bolognia
Darci B Whobrey
Rodrigues W Sergi
Smith A Malet
Kaitlin F Gaucho
Leja G Schemmer
Alejandro G Kusko
Mayumi Y Sergi
IdCountryDate
1000Japan2026-07-20
1001France2026-07-09
1002France2026-07-24
1003Canada2026-07-10
1004Italy2026-07-05
1005Germany2026-07-29
1006Canada2026-07-24
1007Argentina2026-07-26
1008Canada2026-07-13
1009France2026-07-03
1010United Kingdom2026-07-11
1011India2026-07-22
1012Japan2026-07-13
1013France2026-07-07
1014Spain2026-07-29
1015Brazil2026-07-27
1016France2026-07-16
1017Japan2026-07-29
1018Italy2026-07-06
1019Canada2026-07-13
1020Brazil2026-07-21
1021Germany2026-07-04
1022Japan2026-07-23
1023Russia2026-07-22
1024Brazil2026-07-21
1025United Kingdom2026-06-30
1026India2026-07-25
1027Argentina2026-07-10
1028Germany2026-07-14
1029Russia2026-07-25
1030Japan2026-07-11
1031Argentina2026-07-14
1032Argentina2026-07-01
1033Russia2026-06-30
1034Brazil2026-07-24
1035Australia2026-07-21
1036India2026-07-06
1037Canada2026-07-13
1038Australia2026-07-23
1039United Kingdom2026-07-29
1040Spain2026-07-17
1041France2026-07-18
1042Germany2026-07-20
1043United Kingdom2026-07-17
1044Canada2026-07-05
1045Russia2026-07-19
1046Canada2026-07-06
1047Argentina2026-07-25
1048France2026-07-16
1049Canada2026-07-19

On-Demand Data

NameIdCountryDate
Murillo X Caldarera1000France2026-07-10
Ashley K Saylors1001India2026-07-11
Tony U Dilliard1002Japan2026-07-20
Isabel L Chui1003United Kingdom2026-07-18
Wickens T Ostrosky1004Australia2026-06-30
Smith D Slusarski1005Japan2026-07-10
Maria V Kusko1006Canada2026-07-06
Mujtaba B Bolognia1007Brazil2026-06-30
Ivar S Bowley1008Australia2026-07-23
Izzy U Gillian1009Brazil2026-07-03
Ivar U Kusko1010Russia2026-07-17
Isabel S Kolmetz1011Japan2026-07-29
Julie K Whobrey1012Brazil2026-07-09
Antonio O Schemmer1013Argentina2026-07-15
Jefferson Q Poquette1014Australia2026-07-09
Darci T Inouye1015Brazil2026-07-14
Nicolas X Albares1016Australia2026-07-09
Costa T Waycott1017Canada2026-07-24
Sinclair R Figeroa1018Japan2026-07-23
Isabel P Doe1019India2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair M RutaBrazilElwin Sharvill NEGOTIATION
Costa D WieserItalyIoni Bowcher NEGOTIATION
Silvio V ShinkoSpainIvan Magalhaes NEGOTIATION
Munro D GillianItalyAsiya Javayant PROPOSAL
Jeanfrancois Z WhobreyUnited KingdomAnna Fali RENEWAL
Murillo C KolmetzGermanyStephen Shaw UNQUALIFIED
Jennifer C MaletItalyOnyama Limba PROPOSAL
Jeanfrancois H NickaCanadaAmy Elsner NEW
James Y RimRussiaAnna Fali QUALIFIED
David V MorascaAustraliaXuxue Feng NEW
Izzy Y StockhamFranceBernardo Dominic PROPOSAL
Cody C ChuiRussiaAmy Elsner RENEWAL
Maisha Z SlusarskiCanadaIvan Magalhaes PROPOSAL
Jennifer B WieserJapanStephen Shaw RENEWAL
Morrow C NickaAustraliaXuxue Feng QUALIFIED
Jones G GauchoAustraliaXuxue Feng NEGOTIATION
Johnson S BologniaUnited KingdomXuxue Feng QUALIFIED
Ashley T InouyeIndiaAnna Fali PROPOSAL
Julie Y BriddickRussiaAmy Elsner UNQUALIFIED
Claire K OldroydCanadaBernardo Dominic UNQUALIFIED
Maisha G DilliardItalyAmy Elsner NEW
James B ShinkoJapanAsiya Javayant RENEWAL
Greenwood V ButtUnited KingdomOnyama Limba NEW
Cody H MaletCanadaAsiya Javayant PROPOSAL
Mayumi P ShinkoAustraliaElwin Sharvill QUALIFIED
Maria Y FollerJapanAsiya Javayant NEW
Munro E CampainJapanAmy Elsner NEGOTIATION
Mayumi E ButtBrazilXuxue Feng UNQUALIFIED
Arvin C OldroydUnited KingdomXuxue Feng NEGOTIATION
Kadeem A PoquetteRussiaStephen Shaw QUALIFIED
Greenwood R FerenczBrazilXuxue Feng NEW
Kadeem S OstroskyItalyOnyama Limba RENEWAL
Costa C FigeroaIndiaXuxue Feng NEW
Murillo E OldroydSpainIoni Bowcher QUALIFIED
Arvin Q PaprockiFranceAnna Fali NEGOTIATION
Mujtaba H WaycottBrazilElwin Sharvill QUALIFIED
Juan Z AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Misaki Q WaycottIndiaIvan Magalhaes NEGOTIATION
Tony K TollnerGermanyElwin Sharvill NEW
Darci Z SaylorsSpainElwin Sharvill 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>