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
Ashley B VenereSpainAnna Fali NEW
Jones A WieserItalyIvan Magalhaes PROPOSAL
Mujtaba P GarufiIndiaBernardo Dominic PROPOSAL
Munro S TollnerGermanyIvan Magalhaes UNQUALIFIED
Izzy M ShinkoGermanyIoni Bowcher RENEWAL
Chavez F NestleFranceBernardo Dominic QUALIFIED
Jennifer N KolmetzSpainElwin Sharvill QUALIFIED
Alejandro P FigeroaBrazilXuxue Feng NEW
Kaitlin X VenereRussiaElwin Sharvill NEW
Misaki G RoysterRussiaXuxue Feng NEW
Isabel O NickaGermanyElwin Sharvill QUALIFIED
Tony T GillianJapanXuxue Feng RENEWAL
Aruna A RulapaughCanadaStephen Shaw UNQUALIFIED
Jeanfrancois Q FlosiAustraliaElwin Sharvill PROPOSAL
Chavez M TollnerUnited KingdomStephen Shaw PROPOSAL
Chavez H DarakjyAustraliaIvan Magalhaes RENEWAL
Munro Y RimIndiaStephen Shaw NEW
Murillo M GarufiSpainStephen Shaw RENEWAL
Mujtaba Q InouyeItalyOnyama Limba NEGOTIATION
Mujtaba W VenereBrazilAmy Elsner NEGOTIATION
Darci S StockhamCanadaAmy Elsner QUALIFIED
Chavez O GillianGermanyStephen Shaw RENEWAL
Aruna P SlusarskiGermanyElwin Sharvill NEW
Julie Q GauchoBrazilAmy Elsner NEGOTIATION
Misaki J PaprockiSpainIvan Magalhaes QUALIFIED
Claire K BowleyArgentinaElwin Sharvill NEGOTIATION
Maria J AlbaresIndiaXuxue Feng NEW
Juan V BologniaRussiaElwin Sharvill NEGOTIATION
Aika Q StockhamUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois G MarrierGermanyXuxue Feng NEGOTIATION
James D CaldareraAustraliaStephen Shaw RENEWAL
Mujtaba B StensethIndiaElwin Sharvill QUALIFIED
Leja B FlosiCanadaXuxue Feng RENEWAL
Murillo W FigeroaArgentinaAnna Fali PROPOSAL
Claire Q VenereArgentinaOnyama Limba RENEWAL
Mayumi W SchemmerItalyOnyama Limba UNQUALIFIED
Murillo X DoeItalyStephen Shaw QUALIFIED
Tony J AmigonAustraliaAnna Fali PROPOSAL
Jennifer O DoeUnited KingdomIoni Bowcher QUALIFIED
Antonio N MaletRussiaBernardo Dominic NEGOTIATION
Aika X AlbaresCanadaXuxue Feng UNQUALIFIED
Claire H WaycottSpainStephen Shaw RENEWAL
Johnson R VenereFranceStephen Shaw NEGOTIATION
David B KolmetzGermanyStephen Shaw NEW
Julie A TollnerAustraliaAmy Elsner UNQUALIFIED
Leon B GauchoSpainXuxue Feng QUALIFIED
Maria M NickaIndiaAmy Elsner NEW
Kaitlin W KolmetzFranceIvan Magalhaes QUALIFIED
Arvin B RulapaughSpainStephen Shaw UNQUALIFIED
Darci B OldroydAustraliaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois T WieserJapanBernardo Dominic PROPOSAL
Tony B OstroskyRussiaElwin Sharvill RENEWAL
Salvatore X SchemmerFranceIoni Bowcher QUALIFIED
Chavez L VocelkaRussiaIoni Bowcher QUALIFIED
Silvio S BowleyBrazilBernardo Dominic NEW
Claire A ChuiArgentinaStephen Shaw NEGOTIATION
Cody K VenereRussiaXuxue Feng PROPOSAL
Rodrigues H CampainAustraliaBernardo Dominic QUALIFIED
Jones Y RimFranceIoni Bowcher PROPOSAL
Murillo K DarakjyIndiaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore B RulapaughUnited Kingdom2025-06-03Feiner Bros NEW6Ivan Magalhaes
1001Claire B FlosiGermany2025-05-28Feltz Printing Service QUALIFIED32Xuxue Feng
1002Aruna V ChuiFrance2025-05-29Morlong Associates QUALIFIED4Ivan Magalhaes
1003Morrow Q FollerJapan2025-06-08Chanay, Jeffrey A Esq NEW10Bernardo Dominic
1004Chavez X OstroskyRussia2025-05-31Benton, John B Jr PROPOSAL73Amy Elsner
1005Jefferson I SaylorsFrance2025-06-04Buckley Miller Wright QUALIFIED59Bernardo Dominic
1006Izzy E IturbideBrazil2025-05-23Benton, John B Jr NEW71Elwin Sharvill
1007Jones Z BowleyJapan2025-06-02Commercial Press NEW25Asiya Javayant
1008Aditya D PerinIndia2025-06-07King, Christopher A Esq PROPOSAL24Ivan Magalhaes
1009Johnson G WhobreyFrance2025-06-02Printing Dimensions NEW18Ivan Magalhaes
1010Ashley Y IturbideUnited Kingdom2025-06-13Chanay, Jeffrey A Esq NEGOTIATION52Xuxue Feng
1011Izzy Q FigeroaAustralia2025-05-26Feiner Bros NEW47Xuxue Feng
1012Greenwood M RutaCanada2025-05-24Truhlar And Truhlar Attys PROPOSAL39Amy Elsner
1013Adams A NickaAustralia2025-06-02Feltz Printing Service NEGOTIATION48Amy Elsner
1014Aika B CampainFrance2025-05-25Commercial Press PROPOSAL60Asiya Javayant
1015Adams L SergiGermany2025-05-29King, Christopher A Esq NEGOTIATION25Ivan Magalhaes
1016Jefferson L FollerJapan2025-05-19Chanay, Jeffrey A Esq NEW63Ivan Magalhaes
1017Salvatore B PaprockiCanada2025-05-22Chanay, Jeffrey A Esq PROPOSAL50Ioni Bowcher
1018Ricardo J DarakjySpain2025-05-26Chemel, James L Cpa NEW15Ivan Magalhaes
1019Sinclair L OstroskyCanada2025-06-15Commercial Press RENEWAL79Xuxue Feng
1020Sinclair T RimCanada2025-05-21Printing Dimensions QUALIFIED23Amy Elsner
1021Costa D ShinkoCanada2025-06-08Commercial Press UNQUALIFIED88Stephen Shaw
1022Kadeem S GarufiFrance2025-05-26Printing Dimensions PROPOSAL35Ioni Bowcher
1023Tony N PoquetteGermany2025-06-14Morlong Associates NEW83Asiya Javayant
1024Nicolas Y RoysterArgentina2025-06-06Truhlar And Truhlar Attys PROPOSAL72Elwin Sharvill
1025Wickens U AlbaresItaly2025-06-01Truhlar And Truhlar Attys NEW55Anna Fali
1026Arvin Q ShinkoCanada2025-06-13Chanay, Jeffrey A Esq PROPOSAL87Anna Fali
1027Johnson P FerenczCanada2025-05-22Chemel, James L Cpa NEGOTIATION26Anna Fali
1028Wickens B RoysterArgentina2025-05-23Chanay, Jeffrey A Esq UNQUALIFIED14Amy Elsner
1029Isabel P SaylorsUnited Kingdom2025-06-12Chemel, James L Cpa QUALIFIED86Anna Fali
1030Emily F MaletIndia2025-05-26Rangoni Of Florence NEGOTIATION21Ivan Magalhaes
1031Octavia H BriddickJapan2025-05-25Benton, John B Jr UNQUALIFIED23Bernardo Dominic
1032Leja F GillianBrazil2025-06-11Benton, John B Jr PROPOSAL44Ivan Magalhaes
1033Sinclair V BologniaFrance2025-05-21Truhlar And Truhlar Attys RENEWAL62Ivan Magalhaes
1034Ricardo J SaylorsCanada2025-06-11Benton, John B Jr QUALIFIED31Ivan Magalhaes
1035Ashley G SaylorsJapan2025-05-22Rousseaux, Michael Esq RENEWAL81Ioni Bowcher
1036Aruna Y PaprockiFrance2025-05-27Chanay, Jeffrey A Esq PROPOSAL86Xuxue Feng
1037Cody G ChuiRussia2025-05-25Dorl, James J Esq QUALIFIED27Amy Elsner
1038Ashley E PerinArgentina2025-06-16Printing Dimensions RENEWAL67Amy Elsner
1039Arvin J KuskoIndia2025-06-01Printing Dimensions RENEWAL48Amy Elsner
1040Darci S FigeroaSpain2025-06-11Buckley Miller Wright RENEWAL66Xuxue Feng
1041Cody I AmigonUnited Kingdom2025-05-22Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1042Ashley X KolmetzArgentina2025-05-31Feltz Printing Service RENEWAL16Elwin Sharvill
1043Murillo M RulapaughGermany2025-06-10Feiner Bros PROPOSAL99Asiya Javayant
1044Tony P SlusarskiSpain2025-06-07Chemel, James L Cpa QUALIFIED71Ivan Magalhaes
1045James S OldroydArgentina2025-05-25Buckley Miller Wright UNQUALIFIED63Elwin Sharvill
1046Arvin E CaudyIndia2025-05-29Commercial Press RENEWAL74Amy Elsner
1047Deepesh H TollnerAustralia2025-06-01Dorl, James J Esq RENEWAL6Amy Elsner
1048Kaitlin I PaprockiRussia2025-06-15Feltz Printing Service UNQUALIFIED98Amy Elsner
1049Wickens Y BriddickItaly2025-06-15Feltz Printing Service QUALIFIED23Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar T SergiGermanyStephen Shaw UNQUALIFIED
Tony L AmigonCanadaXuxue Feng QUALIFIED
Aruna N ShinkoUnited KingdomAsiya Javayant QUALIFIED
Murillo O StockhamBrazilAsiya Javayant UNQUALIFIED
Rodrigues C DilliardAustraliaAmy Elsner NEW
Johnson B WhobreyCanadaAsiya Javayant NEGOTIATION
Ricardo R FigeroaItalyOnyama Limba PROPOSAL
Munro B AlbaresAustraliaBernardo Dominic NEGOTIATION
Ivar U OldroydCanadaXuxue Feng NEGOTIATION
Claire Q ShinkoCanadaIvan Magalhaes RENEWAL
Smith U StockhamIndiaIvan Magalhaes UNQUALIFIED
Salvatore N MorascaItalyAsiya Javayant RENEWAL
Jefferson D OldroydArgentinaOnyama Limba PROPOSAL
Silvio X GauchoArgentinaAnna Fali QUALIFIED
Deepesh M FerenczGermanyElwin Sharvill NEW
Ricardo F PerinAustraliaIoni Bowcher NEGOTIATION
Leon P GauchoRussiaStephen Shaw NEW
Costa D BowleyItalyAsiya Javayant UNQUALIFIED
Adams F ButtIndiaStephen Shaw NEGOTIATION
Munro U FollerJapanElwin Sharvill RENEWAL
David X PoquetteAustraliaStephen Shaw RENEWAL
Cody X MacleadGermanyStephen Shaw NEW
Cody M DilliardIndiaAmy Elsner QUALIFIED
Ivar A PaprockiItalyIoni Bowcher UNQUALIFIED
James C MaletRussiaElwin Sharvill NEGOTIATION
Greenwood K FlosiBrazilOnyama Limba NEGOTIATION
Emily O MaletBrazilIvan Magalhaes QUALIFIED
Jones Z PaprockiGermanyIoni Bowcher RENEWAL
Greenwood S WieserArgentinaAmy Elsner PROPOSAL
Francesco O BriddickIndiaAnna Fali QUALIFIED
Maria R RulapaughIndiaOnyama Limba PROPOSAL
Darci C SergiGermanyAnna Fali NEW
Kadeem E DarakjyItalyIoni Bowcher RENEWAL
Salvatore V IturbideGermanyAsiya Javayant QUALIFIED
Ivar N WhobreyItalyIvan Magalhaes PROPOSAL
Greenwood W InouyeCanadaAmy Elsner UNQUALIFIED
Isabel N AmigonFranceElwin Sharvill QUALIFIED
Antonio W GarufiGermanyXuxue Feng NEGOTIATION
Jeanfrancois Q SlusarskiJapanIoni Bowcher NEGOTIATION
Murillo P RutaUnited KingdomStephen Shaw NEW
Jennifer F SaylorsSpainIoni Bowcher UNQUALIFIED
Jones V MaletIndiaXuxue Feng RENEWAL
Jeanfrancois J NickaCanadaElwin Sharvill RENEWAL
Murillo E IturbideUnited KingdomIvan Magalhaes RENEWAL
Wickens S ChuiJapanIvan Magalhaes QUALIFIED
Tony P FlosiAustraliaElwin Sharvill QUALIFIED
Ricardo O FerenczCanadaXuxue Feng QUALIFIED
Deepesh V ChuiAustraliaAmy Elsner NEW
Aditya P MaletJapanStephen Shaw UNQUALIFIED
Wickens A VocelkaAustraliaStephen Shaw NEW
Frozen Columns
Name
Murillo D Figeroa
Jennifer X Ruta
Antonio Z Maclead
Mayumi N Foller
Antonio X Ostrosky
Darci C Stockham
Jones T Perin
Johnson B Nestle
Ivar S Chui
Faith V Royster
Jefferson L Ruta
Aika A Poquette
Smith K Paprocki
Nicolas K Inouye
Misaki L Whobrey
Nicolas K Dilliard
Emily O Ruta
Rodrigues J Ferencz
Deepesh K Amigon
Aruna R Venere
Nicolas Y Dilliard
Smith D Oldroyd
Octavia F Malet
Wickens S Sergi
Jefferson S Foller
Aruna I Tollner
Darci W Kusko
Ricardo O Doe
Rodrigues L Sergi
Leja V Vocelka
Wickens V Darakjy
Costa B Albares
Misaki N Caudy
Greenwood T Whobrey
James J Flosi
Aditya Q Glick
Silvio A Wieser
Munro T Shinko
Antonio M Poquette
Jennifer B Campain
Ricardo T Nicka
Kadeem W Ostrosky
Emily E Stockham
Emily Y Albares
Rodrigues F Bolognia
Aruna J Foller
Maisha X Paprocki
Kadeem W Stockham
Wickens K Nicka
Darci O Vocelka
IdCountryDate
1000Argentina2025-06-13
1001Germany2025-05-18
1002France2025-05-30
1003Argentina2025-06-13
1004France2025-05-27
1005Germany2025-05-21
1006Canada2025-05-24
1007India2025-05-24
1008Germany2025-05-24
1009Italy2025-05-23
1010Argentina2025-06-03
1011Australia2025-05-20
1012Argentina2025-05-31
1013Germany2025-05-23
1014Spain2025-05-18
1015France2025-06-16
1016Italy2025-06-13
1017Japan2025-05-24
1018United Kingdom2025-06-10
1019India2025-06-04
1020Canada2025-05-28
1021Japan2025-06-09
1022India2025-05-20
1023Germany2025-05-18
1024India2025-05-29
1025Canada2025-05-27
1026United Kingdom2025-05-19
1027India2025-05-25
1028Germany2025-05-21
1029Italy2025-05-27
1030Italy2025-06-06
1031Argentina2025-06-09
1032Germany2025-06-09
1033Canada2025-05-19
1034Canada2025-06-10
1035Argentina2025-05-25
1036Japan2025-06-12
1037Italy2025-05-23
1038India2025-05-22
1039Japan2025-06-12
1040Brazil2025-06-10
1041France2025-06-05
1042Italy2025-05-26
1043Canada2025-06-13
1044Argentina2025-05-21
1045India2025-06-16
1046Spain2025-05-24
1047Canada2025-06-08
1048Spain2025-06-11
1049United Kingdom2025-05-18

On-Demand Data

NameIdCountryDate
Jeanfrancois F Albares1000Germany2025-06-08
Jennifer G Caudy1001India2025-05-28
Octavia J Wieser1002France2025-05-23
Adams Q Doe1003Japan2025-06-11
Costa L Inouye1004Spain2025-05-27
Nicolas Q Kusko1005India2025-06-11
Leja J Shinko1006India2025-06-07
Juan W Campain1007Japan2025-05-20
Kadeem I Vocelka1008Germany2025-05-23
Adams M Stockham1009United Kingdom2025-06-07
Stacey V Bolognia1010Brazil2025-06-06
Wickens X Chui1011United Kingdom2025-05-30
Alejandro G Glick1012Spain2025-06-01
Ivar I Maclead1013Australia2025-06-03
Julie N Campain1014United Kingdom2025-06-12
Rodrigues Q Whobrey1015Canada2025-06-03
Tony D Wieser1016Australia2025-05-21
Wickens F Waycott1017Brazil2025-05-19
Ricardo G Ferencz1018United Kingdom2025-05-23
Costa D Wieser1019India2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy I PoquetteUnited KingdomOnyama Limba NEW
Munro G GauchoRussiaIoni Bowcher QUALIFIED
Maisha V IturbideJapanOnyama Limba RENEWAL
Greenwood G PoquetteArgentinaStephen Shaw RENEWAL
Aika W FollerIndiaAsiya Javayant NEGOTIATION
Mayumi H SchemmerGermanyAnna Fali PROPOSAL
Leja R PaprockiSpainAsiya Javayant PROPOSAL
James F OstroskyArgentinaAsiya Javayant PROPOSAL
Alejandro Y AmigonAustraliaStephen Shaw NEW
Morrow C OldroydFranceBernardo Dominic RENEWAL
Stacey O BriddickArgentinaOnyama Limba QUALIFIED
Chavez K FigeroaBrazilStephen Shaw PROPOSAL
Juan H FerenczRussiaStephen Shaw RENEWAL
Jones M WaycottItalyIoni Bowcher NEGOTIATION
Arvin L InouyeAustraliaIoni Bowcher PROPOSAL
Clifford H CaudyBrazilAnna Fali NEW
Leja L ShinkoRussiaStephen Shaw PROPOSAL
Chavez H DarakjyRussiaIvan Magalhaes RENEWAL
Wickens C VenereJapanXuxue Feng UNQUALIFIED
Kadeem N MarrierItalyStephen Shaw RENEWAL
Smith R MacleadUnited KingdomStephen Shaw RENEWAL
Izzy F FigeroaRussiaOnyama Limba NEW
Jefferson M OldroydItalyAnna Fali QUALIFIED
Smith M MarrierRussiaAsiya Javayant NEW
Cody Z PerinCanadaIvan Magalhaes QUALIFIED
Kadeem X BowleyBrazilAmy Elsner NEGOTIATION
Francesco Y CampainFranceBernardo Dominic NEGOTIATION
Munro L KuskoItalyXuxue Feng NEGOTIATION
Isabel M MaletSpainBernardo Dominic PROPOSAL
Darci O MorascaFranceIvan Magalhaes QUALIFIED
Leon P CaldareraSpainXuxue Feng NEGOTIATION
Tony Y GauchoArgentinaAmy Elsner NEGOTIATION
Jeanfrancois O GlickItalyStephen Shaw NEW
Jones M OldroydBrazilIoni Bowcher NEW
Izzy A VocelkaArgentinaStephen Shaw UNQUALIFIED
Ashley C PoquetteGermanyIvan Magalhaes PROPOSAL
Kadeem D RulapaughSpainBernardo Dominic NEGOTIATION
Sinclair R ButtUnited KingdomAsiya Javayant NEGOTIATION
Francesco C WaycottCanadaXuxue Feng NEW
Jefferson X MaletFranceAnna Fali 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>