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
Salvatore A FlosiGermanyOnyama Limba NEGOTIATION
Jones W InouyeSpainIvan Magalhaes UNQUALIFIED
Nicolas H FigeroaAustraliaAmy Elsner PROPOSAL
Morrow Z VenereIndiaAsiya Javayant QUALIFIED
Leja S SaylorsItalyBernardo Dominic RENEWAL
Mujtaba N DoeBrazilAmy Elsner PROPOSAL
Morrow Z GarufiIndiaOnyama Limba RENEWAL
Octavia Y GillianItalyAnna Fali NEGOTIATION
Misaki L VenereArgentinaStephen Shaw PROPOSAL
Francesco O VocelkaCanadaXuxue Feng NEGOTIATION
Aika L BologniaAustraliaIoni Bowcher PROPOSAL
Juan D MorascaAustraliaIoni Bowcher RENEWAL
Claire X TollnerArgentinaOnyama Limba NEGOTIATION
Isabel W GarufiJapanStephen Shaw RENEWAL
Maisha I AmigonUnited KingdomElwin Sharvill NEW
Octavia M MarrierAustraliaAmy Elsner PROPOSAL
Munro L KuskoAustraliaXuxue Feng NEGOTIATION
Costa D OldroydFranceIoni Bowcher NEW
Maisha X OldroydAustraliaOnyama Limba NEGOTIATION
Greenwood R DoeSpainXuxue Feng QUALIFIED
David N VocelkaGermanyOnyama Limba NEW
Jeanfrancois P NickaBrazilIvan Magalhaes NEW
Adams Z RimIndiaElwin Sharvill QUALIFIED
Aditya J DilliardArgentinaIvan Magalhaes NEW
Aruna A SchemmerJapanBernardo Dominic UNQUALIFIED
Julie O IturbideRussiaAsiya Javayant PROPOSAL
Jeanfrancois N DilliardIndiaIoni Bowcher RENEWAL
Juan P FigeroaRussiaAmy Elsner NEW
Maria T RoysterArgentinaAnna Fali QUALIFIED
Silvio R DarakjyIndiaOnyama Limba NEGOTIATION
Cody T BriddickIndiaXuxue Feng NEW
Maria N VocelkaUnited KingdomXuxue Feng NEGOTIATION
Nicolas Q OstroskyCanadaIoni Bowcher NEGOTIATION
Munro T SergiRussiaOnyama Limba RENEWAL
Julie N FigeroaBrazilOnyama Limba UNQUALIFIED
Tony P FerenczGermanyElwin Sharvill QUALIFIED
Johnson W PaprockiFranceIvan Magalhaes NEW
Leon A GillianArgentinaOnyama Limba NEW
Jones H GauchoUnited KingdomOnyama Limba PROPOSAL
Antonio S GarufiBrazilElwin Sharvill PROPOSAL
Cody A BologniaFranceIvan Magalhaes NEGOTIATION
Leon F DarakjyCanadaOnyama Limba RENEWAL
Nicolas Z DilliardGermanyAmy Elsner NEGOTIATION
Deepesh H BriddickGermanyBernardo Dominic NEW
Aditya P WhobreyFranceElwin Sharvill QUALIFIED
James R DarakjyGermanyIoni Bowcher UNQUALIFIED
Alejandro Y OldroydIndiaIoni Bowcher UNQUALIFIED
Leja K PaprockiRussiaIoni Bowcher RENEWAL
Darci B VenereItalyAmy Elsner NEGOTIATION
Claire T StensethBrazilAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja X FlosiItalyAmy Elsner UNQUALIFIED
Jennifer E AmigonCanadaBernardo Dominic NEW
Jeanfrancois H AlbaresUnited KingdomStephen Shaw NEW
Salvatore F DilliardItalyAmy Elsner RENEWAL
Kadeem J TollnerBrazilAsiya Javayant PROPOSAL
Jeanfrancois T NestleArgentinaXuxue Feng NEGOTIATION
Ivar H GauchoGermanyStephen Shaw RENEWAL
Julie W WhobreyCanadaAnna Fali RENEWAL
Ivar J BriddickRussiaAsiya Javayant UNQUALIFIED
Misaki O SaylorsBrazilElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan Z MaletRussia2026-06-27King, Christopher A Esq RENEWAL49Elwin Sharvill
1001Aditya K SergiArgentina2026-06-21Chapman, Ross E Esq NEW76Stephen Shaw
1002Faith T StockhamArgentina2026-06-20Rousseaux, Michael Esq NEGOTIATION29Elwin Sharvill
1003Faith Z CaldareraGermany2026-06-29Dorl, James J Esq PROPOSAL50Bernardo Dominic
1004Mayumi L ButtIndia2026-07-04Benton, John B Jr NEW54Anna Fali
1005Clifford B VocelkaFrance2026-06-13Feiner Bros PROPOSAL24Ioni Bowcher
1006Darci K RutaSpain2026-06-19Benton, John B Jr QUALIFIED88Stephen Shaw
1007Nicolas G BriddickIndia2026-07-12Benton, John B Jr UNQUALIFIED24Ivan Magalhaes
1008Greenwood O RutaArgentina2026-07-01Chanay, Jeffrey A Esq QUALIFIED96Ivan Magalhaes
1009Alejandro D FollerCanada2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED48Amy Elsner
1010Salvatore I FerenczFrance2026-07-02Chapman, Ross E Esq QUALIFIED27Xuxue Feng
1011Cody V FerenczIndia2026-06-19Rousseaux, Michael Esq RENEWAL32Amy Elsner
1012Smith A KuskoGermany2026-07-08Morlong Associates NEW86Anna Fali
1013Aika L NickaUnited Kingdom2026-07-03Printing Dimensions NEW89Amy Elsner
1014Octavia N BowleyUnited Kingdom2026-07-03Benton, John B Jr NEW15Asiya Javayant
1015Aruna Q PerinFrance2026-06-30King, Christopher A Esq UNQUALIFIED51Stephen Shaw
1016Arvin E RutaGermany2026-06-28Commercial Press QUALIFIED33Elwin Sharvill
1017Maria Z FlosiBrazil2026-06-23Feiner Bros NEW80Bernardo Dominic
1018Morrow G VocelkaIndia2026-06-30Rousseaux, Michael Esq PROPOSAL15Onyama Limba
1019Juan P DilliardIndia2026-06-19Benton, John B Jr UNQUALIFIED52Amy Elsner
1020Mujtaba M WaycottSpain2026-07-05Truhlar And Truhlar Attys RENEWAL25Ioni Bowcher
1021Maisha H StensethUnited Kingdom2026-06-18Morlong Associates NEW83Stephen Shaw
1022Clifford M PaprockiIndia2026-06-14Rangoni Of Florence QUALIFIED81Stephen Shaw
1023Mujtaba W ShinkoAustralia2026-06-30Buckley Miller Wright NEGOTIATION93Ioni Bowcher
1024Ashley B FerenczItaly2026-07-12Rangoni Of Florence NEGOTIATION23Asiya Javayant
1025Faith Z AmigonAustralia2026-06-18Dorl, James J Esq NEGOTIATION38Stephen Shaw
1026Francesco D WieserJapan2026-07-07Morlong Associates UNQUALIFIED62Ivan Magalhaes
1027Leon E RulapaughRussia2026-07-11Benton, John B Jr RENEWAL37Onyama Limba
1028Emily U NestleUnited Kingdom2026-06-23Chanay, Jeffrey A Esq QUALIFIED22Bernardo Dominic
1029Leja U CaudyGermany2026-06-14Chemel, James L Cpa PROPOSAL18Asiya Javayant
1030Isabel Y ChuiRussia2026-06-19Feiner Bros NEW26Xuxue Feng
1031Clifford F SaylorsArgentina2026-07-08Rangoni Of Florence UNQUALIFIED6Anna Fali
1032Leon J MarrierAustralia2026-06-13Rangoni Of Florence NEGOTIATION97Elwin Sharvill
1033Kaitlin W ButtCanada2026-06-20Feiner Bros PROPOSAL96Anna Fali
1034Isabel T GlickRussia2026-06-28Benton, John B Jr NEGOTIATION77Stephen Shaw
1035Wickens S AmigonCanada2026-07-12Rousseaux, Michael Esq NEGOTIATION66Stephen Shaw
1036Deepesh T ChuiAustralia2026-07-06Rousseaux, Michael Esq UNQUALIFIED25Asiya Javayant
1037Costa R OldroydArgentina2026-07-06Chemel, James L Cpa QUALIFIED49Elwin Sharvill
1038Jefferson L MaletIndia2026-07-11Morlong Associates RENEWAL93Amy Elsner
1039Faith Y OldroydAustralia2026-07-10Benton, John B Jr RENEWAL28Amy Elsner
1040Chavez J InouyeAustralia2026-06-14Chapman, Ross E Esq PROPOSAL13Ioni Bowcher
1041Maisha R FerenczIndia2026-07-05Rangoni Of Florence PROPOSAL52Asiya Javayant
1042Faith R OldroydAustralia2026-07-03Printing Dimensions NEW80Anna Fali
1043Mayumi P BologniaSpain2026-07-02Feltz Printing Service PROPOSAL85Stephen Shaw
1044Leon P CampainAustralia2026-06-28King, Christopher A Esq QUALIFIED9Amy Elsner
1045Clifford N InouyeUnited Kingdom2026-06-22Truhlar And Truhlar Attys NEGOTIATION12Onyama Limba
1046Misaki Y OldroydUnited Kingdom2026-07-01Benton, John B Jr UNQUALIFIED49Bernardo Dominic
1047Aruna D RutaUnited Kingdom2026-06-15Morlong Associates PROPOSAL47Xuxue Feng
1048James F RoysterUnited Kingdom2026-06-15Benton, John B Jr UNQUALIFIED72Ivan Magalhaes
1049Jeanfrancois N FerenczGermany2026-07-01Feiner Bros QUALIFIED6Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Clifford F DilliardFranceElwin Sharvill NEW
Adams V StockhamFranceStephen Shaw NEGOTIATION
Costa E ShinkoArgentinaBernardo Dominic NEW
Tony V ChuiJapanElwin Sharvill PROPOSAL
Leon G RutaItalyAsiya Javayant UNQUALIFIED
Jefferson F WhobreyGermanyAnna Fali NEW
Emily G DarakjyArgentinaIoni Bowcher NEW
Leja L MaletItalyXuxue Feng UNQUALIFIED
Arvin M VenereFranceOnyama Limba NEGOTIATION
Antonio Y FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Morrow R KolmetzItalyAnna Fali NEGOTIATION
David B AlbaresArgentinaIoni Bowcher NEW
David Q SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Jones Y GillianCanadaIoni Bowcher NEGOTIATION
Alejandro G BologniaBrazilIoni Bowcher PROPOSAL
Antonio C IturbideRussiaAsiya Javayant NEW
Ricardo W KuskoBrazilIoni Bowcher RENEWAL
Francesco W CaldareraRussiaAsiya Javayant PROPOSAL
Johnson F IturbideFranceAnna Fali UNQUALIFIED
Aruna G ButtArgentinaIoni Bowcher NEW
Adams M TollnerUnited KingdomIoni Bowcher RENEWAL
Aditya C BowleyJapanIoni Bowcher PROPOSAL
Smith L FerenczCanadaXuxue Feng PROPOSAL
Claire Z MaletAustraliaIvan Magalhaes NEGOTIATION
Alejandro Q SchemmerAustraliaBernardo Dominic NEGOTIATION
Ricardo C KolmetzArgentinaIvan Magalhaes NEGOTIATION
Francesco V KuskoUnited KingdomBernardo Dominic RENEWAL
Clifford N StockhamArgentinaOnyama Limba UNQUALIFIED
Kaitlin F WhobreyGermanyAmy Elsner QUALIFIED
Kadeem M SergiJapanStephen Shaw UNQUALIFIED
Antonio G WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Wickens B TollnerSpainXuxue Feng NEW
Alejandro R OldroydGermanyIvan Magalhaes QUALIFIED
Claire S CaldareraSpainOnyama Limba PROPOSAL
Arvin Z NickaBrazilIvan Magalhaes UNQUALIFIED
Rodrigues S WhobreyRussiaIvan Magalhaes NEW
Murillo F ButtFranceStephen Shaw NEGOTIATION
Maisha F OstroskyRussiaBernardo Dominic QUALIFIED
Costa U GillianIndiaBernardo Dominic RENEWAL
Murillo S MaletSpainAmy Elsner NEW
Adams A FerenczIndiaElwin Sharvill QUALIFIED
Izzy J StockhamArgentinaAsiya Javayant NEW
Tony R MarrierBrazilOnyama Limba QUALIFIED
Julie I StockhamGermanyOnyama Limba UNQUALIFIED
Salvatore O WaycottIndiaElwin Sharvill PROPOSAL
Aika S StensethIndiaAmy Elsner RENEWAL
Arvin A MaletArgentinaIoni Bowcher PROPOSAL
Smith Y PoquetteIndiaStephen Shaw NEGOTIATION
Isabel D StensethArgentinaAnna Fali RENEWAL
Maria I BowleyRussiaStephen Shaw NEGOTIATION
Frozen Columns
Name
David W Doe
Antonio E Sergi
James S Waycott
Aditya N Bowley
Leon E Ostrosky
Emily O Whobrey
Cody K Ferencz
Smith H Nestle
Jennifer X Slusarski
Jeanfrancois F Ruta
Ashley J Malet
Silvio A Ruta
Francesco U Whobrey
Nicolas Z Gillian
Stacey R Doe
Johnson P Sergi
Kadeem Y Darakjy
Maisha O Butt
David B Albares
Claire G Malet
Smith G Morasca
Leon B Nestle
Arvin U Waycott
Aika J Stockham
Silvio W Inouye
Isabel U Vocelka
Claire Q Marrier
Jones R Iturbide
Mayumi U Slusarski
Murillo V Tollner
Francesco K Oldroyd
Chavez N Malet
Ashley F Maclead
Darci F Bolognia
Darci A Oldroyd
James G Marrier
Costa W Ruta
Jones U Morasca
Deepesh Z Ruta
Faith K Inouye
Greenwood O Inouye
Ricardo I Caldarera
Jefferson S Glick
Francesco M Stenseth
Leja Z Oldroyd
Adams X Bowley
Isabel V Shinko
Salvatore O Inouye
Ivar G Kusko
Izzy C Gillian
IdCountryDate
1000Russia2026-06-18
1001Russia2026-07-01
1002Brazil2026-07-10
1003Australia2026-06-13
1004Argentina2026-06-28
1005Japan2026-06-28
1006Spain2026-06-18
1007Italy2026-06-19
1008Spain2026-06-21
1009Argentina2026-06-22
1010India2026-06-28
1011India2026-07-08
1012Canada2026-07-09
1013Germany2026-06-15
1014Italy2026-06-19
1015Australia2026-07-05
1016France2026-07-10
1017Italy2026-06-30
1018India2026-06-14
1019Australia2026-07-01
1020Australia2026-06-18
1021Spain2026-07-05
1022India2026-07-01
1023Spain2026-06-16
1024Brazil2026-07-07
1025India2026-06-30
1026United Kingdom2026-07-07
1027Argentina2026-07-07
1028France2026-07-05
1029Australia2026-06-19
1030India2026-06-16
1031India2026-07-03
1032Germany2026-07-04
1033Spain2026-07-02
1034Argentina2026-06-19
1035Australia2026-07-10
1036France2026-06-25
1037Canada2026-06-24
1038France2026-06-21
1039Canada2026-07-02
1040United Kingdom2026-07-06
1041Italy2026-06-28
1042India2026-07-09
1043Japan2026-07-11
1044Brazil2026-07-05
1045Canada2026-06-16
1046Japan2026-06-19
1047Japan2026-06-19
1048Japan2026-07-04
1049United Kingdom2026-06-18

On-Demand Data

NameIdCountryDate
Arvin F Butt1000Canada2026-07-02
Clifford E Slusarski1001Argentina2026-06-23
Adams G Venere1002United Kingdom2026-07-11
Jeanfrancois I Garufi1003India2026-06-30
Johnson X Rulapaugh1004Canada2026-06-28
Aruna L Flosi1005Russia2026-06-26
Francesco K Caudy1006Canada2026-06-24
Sinclair Z Nicka1007United Kingdom2026-07-03
Francesco K Wieser1008Japan2026-06-14
Leja M Rim1009Australia2026-06-18
Rodrigues H Perin1010United Kingdom2026-07-03
Rodrigues Y Darakjy1011Argentina2026-07-06
Jones N Dilliard1012Russia2026-07-11
Julie U Saylors1013Canada2026-06-28
Darci Y Sergi1014Germany2026-06-15
Nicolas H Doe1015Spain2026-06-16
Morrow F Maclead1016Brazil2026-07-08
Aruna R Rulapaugh1017Japan2026-06-23
Munro A Whobrey1018Brazil2026-06-18
David S Wieser1019Brazil2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar K ShinkoAustraliaAsiya Javayant QUALIFIED
Stacey Y SergiArgentinaAnna Fali NEGOTIATION
Murillo A MacleadCanadaIvan Magalhaes NEGOTIATION
Arvin O IturbideItalyAnna Fali UNQUALIFIED
Greenwood S WieserCanadaElwin Sharvill NEGOTIATION
Costa Y GillianCanadaAmy Elsner UNQUALIFIED
Stacey Z InouyeAustraliaBernardo Dominic UNQUALIFIED
James I ShinkoItalyOnyama Limba UNQUALIFIED
Clifford L MorascaFranceOnyama Limba PROPOSAL
Murillo U StensethBrazilBernardo Dominic RENEWAL
Salvatore Q SergiAustraliaStephen Shaw NEW
Smith V NestleRussiaIvan Magalhaes QUALIFIED
Maisha Q AmigonRussiaAnna Fali NEW
Costa M NickaRussiaXuxue Feng RENEWAL
Misaki K WaycottBrazilAmy Elsner QUALIFIED
Mujtaba E CampainUnited KingdomOnyama Limba QUALIFIED
Silvio C RutaSpainAmy Elsner NEW
Costa G MorascaAustraliaBernardo Dominic QUALIFIED
Leja E GarufiAustraliaXuxue Feng RENEWAL
Greenwood B PoquetteJapanAmy Elsner PROPOSAL
Smith K GarufiSpainStephen Shaw NEGOTIATION
Ricardo M WieserSpainAmy Elsner NEW
Jeanfrancois K SaylorsIndiaIoni Bowcher NEGOTIATION
Leja K FollerUnited KingdomAnna Fali NEW
Arvin G StensethItalyBernardo Dominic RENEWAL
Deepesh J NestleGermanyStephen Shaw UNQUALIFIED
Izzy M PerinJapanElwin Sharvill RENEWAL
David F SlusarskiIndiaXuxue Feng NEGOTIATION
Octavia K MaletUnited KingdomAmy Elsner UNQUALIFIED
Aruna N MarrierCanadaAsiya Javayant NEGOTIATION
Costa E SlusarskiRussiaAnna Fali QUALIFIED
Jeanfrancois E StensethAustraliaAmy Elsner NEGOTIATION
Jennifer D NickaGermanyStephen Shaw NEGOTIATION
Francesco Z TollnerJapanElwin Sharvill NEW
Morrow M SlusarskiAustraliaAmy Elsner RENEWAL
Deepesh U PaprockiCanadaStephen Shaw NEW
Silvio E WaycottAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois A BowleyGermanyAmy Elsner RENEWAL
Faith U MorascaItalyOnyama Limba NEW
James U NickaCanadaIoni Bowcher 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>