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
Juan R DarakjyIndiaAmy Elsner PROPOSAL
Ivar S AlbaresCanadaBernardo Dominic RENEWAL
Izzy A FerenczRussiaIoni Bowcher QUALIFIED
Jefferson T MarrierArgentinaStephen Shaw NEW
Adams X RimSpainIvan Magalhaes NEGOTIATION
Sinclair A KuskoAustraliaOnyama Limba RENEWAL
Faith B StockhamIndiaOnyama Limba NEW
Silvio Y RulapaughCanadaXuxue Feng RENEWAL
Mayumi P RimIndiaIvan Magalhaes UNQUALIFIED
Deepesh H DilliardCanadaOnyama Limba UNQUALIFIED
Maisha A OstroskySpainAmy Elsner RENEWAL
Izzy G BriddickJapanIvan Magalhaes UNQUALIFIED
Leon A RutaIndiaAmy Elsner NEW
Julie E RulapaughSpainElwin Sharvill PROPOSAL
Jeanfrancois Q FollerAustraliaIoni Bowcher RENEWAL
Smith R RimItalyBernardo Dominic NEGOTIATION
Emily J FlosiSpainStephen Shaw UNQUALIFIED
David X SergiArgentinaXuxue Feng NEW
Morrow P FigeroaFranceOnyama Limba QUALIFIED
Antonio D FigeroaSpainAnna Fali RENEWAL
Jones F ChuiItalyAnna Fali PROPOSAL
Greenwood B VocelkaFranceXuxue Feng NEW
Jefferson X SlusarskiFranceIoni Bowcher NEW
Octavia A PerinItalyOnyama Limba RENEWAL
Munro M TollnerItalyXuxue Feng NEW
Misaki D StensethGermanyAnna Fali PROPOSAL
Jefferson W StockhamJapanAmy Elsner RENEWAL
Tony I WaycottGermanyXuxue Feng PROPOSAL
Misaki F ShinkoCanadaAmy Elsner UNQUALIFIED
Faith K FlosiAustraliaIoni Bowcher NEW
Rodrigues W WaycottSpainIvan Magalhaes RENEWAL
Morrow S CaudyCanadaIoni Bowcher UNQUALIFIED
Jones A SchemmerGermanyXuxue Feng NEW
Izzy Y CaldareraFranceXuxue Feng NEGOTIATION
Leon K DarakjySpainStephen Shaw NEGOTIATION
Octavia A KolmetzJapanXuxue Feng QUALIFIED
Alejandro F FollerGermanyAnna Fali UNQUALIFIED
Antonio T GauchoSpainStephen Shaw NEW
Ivar B BriddickArgentinaXuxue Feng UNQUALIFIED
Kaitlin C CaudyJapanElwin Sharvill QUALIFIED
Nicolas D BologniaUnited KingdomBernardo Dominic NEGOTIATION
Antonio J FigeroaFranceAmy Elsner NEGOTIATION
Aruna Q NestleSpainAmy Elsner PROPOSAL
Chavez K DarakjySpainAsiya Javayant UNQUALIFIED
Isabel L ShinkoFranceAsiya Javayant RENEWAL
Stacey V DilliardGermanyIoni Bowcher QUALIFIED
Francesco O GarufiAustraliaOnyama Limba PROPOSAL
Isabel O MaletArgentinaOnyama Limba PROPOSAL
Murillo L DilliardJapanAmy Elsner PROPOSAL
Misaki Y RulapaughJapanStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie L SchemmerCanadaIvan Magalhaes UNQUALIFIED
David X WhobreyRussiaOnyama Limba QUALIFIED
Johnson M GauchoArgentinaOnyama Limba QUALIFIED
Aditya O PaprockiIndiaIoni Bowcher UNQUALIFIED
Octavia W IturbideSpainIoni Bowcher QUALIFIED
Kaitlin T RulapaughSpainBernardo Dominic RENEWAL
Jennifer W BologniaItalyAsiya Javayant PROPOSAL
Smith N GlickItalyIvan Magalhaes QUALIFIED
Antonio P WieserGermanyIoni Bowcher NEW
Maria J TollnerAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco J AlbaresArgentina2026-06-25King, Christopher A Esq UNQUALIFIED93Onyama Limba
1001Kaitlin F BowleyCanada2026-06-25Printing Dimensions NEW9Ioni Bowcher
1002Ricardo S WieserAustralia2026-06-30Printing Dimensions PROPOSAL0Xuxue Feng
1003Misaki L KuskoArgentina2026-06-25Morlong Associates NEW39Ioni Bowcher
1004Chavez G SchemmerJapan2026-06-11Dorl, James J Esq UNQUALIFIED8Bernardo Dominic
1005Aditya V ShinkoIndia2026-06-22Commercial Press UNQUALIFIED97Anna Fali
1006Arvin B TollnerSpain2026-06-13Feiner Bros NEGOTIATION93Anna Fali
1007James M SergiCanada2026-06-08Chanay, Jeffrey A Esq QUALIFIED52Elwin Sharvill
1008Faith N PoquetteGermany2026-06-06Truhlar And Truhlar Attys RENEWAL37Ioni Bowcher
1009Jefferson O KolmetzGermany2026-06-09Rangoni Of Florence PROPOSAL40Xuxue Feng
1010Jeanfrancois F MacleadRussia2026-06-10Chapman, Ross E Esq PROPOSAL27Ivan Magalhaes
1011Aruna G ChuiJapan2026-06-25Buckley Miller Wright QUALIFIED26Ioni Bowcher
1012Faith H BowleyUnited Kingdom2026-06-30Chanay, Jeffrey A Esq RENEWAL75Onyama Limba
1013Arvin M SchemmerBrazil2026-06-13Benton, John B Jr RENEWAL10Onyama Limba
1014Emily O GarufiUnited Kingdom2026-06-20King, Christopher A Esq UNQUALIFIED4Bernardo Dominic
1015Claire M OstroskyRussia2026-06-22Chapman, Ross E Esq NEW11Amy Elsner
1016Maisha R MorascaArgentina2026-06-26Truhlar And Truhlar Attys RENEWAL11Xuxue Feng
1017Misaki B PoquetteIndia2026-06-30Feiner Bros NEW95Anna Fali
1018Mayumi J ChuiRussia2026-06-30Buckley Miller Wright RENEWAL54Stephen Shaw
1019Francesco H PerinGermany2026-06-30Buckley Miller Wright NEGOTIATION5Onyama Limba
1020Emily Y FerenczGermany2026-06-05Chanay, Jeffrey A Esq PROPOSAL52Elwin Sharvill
1021Leon Q WaycottIndia2026-06-19Morlong Associates QUALIFIED81Ivan Magalhaes
1022Julie D PerinGermany2026-06-28Printing Dimensions RENEWAL10Elwin Sharvill
1023Faith B SchemmerGermany2026-06-06Chanay, Jeffrey A Esq NEGOTIATION96Bernardo Dominic
1024Adams N MaletIndia2026-06-25Benton, John B Jr UNQUALIFIED11Ioni Bowcher
1025Jennifer H GarufiArgentina2026-06-23Chemel, James L Cpa PROPOSAL82Elwin Sharvill
1026Aruna Q GillianJapan2026-06-07Printing Dimensions NEGOTIATION97Bernardo Dominic
1027Greenwood D DoeItaly2026-07-03King, Christopher A Esq RENEWAL72Xuxue Feng
1028Kaitlin K WieserArgentina2026-06-18Rangoni Of Florence NEGOTIATION30Ioni Bowcher
1029Leon G AmigonItaly2026-06-17Truhlar And Truhlar Attys PROPOSAL32Xuxue Feng
1030Claire V OstroskyUnited Kingdom2026-07-03Morlong Associates UNQUALIFIED17Bernardo Dominic
1031Isabel N WieserFrance2026-06-05King, Christopher A Esq UNQUALIFIED12Stephen Shaw
1032James D RutaAustralia2026-07-03Chemel, James L Cpa PROPOSAL65Asiya Javayant
1033Murillo A PerinAustralia2026-07-02Chapman, Ross E Esq PROPOSAL62Stephen Shaw
1034James A ButtFrance2026-06-17Feltz Printing Service QUALIFIED22Elwin Sharvill
1035Leon W MaletAustralia2026-07-03Feiner Bros NEW81Xuxue Feng
1036Arvin C MorascaJapan2026-06-07Chanay, Jeffrey A Esq RENEWAL11Ioni Bowcher
1037Octavia P NestleGermany2026-07-03Feiner Bros UNQUALIFIED54Ioni Bowcher
1038Misaki G GauchoUnited Kingdom2026-06-22Chemel, James L Cpa PROPOSAL46Asiya Javayant
1039Chavez D MaletRussia2026-06-07Feiner Bros QUALIFIED67Asiya Javayant
1040Jefferson Y WaycottArgentina2026-06-25Morlong Associates RENEWAL8Stephen Shaw
1041Ivar H FerenczArgentina2026-06-14Chapman, Ross E Esq PROPOSAL3Elwin Sharvill
1042Leon D SchemmerIndia2026-06-22Rangoni Of Florence PROPOSAL6Ivan Magalhaes
1043Misaki W PoquetteJapan2026-07-02Benton, John B Jr PROPOSAL64Xuxue Feng
1044Jennifer F GillianBrazil2026-06-13Buckley Miller Wright NEGOTIATION92Xuxue Feng
1045Stacey V AmigonAustralia2026-06-18Printing Dimensions UNQUALIFIED5Amy Elsner
1046Leon I FerenczIndia2026-06-05Feiner Bros NEGOTIATION59Elwin Sharvill
1047Claire Z NickaBrazil2026-06-28Commercial Press UNQUALIFIED82Elwin Sharvill
1048Octavia V GarufiBrazil2026-06-30Rousseaux, Michael Esq UNQUALIFIED37Onyama Limba
1049Stacey P ChuiRussia2026-06-12Truhlar And Truhlar Attys NEGOTIATION12Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Greenwood G ButtItalyOnyama Limba RENEWAL
Munro O SlusarskiIndiaIvan Magalhaes NEGOTIATION
Cody R WhobreyCanadaOnyama Limba NEGOTIATION
Antonio F SaylorsCanadaIoni Bowcher NEGOTIATION
Salvatore Q VocelkaItalyIvan Magalhaes UNQUALIFIED
Isabel V NestleUnited KingdomStephen Shaw NEGOTIATION
Sinclair W MaletIndiaElwin Sharvill QUALIFIED
Jefferson Q TollnerUnited KingdomAsiya Javayant PROPOSAL
Munro D NickaRussiaBernardo Dominic PROPOSAL
Morrow L StockhamUnited KingdomElwin Sharvill RENEWAL
Mayumi W GlickSpainBernardo Dominic RENEWAL
Alejandro G ChuiGermanyIvan Magalhaes UNQUALIFIED
Smith M BowleyCanadaIoni Bowcher NEW
Wickens Q DilliardFranceOnyama Limba QUALIFIED
Tony M StockhamUnited KingdomIoni Bowcher NEW
Emily Q GauchoIndiaAsiya Javayant RENEWAL
Deepesh F GarufiGermanyAsiya Javayant QUALIFIED
Leja Y DoeRussiaIoni Bowcher RENEWAL
Munro Z StockhamBrazilBernardo Dominic RENEWAL
Jennifer W VenereUnited KingdomAmy Elsner PROPOSAL
Emily K OldroydGermanyStephen Shaw UNQUALIFIED
Octavia I DilliardGermanyBernardo Dominic UNQUALIFIED
Aruna S PerinArgentinaOnyama Limba UNQUALIFIED
Rodrigues N PoquetteArgentinaAmy Elsner NEW
Faith D InouyeBrazilAsiya Javayant UNQUALIFIED
Kadeem C PerinAustraliaIoni Bowcher RENEWAL
Kaitlin R DoeCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois R ButtRussiaBernardo Dominic QUALIFIED
Jones X GlickArgentinaAsiya Javayant QUALIFIED
Costa E AlbaresRussiaAsiya Javayant NEW
Sinclair E GarufiUnited KingdomBernardo Dominic PROPOSAL
David K RoysterArgentinaStephen Shaw QUALIFIED
Jefferson K ChuiGermanyBernardo Dominic NEGOTIATION
Leon J InouyeAustraliaIvan Magalhaes PROPOSAL
Mujtaba I GarufiUnited KingdomAmy Elsner UNQUALIFIED
Wickens E WhobreyRussiaXuxue Feng PROPOSAL
Tony J DarakjyBrazilElwin Sharvill PROPOSAL
Sinclair R FlosiSpainBernardo Dominic NEW
Mayumi A NickaUnited KingdomAsiya Javayant UNQUALIFIED
Johnson M RulapaughRussiaAnna Fali NEW
Faith F GauchoGermanyAnna Fali UNQUALIFIED
Mayumi O InouyeRussiaElwin Sharvill NEGOTIATION
Aruna X WieserGermanyAnna Fali UNQUALIFIED
Kadeem P StensethUnited KingdomBernardo Dominic NEGOTIATION
Smith L GlickBrazilAmy Elsner NEGOTIATION
Ivar T WieserJapanXuxue Feng PROPOSAL
Ashley L VenereJapanIoni Bowcher UNQUALIFIED
Johnson F OldroydRussiaBernardo Dominic PROPOSAL
Nicolas C VenereArgentinaXuxue Feng PROPOSAL
Isabel Y CaudyIndiaAnna Fali PROPOSAL
Frozen Columns
Name
Jennifer N Vocelka
Ashley Q Gaucho
Jones W Ruta
Ivar K Morasca
Stacey N Ostrosky
Rodrigues F Nestle
Maisha U Caudy
Smith I Whobrey
Adams O Marrier
Izzy V Morasca
Deepesh O Tollner
Morrow F Nicka
Mayumi J Dilliard
Mayumi Q Amigon
Aditya J Glick
Jeanfrancois C Inouye
Johnson B Butt
Clifford W Wieser
Deepesh M Figeroa
Leon S Caldarera
Jeanfrancois D Glick
Faith T Nestle
Morrow P Ostrosky
Arvin Z Poquette
Ivar M Schemmer
Jefferson Z Rulapaugh
Adams K Royster
Claire V Whobrey
Nicolas E Waycott
Costa A Ruta
Adams W Schemmer
Murillo O Albares
Juan O Maclead
Chavez C Chui
Smith L Darakjy
Aditya S Chui
Salvatore G Dilliard
Wickens J Caudy
Julie Y Iturbide
Alejandro F Flosi
Salvatore V Slusarski
Murillo I Morasca
Maisha J Inouye
Rodrigues C Morasca
Izzy G Glick
Jeanfrancois A Iturbide
Sinclair A Rulapaugh
Izzy P Kolmetz
Arvin S Ruta
Kadeem H Campain
IdCountryDate
1000Brazil2026-07-04
1001France2026-06-27
1002France2026-06-06
1003Canada2026-06-22
1004Spain2026-07-02
1005Australia2026-06-26
1006Russia2026-06-16
1007Australia2026-06-19
1008Spain2026-07-03
1009Spain2026-06-28
1010Canada2026-06-20
1011Italy2026-07-01
1012Germany2026-07-04
1013Argentina2026-06-18
1014France2026-06-25
1015India2026-06-17
1016Brazil2026-06-05
1017Germany2026-06-24
1018India2026-07-01
1019Spain2026-06-24
1020India2026-06-15
1021India2026-06-13
1022Canada2026-06-16
1023Japan2026-06-11
1024Brazil2026-06-16
1025Japan2026-06-13
1026India2026-06-12
1027Japan2026-06-25
1028Brazil2026-06-20
1029United Kingdom2026-07-03
1030Russia2026-06-18
1031Australia2026-06-08
1032Brazil2026-06-16
1033Argentina2026-06-22
1034United Kingdom2026-06-06
1035Australia2026-07-04
1036Germany2026-06-29
1037Russia2026-07-02
1038France2026-06-21
1039Germany2026-07-02
1040Russia2026-06-10
1041Russia2026-06-26
1042Spain2026-06-13
1043Canada2026-06-16
1044Brazil2026-06-24
1045Argentina2026-06-29
1046France2026-06-05
1047Australia2026-06-07
1048Brazil2026-06-27
1049Germany2026-06-25

On-Demand Data

NameIdCountryDate
Murillo I Malet1000United Kingdom2026-07-04
Arvin T Gillian1001India2026-06-28
Mayumi A Tollner1002Italy2026-06-26
Ashley A Garufi1003Australia2026-06-07
David L Garufi1004Brazil2026-07-04
Jones W Poquette1005Australia2026-06-28
Ivar G Maclead1006Australia2026-06-28
Salvatore S Ferencz1007United Kingdom2026-06-22
Ivar Z Malet1008India2026-06-16
Alejandro X Stenseth1009Italy2026-06-07
Salvatore M Figeroa1010Russia2026-06-15
Julie I Royster1011Italy2026-06-11
Aruna C Stockham1012Russia2026-06-09
Aika K Royster1013Brazil2026-06-22
Maria N Malet1014Canada2026-06-25
Aika E Whobrey1015Canada2026-06-26
Misaki Z Inouye1016Australia2026-06-27
Julie Z Poquette1017France2026-07-04
Silvio U Marrier1018Japan2026-06-29
Ivar A Poquette1019Spain2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin A WieserArgentinaAmy Elsner UNQUALIFIED
Aika K PerinGermanyOnyama Limba UNQUALIFIED
Mujtaba G IturbideRussiaAsiya Javayant PROPOSAL
Darci I DilliardBrazilXuxue Feng UNQUALIFIED
Misaki R OldroydArgentinaElwin Sharvill PROPOSAL
Stacey S MaletGermanyIoni Bowcher NEW
Sinclair Y KolmetzRussiaElwin Sharvill QUALIFIED
Kaitlin G RoysterGermanyAsiya Javayant NEW
Leja C ButtAustraliaIvan Magalhaes QUALIFIED
David Y DoeIndiaBernardo Dominic NEW
Maria T MarrierCanadaIvan Magalhaes UNQUALIFIED
Izzy D RoysterAustraliaIvan Magalhaes NEGOTIATION
Wickens T KuskoFranceIvan Magalhaes QUALIFIED
Murillo U CaldareraFranceElwin Sharvill NEW
Francesco T SchemmerJapanAmy Elsner QUALIFIED
Ricardo F SergiFranceXuxue Feng PROPOSAL
Adams W PerinAustraliaElwin Sharvill NEGOTIATION
Leja L GillianBrazilBernardo Dominic PROPOSAL
Murillo H FlosiGermanyElwin Sharvill UNQUALIFIED
Maisha U NestleGermanyAmy Elsner NEW
Faith F BologniaArgentinaOnyama Limba RENEWAL
Aditya Z SergiJapanBernardo Dominic QUALIFIED
Emily B BowleyIndiaIvan Magalhaes NEGOTIATION
Salvatore D PoquetteSpainStephen Shaw NEW
Ricardo C MaletIndiaXuxue Feng NEGOTIATION
Juan G DilliardUnited KingdomStephen Shaw PROPOSAL
Jones N RimIndiaXuxue Feng QUALIFIED
Faith F GlickSpainXuxue Feng UNQUALIFIED
Morrow J GauchoCanadaAnna Fali PROPOSAL
Jeanfrancois K FigeroaSpainIvan Magalhaes UNQUALIFIED
Ivar E BriddickArgentinaIoni Bowcher NEW
Morrow U BologniaCanadaOnyama Limba NEW
Isabel C MorascaBrazilIoni Bowcher PROPOSAL
Morrow I SaylorsJapanIvan Magalhaes UNQUALIFIED
Tony N PerinAustraliaIoni Bowcher UNQUALIFIED
Mayumi K SchemmerBrazilOnyama Limba NEW
Jennifer T KuskoFranceIvan Magalhaes PROPOSAL
Aika V ButtUnited KingdomIoni Bowcher NEGOTIATION
Clifford R PoquetteFranceStephen Shaw RENEWAL
Kadeem G BowleyRussiaIvan Magalhaes 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>