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
Nicolas F CaudyJapanIvan Magalhaes RENEWAL
Chavez Y MorascaCanadaIoni Bowcher UNQUALIFIED
Izzy D OldroydUnited KingdomAsiya Javayant QUALIFIED
Morrow N BologniaGermanyIvan Magalhaes QUALIFIED
Stacey C DilliardRussiaOnyama Limba PROPOSAL
Silvio D BologniaRussiaBernardo Dominic UNQUALIFIED
Stacey B WaycottIndiaIvan Magalhaes UNQUALIFIED
Morrow D RoysterUnited KingdomStephen Shaw UNQUALIFIED
Sinclair C VenereBrazilBernardo Dominic QUALIFIED
Ashley D FollerIndiaStephen Shaw PROPOSAL
Morrow T SergiBrazilAmy Elsner RENEWAL
Maria W RimFranceElwin Sharvill NEGOTIATION
Claire I DarakjyAustraliaOnyama Limba RENEWAL
Murillo U SergiItalyAnna Fali NEW
Kaitlin N MaletAustraliaIvan Magalhaes PROPOSAL
Cody L RutaAustraliaIoni Bowcher UNQUALIFIED
Izzy Q StensethUnited KingdomIoni Bowcher NEW
Murillo I BologniaCanadaAmy Elsner QUALIFIED
Cody M MacleadFranceAmy Elsner RENEWAL
Salvatore B MacleadArgentinaAnna Fali QUALIFIED
Murillo V BriddickBrazilXuxue Feng NEW
Francesco S DilliardGermanyXuxue Feng RENEWAL
Johnson S PoquetteGermanyAmy Elsner UNQUALIFIED
Chavez J PaprockiCanadaStephen Shaw QUALIFIED
Sinclair N GlickSpainAmy Elsner RENEWAL
Stacey N SchemmerAustraliaStephen Shaw NEGOTIATION
Ashley Y RimSpainOnyama Limba NEGOTIATION
Jefferson C MaletAustraliaIoni Bowcher QUALIFIED
Emily I FigeroaAustraliaBernardo Dominic RENEWAL
Johnson Q MarrierBrazilAsiya Javayant RENEWAL
Claire F FlosiJapanOnyama Limba UNQUALIFIED
Deepesh N SaylorsSpainStephen Shaw NEGOTIATION
Smith X FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Izzy G OldroydSpainElwin Sharvill RENEWAL
Jennifer W RoysterBrazilOnyama Limba PROPOSAL
Jennifer S RoysterIndiaStephen Shaw PROPOSAL
Aruna E FerenczIndiaAnna Fali UNQUALIFIED
Izzy X BologniaFranceAmy Elsner UNQUALIFIED
Mujtaba A MorascaUnited KingdomIoni Bowcher NEW
Darci G ButtJapanIvan Magalhaes NEW
James A IturbideGermanyXuxue Feng UNQUALIFIED
Maria M CampainAustraliaIvan Magalhaes PROPOSAL
Johnson O RutaJapanIoni Bowcher QUALIFIED
Salvatore Q WaycottRussiaXuxue Feng NEGOTIATION
Aika B InouyeCanadaAmy Elsner RENEWAL
James B MaletUnited KingdomOnyama Limba NEW
Arvin X KolmetzUnited KingdomAnna Fali QUALIFIED
Maria G BowleyItalyAsiya Javayant NEGOTIATION
Antonio U AmigonJapanStephen Shaw PROPOSAL
David V WaycottSpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford H SaylorsItalyAnna Fali UNQUALIFIED
Jones Y BowleyCanadaAmy Elsner NEGOTIATION
Jefferson W RutaUnited KingdomElwin Sharvill NEW
Jeanfrancois K KuskoItalyOnyama Limba NEGOTIATION
David K PerinSpainOnyama Limba UNQUALIFIED
Mujtaba G DoeIndiaOnyama Limba NEW
Morrow A MaletAustraliaIoni Bowcher NEGOTIATION
Darci A RoysterCanadaIoni Bowcher NEW
Alejandro K SaylorsCanadaAnna Fali NEGOTIATION
Aika R AlbaresArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens C ButtRussia2025-04-08Feiner Bros PROPOSAL85Anna Fali
1001Smith N IturbideArgentina2025-04-22Commercial Press NEGOTIATION64Stephen Shaw
1002Jennifer V PaprockiItaly2025-04-20Chemel, James L Cpa RENEWAL85Ivan Magalhaes
1003Rodrigues B KuskoIndia2025-04-09Chemel, James L Cpa NEW22Ioni Bowcher
1004Clifford J AmigonSpain2025-04-15Truhlar And Truhlar Attys NEW60Stephen Shaw
1005Stacey K KuskoUnited Kingdom2025-04-30Truhlar And Truhlar Attys RENEWAL2Amy Elsner
1006Isabel T DarakjyJapan2025-04-12King, Christopher A Esq NEGOTIATION49Amy Elsner
1007Emily D GarufiGermany2025-04-04Rangoni Of Florence PROPOSAL99Stephen Shaw
1008Kaitlin K ButtCanada2025-04-25Dorl, James J Esq PROPOSAL57Onyama Limba
1009Smith J RoysterRussia2025-04-17Rangoni Of Florence NEGOTIATION7Elwin Sharvill
1010Silvio L KuskoFrance2025-04-13Rousseaux, Michael Esq UNQUALIFIED80Ioni Bowcher
1011Salvatore K GlickFrance2025-04-02Chanay, Jeffrey A Esq PROPOSAL71Amy Elsner
1012Smith U PerinRussia2025-04-11King, Christopher A Esq NEGOTIATION25Bernardo Dominic
1013Aditya F BowleyJapan2025-04-24Feiner Bros QUALIFIED69Ioni Bowcher
1014Silvio J RimCanada2025-04-27Chanay, Jeffrey A Esq QUALIFIED78Ioni Bowcher
1015Aditya P RutaArgentina2025-04-23Rousseaux, Michael Esq QUALIFIED9Elwin Sharvill
1016Ivar Z StockhamRussia2025-04-16Chapman, Ross E Esq NEGOTIATION5Onyama Limba
1017Maria G PaprockiIndia2025-04-14Truhlar And Truhlar Attys NEW73Ioni Bowcher
1018Wickens W InouyeCanada2025-04-03Truhlar And Truhlar Attys RENEWAL41Asiya Javayant
1019Darci D SergiUnited Kingdom2025-04-16Chapman, Ross E Esq QUALIFIED20Stephen Shaw
1020Rodrigues G BologniaCanada2025-04-08Benton, John B Jr PROPOSAL9Xuxue Feng
1021Jennifer Q AlbaresCanada2025-04-20Feltz Printing Service UNQUALIFIED68Xuxue Feng
1022Emily S DilliardCanada2025-04-01Chapman, Ross E Esq QUALIFIED26Anna Fali
1023Mujtaba E RulapaughIndia2025-04-21Buckley Miller Wright RENEWAL87Bernardo Dominic
1024Juan S CampainBrazil2025-04-07Buckley Miller Wright NEGOTIATION56Amy Elsner
1025Kaitlin J WhobreyJapan2025-04-25Commercial Press NEGOTIATION95Xuxue Feng
1026Faith C OldroydJapan2025-04-29Truhlar And Truhlar Attys RENEWAL98Xuxue Feng
1027Faith U FigeroaArgentina2025-04-03Chemel, James L Cpa PROPOSAL32Bernardo Dominic
1028Johnson I BowleyUnited Kingdom2025-04-06Chemel, James L Cpa RENEWAL88Ivan Magalhaes
1029Mayumi X FollerItaly2025-04-12Truhlar And Truhlar Attys NEGOTIATION5Xuxue Feng
1030Francesco C FollerCanada2025-04-01Rangoni Of Florence PROPOSAL20Elwin Sharvill
1031Darci Z MaletBrazil2025-04-11Rousseaux, Michael Esq PROPOSAL35Xuxue Feng
1032Cody U RutaRussia2025-04-12Dorl, James J Esq QUALIFIED81Xuxue Feng
1033Smith S NickaUnited Kingdom2025-04-04Truhlar And Truhlar Attys NEGOTIATION18Amy Elsner
1034Mujtaba H CampainFrance2025-04-07Chanay, Jeffrey A Esq NEW82Xuxue Feng
1035Ashley P OldroydCanada2025-04-03Feltz Printing Service NEW45Xuxue Feng
1036Greenwood A FlosiJapan2025-04-10Chanay, Jeffrey A Esq PROPOSAL85Ivan Magalhaes
1037Stacey W RoysterRussia2025-04-15Feiner Bros PROPOSAL47Asiya Javayant
1038Ricardo P RulapaughIndia2025-04-13Commercial Press QUALIFIED75Anna Fali
1039Rodrigues C WieserJapan2025-04-20Dorl, James J Esq NEGOTIATION56Stephen Shaw
1040Costa J PaprockiAustralia2025-04-16Buckley Miller Wright NEW50Onyama Limba
1041Arvin F MorascaAustralia2025-04-06Rousseaux, Michael Esq RENEWAL60Ioni Bowcher
1042Octavia X MaletBrazil2025-04-13Feltz Printing Service UNQUALIFIED56Xuxue Feng
1043Aditya M FigeroaArgentina2025-04-19Benton, John B Jr NEW22Stephen Shaw
1044Jefferson W FlosiBrazil2025-04-10Chanay, Jeffrey A Esq RENEWAL80Xuxue Feng
1045Cody I CaldareraAustralia2025-04-06Dorl, James J Esq UNQUALIFIED30Amy Elsner
1046Morrow S DilliardSpain2025-04-28Rousseaux, Michael Esq QUALIFIED13Elwin Sharvill
1047Julie C VenereCanada2025-04-17Chapman, Ross E Esq NEGOTIATION39Ioni Bowcher
1048Silvio R MorascaUnited Kingdom2025-04-04King, Christopher A Esq NEGOTIATION1Onyama Limba
1049Stacey Q WaycottBrazil2025-04-18Rangoni Of Florence RENEWAL59Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja N RoysterUnited KingdomStephen Shaw UNQUALIFIED
Costa K FlosiRussiaOnyama Limba RENEWAL
Jeanfrancois G SchemmerFranceXuxue Feng RENEWAL
Jeanfrancois K GarufiUnited KingdomXuxue Feng NEW
Clifford Y FigeroaAustraliaStephen Shaw PROPOSAL
Arvin I CaldareraRussiaElwin Sharvill NEW
Darci H StockhamJapanStephen Shaw QUALIFIED
Kadeem D BriddickArgentinaXuxue Feng QUALIFIED
Mayumi M AmigonArgentinaOnyama Limba NEGOTIATION
Cody V FlosiRussiaAnna Fali PROPOSAL
Silvio P ButtAustraliaStephen Shaw PROPOSAL
Clifford A WaycottJapanIvan Magalhaes RENEWAL
Antonio Q AmigonBrazilIvan Magalhaes UNQUALIFIED
Clifford C RimFranceAmy Elsner QUALIFIED
Julie K BowleyUnited KingdomStephen Shaw RENEWAL
Mujtaba P IturbideBrazilOnyama Limba UNQUALIFIED
Munro T PerinAustraliaBernardo Dominic RENEWAL
Rodrigues W ShinkoArgentinaBernardo Dominic PROPOSAL
Arvin R MaletIndiaBernardo Dominic UNQUALIFIED
Stacey G MaletFranceAnna Fali NEGOTIATION
Tony O SchemmerCanadaBernardo Dominic RENEWAL
Jones T SlusarskiGermanyBernardo Dominic QUALIFIED
Darci L PoquetteFranceAnna Fali NEW
Ivar D MacleadCanadaElwin Sharvill UNQUALIFIED
Smith W OstroskyArgentinaAsiya Javayant QUALIFIED
Francesco G OldroydBrazilAsiya Javayant UNQUALIFIED
Rodrigues Y CampainFranceBernardo Dominic QUALIFIED
Stacey P DarakjyUnited KingdomIvan Magalhaes RENEWAL
Alejandro S PerinRussiaBernardo Dominic QUALIFIED
Salvatore R FollerFranceAnna Fali RENEWAL
Faith R FigeroaJapanAsiya Javayant QUALIFIED
Isabel B WaycottUnited KingdomXuxue Feng UNQUALIFIED
Munro H WieserUnited KingdomStephen Shaw NEGOTIATION
Jeanfrancois D BologniaGermanyOnyama Limba RENEWAL
Jennifer L ChuiArgentinaOnyama Limba RENEWAL
Johnson V ShinkoJapanAmy Elsner NEW
Ivar A GillianRussiaXuxue Feng RENEWAL
Maria L StensethRussiaIoni Bowcher RENEWAL
Mujtaba G RulapaughSpainIoni Bowcher NEW
Antonio R SaylorsCanadaAsiya Javayant RENEWAL
Maria W PoquetteItalyBernardo Dominic PROPOSAL
Kadeem A ShinkoCanadaAsiya Javayant RENEWAL
Cody Y BowleyBrazilIoni Bowcher NEW
Aruna C BriddickRussiaIoni Bowcher NEGOTIATION
Stacey Y SaylorsItalyIvan Magalhaes RENEWAL
Mujtaba G FlosiBrazilAmy Elsner NEW
Aruna M ChuiFranceIoni Bowcher UNQUALIFIED
Costa V RutaBrazilOnyama Limba NEW
Munro V IturbideGermanyIvan Magalhaes NEW
Jennifer D WhobreyIndiaIoni Bowcher QUALIFIED
Frozen Columns
Name
Morrow N Vocelka
Mujtaba A Briddick
Leja Q Venere
Costa P Poquette
Aika T Stenseth
Costa E Poquette
Julie Q Stenseth
Silvio O Perin
Ivar M Doe
Francesco O Kusko
Mujtaba Z Campain
Antonio R Gaucho
Darci C Doe
Adams S Rim
Salvatore P Gaucho
Munro N Oldroyd
Stacey L Caudy
Costa O Chui
Claire K Caudy
Arvin M Garufi
David C Wieser
Wickens P Stockham
James R Darakjy
Maisha P Shinko
James Q Saylors
Nicolas B Rulapaugh
Munro N Nicka
Ashley V Nicka
Wickens O Glick
Isabel P Bowley
David F Briddick
Emily A Sergi
Leja O Briddick
Murillo M Wieser
Morrow D Sergi
Julie M Figeroa
Mayumi X Paprocki
Claire Q Oldroyd
Adams V Marrier
Jeanfrancois F Malet
Cody N Poquette
Arvin P Kolmetz
Aditya B Butt
Aika I Garufi
Izzy H Inouye
Misaki C Gaucho
Maria B Malet
Adams F Shinko
Mayumi P Stockham
Ashley X Ruta
IdCountryDate
1000Brazil2025-04-03
1001United Kingdom2025-04-17
1002Japan2025-04-16
1003Germany2025-04-29
1004Russia2025-04-22
1005Spain2025-04-21
1006India2025-04-08
1007France2025-04-23
1008Russia2025-04-13
1009Japan2025-04-20
1010Italy2025-04-08
1011Germany2025-04-05
1012Spain2025-04-01
1013Italy2025-04-20
1014Japan2025-04-26
1015Spain2025-04-07
1016Canada2025-04-01
1017Japan2025-04-05
1018Brazil2025-04-18
1019Germany2025-04-15
1020United Kingdom2025-04-05
1021Spain2025-04-12
1022France2025-04-23
1023Spain2025-04-02
1024Brazil2025-04-10
1025Spain2025-04-27
1026Australia2025-04-18
1027Spain2025-04-11
1028Japan2025-04-17
1029Australia2025-04-11
1030India2025-04-17
1031Germany2025-04-01
1032United Kingdom2025-04-05
1033Russia2025-04-07
1034United Kingdom2025-04-07
1035India2025-04-26
1036Germany2025-04-27
1037Japan2025-04-27
1038Russia2025-04-04
1039India2025-04-24
1040Germany2025-04-24
1041Russia2025-04-25
1042Brazil2025-04-26
1043Spain2025-04-08
1044Japan2025-04-28
1045Russia2025-04-16
1046Canada2025-04-07
1047Argentina2025-04-26
1048Brazil2025-04-07
1049Italy2025-04-08

On-Demand Data

NameIdCountryDate
Chavez B Caldarera1000India2025-04-01
Ricardo C Rulapaugh1001Argentina2025-04-03
Costa O Iturbide1002Spain2025-04-08
Greenwood Q Ferencz1003Australia2025-04-14
James S Nicka1004Canada2025-04-10
Jeanfrancois O Shinko1005Brazil2025-04-11
Wickens E Malet1006France2025-04-12
Munro G Rulapaugh1007Russia2025-04-20
Rodrigues K Gillian1008Spain2025-04-10
Emily C Saylors1009India2025-04-26
Julie D Ferencz1010Argentina2025-04-10
Wickens I Caudy1011Russia2025-04-21
Adams N Campain1012United Kingdom2025-04-25
Ricardo I Morasca1013Italy2025-04-06
Arvin W Albares1014France2025-04-17
Ivar C Dilliard1015Germany2025-04-10
Morrow W Flosi1016India2025-04-22
Aika E Oldroyd1017United Kingdom2025-04-21
Maisha V Ferencz1018Germany2025-04-12
Leon P Albares1019India2025-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones F WieserItalyXuxue Feng RENEWAL
Ricardo Y ButtArgentinaElwin Sharvill PROPOSAL
Julie O MarrierArgentinaAmy Elsner UNQUALIFIED
Clifford F ChuiJapanXuxue Feng PROPOSAL
Claire B MacleadJapanElwin Sharvill PROPOSAL
Rodrigues B OstroskyRussiaIoni Bowcher NEW
Alejandro I BriddickArgentinaIoni Bowcher UNQUALIFIED
David J CaudyJapanIvan Magalhaes UNQUALIFIED
Arvin C BriddickJapanElwin Sharvill NEGOTIATION
Darci U ChuiItalyStephen Shaw QUALIFIED
Mayumi T BowleyIndiaIoni Bowcher NEGOTIATION
Mujtaba L BriddickItalyAsiya Javayant NEGOTIATION
Greenwood P PoquetteIndiaOnyama Limba RENEWAL
Leon E ChuiSpainAnna Fali PROPOSAL
Faith Z RulapaughBrazilIvan Magalhaes PROPOSAL
Francesco U GarufiItalyBernardo Dominic UNQUALIFIED
Octavia B StockhamBrazilElwin Sharvill NEW
Nicolas H DarakjyAustraliaBernardo Dominic NEGOTIATION
Kadeem D GauchoArgentinaIvan Magalhaes UNQUALIFIED
Alejandro A MaletBrazilAmy Elsner NEGOTIATION
Emily Q FerenczGermanyAsiya Javayant PROPOSAL
Antonio G MacleadCanadaStephen Shaw QUALIFIED
Francesco T InouyeGermanyIvan Magalhaes UNQUALIFIED
Nicolas U FollerArgentinaStephen Shaw NEW
Tony T PerinFranceBernardo Dominic PROPOSAL
Jones X MarrierJapanAmy Elsner PROPOSAL
Rodrigues Y OstroskyBrazilStephen Shaw NEW
David O RulapaughFranceElwin Sharvill QUALIFIED
Darci C FigeroaGermanyBernardo Dominic QUALIFIED
Cody O WieserRussiaAmy Elsner UNQUALIFIED
Mayumi E SergiIndiaStephen Shaw NEW
Antonio E DoeSpainAnna Fali QUALIFIED
Aika M FlosiGermanyElwin Sharvill NEW
Morrow G AlbaresCanadaAmy Elsner NEW
Octavia C VocelkaSpainStephen Shaw NEW
Mujtaba X SergiCanadaElwin Sharvill UNQUALIFIED
Ashley Q MacleadSpainBernardo Dominic PROPOSAL
David X NestleArgentinaBernardo Dominic QUALIFIED
Maisha Z StockhamAustraliaAnna Fali NEW
Clifford F IturbideSpainAmy Elsner NEGOTIATION

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