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
Silvio K RutaArgentinaStephen Shaw NEGOTIATION
Jones Z GillianJapanStephen Shaw PROPOSAL
Costa S SlusarskiBrazilBernardo Dominic NEW
Jennifer D InouyeRussiaAmy Elsner NEGOTIATION
Chavez K CaldareraAustraliaAmy Elsner PROPOSAL
Antonio R RimItalyStephen Shaw NEW
Ashley G PaprockiUnited KingdomAsiya Javayant PROPOSAL
Francesco D WieserJapanIvan Magalhaes QUALIFIED
Izzy B OstroskyCanadaIvan Magalhaes NEW
Cody S DoeRussiaAsiya Javayant QUALIFIED
Sinclair H WaycottItalyAmy Elsner NEGOTIATION
Cody R ButtCanadaElwin Sharvill RENEWAL
Murillo C NickaUnited KingdomElwin Sharvill NEGOTIATION
Jefferson S GarufiBrazilAmy Elsner NEW
Leja I VocelkaJapanXuxue Feng RENEWAL
Adams W CaudyIndiaAsiya Javayant NEGOTIATION
Emily W GillianGermanyIvan Magalhaes NEGOTIATION
Mayumi I SlusarskiCanadaAmy Elsner RENEWAL
Jones A GillianRussiaAnna Fali RENEWAL
Mujtaba I BriddickJapanIvan Magalhaes PROPOSAL
Maria R DarakjyIndiaAsiya Javayant NEW
Claire C MorascaSpainIvan Magalhaes QUALIFIED
Izzy V MarrierAustraliaIoni Bowcher NEGOTIATION
Costa H BriddickCanadaElwin Sharvill NEW
Munro V CaudyGermanyAmy Elsner QUALIFIED
Ivar U IturbideIndiaOnyama Limba RENEWAL
Maria W GauchoSpainAmy Elsner NEGOTIATION
Jones C TollnerItalyOnyama Limba NEW
Johnson N RoysterGermanyOnyama Limba PROPOSAL
Darci S SaylorsGermanyElwin Sharvill NEW
Silvio F VocelkaArgentinaXuxue Feng UNQUALIFIED
Izzy N WaycottBrazilAsiya Javayant NEW
Rodrigues T DoeJapanStephen Shaw PROPOSAL
Jones A AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Arvin D DoeArgentinaAmy Elsner QUALIFIED
Kaitlin Y VocelkaSpainBernardo Dominic NEGOTIATION
Jennifer Y ChuiCanadaXuxue Feng RENEWAL
Smith Z InouyeBrazilOnyama Limba QUALIFIED
Aika G PoquetteSpainAnna Fali RENEWAL
Leon E FlosiIndiaStephen Shaw UNQUALIFIED
Jones J DilliardIndiaBernardo Dominic RENEWAL
Octavia P WaycottBrazilBernardo Dominic NEGOTIATION
Juan P SergiItalyIoni Bowcher NEW
Izzy M PaprockiArgentinaAnna Fali UNQUALIFIED
Adams W MaletCanadaAsiya Javayant RENEWAL
Darci F DilliardAustraliaStephen Shaw PROPOSAL
Wickens L AmigonBrazilAmy Elsner NEW
Aditya Y MacleadJapanBernardo Dominic UNQUALIFIED
Wickens V MaletJapanStephen Shaw RENEWAL
Jefferson E VenereItalyIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer U SaylorsIndiaAmy Elsner QUALIFIED
Darci L MacleadBrazilIvan Magalhaes PROPOSAL
Jeanfrancois A NestleRussiaElwin Sharvill UNQUALIFIED
Arvin D CaudyFranceBernardo Dominic NEW
Misaki W DilliardArgentinaIoni Bowcher NEW
Jeanfrancois X GarufiUnited KingdomBernardo Dominic PROPOSAL
Murillo I BriddickUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer Q VocelkaSpainXuxue Feng RENEWAL
Maisha R CaudyRussiaOnyama Limba PROPOSAL
Leon P OstroskyIndiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois A OstroskyItaly2025-06-09Feltz Printing Service RENEWAL55Asiya Javayant
1001Salvatore Q WhobreyCanada2025-05-24Rousseaux, Michael Esq NEW99Anna Fali
1002Johnson B FlosiJapan2025-05-22Printing Dimensions NEGOTIATION13Ivan Magalhaes
1003Wickens L CaudyBrazil2025-06-12Truhlar And Truhlar Attys RENEWAL89Xuxue Feng
1004Cody I GarufiGermany2025-06-11Chemel, James L Cpa PROPOSAL33Stephen Shaw
1005Wickens H NestleBrazil2025-06-08King, Christopher A Esq QUALIFIED82Amy Elsner
1006Mayumi P NestleGermany2025-06-15Benton, John B Jr RENEWAL21Onyama Limba
1007Kadeem A DilliardJapan2025-06-05Feltz Printing Service UNQUALIFIED68Ivan Magalhaes
1008Izzy X VocelkaGermany2025-05-27King, Christopher A Esq PROPOSAL76Elwin Sharvill
1009Francesco H PoquetteJapan2025-05-19Dorl, James J Esq QUALIFIED33Xuxue Feng
1010Deepesh T MaletAustralia2025-06-02Dorl, James J Esq NEGOTIATION77Xuxue Feng
1011Kaitlin Q VenereAustralia2025-06-08Buckley Miller Wright UNQUALIFIED71Ivan Magalhaes
1012Juan O VenereSpain2025-05-31Feltz Printing Service PROPOSAL92Bernardo Dominic
1013Chavez W PaprockiSpain2025-05-27Chanay, Jeffrey A Esq NEW80Xuxue Feng
1014Tony D NestleUnited Kingdom2025-05-24Morlong Associates QUALIFIED28Onyama Limba
1015Leja G TollnerAustralia2025-06-11Chemel, James L Cpa NEW9Anna Fali
1016Rodrigues S BowleyBrazil2025-06-03Benton, John B Jr PROPOSAL85Onyama Limba
1017Alejandro G GlickArgentina2025-06-05Rousseaux, Michael Esq PROPOSAL90Stephen Shaw
1018Isabel K StockhamIndia2025-06-13Commercial Press NEGOTIATION66Elwin Sharvill
1019Costa P DilliardSpain2025-06-06Feltz Printing Service UNQUALIFIED60Xuxue Feng
1020Emily O FerenczGermany2025-06-09Chanay, Jeffrey A Esq RENEWAL94Onyama Limba
1021Izzy R GlickIndia2025-05-28Chapman, Ross E Esq NEW81Xuxue Feng
1022Clifford D OstroskyCanada2025-06-16Printing Dimensions NEGOTIATION64Bernardo Dominic
1023Kaitlin K GauchoUnited Kingdom2025-06-12King, Christopher A Esq PROPOSAL20Stephen Shaw
1024Aruna P ShinkoAustralia2025-06-07Chemel, James L Cpa QUALIFIED7Ioni Bowcher
1025Wickens K NestleBrazil2025-06-09Rangoni Of Florence NEGOTIATION92Bernardo Dominic
1026Leon A BowleyItaly2025-06-16Morlong Associates PROPOSAL55Xuxue Feng
1027Cody H FigeroaRussia2025-06-07Chemel, James L Cpa QUALIFIED98Stephen Shaw
1028Smith B StockhamBrazil2025-05-18Morlong Associates QUALIFIED37Ivan Magalhaes
1029Maisha U WieserUnited Kingdom2025-06-10Morlong Associates PROPOSAL60Ioni Bowcher
1030Arvin E StensethArgentina2025-06-03Feiner Bros NEW89Asiya Javayant
1031Ricardo V MacleadBrazil2025-05-19Commercial Press RENEWAL72Anna Fali
1032Cody R SlusarskiJapan2025-06-07Rangoni Of Florence QUALIFIED40Ioni Bowcher
1033Murillo F TollnerFrance2025-05-19Rousseaux, Michael Esq PROPOSAL89Ioni Bowcher
1034Nicolas K SlusarskiSpain2025-06-14Chapman, Ross E Esq UNQUALIFIED57Xuxue Feng
1035Kadeem T PerinGermany2025-06-09Chapman, Ross E Esq PROPOSAL77Anna Fali
1036Octavia I KuskoArgentina2025-05-31Feltz Printing Service NEGOTIATION97Anna Fali
1037Jeanfrancois D WhobreyFrance2025-06-15Benton, John B Jr UNQUALIFIED47Xuxue Feng
1038Wickens T KuskoCanada2025-06-14Benton, John B Jr QUALIFIED4Xuxue Feng
1039Aruna K WieserGermany2025-06-08Printing Dimensions NEW4Elwin Sharvill
1040Aika C WhobreyRussia2025-05-20Rangoni Of Florence QUALIFIED5Ioni Bowcher
1041Claire F KolmetzIndia2025-05-18Buckley Miller Wright NEW7Stephen Shaw
1042Jones O WieserGermany2025-05-21Chapman, Ross E Esq NEW1Bernardo Dominic
1043Murillo G SlusarskiSpain2025-05-23Rangoni Of Florence NEW13Bernardo Dominic
1044Munro W FigeroaUnited Kingdom2025-05-30Chapman, Ross E Esq UNQUALIFIED6Anna Fali
1045Chavez O StensethSpain2025-05-25Rousseaux, Michael Esq UNQUALIFIED2Asiya Javayant
1046Mayumi M VenereIndia2025-06-02Buckley Miller Wright QUALIFIED9Onyama Limba
1047Aruna S MacleadArgentina2025-05-24Chemel, James L Cpa QUALIFIED53Asiya Javayant
1048Morrow E SchemmerUnited Kingdom2025-06-02Feiner Bros RENEWAL42Xuxue Feng
1049Deepesh P PerinGermany2025-05-30Feltz Printing Service QUALIFIED5Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Adams A GlickGermanyAsiya Javayant UNQUALIFIED
James P FollerBrazilAsiya Javayant NEGOTIATION
Cody P MacleadAustraliaAmy Elsner QUALIFIED
Isabel K DoeFranceStephen Shaw RENEWAL
Murillo T SlusarskiIndiaElwin Sharvill UNQUALIFIED
Faith R PerinBrazilStephen Shaw QUALIFIED
Tony J StensethRussiaOnyama Limba NEW
Darci U PoquetteSpainIoni Bowcher UNQUALIFIED
Tony M StensethJapanStephen Shaw NEGOTIATION
Claire I BologniaAustraliaBernardo Dominic UNQUALIFIED
Claire T WhobreyItalyXuxue Feng RENEWAL
Juan K OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Tony O BowleyItalyOnyama Limba UNQUALIFIED
Costa N SaylorsItalyOnyama Limba RENEWAL
Rodrigues C FigeroaUnited KingdomAnna Fali RENEWAL
Juan R WaycottFranceAsiya Javayant PROPOSAL
Adams A StensethFranceElwin Sharvill PROPOSAL
Salvatore Q StockhamCanadaIoni Bowcher QUALIFIED
Aika F InouyeFranceOnyama Limba RENEWAL
Cody T AlbaresSpainElwin Sharvill RENEWAL
Julie L DilliardAustraliaBernardo Dominic PROPOSAL
Wickens P SergiSpainAsiya Javayant NEGOTIATION
Stacey D DilliardSpainStephen Shaw NEW
Smith Z OstroskySpainIvan Magalhaes NEGOTIATION
Faith A GlickGermanyIoni Bowcher RENEWAL
Kadeem E SchemmerItalyAsiya Javayant UNQUALIFIED
Isabel T DarakjyArgentinaStephen Shaw PROPOSAL
Misaki S SchemmerFranceAsiya Javayant QUALIFIED
Izzy H MaletFranceXuxue Feng PROPOSAL
Deepesh K PoquetteCanadaAmy Elsner PROPOSAL
Johnson W BologniaJapanXuxue Feng UNQUALIFIED
Sinclair Q IturbideItalyElwin Sharvill QUALIFIED
Chavez Y MarrierAustraliaAnna Fali RENEWAL
Adams P WieserArgentinaAmy Elsner QUALIFIED
Maria M MarrierUnited KingdomOnyama Limba QUALIFIED
Aika M FlosiRussiaIvan Magalhaes QUALIFIED
Aruna D MorascaBrazilIoni Bowcher UNQUALIFIED
Maisha E PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Deepesh S GillianArgentinaAnna Fali NEW
Octavia S MorascaAustraliaXuxue Feng UNQUALIFIED
Sinclair A TollnerArgentinaStephen Shaw NEW
Johnson O VocelkaAustraliaXuxue Feng QUALIFIED
Octavia B InouyeItalyOnyama Limba NEW
Emily R FlosiAustraliaAnna Fali QUALIFIED
Julie Z CaudyAustraliaAsiya Javayant UNQUALIFIED
Clifford F PerinIndiaIoni Bowcher RENEWAL
Francesco N GlickJapanAmy Elsner NEGOTIATION
Faith I AmigonRussiaIvan Magalhaes NEW
Sinclair W NickaSpainBernardo Dominic QUALIFIED
Julie R GauchoAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Julie I Vocelka
Emily E Nestle
Ivar S Stockham
Claire C Bolognia
Juan E Morasca
Silvio F Sergi
Darci E Sergi
Julie V Iturbide
Arvin T Gillian
Julie Z Iturbide
Greenwood P Briddick
Kadeem T Ferencz
Faith X Ruta
Claire Y Figeroa
Emily Y Perin
Cody B Poquette
Rodrigues K Ruta
Maisha V Iturbide
Rodrigues I Chui
Maria R Caudy
Juan K Oldroyd
Ricardo P Garufi
Kaitlin D Bolognia
Maria D Shinko
Arvin N Ruta
Arvin D Wieser
Ashley I Ostrosky
Adams E Saylors
Leon P Malet
Octavia U Bowley
Isabel I Stenseth
Murillo I Amigon
Clifford T Iturbide
Ivar I Bowley
Jones C Rulapaugh
Antonio I Whobrey
Stacey R Inouye
Wickens O Venere
Cody Z Perin
Izzy S Figeroa
Morrow P Perin
Antonio P Rulapaugh
Misaki K Malet
Faith U Stenseth
Nicolas K Flosi
Kadeem O Ferencz
Darci Q Vocelka
Clifford S Paprocki
Leja Y Wieser
Leon S Sergi
IdCountryDate
1000Argentina2025-05-18
1001Spain2025-06-10
1002Australia2025-06-10
1003France2025-05-23
1004France2025-05-27
1005Brazil2025-05-21
1006United Kingdom2025-05-24
1007India2025-05-31
1008Argentina2025-06-02
1009Australia2025-05-23
1010Germany2025-05-27
1011Canada2025-06-13
1012France2025-05-18
1013India2025-06-08
1014India2025-05-25
1015Japan2025-05-19
1016Spain2025-06-04
1017United Kingdom2025-05-19
1018Italy2025-05-28
1019Japan2025-06-13
1020Russia2025-05-29
1021Spain2025-06-02
1022Spain2025-06-02
1023Japan2025-06-13
1024France2025-05-29
1025United Kingdom2025-05-27
1026Russia2025-05-21
1027Spain2025-05-19
1028Australia2025-06-11
1029India2025-05-27
1030Brazil2025-06-11
1031Australia2025-05-27
1032Japan2025-06-04
1033Spain2025-06-09
1034Brazil2025-06-06
1035Australia2025-05-28
1036Canada2025-06-03
1037Japan2025-06-09
1038Germany2025-06-13
1039United Kingdom2025-06-14
1040Canada2025-06-09
1041India2025-06-01
1042Brazil2025-05-29
1043France2025-06-16
1044Argentina2025-05-28
1045Brazil2025-06-01
1046Italy2025-06-05
1047Italy2025-06-04
1048Italy2025-06-01
1049United Kingdom2025-05-22

On-Demand Data

NameIdCountryDate
Deepesh O Figeroa1000France2025-06-11
Claire N Ferencz1001Brazil2025-06-16
Ivar O Poquette1002Spain2025-05-28
Maisha I Sergi1003United Kingdom2025-06-16
Isabel K Stenseth1004Brazil2025-06-08
Ashley J Slusarski1005Russia2025-06-05
Silvio G Doe1006Canada2025-05-21
Maisha F Waycott1007Germany2025-05-21
Maria N Ruta1008Argentina2025-05-19
Silvio F Chui1009France2025-06-02
Chavez V Ruta1010Japan2025-05-19
James Y Tollner1011Australia2025-06-08
Rodrigues A Poquette1012Russia2025-06-05
Smith T Marrier1013India2025-06-06
Adams Y Kusko1014Germany2025-06-01
Adams S Rim1015France2025-06-13
Misaki Q Caldarera1016Australia2025-05-20
Faith Y Butt1017Italy2025-06-04
Stacey I Ruta1018Germany2025-05-30
Francesco Q Caudy1019Argentina2025-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio H ChuiUnited KingdomStephen Shaw NEGOTIATION
Ricardo B GillianJapanStephen Shaw RENEWAL
Aika M AlbaresAustraliaOnyama Limba QUALIFIED
Julie P FollerIndiaIoni Bowcher NEGOTIATION
Costa Y GlickRussiaXuxue Feng QUALIFIED
Maria K FlosiJapanAmy Elsner QUALIFIED
Octavia L DarakjyGermanyAnna Fali RENEWAL
Francesco Y PerinUnited KingdomStephen Shaw QUALIFIED
Adams W SaylorsSpainOnyama Limba NEW
Leja Y MaletJapanOnyama Limba PROPOSAL
Aditya U PoquetteGermanyAsiya Javayant NEGOTIATION
Izzy A DilliardFranceAsiya Javayant UNQUALIFIED
Emily K RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Julie A NickaSpainIoni Bowcher PROPOSAL
Costa M MaletCanadaXuxue Feng PROPOSAL
Clifford F MaletFranceAmy Elsner NEGOTIATION
Claire W BologniaFranceElwin Sharvill PROPOSAL
Ivar E NickaArgentinaIvan Magalhaes UNQUALIFIED
Jones O FerenczCanadaAnna Fali NEGOTIATION
Salvatore C RimCanadaElwin Sharvill QUALIFIED
Claire Y CampainSpainBernardo Dominic NEGOTIATION
Kadeem R SlusarskiJapanAmy Elsner PROPOSAL
Jefferson P ShinkoSpainElwin Sharvill NEW
Darci N WhobreySpainStephen Shaw QUALIFIED
Emily N InouyeCanadaAnna Fali UNQUALIFIED
Kadeem U KolmetzGermanyBernardo Dominic QUALIFIED
Darci E CaudyUnited KingdomElwin Sharvill NEW
Adams G CaldareraArgentinaElwin Sharvill NEGOTIATION
Jennifer E NickaSpainAsiya Javayant QUALIFIED
Claire P PaprockiIndiaIvan Magalhaes PROPOSAL
Greenwood V VenereFranceAmy Elsner RENEWAL
Ivar G GarufiJapanOnyama Limba NEGOTIATION
Sinclair B MaletAustraliaIvan Magalhaes QUALIFIED
Murillo N OldroydSpainBernardo Dominic NEGOTIATION
Julie E BologniaFranceBernardo Dominic NEW
Antonio X DarakjyRussiaAmy Elsner QUALIFIED
Arvin Q VenereSpainAnna Fali PROPOSAL
Munro L SergiSpainIoni Bowcher NEGOTIATION
Jones K RutaGermanyAsiya Javayant PROPOSAL
Stacey M FlosiIndiaStephen Shaw 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>