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
Francesco T FollerCanadaElwin Sharvill PROPOSAL
Adams G DoeCanadaStephen Shaw NEGOTIATION
Cody S DarakjyUnited KingdomAsiya Javayant RENEWAL
Munro Z GlickSpainBernardo Dominic NEGOTIATION
Ricardo P OldroydIndiaStephen Shaw RENEWAL
Aditya E MaletRussiaStephen Shaw RENEWAL
Tony N MorascaGermanyElwin Sharvill PROPOSAL
Tony X KolmetzFranceAmy Elsner QUALIFIED
Johnson L VocelkaFranceAsiya Javayant RENEWAL
Tony U BowleyFranceXuxue Feng UNQUALIFIED
Ashley E FlosiAustraliaAnna Fali UNQUALIFIED
Mujtaba U PaprockiFranceAsiya Javayant QUALIFIED
Julie L StensethBrazilStephen Shaw RENEWAL
Mujtaba X StensethIndiaIvan Magalhaes NEW
Adams U CaudyRussiaOnyama Limba RENEWAL
Ashley T SergiArgentinaIvan Magalhaes RENEWAL
Aruna T PerinAustraliaAsiya Javayant NEW
Maisha Y AlbaresGermanyOnyama Limba UNQUALIFIED
Mujtaba O GlickArgentinaBernardo Dominic RENEWAL
Aruna E DoeSpainIvan Magalhaes UNQUALIFIED
Johnson Q RutaRussiaStephen Shaw NEW
Maisha X BowleyBrazilStephen Shaw NEW
Ashley O IturbideJapanBernardo Dominic PROPOSAL
Isabel C KolmetzFranceAmy Elsner PROPOSAL
Jefferson S GlickUnited KingdomStephen Shaw UNQUALIFIED
Ashley M StockhamGermanyIvan Magalhaes QUALIFIED
Faith Y MaletSpainOnyama Limba QUALIFIED
Julie I OldroydArgentinaAnna Fali UNQUALIFIED
Jefferson O StensethAustraliaIoni Bowcher UNQUALIFIED
Ashley M StockhamSpainAnna Fali RENEWAL
Jennifer W VocelkaSpainOnyama Limba QUALIFIED
Greenwood B SlusarskiSpainBernardo Dominic QUALIFIED
Aruna L GarufiItalyXuxue Feng NEGOTIATION
Murillo O MarrierFranceAnna Fali QUALIFIED
Morrow N MaletCanadaBernardo Dominic QUALIFIED
Jeanfrancois N SlusarskiRussiaStephen Shaw PROPOSAL
Sinclair E StockhamIndiaXuxue Feng NEW
Kaitlin U AmigonGermanyXuxue Feng UNQUALIFIED
Nicolas Y GlickCanadaIvan Magalhaes UNQUALIFIED
Munro R RulapaughCanadaAmy Elsner RENEWAL
Arvin W WhobreyBrazilStephen Shaw UNQUALIFIED
Izzy L NestleGermanyIoni Bowcher NEGOTIATION
Mayumi G StensethIndiaIoni Bowcher RENEWAL
Silvio U VocelkaArgentinaElwin Sharvill QUALIFIED
Clifford T NickaFranceAsiya Javayant UNQUALIFIED
Maria S FerenczJapanBernardo Dominic QUALIFIED
James L MaletBrazilStephen Shaw PROPOSAL
Wickens K SaylorsGermanyIoni Bowcher RENEWAL
Octavia M MorascaGermanyOnyama Limba UNQUALIFIED
Silvio Q VenereJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody N ChuiSpainOnyama Limba NEW
David C ButtArgentinaOnyama Limba UNQUALIFIED
Mayumi W RulapaughSpainAnna Fali UNQUALIFIED
James L ButtGermanyBernardo Dominic NEGOTIATION
Juan N CampainFranceIoni Bowcher NEW
Octavia S RimArgentinaIvan Magalhaes NEGOTIATION
Sinclair U KuskoFranceBernardo Dominic RENEWAL
Isabel R IturbideCanadaIoni Bowcher UNQUALIFIED
Rodrigues S WhobreyUnited KingdomXuxue Feng UNQUALIFIED
Antonio X SlusarskiCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro W GlickGermany2024-06-04Commercial Press UNQUALIFIED75Ioni Bowcher
1001Aika A DoeBrazil2024-05-26Printing Dimensions NEGOTIATION88Ioni Bowcher
1002Octavia A MarrierCanada2024-06-21Printing Dimensions PROPOSAL83Ivan Magalhaes
1003Alejandro A TollnerBrazil2024-05-25Dorl, James J Esq NEW99Bernardo Dominic
1004Leon T FigeroaSpain2024-06-05King, Christopher A Esq NEGOTIATION90Xuxue Feng
1005Johnson W SlusarskiSpain2024-06-09Rangoni Of Florence PROPOSAL55Ioni Bowcher
1006Jeanfrancois I KolmetzIndia2024-06-08King, Christopher A Esq UNQUALIFIED33Elwin Sharvill
1007Adams G WhobreyUnited Kingdom2024-06-07Commercial Press RENEWAL79Elwin Sharvill
1008Isabel G SaylorsGermany2024-06-19Morlong Associates UNQUALIFIED79Onyama Limba
1009Faith X StensethCanada2024-06-11King, Christopher A Esq NEW80Onyama Limba
1010Octavia S IturbideFrance2024-06-10Chemel, James L Cpa NEW96Amy Elsner
1011Cody D CaldareraJapan2024-06-04Chemel, James L Cpa UNQUALIFIED58Onyama Limba
1012Emily U FollerCanada2024-06-10Rousseaux, Michael Esq UNQUALIFIED71Amy Elsner
1013Leon F OstroskyRussia2024-05-26Buckley Miller Wright PROPOSAL15Amy Elsner
1014Nicolas C WieserAustralia2024-06-02Benton, John B Jr UNQUALIFIED91Bernardo Dominic
1015Juan K GillianFrance2024-05-31Feltz Printing Service NEGOTIATION69Asiya Javayant
1016Aika P PaprockiItaly2024-06-04Printing Dimensions QUALIFIED32Bernardo Dominic
1017Jeanfrancois Q GillianRussia2024-06-07Benton, John B Jr PROPOSAL73Ivan Magalhaes
1018Munro T GarufiUnited Kingdom2024-05-27Truhlar And Truhlar Attys PROPOSAL92Ioni Bowcher
1019Maria G StensethBrazil2024-06-01King, Christopher A Esq QUALIFIED48Stephen Shaw
1020Leon V FerenczGermany2024-06-19Benton, John B Jr NEW91Elwin Sharvill
1021Salvatore T MacleadItaly2024-06-16Feiner Bros NEW15Bernardo Dominic
1022David E AmigonJapan2024-06-12Printing Dimensions NEGOTIATION85Elwin Sharvill
1023James U GlickIndia2024-05-26Chemel, James L Cpa PROPOSAL28Ivan Magalhaes
1024Maisha R MaletFrance2024-06-02Buckley Miller Wright QUALIFIED33Stephen Shaw
1025Arvin U VocelkaFrance2024-06-08Rangoni Of Florence QUALIFIED73Asiya Javayant
1026Octavia H GarufiIndia2024-06-02Truhlar And Truhlar Attys QUALIFIED46Ioni Bowcher
1027Francesco A InouyeRussia2024-05-26Truhlar And Truhlar Attys PROPOSAL79Ivan Magalhaes
1028Clifford M DilliardGermany2024-05-27Feiner Bros PROPOSAL7Bernardo Dominic
1029Darci A PoquetteBrazil2024-05-24Rousseaux, Michael Esq RENEWAL16Bernardo Dominic
1030Claire T CampainArgentina2024-06-04Printing Dimensions NEW11Elwin Sharvill
1031Ivar T TollnerRussia2024-06-17Feiner Bros QUALIFIED94Ivan Magalhaes
1032Misaki F AmigonBrazil2024-06-07Feiner Bros NEW36Asiya Javayant
1033Jeanfrancois U VocelkaArgentina2024-06-09Benton, John B Jr PROPOSAL64Bernardo Dominic
1034Isabel T NickaArgentina2024-06-08Buckley Miller Wright PROPOSAL75Onyama Limba
1035Leon I MaletCanada2024-06-09Dorl, James J Esq RENEWAL28Ioni Bowcher
1036Costa G ChuiIndia2024-06-17Commercial Press NEGOTIATION76Elwin Sharvill
1037Stacey E NickaBrazil2024-06-10Buckley Miller Wright UNQUALIFIED25Ioni Bowcher
1038Faith J SaylorsAustralia2024-06-08Benton, John B Jr RENEWAL85Ioni Bowcher
1039Aika L OldroydIndia2024-05-29Truhlar And Truhlar Attys QUALIFIED32Ioni Bowcher
1040Deepesh E MaletIndia2024-05-29Rangoni Of Florence NEW79Stephen Shaw
1041Murillo S GlickCanada2024-06-15Buckley Miller Wright UNQUALIFIED23Asiya Javayant
1042Jennifer Z OldroydRussia2024-05-28Feltz Printing Service QUALIFIED94Asiya Javayant
1043Cody B BologniaBrazil2024-06-19Rangoni Of Florence QUALIFIED54Ivan Magalhaes
1044Ricardo D ButtSpain2024-06-10Rousseaux, Michael Esq NEGOTIATION76Anna Fali
1045Leja W FigeroaIndia2024-06-19Rousseaux, Michael Esq QUALIFIED84Stephen Shaw
1046Costa W SergiUnited Kingdom2024-06-20Commercial Press PROPOSAL20Elwin Sharvill
1047Aika L VocelkaCanada2024-06-08Rangoni Of Florence NEW92Onyama Limba
1048Mayumi D ButtArgentina2024-06-19Chemel, James L Cpa PROPOSAL49Amy Elsner
1049Izzy K TollnerSpain2024-06-05Morlong Associates QUALIFIED53Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Alejandro N ShinkoIndiaIvan Magalhaes NEGOTIATION
Misaki Q RimBrazilStephen Shaw RENEWAL
Munro O DarakjyUnited KingdomAmy Elsner RENEWAL
Julie K SergiSpainStephen Shaw UNQUALIFIED
Alejandro I WieserSpainXuxue Feng UNQUALIFIED
Faith V DoeUnited KingdomElwin Sharvill RENEWAL
Clifford L FlosiSpainIvan Magalhaes NEGOTIATION
Leon T CaldareraIndiaBernardo Dominic NEW
Cody E MaletUnited KingdomAsiya Javayant QUALIFIED
Cody K IturbideSpainXuxue Feng RENEWAL
Greenwood G OldroydBrazilStephen Shaw UNQUALIFIED
Adams R DarakjySpainXuxue Feng QUALIFIED
Maisha R WhobreyUnited KingdomAmy Elsner QUALIFIED
Johnson S OstroskyRussiaIvan Magalhaes QUALIFIED
Greenwood Q CampainSpainIvan Magalhaes QUALIFIED
Aruna H WhobreyAustraliaAnna Fali RENEWAL
Tony B FerenczSpainAmy Elsner UNQUALIFIED
Ricardo L RoysterArgentinaAnna Fali NEW
Ricardo E OldroydGermanyStephen Shaw QUALIFIED
Julie E CampainArgentinaAsiya Javayant QUALIFIED
Ricardo B RoysterBrazilAsiya Javayant NEGOTIATION
Aditya P StockhamGermanyXuxue Feng QUALIFIED
Mayumi H RutaBrazilBernardo Dominic PROPOSAL
Misaki F DoeIndiaIoni Bowcher NEGOTIATION
Jennifer F TollnerUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin T CampainArgentinaAsiya Javayant QUALIFIED
Ricardo T MacleadUnited KingdomXuxue Feng UNQUALIFIED
Ricardo R MorascaCanadaElwin Sharvill NEGOTIATION
Tony I NickaJapanStephen Shaw QUALIFIED
Jefferson U SaylorsAustraliaAmy Elsner NEW
Maisha Z WieserRussiaAnna Fali NEGOTIATION
Emily D CaldareraRussiaAsiya Javayant QUALIFIED
Rodrigues Z NickaSpainAnna Fali NEW
James M VenereAustraliaAmy Elsner RENEWAL
Kadeem Y GlickSpainOnyama Limba QUALIFIED
Jones U WhobreyBrazilXuxue Feng RENEWAL
Jones T RutaBrazilAnna Fali NEGOTIATION
Munro T MarrierRussiaAmy Elsner PROPOSAL
Ricardo T OstroskyArgentinaBernardo Dominic QUALIFIED
Leja C AlbaresGermanyAnna Fali NEGOTIATION
Aika C StockhamJapanIoni Bowcher NEGOTIATION
Aika N RulapaughUnited KingdomStephen Shaw NEW
Tony N MacleadGermanyIvan Magalhaes NEW
Emily P ButtSpainAsiya Javayant UNQUALIFIED
Cody G SlusarskiItalyIoni Bowcher QUALIFIED
Octavia C NestleCanadaAmy Elsner PROPOSAL
David N MaletJapanElwin Sharvill QUALIFIED
Jeanfrancois N VenereBrazilIoni Bowcher RENEWAL
Cody V MaletGermanyIoni Bowcher NEW
Kaitlin Z RimArgentinaBernardo Dominic PROPOSAL
Frozen Columns
Name
Aruna P Malet
Antonio L Nicka
Kaitlin D Darakjy
Ashley K Ostrosky
Chavez B Maclead
James N Schemmer
Leon F Foller
Deepesh L Nicka
Octavia H Maclead
Arvin U Paprocki
Munro W Albares
Kaitlin G Oldroyd
Kadeem L Foller
Tony Z Iturbide
Murillo B Amigon
Aditya J Rulapaugh
James F Bolognia
Aika G Waycott
Salvatore N Kolmetz
Murillo O Amigon
Arvin S Nestle
Silvio A Glick
Jennifer P Inouye
Munro R Iturbide
Rodrigues X Royster
Kadeem K Paprocki
Aika K Poquette
Cody L Dilliard
Ivar I Morasca
Maria J Shinko
Leon V Butt
Leon U Kolmetz
Munro N Marrier
Salvatore X Malet
Maria J Briddick
David K Chui
Rodrigues O Slusarski
Antonio G Amigon
Maria K Paprocki
Darci M Oldroyd
Faith M Darakjy
Mayumi L Gillian
Kaitlin O Venere
Claire O Glick
Wickens G Dilliard
Rodrigues R Butt
Salvatore Y Caldarera
Mayumi A Kolmetz
Silvio I Marrier
Aika J Shinko
IdCountryDate
1000Argentina2024-06-11
1001India2024-06-13
1002India2024-06-04
1003Canada2024-06-14
1004Brazil2024-05-31
1005Argentina2024-05-24
1006Germany2024-06-17
1007Germany2024-06-03
1008France2024-06-18
1009France2024-05-30
1010Italy2024-06-01
1011United Kingdom2024-06-14
1012United Kingdom2024-06-11
1013Japan2024-05-25
1014Brazil2024-06-18
1015Canada2024-06-07
1016Canada2024-05-27
1017Brazil2024-06-19
1018India2024-05-24
1019Russia2024-05-26
1020Australia2024-06-03
1021Spain2024-05-31
1022Japan2024-05-31
1023Japan2024-06-15
1024Argentina2024-06-22
1025Argentina2024-06-20
1026Brazil2024-06-03
1027Argentina2024-06-11
1028Australia2024-05-24
1029Canada2024-06-20
1030Canada2024-06-17
1031Russia2024-06-08
1032Canada2024-06-02
1033Germany2024-06-12
1034France2024-06-21
1035Australia2024-05-31
1036France2024-06-19
1037Italy2024-06-18
1038United Kingdom2024-06-15
1039Russia2024-06-01
1040Italy2024-06-20
1041Italy2024-06-22
1042United Kingdom2024-06-06
1043Japan2024-06-11
1044Japan2024-06-16
1045Brazil2024-06-20
1046Italy2024-05-25
1047Argentina2024-05-24
1048Australia2024-06-21
1049Australia2024-06-07

On-Demand Data

NameIdCountryDate
Jeanfrancois V Morasca1000Australia2024-06-08
Nicolas R Royster1001Japan2024-06-17
Silvio G Stockham1002Australia2024-06-15
Johnson H Foller1003Japan2024-05-29
Aditya Y Nicka1004Spain2024-06-08
Kaitlin Z Vocelka1005Spain2024-06-20
Sinclair B Ruta1006Canada2024-06-04
Faith V Stockham1007Russia2024-06-21
Nicolas K Butt1008Russia2024-06-03
Munro D Malet1009Japan2024-06-05
Salvatore M Bowley1010Argentina2024-06-12
Salvatore Z Wieser1011France2024-06-06
Costa B Maclead1012Russia2024-05-24
Darci U Kolmetz1013Japan2024-06-01
Juan K Oldroyd1014Australia2024-06-08
Greenwood O Gaucho1015Germany2024-06-02
Salvatore B Nestle1016Argentina2024-06-17
Kaitlin E Waycott1017Japan2024-06-09
Jones Y Vocelka1018Argentina2024-06-18
Stacey P Rim1019Japan2024-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin Y WieserCanadaIvan Magalhaes NEGOTIATION
Sinclair O AmigonIndiaXuxue Feng UNQUALIFIED
Jennifer R PoquetteIndiaOnyama Limba RENEWAL
Mujtaba M BriddickBrazilElwin Sharvill QUALIFIED
Alejandro V SaylorsUnited KingdomXuxue Feng RENEWAL
Deepesh K CampainIndiaElwin Sharvill RENEWAL
Misaki N PaprockiCanadaAsiya Javayant NEGOTIATION
Aditya Z WieserItalyIoni Bowcher UNQUALIFIED
Faith G VocelkaItalyIoni Bowcher RENEWAL
David F VenereUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues N VocelkaGermanyStephen Shaw NEW
Isabel K IturbideFranceElwin Sharvill PROPOSAL
Francesco I CaldareraUnited KingdomAmy Elsner NEW
Francesco U KuskoItalyAnna Fali QUALIFIED
Aditya U TollnerJapanBernardo Dominic UNQUALIFIED
Misaki Q WhobreyRussiaOnyama Limba NEW
Murillo H IturbideFranceAnna Fali RENEWAL
Salvatore E ShinkoArgentinaAsiya Javayant RENEWAL
Ricardo P CaudyArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues A GauchoUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois V WhobreyItalyStephen Shaw NEGOTIATION
Wickens G CaudyItalyAnna Fali UNQUALIFIED
Emily L FigeroaBrazilBernardo Dominic NEGOTIATION
Stacey I PoquetteBrazilOnyama Limba NEGOTIATION
Costa I GlickCanadaAnna Fali UNQUALIFIED
Aika R RulapaughRussiaBernardo Dominic QUALIFIED
Aditya E MaletFranceAmy Elsner QUALIFIED
Leja H DarakjyIndiaIoni Bowcher UNQUALIFIED
Faith B NestleUnited KingdomIvan Magalhaes NEW
Aditya U AmigonAustraliaElwin Sharvill UNQUALIFIED
Claire P GlickItalyIvan Magalhaes QUALIFIED
Stacey R SergiCanadaStephen Shaw QUALIFIED
David Z StockhamIndiaXuxue Feng NEW
Salvatore T OldroydJapanOnyama Limba QUALIFIED
Ivar L MacleadJapanStephen Shaw PROPOSAL
Chavez Y IturbideRussiaStephen Shaw QUALIFIED
Clifford S GillianItalyIvan Magalhaes UNQUALIFIED
Tony B GauchoArgentinaBernardo Dominic PROPOSAL
Antonio V NestleBrazilStephen Shaw NEGOTIATION
Leon V VenereCanadaElwin Sharvill 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>