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
Maria Z VenereSpainBernardo Dominic QUALIFIED
Darci A InouyeAustraliaStephen Shaw QUALIFIED
Jefferson A OldroydJapanAsiya Javayant QUALIFIED
Ashley B TollnerItalyXuxue Feng NEGOTIATION
Smith A GauchoArgentinaAmy Elsner NEGOTIATION
Ricardo P AlbaresGermanyAsiya Javayant NEGOTIATION
Isabel J RoysterJapanStephen Shaw UNQUALIFIED
Isabel K RulapaughSpainIoni Bowcher NEW
Ashley I NickaBrazilAsiya Javayant PROPOSAL
James T RimItalyAnna Fali NEGOTIATION
Ricardo K ShinkoAustraliaBernardo Dominic UNQUALIFIED
Clifford T KuskoItalyOnyama Limba RENEWAL
Rodrigues G SchemmerItalyIoni Bowcher UNQUALIFIED
Francesco S NickaUnited KingdomAsiya Javayant UNQUALIFIED
Jones S CaldareraCanadaBernardo Dominic NEGOTIATION
Emily P CaudyRussiaBernardo Dominic QUALIFIED
Aruna P VocelkaJapanElwin Sharvill UNQUALIFIED
Kadeem A StensethFranceStephen Shaw UNQUALIFIED
Maria G RulapaughArgentinaXuxue Feng PROPOSAL
Kadeem V IturbideFranceXuxue Feng NEW
Greenwood J DilliardUnited KingdomXuxue Feng NEW
Morrow S NickaRussiaStephen Shaw RENEWAL
Murillo C OstroskyCanadaXuxue Feng UNQUALIFIED
Arvin K RulapaughRussiaAmy Elsner NEGOTIATION
Aika D InouyeUnited KingdomAnna Fali QUALIFIED
Clifford W AmigonSpainAsiya Javayant RENEWAL
Maria M RutaFranceIoni Bowcher NEGOTIATION
Rodrigues M RulapaughArgentinaIvan Magalhaes NEGOTIATION
Deepesh A NickaRussiaAmy Elsner QUALIFIED
Francesco V FigeroaRussiaIvan Magalhaes PROPOSAL
Mujtaba O WhobreyItalyIvan Magalhaes NEW
Nicolas K AlbaresItalyIvan Magalhaes PROPOSAL
Jeanfrancois D MacleadFranceOnyama Limba QUALIFIED
Misaki C DarakjyItalyElwin Sharvill NEW
Alejandro A GauchoBrazilOnyama Limba QUALIFIED
Morrow A MacleadRussiaIvan Magalhaes PROPOSAL
Kaitlin K CaudyJapanIoni Bowcher RENEWAL
Silvio H PoquetteGermanyXuxue Feng NEGOTIATION
Tony J StockhamRussiaIvan Magalhaes NEW
Wickens D FerenczBrazilAnna Fali NEW
Mayumi X NickaSpainAmy Elsner QUALIFIED
Mayumi Y GauchoAustraliaIvan Magalhaes RENEWAL
Isabel S InouyeSpainIoni Bowcher PROPOSAL
Tony D SergiJapanElwin Sharvill NEW
Antonio X CampainArgentinaElwin Sharvill UNQUALIFIED
Darci V DilliardRussiaBernardo Dominic PROPOSAL
Jeanfrancois K DarakjyGermanyAnna Fali NEW
James Q OstroskyIndiaIoni Bowcher NEGOTIATION
Johnson F FigeroaItalyBernardo Dominic PROPOSAL
Misaki U RoysterAustraliaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba Q BologniaRussiaStephen Shaw NEW
Francesco E PoquetteBrazilElwin Sharvill QUALIFIED
Juan B IturbideArgentinaStephen Shaw RENEWAL
Emily Q OldroydArgentinaAmy Elsner UNQUALIFIED
Leon D FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Ashley I MacleadArgentinaStephen Shaw UNQUALIFIED
James S SaylorsUnited KingdomAsiya Javayant RENEWAL
Munro T FerenczGermanyBernardo Dominic NEW
Clifford Z OldroydBrazilAmy Elsner PROPOSAL
Murillo L RutaJapanBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith H KuskoCanada2025-04-21Morlong Associates NEW50Onyama Limba
1001Jeanfrancois Q TollnerArgentina2025-04-20Rangoni Of Florence PROPOSAL75Asiya Javayant
1002Adams K FigeroaGermany2025-04-23Truhlar And Truhlar Attys PROPOSAL22Ivan Magalhaes
1003Octavia K PoquetteRussia2025-04-01Rousseaux, Michael Esq RENEWAL34Bernardo Dominic
1004Salvatore R WaycottGermany2025-04-02Benton, John B Jr NEGOTIATION92Asiya Javayant
1005Antonio T CaldareraRussia2025-04-19Printing Dimensions UNQUALIFIED96Anna Fali
1006Ivar J SergiAustralia2025-04-08Feiner Bros RENEWAL90Amy Elsner
1007Leon O ShinkoGermany2025-04-30Commercial Press NEGOTIATION20Anna Fali
1008Wickens J ChuiItaly2025-04-08Chemel, James L Cpa NEGOTIATION14Amy Elsner
1009Jennifer O PaprockiCanada2025-04-28Benton, John B Jr PROPOSAL12Stephen Shaw
1010Costa G SaylorsFrance2025-04-14Buckley Miller Wright QUALIFIED28Anna Fali
1011Deepesh F IturbideCanada2025-04-24Chapman, Ross E Esq NEGOTIATION29Asiya Javayant
1012Johnson Y MarrierGermany2025-04-29Dorl, James J Esq RENEWAL80Ivan Magalhaes
1013Leja X RimFrance2025-04-18Chemel, James L Cpa RENEWAL9Onyama Limba
1014Munro A GillianRussia2025-04-23Feiner Bros NEGOTIATION44Elwin Sharvill
1015Mujtaba H NickaSpain2025-04-26Chanay, Jeffrey A Esq QUALIFIED16Stephen Shaw
1016Cody G MacleadGermany2025-04-20Rangoni Of Florence UNQUALIFIED14Bernardo Dominic
1017Silvio E OstroskyUnited Kingdom2025-04-21Morlong Associates NEW91Ioni Bowcher
1018Izzy Y FollerJapan2025-04-01Chapman, Ross E Esq PROPOSAL32Bernardo Dominic
1019Jennifer W RoysterBrazil2025-04-13Commercial Press RENEWAL5Elwin Sharvill
1020Emily R WaycottIndia2025-04-07Truhlar And Truhlar Attys QUALIFIED46Stephen Shaw
1021Cody A TollnerUnited Kingdom2025-04-14King, Christopher A Esq NEGOTIATION97Bernardo Dominic
1022Kaitlin Z FerenczItaly2025-04-20Commercial Press NEW30Bernardo Dominic
1023Antonio N RimSpain2025-04-19Chemel, James L Cpa RENEWAL11Stephen Shaw
1024Octavia U ChuiGermany2025-04-04King, Christopher A Esq RENEWAL67Anna Fali
1025Alejandro N MaletSpain2025-04-14Truhlar And Truhlar Attys PROPOSAL24Onyama Limba
1026Claire P BriddickIndia2025-04-30Commercial Press RENEWAL81Xuxue Feng
1027Faith H InouyeArgentina2025-04-15Buckley Miller Wright RENEWAL87Onyama Limba
1028Antonio C BologniaItaly2025-04-12Benton, John B Jr PROPOSAL11Stephen Shaw
1029Salvatore M VocelkaJapan2025-04-12Rousseaux, Michael Esq NEW70Bernardo Dominic
1030Deepesh W GillianRussia2025-04-15Rangoni Of Florence UNQUALIFIED32Xuxue Feng
1031Salvatore V OldroydBrazil2025-04-09Feiner Bros QUALIFIED61Elwin Sharvill
1032Julie T GillianJapan2025-04-30Truhlar And Truhlar Attys NEW62Bernardo Dominic
1033Antonio K StockhamFrance2025-04-30Feiner Bros NEGOTIATION40Asiya Javayant
1034Tony A FlosiBrazil2025-04-07Commercial Press NEGOTIATION74Onyama Limba
1035Wickens X GlickUnited Kingdom2025-04-07Chemel, James L Cpa UNQUALIFIED3Anna Fali
1036Salvatore O WhobreyJapan2025-04-09Rousseaux, Michael Esq QUALIFIED35Anna Fali
1037Arvin I CaudyRussia2025-04-03Truhlar And Truhlar Attys QUALIFIED80Onyama Limba
1038Kaitlin E PerinFrance2025-04-18Chemel, James L Cpa QUALIFIED91Onyama Limba
1039Clifford R WhobreyCanada2025-04-03Rousseaux, Michael Esq RENEWAL35Asiya Javayant
1040Julie H RutaSpain2025-04-03Buckley Miller Wright PROPOSAL51Xuxue Feng
1041Antonio J ButtFrance2025-04-15Commercial Press PROPOSAL88Elwin Sharvill
1042Murillo U CaldareraAustralia2025-04-13Rousseaux, Michael Esq UNQUALIFIED12Stephen Shaw
1043Ricardo H RutaItaly2025-04-04Truhlar And Truhlar Attys NEGOTIATION33Bernardo Dominic
1044Maisha Q AlbaresSpain2025-04-01Rangoni Of Florence PROPOSAL62Amy Elsner
1045Mayumi J GauchoCanada2025-04-09Chanay, Jeffrey A Esq QUALIFIED54Xuxue Feng
1046Clifford M SlusarskiFrance2025-04-28Chanay, Jeffrey A Esq PROPOSAL92Xuxue Feng
1047Tony I PaprockiItaly2025-04-28Benton, John B Jr NEGOTIATION78Xuxue Feng
1048Alejandro F NestleAustralia2025-04-07Printing Dimensions QUALIFIED48Ioni Bowcher
1049Johnson K FerenczSpain2025-04-27Feltz Printing Service NEW36Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Salvatore H BowleyCanadaStephen Shaw NEGOTIATION
Salvatore F FlosiUnited KingdomStephen Shaw QUALIFIED
Maisha V OldroydJapanOnyama Limba RENEWAL
Johnson A GarufiJapanElwin Sharvill RENEWAL
Darci H VocelkaSpainElwin Sharvill PROPOSAL
Munro U CaldareraItalyIvan Magalhaes NEW
Munro U GarufiCanadaIvan Magalhaes RENEWAL
Misaki P MaletJapanIoni Bowcher QUALIFIED
David S RoysterFranceIoni Bowcher RENEWAL
Izzy Y CaudyItalyOnyama Limba PROPOSAL
Emily I KolmetzCanadaXuxue Feng NEGOTIATION
Kadeem F IturbideRussiaXuxue Feng NEGOTIATION
Misaki Y FigeroaFranceElwin Sharvill NEW
Sinclair H ButtAustraliaIvan Magalhaes QUALIFIED
Salvatore C VenereUnited KingdomAmy Elsner QUALIFIED
Maria M VocelkaArgentinaXuxue Feng RENEWAL
Jennifer E OstroskyBrazilIoni Bowcher UNQUALIFIED
Ivar N FlosiAustraliaBernardo Dominic QUALIFIED
Munro S FlosiIndiaAnna Fali UNQUALIFIED
Wickens J FerenczRussiaIoni Bowcher PROPOSAL
Smith W MacleadItalyStephen Shaw QUALIFIED
Kadeem D MacleadCanadaBernardo Dominic RENEWAL
Maisha V FlosiUnited KingdomXuxue Feng NEW
Jones I DoeGermanyXuxue Feng QUALIFIED
Tony W KolmetzUnited KingdomAmy Elsner RENEWAL
Leja G GarufiRussiaElwin Sharvill NEGOTIATION
James I ButtAustraliaAsiya Javayant QUALIFIED
Nicolas K BologniaArgentinaIoni Bowcher NEGOTIATION
Nicolas S GauchoJapanAmy Elsner QUALIFIED
Smith C GarufiJapanBernardo Dominic QUALIFIED
Jefferson I BowleyArgentinaOnyama Limba RENEWAL
Octavia X CampainArgentinaOnyama Limba NEGOTIATION
Octavia N GauchoSpainIvan Magalhaes NEW
Arvin N RimGermanyAnna Fali PROPOSAL
Clifford X SchemmerFranceOnyama Limba NEW
Arvin P CaldareraUnited KingdomIoni Bowcher NEW
Juan W BologniaCanadaXuxue Feng NEW
Darci H ButtAustraliaAsiya Javayant NEW
Nicolas M StensethCanadaIvan Magalhaes UNQUALIFIED
Morrow G RulapaughArgentinaXuxue Feng PROPOSAL
Nicolas R GlickBrazilAnna Fali PROPOSAL
Aruna V KuskoItalyOnyama Limba PROPOSAL
Sinclair S VenereFranceIoni Bowcher UNQUALIFIED
Ricardo I MarrierItalyStephen Shaw NEW
Faith J RutaGermanyStephen Shaw NEW
Deepesh E ButtRussiaElwin Sharvill RENEWAL
Murillo V MaletJapanXuxue Feng PROPOSAL
Wickens C GauchoUnited KingdomXuxue Feng PROPOSAL
Clifford J VocelkaUnited KingdomStephen Shaw NEW
Adams W AmigonRussiaAsiya Javayant RENEWAL
Frozen Columns
Name
Claire F Bolognia
Smith R Slusarski
David Y Albares
Mayumi Y Malet
Jeanfrancois K Ostrosky
Stacey Y Bowley
Jennifer S Flosi
James U Wieser
Juan S Bolognia
Emily Y Tollner
Wickens X Saylors
Deepesh K Perin
Darci E Ostrosky
Claire J Tollner
Francesco H Bolognia
Morrow V Kusko
Izzy U Darakjy
Francesco E Nicka
Aditya V Briddick
Claire Z Briddick
Aditya G Ferencz
Emily V Ruta
Salvatore S Waycott
Aditya D Butt
Costa A Iturbide
Leon R Butt
Greenwood L Tollner
Arvin M Oldroyd
Deepesh I Albares
Silvio B Marrier
Jefferson P Rim
Salvatore N Rulapaugh
Smith L Poquette
Jones D Slusarski
Clifford V Iturbide
Salvatore E Butt
Ivar V Briddick
Maria Z Darakjy
Maisha H Garufi
Murillo F Slusarski
Stacey V Briddick
Tony T Iturbide
Emily C Darakjy
Aditya R Figeroa
Alejandro H Poquette
Clifford R Ostrosky
David K Paprocki
Aruna R Wieser
Jeanfrancois E Saylors
Maria T Venere
IdCountryDate
1000Russia2025-04-15
1001Japan2025-04-08
1002United Kingdom2025-04-16
1003France2025-04-14
1004Germany2025-04-25
1005France2025-04-19
1006India2025-04-30
1007Brazil2025-04-05
1008Italy2025-04-07
1009Japan2025-04-19
1010United Kingdom2025-04-04
1011Argentina2025-04-13
1012Germany2025-04-26
1013Argentina2025-04-29
1014Brazil2025-04-15
1015Australia2025-04-15
1016Japan2025-04-11
1017India2025-04-07
1018France2025-04-25
1019France2025-04-26
1020Spain2025-04-12
1021Canada2025-04-08
1022Argentina2025-04-24
1023France2025-04-28
1024Brazil2025-04-13
1025Brazil2025-04-20
1026India2025-04-12
1027Russia2025-04-30
1028Australia2025-04-17
1029Russia2025-04-06
1030Canada2025-04-18
1031Italy2025-04-27
1032Brazil2025-04-21
1033Japan2025-04-23
1034Argentina2025-04-22
1035Australia2025-04-22
1036India2025-04-23
1037Argentina2025-04-30
1038France2025-04-25
1039Italy2025-04-28
1040United Kingdom2025-04-12
1041Argentina2025-04-25
1042Canada2025-04-28
1043Argentina2025-04-04
1044Canada2025-04-17
1045Spain2025-04-09
1046Italy2025-04-27
1047Japan2025-04-18
1048India2025-04-03
1049France2025-04-05

On-Demand Data

NameIdCountryDate
Murillo F Whobrey1000India2025-04-24
Mayumi S Inouye1001Argentina2025-04-28
Clifford M Bolognia1002Spain2025-04-30
Adams T Ostrosky1003France2025-04-11
Chavez J Nestle1004Spain2025-04-16
Ashley L Flosi1005Australia2025-04-19
Julie N Morasca1006Russia2025-04-11
Maisha Z Darakjy1007United Kingdom2025-04-03
Silvio D Wieser1008Canada2025-04-14
Jeanfrancois Q Whobrey1009Brazil2025-04-07
Costa A Inouye1010Germany2025-04-11
Mayumi H Inouye1011Italy2025-04-17
Leon F Iturbide1012Spain2025-04-18
Aditya O Shinko1013Italy2025-04-05
Greenwood G Kolmetz1014Japan2025-04-25
Julie F Foller1015Canada2025-04-20
Aruna Y Rim1016Australia2025-04-13
Leja T Doe1017Spain2025-04-03
Clifford U Darakjy1018Australia2025-04-30
Murillo M Ferencz1019Russia2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo N DilliardFranceAsiya Javayant NEW
Clifford H GlickRussiaStephen Shaw NEGOTIATION
Isabel L OstroskyFranceXuxue Feng UNQUALIFIED
Tony T BriddickArgentinaElwin Sharvill RENEWAL
Tony X KolmetzItalyStephen Shaw RENEWAL
Leon X GlickSpainOnyama Limba PROPOSAL
Aika O BologniaArgentinaIvan Magalhaes NEW
Johnson N MacleadRussiaAnna Fali UNQUALIFIED
Maisha U BowleyCanadaAnna Fali NEGOTIATION
Clifford U GillianJapanAnna Fali QUALIFIED
Aruna W StockhamAustraliaIvan Magalhaes NEW
Chavez L CaldareraIndiaIoni Bowcher QUALIFIED
Ricardo C CaudyRussiaIvan Magalhaes UNQUALIFIED
Greenwood V PoquetteUnited KingdomAnna Fali RENEWAL
Izzy M BriddickAustraliaXuxue Feng NEW
Aruna A VocelkaJapanOnyama Limba PROPOSAL
Ivar R CaldareraGermanyAsiya Javayant UNQUALIFIED
Sinclair W PoquetteArgentinaXuxue Feng RENEWAL
Clifford L SlusarskiAustraliaAsiya Javayant NEW
Costa P DarakjyRussiaAnna Fali UNQUALIFIED
Jefferson P GauchoIndiaAsiya Javayant UNQUALIFIED
Rodrigues F GillianGermanyAsiya Javayant PROPOSAL
Faith R KuskoFranceIoni Bowcher NEW
Jennifer E MaletArgentinaIvan Magalhaes PROPOSAL
Cody O MorascaItalyAsiya Javayant NEW
Smith U FerenczUnited KingdomIvan Magalhaes NEW
Mujtaba J PerinRussiaOnyama Limba RENEWAL
Leja L IturbideGermanyAsiya Javayant UNQUALIFIED
David Z FollerArgentinaBernardo Dominic UNQUALIFIED
Ricardo T FerenczCanadaAnna Fali NEW
Tony P AmigonAustraliaStephen Shaw NEGOTIATION
Jennifer X KolmetzIndiaAnna Fali RENEWAL
Faith B CaudyIndiaStephen Shaw NEGOTIATION
Maisha R GlickCanadaXuxue Feng UNQUALIFIED
Murillo R WieserSpainIoni Bowcher UNQUALIFIED
Cody F WaycottBrazilAnna Fali NEW
Leja S GillianCanadaIoni Bowcher PROPOSAL
Emily O GlickGermanyXuxue Feng NEGOTIATION
Chavez Q OldroydIndiaIoni Bowcher UNQUALIFIED
Alejandro A NickaUnited KingdomIoni Bowcher 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>