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
Jennifer A CampainSpainAsiya Javayant PROPOSAL
Faith J GauchoCanadaAsiya Javayant NEGOTIATION
Octavia F WaycottGermanyAsiya Javayant PROPOSAL
Morrow Z TollnerBrazilBernardo Dominic UNQUALIFIED
Ashley H ChuiGermanyBernardo Dominic NEW
Murillo K StockhamRussiaStephen Shaw RENEWAL
Mayumi T GauchoArgentinaBernardo Dominic RENEWAL
Maisha B FigeroaIndiaOnyama Limba NEW
Misaki Q NestleGermanyOnyama Limba NEW
Izzy U WhobreyBrazilOnyama Limba UNQUALIFIED
Juan U RimFranceStephen Shaw RENEWAL
Costa G BowleyCanadaAnna Fali RENEWAL
Francesco J BologniaJapanAsiya Javayant QUALIFIED
Jennifer E KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Ashley A IturbideUnited KingdomXuxue Feng UNQUALIFIED
Deepesh K PerinRussiaIvan Magalhaes PROPOSAL
Mujtaba H RoysterAustraliaXuxue Feng UNQUALIFIED
Silvio Z RulapaughCanadaIoni Bowcher NEW
Maisha M KuskoIndiaXuxue Feng NEW
Silvio T VenereItalyIoni Bowcher UNQUALIFIED
Kadeem K FollerItalyStephen Shaw QUALIFIED
Rodrigues V NestleAustraliaOnyama Limba NEGOTIATION
Smith Q BowleyBrazilAmy Elsner PROPOSAL
Kadeem J DilliardFranceAsiya Javayant QUALIFIED
Morrow Z SchemmerItalyAnna Fali UNQUALIFIED
Julie T TollnerArgentinaBernardo Dominic PROPOSAL
Maria G VenereJapanStephen Shaw RENEWAL
Jefferson M DoeUnited KingdomIoni Bowcher NEGOTIATION
Murillo D TollnerFranceIvan Magalhaes NEGOTIATION
Smith J VocelkaItalyBernardo Dominic QUALIFIED
Munro C WieserRussiaAsiya Javayant RENEWAL
Kaitlin Q GillianArgentinaAmy Elsner NEGOTIATION
Morrow V DoeRussiaIoni Bowcher QUALIFIED
Sinclair X DarakjyAustraliaXuxue Feng NEW
Jefferson Q MarrierJapanElwin Sharvill QUALIFIED
Morrow C DoeJapanIoni Bowcher RENEWAL
Aditya T RutaJapanIvan Magalhaes NEGOTIATION
Murillo Z DarakjyFranceXuxue Feng NEGOTIATION
Izzy V WieserCanadaBernardo Dominic PROPOSAL
Costa D RoysterJapanBernardo Dominic RENEWAL
Morrow S TollnerRussiaOnyama Limba PROPOSAL
Tony S ChuiBrazilOnyama Limba NEGOTIATION
Ashley J MaletArgentinaOnyama Limba RENEWAL
Jefferson X PoquetteBrazilBernardo Dominic PROPOSAL
Sinclair T PaprockiIndiaBernardo Dominic NEGOTIATION
Stacey L RulapaughJapanAnna Fali NEGOTIATION
Adams C GillianIndiaAsiya Javayant QUALIFIED
Kaitlin B BowleyJapanAnna Fali NEW
Morrow K AmigonRussiaIvan Magalhaes NEGOTIATION
Clifford Q AmigonJapanIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones P RimUnited KingdomXuxue Feng NEGOTIATION
Costa B DilliardItalyAsiya Javayant PROPOSAL
James U MacleadFranceStephen Shaw UNQUALIFIED
Aika R StockhamUnited KingdomOnyama Limba QUALIFIED
Stacey P DilliardArgentinaIvan Magalhaes QUALIFIED
Mayumi W GillianAustraliaBernardo Dominic NEW
Ivar U FlosiRussiaElwin Sharvill NEGOTIATION
Adams E BowleyItalyOnyama Limba NEW
Wickens L MorascaIndiaBernardo Dominic RENEWAL
Chavez E IturbideRussiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody R SlusarskiBrazil2025-05-22Rangoni Of Florence PROPOSAL61Ioni Bowcher
1001Octavia S BowleyRussia2025-05-31Printing Dimensions QUALIFIED64Asiya Javayant
1002Arvin H OldroydSpain2025-05-30Printing Dimensions QUALIFIED70Xuxue Feng
1003Johnson U FerenczRussia2025-06-08Chapman, Ross E Esq PROPOSAL17Ivan Magalhaes
1004Faith V VocelkaIndia2025-06-13Buckley Miller Wright RENEWAL33Xuxue Feng
1005Stacey Y DoeGermany2025-05-17Rangoni Of Florence NEW75Xuxue Feng
1006Faith G GarufiGermany2025-05-19Commercial Press QUALIFIED27Asiya Javayant
1007Wickens U RulapaughBrazil2025-05-28Chemel, James L Cpa NEW97Xuxue Feng
1008David W OldroydFrance2025-06-11Feiner Bros PROPOSAL37Bernardo Dominic
1009Clifford G OldroydCanada2025-06-09Rousseaux, Michael Esq UNQUALIFIED23Bernardo Dominic
1010Antonio R DarakjyGermany2025-05-19Commercial Press UNQUALIFIED10Onyama Limba
1011Ashley X RimJapan2025-06-07Printing Dimensions NEGOTIATION61Ioni Bowcher
1012Izzy C MaletSpain2025-05-27Chemel, James L Cpa UNQUALIFIED50Xuxue Feng
1013Jones A BowleySpain2025-05-19King, Christopher A Esq QUALIFIED96Elwin Sharvill
1014Jeanfrancois E GlickAustralia2025-05-18Printing Dimensions UNQUALIFIED30Bernardo Dominic
1015Ashley J KuskoAustralia2025-05-19Chanay, Jeffrey A Esq RENEWAL16Xuxue Feng
1016Aika J StensethFrance2025-06-08Buckley Miller Wright RENEWAL86Onyama Limba
1017Wickens O MacleadUnited Kingdom2025-05-19Chemel, James L Cpa QUALIFIED24Stephen Shaw
1018Aika U MaletGermany2025-05-26King, Christopher A Esq QUALIFIED44Asiya Javayant
1019James J StockhamSpain2025-06-02Commercial Press RENEWAL31Asiya Javayant
1020Smith O FerenczItaly2025-05-19Rousseaux, Michael Esq QUALIFIED17Ioni Bowcher
1021Adams P ShinkoGermany2025-06-13Dorl, James J Esq NEW95Onyama Limba
1022Julie J VocelkaIndia2025-05-27Feltz Printing Service RENEWAL29Onyama Limba
1023Kaitlin R SchemmerBrazil2025-05-18Feltz Printing Service NEGOTIATION64Asiya Javayant
1024Juan V OldroydArgentina2025-06-06Feiner Bros QUALIFIED28Ivan Magalhaes
1025Chavez N DoeUnited Kingdom2025-05-31Rousseaux, Michael Esq NEW12Onyama Limba
1026Isabel C FlosiArgentina2025-05-15Rousseaux, Michael Esq UNQUALIFIED9Xuxue Feng
1027Cody E MacleadJapan2025-06-06Chanay, Jeffrey A Esq QUALIFIED79Xuxue Feng
1028Juan L GlickJapan2025-05-17Chanay, Jeffrey A Esq UNQUALIFIED46Ivan Magalhaes
1029Smith I MarrierArgentina2025-05-21King, Christopher A Esq PROPOSAL95Ioni Bowcher
1030Maria I WieserJapan2025-05-21Printing Dimensions QUALIFIED37Amy Elsner
1031Greenwood E ShinkoIndia2025-05-27Feltz Printing Service PROPOSAL58Xuxue Feng
1032Antonio E ButtGermany2025-05-28Truhlar And Truhlar Attys NEGOTIATION66Amy Elsner
1033Jefferson B DilliardRussia2025-05-15Chanay, Jeffrey A Esq UNQUALIFIED67Xuxue Feng
1034Silvio Z DilliardUnited Kingdom2025-05-15Rangoni Of Florence QUALIFIED95Xuxue Feng
1035Alejandro N PoquetteBrazil2025-05-19Feltz Printing Service UNQUALIFIED42Ioni Bowcher
1036Aditya D ShinkoRussia2025-06-12Chanay, Jeffrey A Esq QUALIFIED61Bernardo Dominic
1037Chavez G RutaSpain2025-05-22Commercial Press UNQUALIFIED61Asiya Javayant
1038Jennifer I TollnerCanada2025-05-30Feltz Printing Service PROPOSAL60Ivan Magalhaes
1039Ivar B VenereAustralia2025-05-20Truhlar And Truhlar Attys UNQUALIFIED94Amy Elsner
1040Faith C ButtUnited Kingdom2025-05-15Rousseaux, Michael Esq NEW44Xuxue Feng
1041Misaki C SaylorsAustralia2025-06-07Benton, John B Jr NEGOTIATION36Xuxue Feng
1042Maria M SergiCanada2025-05-29Morlong Associates RENEWAL26Elwin Sharvill
1043Francesco J KolmetzAustralia2025-05-25Rangoni Of Florence NEGOTIATION57Anna Fali
1044Arvin E ShinkoFrance2025-05-25Feltz Printing Service RENEWAL78Ioni Bowcher
1045Francesco W SlusarskiItaly2025-05-27Morlong Associates RENEWAL8Onyama Limba
1046Jones V DilliardGermany2025-06-02Morlong Associates RENEWAL61Bernardo Dominic
1047Johnson L IturbideRussia2025-05-19King, Christopher A Esq RENEWAL74Anna Fali
1048Chavez O BriddickCanada2025-05-20Rousseaux, Michael Esq PROPOSAL97Ivan Magalhaes
1049David U MarrierJapan2025-06-03Dorl, James J Esq QUALIFIED65Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ashley J GillianUnited KingdomOnyama Limba UNQUALIFIED
Leon O SergiFranceElwin Sharvill RENEWAL
Ricardo T CaudyUnited KingdomIoni Bowcher PROPOSAL
Mayumi B SergiBrazilAsiya Javayant PROPOSAL
Octavia D AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Adams I ShinkoSpainXuxue Feng NEW
Maisha G RulapaughUnited KingdomAnna Fali RENEWAL
Stacey N ButtAustraliaIoni Bowcher RENEWAL
Kaitlin T OldroydAustraliaBernardo Dominic PROPOSAL
David F MorascaArgentinaAnna Fali RENEWAL
Leja H WhobreyFranceAnna Fali PROPOSAL
Stacey A ChuiGermanyIvan Magalhaes UNQUALIFIED
David G SlusarskiRussiaBernardo Dominic UNQUALIFIED
Antonio X VenereIndiaIvan Magalhaes NEGOTIATION
Clifford T MarrierGermanyBernardo Dominic RENEWAL
Tony L MaletUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin S ShinkoArgentinaXuxue Feng NEGOTIATION
Leon V DarakjyCanadaIvan Magalhaes NEW
Deepesh S GillianCanadaElwin Sharvill UNQUALIFIED
Maisha N MacleadAustraliaAmy Elsner QUALIFIED
Jennifer P ChuiIndiaAsiya Javayant PROPOSAL
Juan Q MaletRussiaAmy Elsner RENEWAL
Aruna F RulapaughIndiaIvan Magalhaes NEW
Wickens Z PerinArgentinaOnyama Limba NEW
Deepesh J StensethUnited KingdomIoni Bowcher PROPOSAL
James C WaycottGermanyBernardo Dominic PROPOSAL
Morrow F GlickJapanAnna Fali PROPOSAL
Darci X OstroskyFranceOnyama Limba UNQUALIFIED
Jones M NestleGermanyAsiya Javayant PROPOSAL
Aruna V SergiAustraliaStephen Shaw QUALIFIED
Chavez P NickaGermanyIoni Bowcher RENEWAL
Claire S RulapaughCanadaXuxue Feng RENEWAL
Morrow S SergiUnited KingdomAnna Fali NEGOTIATION
Antonio Q BowleyJapanAsiya Javayant NEGOTIATION
Aika L InouyeItalyXuxue Feng QUALIFIED
James M PerinArgentinaIoni Bowcher NEW
David R MaletJapanXuxue Feng NEGOTIATION
Costa C DarakjyBrazilAsiya Javayant RENEWAL
Maisha P FlosiJapanOnyama Limba NEGOTIATION
Izzy G RoysterItalyOnyama Limba NEW
Jeanfrancois W NestleArgentinaAmy Elsner PROPOSAL
Murillo P MacleadUnited KingdomAsiya Javayant PROPOSAL
Cody K BologniaRussiaBernardo Dominic NEGOTIATION
Rodrigues D RutaGermanyAnna Fali UNQUALIFIED
Greenwood E SaylorsAustraliaBernardo Dominic NEGOTIATION
Octavia J NestleSpainAnna Fali RENEWAL
Jeanfrancois K WieserItalyIvan Magalhaes PROPOSAL
Murillo G PaprockiAustraliaAsiya Javayant RENEWAL
Stacey E WhobreyIndiaElwin Sharvill RENEWAL
Francesco Q MorascaAustraliaBernardo Dominic NEW
Frozen Columns
Name
Aruna Y Kolmetz
Ashley B Inouye
Misaki W Caldarera
Munro H Glick
David Z Iturbide
Faith K Schemmer
Faith D Butt
Darci O Maclead
Misaki F Waycott
Rodrigues W Kolmetz
Jefferson Y Malet
Antonio V Waycott
Ashley W Bolognia
Rodrigues H Doe
Julie G Poquette
Jefferson W Saylors
Izzy W Glick
Maria K Bolognia
Murillo B Paprocki
Maria F Vocelka
Chavez T Rulapaugh
Aika C Darakjy
Smith Y Perin
Francesco O Rim
Greenwood K Iturbide
Francesco Q Foller
Rodrigues D Wieser
Faith O Stockham
Aruna G Kolmetz
David I Bowley
Julie Y Nicka
Mujtaba C Albares
Izzy D Figeroa
Aruna T Glick
Kadeem G Tollner
Ashley T Briddick
Wickens F Chui
James J Tollner
Jeanfrancois Y Malet
James L Nestle
Deepesh U Caudy
Claire O Albares
Smith I Albares
Antonio V Vocelka
Adams L Inouye
Antonio M Amigon
Julie U Maclead
Darci Z Chui
Arvin C Sergi
Kaitlin Q Marrier
IdCountryDate
1000Russia2025-05-23
1001Japan2025-05-27
1002Brazil2025-06-06
1003Australia2025-05-18
1004Japan2025-05-20
1005Brazil2025-05-28
1006Italy2025-06-05
1007Spain2025-05-21
1008Brazil2025-06-04
1009India2025-05-31
1010United Kingdom2025-05-24
1011Germany2025-05-24
1012United Kingdom2025-06-13
1013Spain2025-05-31
1014Spain2025-05-27
1015Argentina2025-06-06
1016India2025-05-27
1017Japan2025-05-18
1018United Kingdom2025-06-12
1019Germany2025-05-27
1020Spain2025-06-03
1021Russia2025-06-03
1022Argentina2025-05-16
1023Russia2025-06-12
1024Canada2025-06-05
1025Italy2025-05-18
1026United Kingdom2025-05-18
1027France2025-06-12
1028Germany2025-05-18
1029Japan2025-05-21
1030France2025-06-01
1031India2025-05-26
1032Germany2025-06-11
1033Brazil2025-06-01
1034Spain2025-05-25
1035Italy2025-06-01
1036Canada2025-06-01
1037Russia2025-05-23
1038Australia2025-05-17
1039Spain2025-05-18
1040India2025-05-16
1041Japan2025-06-05
1042India2025-05-17
1043Brazil2025-05-25
1044Germany2025-06-01
1045India2025-06-11
1046Japan2025-06-02
1047Canada2025-05-15
1048Germany2025-05-15
1049Germany2025-05-21

On-Demand Data

NameIdCountryDate
Mujtaba T Gaucho1000United Kingdom2025-05-19
Faith F Iturbide1001Italy2025-06-02
Morrow O Oldroyd1002Spain2025-05-20
Deepesh I Paprocki1003India2025-06-08
Jeanfrancois S Royster1004Japan2025-06-07
Maisha X Rulapaugh1005Japan2025-05-25
Izzy B Ruta1006Australia2025-06-09
Aika A Chui1007Spain2025-05-30
Ricardo I Bolognia1008Germany2025-06-13
Aditya Y Campain1009Brazil2025-05-17
Rodrigues X Tollner1010United Kingdom2025-06-08
Chavez E Garufi1011India2025-06-02
Murillo K Caudy1012Argentina2025-05-24
Ashley P Slusarski1013Japan2025-05-19
Stacey U Marrier1014Italy2025-05-19
Deepesh T Rim1015Canada2025-05-20
Faith G Sergi1016Japan2025-06-13
Ricardo A Flosi1017United Kingdom2025-06-07
Jones M Gaucho1018Australia2025-05-29
Aditya T Inouye1019Japan2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore R FerenczCanadaXuxue Feng QUALIFIED
Murillo T CampainCanadaElwin Sharvill UNQUALIFIED
Jones G GauchoGermanyElwin Sharvill NEW
Leon F MarrierIndiaAsiya Javayant RENEWAL
Wickens R PaprockiJapanOnyama Limba QUALIFIED
Chavez T CampainUnited KingdomIoni Bowcher QUALIFIED
Mujtaba Q BologniaBrazilAmy Elsner NEW
Mayumi W SlusarskiBrazilIvan Magalhaes QUALIFIED
Adams W ButtAustraliaAmy Elsner NEGOTIATION
Izzy X NestleArgentinaIoni Bowcher NEGOTIATION
Misaki P AlbaresSpainBernardo Dominic RENEWAL
Julie S RoysterJapanOnyama Limba UNQUALIFIED
Ivar E RutaArgentinaElwin Sharvill NEW
Greenwood C CaudyArgentinaOnyama Limba NEW
Francesco F AlbaresIndiaOnyama Limba UNQUALIFIED
Misaki T CampainFranceXuxue Feng NEGOTIATION
Izzy R SchemmerBrazilIoni Bowcher NEGOTIATION
Octavia G PaprockiIndiaOnyama Limba NEGOTIATION
Ashley Q CaudyGermanyAmy Elsner QUALIFIED
Costa K RutaArgentinaXuxue Feng PROPOSAL
Wickens W OstroskyRussiaXuxue Feng NEGOTIATION
Aruna P NickaSpainXuxue Feng NEW
Julie H MaletAustraliaElwin Sharvill PROPOSAL
Salvatore P BowleyItalyOnyama Limba NEW
Octavia T WieserJapanStephen Shaw PROPOSAL
Octavia I MacleadFranceIoni Bowcher UNQUALIFIED
Octavia G StockhamRussiaAnna Fali NEW
Jeanfrancois G PaprockiSpainStephen Shaw NEGOTIATION
Adams S MacleadRussiaStephen Shaw QUALIFIED
Aditya V ShinkoRussiaXuxue Feng PROPOSAL
Maria F FlosiCanadaOnyama Limba QUALIFIED
Silvio B SchemmerSpainElwin Sharvill NEW
Ricardo G BologniaUnited KingdomAnna Fali PROPOSAL
Aruna G MacleadItalyAmy Elsner NEW
Jeanfrancois K MaletCanadaOnyama Limba RENEWAL
Maria F RutaArgentinaBernardo Dominic QUALIFIED
Alejandro I PaprockiItalyAsiya Javayant QUALIFIED
Maria R SchemmerAustraliaElwin Sharvill PROPOSAL
Arvin L GillianCanadaBernardo Dominic RENEWAL
Claire F OldroydFranceBernardo Dominic NEW

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