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
James N RutaJapanElwin Sharvill UNQUALIFIED
David F NestleBrazilXuxue Feng NEW
Jeanfrancois G CaldareraArgentinaBernardo Dominic UNQUALIFIED
Johnson E WieserArgentinaXuxue Feng RENEWAL
Stacey L TollnerUnited KingdomAnna Fali QUALIFIED
Misaki X MarrierJapanStephen Shaw RENEWAL
Kadeem C PaprockiFranceXuxue Feng QUALIFIED
Jones F MorascaArgentinaOnyama Limba UNQUALIFIED
Faith S KolmetzAustraliaOnyama Limba QUALIFIED
Octavia O InouyeBrazilStephen Shaw RENEWAL
James N MacleadJapanIoni Bowcher NEW
Julie D CaldareraIndiaAmy Elsner NEGOTIATION
Jeanfrancois P OstroskyArgentinaAnna Fali NEGOTIATION
Cody W GillianGermanyAsiya Javayant RENEWAL
Isabel Y NestleUnited KingdomXuxue Feng UNQUALIFIED
Jefferson E BologniaUnited KingdomIvan Magalhaes QUALIFIED
Misaki U RoysterJapanAsiya Javayant NEGOTIATION
Rodrigues F SchemmerJapanIoni Bowcher NEGOTIATION
Chavez G WieserRussiaBernardo Dominic QUALIFIED
David W DarakjyJapanAsiya Javayant QUALIFIED
Jefferson H MacleadSpainXuxue Feng NEW
Ivar X FlosiFranceOnyama Limba NEW
Aditya C PoquetteBrazilStephen Shaw NEGOTIATION
Adams L WhobreyUnited KingdomAsiya Javayant PROPOSAL
Antonio O NickaItalyAmy Elsner UNQUALIFIED
Darci H DoeUnited KingdomAmy Elsner NEW
Maisha A RulapaughItalyStephen Shaw UNQUALIFIED
Francesco W NickaBrazilElwin Sharvill PROPOSAL
Kaitlin I KuskoUnited KingdomXuxue Feng PROPOSAL
Johnson M MacleadRussiaElwin Sharvill NEW
Smith P RoysterJapanIoni Bowcher NEGOTIATION
Maria B OldroydJapanXuxue Feng PROPOSAL
Izzy T VocelkaJapanBernardo Dominic QUALIFIED
Juan S StockhamCanadaIoni Bowcher NEW
Alejandro G MorascaArgentinaAnna Fali PROPOSAL
Misaki Y WaycottRussiaStephen Shaw RENEWAL
Alejandro Y WhobreySpainAnna Fali NEGOTIATION
Isabel R GauchoAustraliaIvan Magalhaes UNQUALIFIED
Aika Z VenereCanadaElwin Sharvill NEGOTIATION
Ashley R GlickFranceStephen Shaw PROPOSAL
Jones G SchemmerUnited KingdomAnna Fali NEGOTIATION
Munro Z GillianSpainBernardo Dominic NEW
Johnson M SlusarskiSpainAsiya Javayant QUALIFIED
Jeanfrancois J WaycottJapanOnyama Limba QUALIFIED
Julie A CaldareraBrazilAmy Elsner UNQUALIFIED
Mujtaba X PerinAustraliaElwin Sharvill RENEWAL
Julie U IturbideFranceXuxue Feng PROPOSAL
Claire C RutaRussiaOnyama Limba UNQUALIFIED
Ashley Q BologniaArgentinaBernardo Dominic QUALIFIED
Sinclair Q DoeFranceElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa R PerinUnited KingdomIvan Magalhaes NEW
Kadeem M RutaJapanOnyama Limba PROPOSAL
Clifford M NestleJapanAsiya Javayant NEW
Antonio N MarrierGermanyElwin Sharvill RENEWAL
Claire I MorascaGermanyAmy Elsner NEW
Aruna Y BologniaCanadaAsiya Javayant UNQUALIFIED
David Y DilliardJapanAmy Elsner QUALIFIED
Mujtaba B InouyeGermanyStephen Shaw UNQUALIFIED
Ivar B FigeroaItalyXuxue Feng RENEWAL
Johnson P WieserRussiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci W MaletCanada2026-07-02Feltz Printing Service QUALIFIED45Xuxue Feng
1001Clifford M DarakjySpain2026-07-20Commercial Press NEGOTIATION71Xuxue Feng
1002Antonio P TollnerFrance2026-07-03Printing Dimensions QUALIFIED58Stephen Shaw
1003Johnson G InouyeItaly2026-07-09Feiner Bros NEGOTIATION40Anna Fali
1004Izzy T MarrierJapan2026-07-10Chanay, Jeffrey A Esq NEW91Elwin Sharvill
1005Kadeem O GlickBrazil2026-07-11Dorl, James J Esq RENEWAL50Elwin Sharvill
1006Deepesh O ButtRussia2026-07-13Chanay, Jeffrey A Esq NEGOTIATION89Stephen Shaw
1007Stacey D FerenczAustralia2026-07-24Chapman, Ross E Esq PROPOSAL60Asiya Javayant
1008Izzy I RoysterUnited Kingdom2026-07-02Commercial Press QUALIFIED73Stephen Shaw
1009Aditya M WieserAustralia2026-07-12Buckley Miller Wright NEW89Asiya Javayant
1010David K WaycottAustralia2026-07-29Rangoni Of Florence UNQUALIFIED33Stephen Shaw
1011Morrow Q InouyeAustralia2026-07-05Rangoni Of Florence NEW62Anna Fali
1012Johnson X BowleyAustralia2026-07-01Feltz Printing Service RENEWAL96Bernardo Dominic
1013Francesco H BologniaUnited Kingdom2026-07-24Chemel, James L Cpa QUALIFIED68Asiya Javayant
1014Silvio X RoysterArgentina2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED19Amy Elsner
1015Octavia Y MacleadRussia2026-07-24Rousseaux, Michael Esq NEW4Elwin Sharvill
1016Rodrigues R SchemmerSpain2026-07-17Feltz Printing Service PROPOSAL89Ioni Bowcher
1017Clifford T ChuiGermany2026-07-16Chemel, James L Cpa QUALIFIED29Asiya Javayant
1018Mayumi E StensethIndia2026-07-21Chemel, James L Cpa RENEWAL66Stephen Shaw
1019Ashley H RoysterGermany2026-07-25Chanay, Jeffrey A Esq NEGOTIATION91Anna Fali
1020Murillo Q ShinkoAustralia2026-07-06Benton, John B Jr NEW25Asiya Javayant
1021Morrow N StensethAustralia2026-07-11Chemel, James L Cpa UNQUALIFIED66Ioni Bowcher
1022Ashley B CampainUnited Kingdom2026-07-14Dorl, James J Esq RENEWAL10Ioni Bowcher
1023Jeanfrancois C RutaRussia2026-07-23Truhlar And Truhlar Attys NEW7Ioni Bowcher
1024Aika R ChuiItaly2026-07-13Morlong Associates QUALIFIED42Anna Fali
1025Ivar E OldroydIndia2026-07-12King, Christopher A Esq RENEWAL44Xuxue Feng
1026Leon X ChuiCanada2026-07-11Rousseaux, Michael Esq NEW14Ivan Magalhaes
1027Francesco S SergiGermany2026-07-29Morlong Associates NEW30Bernardo Dominic
1028Greenwood K BriddickIndia2026-07-21Buckley Miller Wright NEGOTIATION31Xuxue Feng
1029Alejandro Q DoeSpain2026-07-29Chanay, Jeffrey A Esq QUALIFIED22Xuxue Feng
1030Morrow R IturbideIndia2026-07-15Morlong Associates NEGOTIATION92Ivan Magalhaes
1031Ivar S FerenczBrazil2026-06-30Buckley Miller Wright QUALIFIED92Asiya Javayant
1032Aruna C DilliardIndia2026-07-12Feltz Printing Service QUALIFIED19Bernardo Dominic
1033Johnson M GauchoAustralia2026-07-03Feiner Bros QUALIFIED0Onyama Limba
1034Murillo W PerinJapan2026-07-28King, Christopher A Esq UNQUALIFIED49Onyama Limba
1035James V RoysterItaly2026-07-27Rousseaux, Michael Esq NEGOTIATION78Amy Elsner
1036Smith P SlusarskiJapan2026-07-13Benton, John B Jr RENEWAL91Elwin Sharvill
1037Silvio G BologniaFrance2026-07-13Rousseaux, Michael Esq RENEWAL91Amy Elsner
1038Munro Z DilliardBrazil2026-07-24Chemel, James L Cpa RENEWAL43Ioni Bowcher
1039Rodrigues Y GillianFrance2026-07-24Commercial Press QUALIFIED51Anna Fali
1040Costa Q BriddickUnited Kingdom2026-07-29Rangoni Of Florence RENEWAL64Anna Fali
1041Emily X VenereRussia2026-07-07King, Christopher A Esq QUALIFIED39Ivan Magalhaes
1042Greenwood S SlusarskiAustralia2026-07-14Truhlar And Truhlar Attys NEW54Stephen Shaw
1043Tony F VenereIndia2026-07-18Chanay, Jeffrey A Esq NEW30Amy Elsner
1044Ivar G FigeroaJapan2026-07-15Benton, John B Jr UNQUALIFIED88Asiya Javayant
1045Maria B DoeFrance2026-06-30Feiner Bros RENEWAL42Onyama Limba
1046Isabel U SchemmerSpain2026-07-13Morlong Associates UNQUALIFIED21Ivan Magalhaes
1047Deepesh S GlickGermany2026-07-06Feiner Bros UNQUALIFIED28Stephen Shaw
1048Juan M OldroydItaly2026-07-14Dorl, James J Esq PROPOSAL35Onyama Limba
1049Arvin F ChuiJapan2026-07-05Rousseaux, Michael Esq NEGOTIATION66Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro J CaudyArgentinaBernardo Dominic NEW
Leja N WhobreyGermanyElwin Sharvill NEW
Leon B SlusarskiGermanyAmy Elsner NEGOTIATION
Kadeem M BologniaItalyAmy Elsner QUALIFIED
Darci K CaldareraAustraliaAmy Elsner PROPOSAL
Maria J AmigonItalyIoni Bowcher NEW
Jennifer X AmigonFranceAnna Fali QUALIFIED
Munro K RutaJapanStephen Shaw QUALIFIED
Mayumi M AmigonArgentinaAsiya Javayant NEW
Ricardo Q SlusarskiArgentinaIoni Bowcher QUALIFIED
Deepesh B StensethFranceAmy Elsner QUALIFIED
Emily G CaldareraSpainAmy Elsner NEGOTIATION
Octavia O RulapaughItalyOnyama Limba PROPOSAL
Jeanfrancois B MarrierFranceXuxue Feng RENEWAL
Adams W RoysterItalyBernardo Dominic UNQUALIFIED
Misaki B WaycottGermanyXuxue Feng NEGOTIATION
Jefferson R KuskoRussiaIvan Magalhaes UNQUALIFIED
Greenwood K WhobreyUnited KingdomIoni Bowcher PROPOSAL
Wickens K OldroydFranceXuxue Feng NEGOTIATION
Jennifer B SchemmerSpainAmy Elsner RENEWAL
Tony V MarrierAustraliaStephen Shaw QUALIFIED
Clifford T ChuiUnited KingdomIvan Magalhaes PROPOSAL
Juan G ChuiBrazilOnyama Limba RENEWAL
Chavez P StensethUnited KingdomStephen Shaw NEGOTIATION
Silvio H RulapaughCanadaAnna Fali QUALIFIED
Alejandro N WieserGermanyAmy Elsner NEGOTIATION
Maria I BriddickSpainBernardo Dominic UNQUALIFIED
Costa J ShinkoArgentinaAsiya Javayant NEGOTIATION
Isabel V WaycottRussiaAsiya Javayant UNQUALIFIED
Julie X BriddickSpainXuxue Feng PROPOSAL
Greenwood F AmigonUnited KingdomIvan Magalhaes NEW
Claire N GillianGermanyAnna Fali NEW
Tony W RoysterItalyElwin Sharvill QUALIFIED
Aditya K TollnerArgentinaElwin Sharvill RENEWAL
Kadeem U ChuiGermanyXuxue Feng RENEWAL
Octavia N GillianGermanyElwin Sharvill NEGOTIATION
Francesco C MacleadAustraliaAnna Fali UNQUALIFIED
Mujtaba W FigeroaJapanIoni Bowcher NEGOTIATION
Mayumi A AmigonBrazilXuxue Feng RENEWAL
Antonio X CampainAustraliaIoni Bowcher QUALIFIED
Jennifer X TollnerAustraliaElwin Sharvill NEW
Maisha Z RulapaughUnited KingdomIoni Bowcher PROPOSAL
James U VenereItalyElwin Sharvill NEW
Chavez N FlosiIndiaOnyama Limba UNQUALIFIED
Francesco H SlusarskiFranceOnyama Limba NEGOTIATION
Nicolas Z BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas F SaylorsIndiaAsiya Javayant UNQUALIFIED
Salvatore L VocelkaJapanStephen Shaw UNQUALIFIED
Morrow M MaletFranceAsiya Javayant QUALIFIED
Jeanfrancois B KolmetzBrazilIoni Bowcher PROPOSAL
Frozen Columns
Name
David M Stockham
Octavia F Ferencz
Ivar A Shinko
Juan Y Bowley
Aditya Y Saylors
Nicolas Y Stenseth
Octavia Y Vocelka
Mujtaba H Vocelka
Mayumi K Bowley
Ricardo C Saylors
Munro S Marrier
Jeanfrancois E Darakjy
Kaitlin F Flosi
Cody B Slusarski
Greenwood I Albares
Murillo Y Bowley
David E Caldarera
Arvin M Kolmetz
Nicolas F Waycott
Maisha C Waycott
Salvatore K Chui
Jeanfrancois C Morasca
Isabel K Sergi
James B Waycott
Maria D Glick
Arvin M Slusarski
Ashley X Gillian
Claire I Amigon
Cody Q Marrier
Isabel G Gaucho
Mayumi X Foller
Isabel X Tollner
Maria Q Stockham
Jefferson T Caldarera
James Y Vocelka
Isabel C Paprocki
Emily S Briddick
Cody S Caldarera
Maria G Albares
Morrow Y Marrier
Misaki Y Maclead
Jeanfrancois C Amigon
Misaki K Morasca
Aditya J Nestle
Maisha X Albares
Nicolas J Morasca
Stacey N Marrier
Murillo N Whobrey
Wickens C Stenseth
Izzy W Malet
IdCountryDate
1000France2026-07-25
1001Germany2026-07-23
1002Australia2026-07-18
1003Spain2026-07-25
1004Japan2026-07-26
1005France2026-07-04
1006Canada2026-07-23
1007Brazil2026-07-10
1008Italy2026-07-11
1009Italy2026-07-24
1010Canada2026-07-07
1011Japan2026-07-12
1012Argentina2026-07-20
1013Argentina2026-07-22
1014United Kingdom2026-07-15
1015France2026-07-12
1016United Kingdom2026-07-08
1017Italy2026-07-01
1018Germany2026-07-11
1019Germany2026-07-19
1020Australia2026-07-24
1021Brazil2026-07-08
1022Japan2026-07-11
1023Spain2026-07-17
1024Canada2026-07-07
1025Spain2026-07-27
1026Japan2026-07-02
1027Italy2026-07-03
1028France2026-07-26
1029Germany2026-07-18
1030United Kingdom2026-06-30
1031Germany2026-07-26
1032Canada2026-07-29
1033Canada2026-07-04
1034United Kingdom2026-07-03
1035Australia2026-07-16
1036Australia2026-07-02
1037Argentina2026-07-04
1038United Kingdom2026-07-12
1039Italy2026-07-27
1040Japan2026-07-20
1041Canada2026-07-18
1042Russia2026-07-08
1043United Kingdom2026-07-04
1044Canada2026-07-13
1045Brazil2026-07-11
1046Canada2026-07-10
1047Brazil2026-07-11
1048Brazil2026-06-30
1049Spain2026-07-17

On-Demand Data

NameIdCountryDate
Aika I Figeroa1000Brazil2026-07-08
Claire H Paprocki1001Canada2026-07-02
Tony B Glick1002Russia2026-07-21
Aika D Stockham1003Japan2026-07-18
Misaki N Kolmetz1004France2026-07-07
Darci W Gaucho1005Japan2026-07-04
Octavia G Stockham1006Brazil2026-07-02
Aruna M Dilliard1007Australia2026-07-18
Kadeem N Chui1008Australia2026-07-20
Kadeem V Caldarera1009Russia2026-07-23
Alejandro N Caldarera1010Japan2026-07-11
Rodrigues V Tollner1011Argentina2026-07-13
Alejandro Q Morasca1012Russia2026-07-29
Claire E Marrier1013Russia2026-07-27
Morrow B Slusarski1014Russia2026-07-25
Leja U Poquette1015India2026-07-05
Jennifer E Butt1016Spain2026-07-24
Julie G Malet1017Italy2026-07-22
Ricardo O Ostrosky1018Argentina2026-07-24
Aika H Foller1019Brazil2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo T CaldareraArgentinaBernardo Dominic NEW
Mayumi R AlbaresSpainXuxue Feng NEGOTIATION
Ashley G ChuiGermanyAsiya Javayant RENEWAL
Jones F WhobreyAustraliaAnna Fali UNQUALIFIED
Deepesh A CaldareraAustraliaAnna Fali RENEWAL
Jennifer U RulapaughIndiaStephen Shaw NEW
Maria L OldroydIndiaAnna Fali NEW
Wickens F StockhamItalyXuxue Feng NEW
Julie F StensethUnited KingdomIoni Bowcher NEGOTIATION
Cody U StensethGermanyAsiya Javayant UNQUALIFIED
Munro M FlosiGermanyOnyama Limba NEW
Clifford P SergiItalyAnna Fali QUALIFIED
Arvin J CaldareraArgentinaBernardo Dominic RENEWAL
Greenwood K MaletBrazilElwin Sharvill QUALIFIED
Octavia A WieserRussiaAsiya Javayant NEGOTIATION
Salvatore P FlosiCanadaAnna Fali NEW
Julie J VocelkaBrazilElwin Sharvill QUALIFIED
Izzy S FlosiAustraliaOnyama Limba PROPOSAL
Salvatore W StensethIndiaAmy Elsner QUALIFIED
Stacey K ShinkoGermanyIoni Bowcher NEW
Clifford M PaprockiArgentinaStephen Shaw QUALIFIED
Juan Q OstroskyRussiaAsiya Javayant NEW
Tony U PaprockiUnited KingdomStephen Shaw NEW
Nicolas H KuskoItalyIvan Magalhaes NEGOTIATION
Tony R RoysterUnited KingdomAsiya Javayant PROPOSAL
Darci G RimCanadaXuxue Feng QUALIFIED
Jefferson Y SergiRussiaStephen Shaw NEGOTIATION
Deepesh D RutaItalyIvan Magalhaes UNQUALIFIED
Aruna X GauchoJapanIvan Magalhaes RENEWAL
Morrow I StensethRussiaAmy Elsner RENEWAL
Jeanfrancois J GarufiGermanyXuxue Feng RENEWAL
Darci R AlbaresItalyAmy Elsner NEGOTIATION
Nicolas Z ChuiIndiaIoni Bowcher RENEWAL
Faith L AlbaresArgentinaOnyama Limba NEGOTIATION
David D SaylorsRussiaBernardo Dominic NEW
Misaki D OstroskyGermanyAnna Fali QUALIFIED
Murillo U DarakjyIndiaIoni Bowcher PROPOSAL
Morrow C SlusarskiBrazilStephen Shaw QUALIFIED
Silvio K VenereJapanAnna Fali PROPOSAL
David Y GlickIndiaStephen Shaw 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>