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
Misaki F MacleadFranceIvan Magalhaes QUALIFIED
Nicolas Y PerinSpainXuxue Feng NEW
Maria E RimJapanOnyama Limba PROPOSAL
Sinclair D CaldareraJapanStephen Shaw PROPOSAL
Jones L MorascaSpainElwin Sharvill NEW
Darci L RutaCanadaAsiya Javayant UNQUALIFIED
Salvatore P VocelkaBrazilAnna Fali RENEWAL
Aika D GillianAustraliaStephen Shaw QUALIFIED
Kaitlin L WaycottUnited KingdomAsiya Javayant NEGOTIATION
Jefferson O BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Murillo L WieserCanadaXuxue Feng UNQUALIFIED
Stacey I FollerSpainIvan Magalhaes RENEWAL
Julie A RutaAustraliaElwin Sharvill PROPOSAL
Smith P TollnerUnited KingdomAsiya Javayant QUALIFIED
Johnson M ButtRussiaAmy Elsner PROPOSAL
James B StockhamSpainElwin Sharvill QUALIFIED
Deepesh K GillianJapanIvan Magalhaes PROPOSAL
Isabel A MarrierUnited KingdomIvan Magalhaes QUALIFIED
Alejandro J FigeroaSpainElwin Sharvill NEW
James M InouyeBrazilElwin Sharvill UNQUALIFIED
Greenwood I NickaBrazilElwin Sharvill QUALIFIED
Emily C MaletGermanyBernardo Dominic QUALIFIED
Izzy Z GillianIndiaIoni Bowcher NEGOTIATION
Mayumi H RoysterCanadaBernardo Dominic QUALIFIED
Deepesh N FlosiSpainAsiya Javayant NEGOTIATION
Kaitlin H GarufiArgentinaElwin Sharvill NEW
Mayumi D SlusarskiSpainIvan Magalhaes RENEWAL
Jefferson D RulapaughArgentinaOnyama Limba QUALIFIED
Faith C SaylorsJapanElwin Sharvill NEGOTIATION
Greenwood Y VenereBrazilOnyama Limba QUALIFIED
Murillo K DarakjyGermanyXuxue Feng QUALIFIED
Rodrigues V BologniaCanadaAmy Elsner RENEWAL
Antonio S SlusarskiFranceStephen Shaw RENEWAL
Misaki N KolmetzArgentinaStephen Shaw RENEWAL
Chavez U WieserAustraliaElwin Sharvill NEW
Deepesh P CampainArgentinaOnyama Limba NEW
Mujtaba B DarakjyArgentinaOnyama Limba QUALIFIED
Smith W FlosiSpainAsiya Javayant QUALIFIED
Maisha I BowleyIndiaIoni Bowcher QUALIFIED
Salvatore T MorascaCanadaOnyama Limba NEGOTIATION
Antonio C RulapaughFranceAnna Fali NEW
Darci X MorascaGermanyAsiya Javayant NEGOTIATION
Stacey S MarrierUnited KingdomAnna Fali QUALIFIED
Mujtaba T GauchoFranceElwin Sharvill UNQUALIFIED
Julie P FollerRussiaOnyama Limba NEGOTIATION
Darci T SaylorsArgentinaStephen Shaw NEGOTIATION
Ricardo G ChuiFranceBernardo Dominic NEW
Leon L TollnerUnited KingdomXuxue Feng NEW
Darci U WieserCanadaStephen Shaw QUALIFIED
Johnson T PoquetteJapanIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jefferson Z VocelkaUnited KingdomXuxue Feng NEGOTIATION
Juan U IturbideAustraliaOnyama Limba QUALIFIED
Nicolas A BologniaGermanyStephen Shaw NEGOTIATION
Jeanfrancois F StensethFranceIoni Bowcher PROPOSAL
Nicolas T SergiGermanyOnyama Limba UNQUALIFIED
Leon M ShinkoCanadaStephen Shaw PROPOSAL
Octavia Q WhobreyGermanyBernardo Dominic QUALIFIED
Arvin J MacleadAustraliaIoni Bowcher NEW
Alejandro R SergiSpainAmy Elsner PROPOSAL
Adams O KolmetzGermanyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci X CaudyBrazil2025-04-20Feltz Printing Service NEW61Xuxue Feng
1001Faith T VenereSpain2025-04-20Buckley Miller Wright RENEWAL23Asiya Javayant
1002Greenwood O PoquetteCanada2025-04-30Printing Dimensions QUALIFIED17Asiya Javayant
1003Juan E KolmetzCanada2025-04-23Chanay, Jeffrey A Esq RENEWAL73Elwin Sharvill
1004Silvio H BowleyItaly2025-04-16Printing Dimensions NEW4Xuxue Feng
1005Maisha M KuskoGermany2025-04-27Truhlar And Truhlar Attys NEGOTIATION47Onyama Limba
1006Kaitlin K OldroydJapan2025-04-28Chanay, Jeffrey A Esq NEGOTIATION84Amy Elsner
1007Jones T DilliardBrazil2025-04-22Feltz Printing Service QUALIFIED97Ioni Bowcher
1008Emily U IturbideGermany2025-04-06Commercial Press NEW31Amy Elsner
1009Ricardo R MaletRussia2025-04-14King, Christopher A Esq PROPOSAL55Ioni Bowcher
1010Deepesh V GlickBrazil2025-04-07Feiner Bros PROPOSAL7Asiya Javayant
1011Aika E KuskoArgentina2025-04-28Feltz Printing Service NEGOTIATION95Ivan Magalhaes
1012Rodrigues B SchemmerUnited Kingdom2025-04-12Chemel, James L Cpa NEW63Bernardo Dominic
1013Wickens I ButtItaly2025-04-18Dorl, James J Esq PROPOSAL8Xuxue Feng
1014Ricardo J SlusarskiFrance2025-04-07Chanay, Jeffrey A Esq PROPOSAL46Asiya Javayant
1015Mujtaba P DilliardGermany2025-04-18Commercial Press NEGOTIATION90Elwin Sharvill
1016Maisha V DoeRussia2025-04-14Chemel, James L Cpa NEW89Onyama Limba
1017Aika Y PerinRussia2025-04-17Chemel, James L Cpa PROPOSAL26Ivan Magalhaes
1018Kadeem X StockhamAustralia2025-04-03Truhlar And Truhlar Attys NEW42Xuxue Feng
1019Wickens C OstroskyJapan2025-04-17Rousseaux, Michael Esq QUALIFIED26Amy Elsner
1020Jennifer W BowleyJapan2025-04-04Printing Dimensions QUALIFIED91Bernardo Dominic
1021Claire P CaudyBrazil2025-04-30Morlong Associates UNQUALIFIED41Onyama Limba
1022Tony J MorascaCanada2025-04-27Chemel, James L Cpa UNQUALIFIED79Stephen Shaw
1023Francesco E VenereRussia2025-04-12Buckley Miller Wright UNQUALIFIED36Onyama Limba
1024Emily Q GauchoAustralia2025-04-17Truhlar And Truhlar Attys NEGOTIATION31Bernardo Dominic
1025Adams F CampainFrance2025-04-27Morlong Associates NEGOTIATION32Bernardo Dominic
1026Smith N RutaSpain2025-04-14Dorl, James J Esq QUALIFIED64Bernardo Dominic
1027Murillo P TollnerItaly2025-04-30King, Christopher A Esq RENEWAL68Elwin Sharvill
1028Aruna I IturbideArgentina2025-04-13Rousseaux, Michael Esq QUALIFIED6Elwin Sharvill
1029Maria G MaletArgentina2025-04-16Truhlar And Truhlar Attys RENEWAL30Stephen Shaw
1030Cody H ShinkoRussia2025-04-12Buckley Miller Wright PROPOSAL69Anna Fali
1031Murillo N RulapaughGermany2025-04-03Printing Dimensions PROPOSAL66Anna Fali
1032Morrow A RutaFrance2025-04-01Rousseaux, Michael Esq NEW72Anna Fali
1033Mujtaba O ChuiUnited Kingdom2025-04-16King, Christopher A Esq PROPOSAL58Elwin Sharvill
1034Clifford S AmigonJapan2025-04-07Chapman, Ross E Esq NEGOTIATION47Xuxue Feng
1035Octavia N MaletBrazil2025-04-05Chapman, Ross E Esq UNQUALIFIED25Elwin Sharvill
1036Kadeem L CampainArgentina2025-04-28Benton, John B Jr UNQUALIFIED49Stephen Shaw
1037Darci V MaletGermany2025-04-19Chemel, James L Cpa PROPOSAL89Ioni Bowcher
1038Nicolas D GauchoGermany2025-04-08Chanay, Jeffrey A Esq NEGOTIATION77Amy Elsner
1039Stacey B MarrierGermany2025-04-25Rangoni Of Florence PROPOSAL30Ioni Bowcher
1040Maria A RimCanada2025-04-08Printing Dimensions PROPOSAL51Ivan Magalhaes
1041Aika F InouyeJapan2025-04-09Feiner Bros NEW97Anna Fali
1042James B KuskoGermany2025-04-16Commercial Press RENEWAL57Onyama Limba
1043Aika U SchemmerAustralia2025-04-13Rangoni Of Florence NEW74Onyama Limba
1044James D MarrierSpain2025-04-07Commercial Press RENEWAL45Amy Elsner
1045Darci C MaletItaly2025-04-04Chapman, Ross E Esq QUALIFIED29Amy Elsner
1046Kaitlin B MaletJapan2025-04-13Commercial Press UNQUALIFIED78Asiya Javayant
1047Octavia B KolmetzUnited Kingdom2025-04-14Feiner Bros NEGOTIATION22Xuxue Feng
1048Tony J KolmetzFrance2025-04-29Rousseaux, Michael Esq UNQUALIFIED33Ivan Magalhaes
1049Chavez W RimRussia2025-04-01Truhlar And Truhlar Attys NEGOTIATION45Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Juan K PoquetteRussiaAmy Elsner QUALIFIED
David A FerenczRussiaAsiya Javayant NEGOTIATION
Rodrigues B BowleyIndiaAmy Elsner PROPOSAL
Darci N InouyeCanadaStephen Shaw PROPOSAL
Mujtaba Q MaletArgentinaIoni Bowcher UNQUALIFIED
Jennifer D WaycottArgentinaAmy Elsner RENEWAL
Juan Z AmigonIndiaElwin Sharvill NEW
Antonio F GlickItalyAnna Fali RENEWAL
Jennifer G OstroskyRussiaAsiya Javayant UNQUALIFIED
Wickens O ShinkoArgentinaStephen Shaw RENEWAL
Julie U StensethJapanXuxue Feng PROPOSAL
Deepesh F TollnerFranceXuxue Feng UNQUALIFIED
Octavia K BologniaFranceAsiya Javayant NEW
Murillo F SaylorsCanadaAmy Elsner NEGOTIATION
Wickens H DilliardUnited KingdomElwin Sharvill NEGOTIATION
Murillo R FerenczJapanAnna Fali NEGOTIATION
Isabel K FollerItalyIvan Magalhaes QUALIFIED
Alejandro B KuskoSpainAmy Elsner NEGOTIATION
Darci P KuskoFranceIvan Magalhaes PROPOSAL
Adams E FlosiJapanAmy Elsner QUALIFIED
Jones D RoysterRussiaIvan Magalhaes UNQUALIFIED
Leja U CaldareraRussiaAmy Elsner NEGOTIATION
Rodrigues K PerinFranceOnyama Limba UNQUALIFIED
Johnson J NickaUnited KingdomIoni Bowcher UNQUALIFIED
Aika Y MorascaIndiaOnyama Limba NEW
Jefferson A RoysterFranceAsiya Javayant QUALIFIED
Misaki I SlusarskiFranceOnyama Limba RENEWAL
Misaki H GlickJapanAnna Fali QUALIFIED
Silvio O PerinBrazilAnna Fali NEGOTIATION
Deepesh X MaletAustraliaOnyama Limba PROPOSAL
Wickens X ButtArgentinaXuxue Feng NEW
Claire X VocelkaAustraliaIvan Magalhaes PROPOSAL
Darci K FlosiItalyXuxue Feng QUALIFIED
Julie U SergiFranceAmy Elsner NEGOTIATION
Ivar O DilliardUnited KingdomAnna Fali NEW
Jones T KolmetzUnited KingdomXuxue Feng RENEWAL
Tony J RutaFranceAmy Elsner QUALIFIED
Mayumi D GillianArgentinaBernardo Dominic NEGOTIATION
Isabel U DilliardAustraliaBernardo Dominic UNQUALIFIED
Salvatore W OldroydSpainOnyama Limba NEW
Misaki G PerinIndiaBernardo Dominic UNQUALIFIED
Mujtaba D SaylorsBrazilXuxue Feng NEGOTIATION
Jefferson I ButtFranceIvan Magalhaes QUALIFIED
Maria W MacleadSpainXuxue Feng PROPOSAL
Deepesh P MaletAustraliaAsiya Javayant UNQUALIFIED
Kaitlin W OldroydRussiaAnna Fali NEW
Jones D GarufiFranceAsiya Javayant RENEWAL
Aruna E NestleJapanXuxue Feng NEGOTIATION
Nicolas T SlusarskiSpainAnna Fali PROPOSAL
Munro U DilliardAustraliaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Morrow U Malet
David P Marrier
Leja P Bolognia
Leon C Schemmer
Wickens R Foller
Murillo D Iturbide
James Y Schemmer
Mujtaba R Royster
Darci F Stockham
Kadeem E Doe
Jeanfrancois A Briddick
Juan K Venere
Kaitlin I Kolmetz
Sinclair Z Sergi
Kadeem O Maclead
Izzy E Iturbide
Julie L Bowley
Octavia Z Whobrey
Maria Z Morasca
Kadeem O Glick
Rodrigues T Albares
Murillo S Stenseth
Rodrigues X Iturbide
Jeanfrancois X Doe
Wickens M Saylors
Octavia J Royster
Sinclair L Whobrey
Jennifer D Kolmetz
Octavia A Marrier
Morrow Q Bolognia
Chavez Z Maclead
Jeanfrancois Y Paprocki
Chavez W Marrier
Munro Q Glick
Juan B Iturbide
Ashley B Tollner
Kadeem C Rulapaugh
Maisha Y Flosi
Costa O Bowley
Emily J Whobrey
Sinclair F Oldroyd
James Q Nestle
Kaitlin V Bolognia
Jennifer P Wieser
Alejandro W Venere
David L Caldarera
Munro W Morasca
Ricardo K Slusarski
Aika W Vocelka
Wickens W Nicka
IdCountryDate
1000Australia2025-04-03
1001Italy2025-04-15
1002India2025-04-26
1003France2025-04-25
1004Germany2025-04-19
1005France2025-04-05
1006Italy2025-04-02
1007Italy2025-04-25
1008India2025-04-12
1009India2025-04-09
1010Russia2025-04-05
1011France2025-04-10
1012Canada2025-04-05
1013Spain2025-04-29
1014Australia2025-04-08
1015Australia2025-04-18
1016Italy2025-04-06
1017United Kingdom2025-04-29
1018Germany2025-04-05
1019Canada2025-04-26
1020United Kingdom2025-04-01
1021Russia2025-04-14
1022Germany2025-04-13
1023United Kingdom2025-04-07
1024Australia2025-04-07
1025Japan2025-04-21
1026India2025-04-11
1027France2025-04-10
1028France2025-04-22
1029Canada2025-04-09
1030France2025-04-26
1031Japan2025-04-08
1032Spain2025-04-19
1033India2025-04-15
1034Australia2025-04-18
1035France2025-04-23
1036Russia2025-04-19
1037Brazil2025-04-12
1038India2025-04-01
1039Japan2025-04-13
1040Russia2025-04-29
1041Australia2025-04-17
1042Brazil2025-04-20
1043Argentina2025-04-15
1044Japan2025-04-28
1045Canada2025-04-29
1046Japan2025-04-19
1047Australia2025-04-29
1048Italy2025-04-08
1049Japan2025-04-18

On-Demand Data

NameIdCountryDate
Clifford Z Vocelka1000France2025-04-21
Maria T Ruta1001Germany2025-04-05
Wickens O Chui1002Spain2025-04-08
Cody M Dilliard1003Russia2025-04-22
Murillo Z Waycott1004Germany2025-04-21
Morrow G Ferencz1005Japan2025-04-14
Misaki U Schemmer1006United Kingdom2025-04-12
Cody G Whobrey1007India2025-04-04
Jefferson U Bowley1008Japan2025-04-30
Deepesh V Glick1009France2025-04-24
Smith T Whobrey1010Russia2025-04-05
Rodrigues Q Figeroa1011Canada2025-04-14
Greenwood P Dilliard1012Brazil2025-04-10
Julie I Gaucho1013France2025-04-11
Maria Z Dilliard1014United Kingdom2025-04-26
Clifford M Iturbide1015Japan2025-04-24
Maisha A Iturbide1016France2025-04-06
Deepesh O Slusarski1017Brazil2025-04-08
Misaki S Stenseth1018Argentina2025-04-08
Stacey Z Shinko1019Italy2025-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo G BriddickGermanyAsiya Javayant RENEWAL
Wickens Y IturbideSpainIoni Bowcher RENEWAL
Maria O SlusarskiBrazilStephen Shaw RENEWAL
Leon V AlbaresGermanyIvan Magalhaes QUALIFIED
Faith T MaletBrazilOnyama Limba UNQUALIFIED
Sinclair I DilliardRussiaIvan Magalhaes RENEWAL
Jeanfrancois N FlosiBrazilIvan Magalhaes QUALIFIED
Mayumi P DoeItalyElwin Sharvill PROPOSAL
Cody F MacleadFranceAmy Elsner PROPOSAL
Ashley Y FigeroaFranceBernardo Dominic QUALIFIED
Leon Z SchemmerIndiaXuxue Feng PROPOSAL
Jefferson F PaprockiSpainAnna Fali PROPOSAL
Salvatore P AmigonItalyIvan Magalhaes PROPOSAL
Mujtaba Y TollnerRussiaAnna Fali PROPOSAL
David O MacleadJapanAmy Elsner UNQUALIFIED
Leja Q ShinkoFranceIoni Bowcher QUALIFIED
Leon G NestleArgentinaBernardo Dominic NEW
Leja T BologniaAustraliaIvan Magalhaes UNQUALIFIED
Ricardo I StensethItalyIvan Magalhaes NEGOTIATION
Sinclair G DilliardFranceXuxue Feng NEW
Clifford M NickaRussiaOnyama Limba QUALIFIED
Munro B NestleGermanyElwin Sharvill NEGOTIATION
Adams N MacleadItalyElwin Sharvill QUALIFIED
Maria I FerenczUnited KingdomXuxue Feng PROPOSAL
Salvatore I FollerIndiaOnyama Limba RENEWAL
Rodrigues A GarufiGermanyIvan Magalhaes NEGOTIATION
Chavez J RimRussiaXuxue Feng NEGOTIATION
Juan T SaylorsSpainOnyama Limba UNQUALIFIED
Maria A PaprockiFranceBernardo Dominic RENEWAL
Emily T PaprockiUnited KingdomAsiya Javayant QUALIFIED
Maria F PoquetteBrazilAmy Elsner QUALIFIED
Jennifer V SaylorsIndiaIvan Magalhaes PROPOSAL
Alejandro I TollnerJapanAsiya Javayant QUALIFIED
Silvio N OstroskyUnited KingdomElwin Sharvill NEW
Juan Q FigeroaCanadaOnyama Limba RENEWAL
Smith Z BriddickBrazilStephen Shaw QUALIFIED
Maisha T OldroydJapanIvan Magalhaes PROPOSAL
Octavia S MacleadBrazilAnna Fali NEGOTIATION
Wickens O MarrierBrazilAsiya Javayant PROPOSAL
Leja M BologniaFranceElwin Sharvill PROPOSAL

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