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
David P MaletBrazilBernardo Dominic NEW
Ivar E PoquetteAustraliaOnyama Limba PROPOSAL
Claire S WaycottJapanIvan Magalhaes QUALIFIED
Aruna D VenereFranceStephen Shaw UNQUALIFIED
Maria U ShinkoCanadaAmy Elsner PROPOSAL
Costa Y GillianFranceAnna Fali NEW
Leon R SlusarskiCanadaXuxue Feng UNQUALIFIED
Faith V RutaAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois J InouyeArgentinaXuxue Feng UNQUALIFIED
Alejandro W MarrierGermanyAsiya Javayant NEW
Aruna C GarufiIndiaAmy Elsner NEW
Wickens E OstroskySpainXuxue Feng UNQUALIFIED
Octavia A GarufiGermanyIoni Bowcher NEW
Misaki S FlosiSpainStephen Shaw QUALIFIED
Murillo D MarrierArgentinaStephen Shaw QUALIFIED
Mayumi X ShinkoJapanAsiya Javayant RENEWAL
Misaki X BriddickAustraliaIvan Magalhaes NEW
Leja X WaycottUnited KingdomXuxue Feng QUALIFIED
Silvio Z VocelkaItalyIvan Magalhaes PROPOSAL
Aruna P AlbaresJapanIvan Magalhaes QUALIFIED
James C RutaCanadaIoni Bowcher RENEWAL
Jeanfrancois K FlosiBrazilAnna Fali NEW
Jennifer I RimRussiaAsiya Javayant RENEWAL
Leja U ButtBrazilAsiya Javayant QUALIFIED
Arvin M BologniaItalyAmy Elsner PROPOSAL
Darci Z RoysterUnited KingdomAnna Fali QUALIFIED
Munro J CaudyFranceAsiya Javayant UNQUALIFIED
Maisha F AlbaresIndiaAmy Elsner RENEWAL
Sinclair Z BologniaFranceXuxue Feng NEGOTIATION
Antonio L RimSpainIoni Bowcher RENEWAL
Juan E ChuiJapanAmy Elsner UNQUALIFIED
Ashley B FerenczArgentinaAnna Fali QUALIFIED
Salvatore A OstroskyUnited KingdomXuxue Feng NEW
Johnson N ButtRussiaXuxue Feng QUALIFIED
Aditya F SergiItalyAsiya Javayant NEGOTIATION
Greenwood Y PoquetteIndiaStephen Shaw NEW
Murillo J SergiIndiaAsiya Javayant RENEWAL
Aditya B IturbideFranceIoni Bowcher NEGOTIATION
Tony P DilliardGermanyElwin Sharvill UNQUALIFIED
Kadeem U FollerRussiaStephen Shaw PROPOSAL
Kadeem K NestleArgentinaAsiya Javayant PROPOSAL
Kadeem X SaylorsRussiaAsiya Javayant RENEWAL
Jones P GillianAustraliaAmy Elsner PROPOSAL
Octavia J PerinJapanStephen Shaw UNQUALIFIED
Johnson Q GauchoGermanyAnna Fali PROPOSAL
Juan O OldroydFranceOnyama Limba NEW
Munro K CaldareraFranceElwin Sharvill UNQUALIFIED
Deepesh J CaldareraRussiaIvan Magalhaes NEW
Julie S AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Francesco D AlbaresIndiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson B MarrierRussiaAnna Fali RENEWAL
Johnson O OstroskyJapanStephen Shaw QUALIFIED
Deepesh A AlbaresIndiaOnyama Limba PROPOSAL
Mayumi K BriddickGermanyOnyama Limba NEW
Izzy D FlosiBrazilAnna Fali RENEWAL
Aditya F ButtIndiaAsiya Javayant UNQUALIFIED
Jefferson G StensethJapanBernardo Dominic PROPOSAL
Maria K CampainItalyAmy Elsner NEGOTIATION
Aika N VenereUnited KingdomElwin Sharvill UNQUALIFIED
Tony L PoquetteCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones M SaylorsFrance2024-06-06Chanay, Jeffrey A Esq RENEWAL41Stephen Shaw
1001Wickens O RoysterJapan2024-05-31Benton, John B Jr NEW88Ivan Magalhaes
1002Ivar D BowleyAustralia2024-06-13Chanay, Jeffrey A Esq NEGOTIATION24Elwin Sharvill
1003Arvin X SaylorsGermany2024-06-13Chapman, Ross E Esq NEGOTIATION51Ioni Bowcher
1004Claire J PaprockiGermany2024-05-22Chanay, Jeffrey A Esq RENEWAL18Stephen Shaw
1005Nicolas X ChuiJapan2024-06-10Chanay, Jeffrey A Esq NEGOTIATION1Asiya Javayant
1006Maria P GauchoIndia2024-05-28Morlong Associates NEW61Amy Elsner
1007Sinclair C TollnerGermany2024-06-06Chanay, Jeffrey A Esq QUALIFIED47Onyama Limba
1008Tony L KuskoUnited Kingdom2024-06-11Rangoni Of Florence UNQUALIFIED29Ioni Bowcher
1009Mujtaba N PerinIndia2024-06-06Chanay, Jeffrey A Esq NEW93Anna Fali
1010Sinclair U SlusarskiFrance2024-06-13Chanay, Jeffrey A Esq NEGOTIATION59Ioni Bowcher
1011Nicolas K GillianGermany2024-05-26Morlong Associates QUALIFIED22Ioni Bowcher
1012Wickens S PaprockiFrance2024-06-10Chanay, Jeffrey A Esq PROPOSAL13Anna Fali
1013Johnson D DoeAustralia2024-05-16Rangoni Of Florence NEW44Amy Elsner
1014Deepesh B BowleyGermany2024-05-24Chemel, James L Cpa NEGOTIATION47Ioni Bowcher
1015Darci B RutaUnited Kingdom2024-06-04Feiner Bros NEGOTIATION84Xuxue Feng
1016Octavia W RoysterItaly2024-05-28Morlong Associates NEGOTIATION95Anna Fali
1017Costa X BologniaSpain2024-05-24Chemel, James L Cpa QUALIFIED15Onyama Limba
1018Rodrigues E BologniaJapan2024-05-27Dorl, James J Esq RENEWAL12Bernardo Dominic
1019Deepesh Y OldroydItaly2024-06-09Truhlar And Truhlar Attys NEW80Anna Fali
1020Octavia P MacleadRussia2024-05-20Benton, John B Jr RENEWAL43Ivan Magalhaes
1021Adams V ShinkoAustralia2024-05-18Chapman, Ross E Esq QUALIFIED55Stephen Shaw
1022Aruna I WaycottAustralia2024-05-26Dorl, James J Esq UNQUALIFIED6Bernardo Dominic
1023Clifford P PerinJapan2024-05-19Benton, John B Jr PROPOSAL83Xuxue Feng
1024Ricardo C MaletGermany2024-06-06King, Christopher A Esq UNQUALIFIED25Xuxue Feng
1025Arvin U AlbaresItaly2024-05-29Benton, John B Jr UNQUALIFIED68Ivan Magalhaes
1026Sinclair M WhobreyAustralia2024-05-27Rangoni Of Florence NEGOTIATION96Anna Fali
1027Ricardo Q RutaGermany2024-05-30Rangoni Of Florence RENEWAL49Xuxue Feng
1028Munro D FlosiJapan2024-06-11Benton, John B Jr PROPOSAL98Amy Elsner
1029Arvin J ShinkoGermany2024-05-21Chanay, Jeffrey A Esq QUALIFIED38Onyama Limba
1030Deepesh H PerinRussia2024-05-29King, Christopher A Esq RENEWAL18Xuxue Feng
1031Johnson E NickaJapan2024-06-03Feiner Bros UNQUALIFIED47Bernardo Dominic
1032Kaitlin S BologniaAustralia2024-06-13Rousseaux, Michael Esq NEGOTIATION62Elwin Sharvill
1033Silvio M FigeroaCanada2024-05-29Commercial Press NEW84Onyama Limba
1034Mayumi C MacleadFrance2024-05-30Chapman, Ross E Esq RENEWAL17Elwin Sharvill
1035Maisha Y SlusarskiArgentina2024-05-19King, Christopher A Esq QUALIFIED45Ioni Bowcher
1036Ricardo G ButtCanada2024-05-26Commercial Press UNQUALIFIED45Ivan Magalhaes
1037Antonio P ButtJapan2024-06-10Truhlar And Truhlar Attys QUALIFIED13Elwin Sharvill
1038Juan T PaprockiFrance2024-05-30Rousseaux, Michael Esq NEW93Asiya Javayant
1039Mujtaba O ChuiFrance2024-05-18Feiner Bros NEGOTIATION62Asiya Javayant
1040Emily Q GauchoGermany2024-06-12Buckley Miller Wright NEW9Anna Fali
1041David Z InouyeItaly2024-05-25Morlong Associates UNQUALIFIED6Ivan Magalhaes
1042Costa R DarakjyArgentina2024-05-27Feiner Bros UNQUALIFIED99Stephen Shaw
1043Mujtaba V SergiBrazil2024-05-16Truhlar And Truhlar Attys RENEWAL92Asiya Javayant
1044Francesco S WaycottItaly2024-06-07Rousseaux, Michael Esq QUALIFIED61Amy Elsner
1045James F AlbaresUnited Kingdom2024-06-01Benton, John B Jr QUALIFIED87Anna Fali
1046Maria J TollnerRussia2024-05-28Feiner Bros PROPOSAL16Ioni Bowcher
1047Morrow N WhobreyRussia2024-05-21Benton, John B Jr NEW73Ivan Magalhaes
1048Maisha F SlusarskiFrance2024-05-29Printing Dimensions PROPOSAL12Ioni Bowcher
1049Ivar V KuskoJapan2024-06-04Feiner Bros NEW16Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ashley X VocelkaJapanStephen Shaw QUALIFIED
Clifford W PoquetteUnited KingdomAsiya Javayant PROPOSAL
David X SchemmerFranceOnyama Limba QUALIFIED
Maria X GillianFranceAsiya Javayant NEW
Arvin O DarakjyBrazilXuxue Feng UNQUALIFIED
Jeanfrancois W GillianUnited KingdomAmy Elsner NEGOTIATION
Kadeem O GlickJapanAnna Fali NEW
Wickens Y FerenczItalyIoni Bowcher NEGOTIATION
Nicolas U StensethItalyBernardo Dominic UNQUALIFIED
James K GlickArgentinaAsiya Javayant RENEWAL
Maria M AmigonBrazilIoni Bowcher QUALIFIED
Salvatore D DoeRussiaAmy Elsner NEGOTIATION
Costa G MaletAustraliaIvan Magalhaes PROPOSAL
Costa U StensethJapanElwin Sharvill NEGOTIATION
Kaitlin N SlusarskiBrazilStephen Shaw RENEWAL
Leon M FigeroaSpainIoni Bowcher QUALIFIED
Alejandro B StensethFranceAsiya Javayant QUALIFIED
Mayumi E OstroskySpainIvan Magalhaes UNQUALIFIED
Deepesh V RoysterIndiaStephen Shaw QUALIFIED
Misaki N WhobreyItalyAnna Fali QUALIFIED
Ricardo J NestleSpainIvan Magalhaes UNQUALIFIED
Faith V FlosiSpainStephen Shaw UNQUALIFIED
Octavia F FlosiJapanOnyama Limba UNQUALIFIED
Nicolas X KolmetzUnited KingdomStephen Shaw QUALIFIED
Maisha F IturbideJapanStephen Shaw NEGOTIATION
Silvio B RoysterItalyAsiya Javayant RENEWAL
Nicolas K WieserCanadaOnyama Limba NEGOTIATION
Munro A DarakjyBrazilXuxue Feng QUALIFIED
James X FerenczArgentinaXuxue Feng QUALIFIED
Munro A SergiAustraliaXuxue Feng RENEWAL
David Q StensethRussiaBernardo Dominic PROPOSAL
Murillo G NestleSpainStephen Shaw PROPOSAL
Johnson G InouyeFranceAnna Fali RENEWAL
Maisha A WaycottItalyBernardo Dominic NEW
Aruna C FollerAustraliaAmy Elsner NEW
Clifford K TollnerCanadaStephen Shaw RENEWAL
Francesco K TollnerAustraliaAmy Elsner QUALIFIED
Antonio P VenereItalyIvan Magalhaes NEW
Jones Q PoquetteCanadaElwin Sharvill UNQUALIFIED
Chavez S CaldareraFranceAnna Fali RENEWAL
Misaki W GillianBrazilIvan Magalhaes PROPOSAL
Leon Y MaletSpainOnyama Limba NEGOTIATION
Deepesh U MorascaAustraliaOnyama Limba PROPOSAL
Nicolas M TollnerItalyAsiya Javayant QUALIFIED
Smith S MacleadUnited KingdomIoni Bowcher QUALIFIED
Ricardo B NestleIndiaIvan Magalhaes QUALIFIED
Darci J SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Claire O SlusarskiRussiaAmy Elsner PROPOSAL
Tony G CampainCanadaOnyama Limba NEW
Cody O VocelkaFranceStephen Shaw QUALIFIED
Frozen Columns
Name
Francesco D Poquette
Kadeem Z Dilliard
Silvio P Flosi
Jennifer C Maclead
Kaitlin A Butt
Darci T Ostrosky
Wickens S Campain
Aika W Dilliard
Greenwood M Bowley
Isabel C Inouye
Rodrigues R Kusko
Isabel Z Ruta
Sinclair Z Dilliard
Chavez M Dilliard
Adams D Caldarera
Morrow L Albares
Greenwood H Caudy
Isabel T Whobrey
Jeanfrancois M Kolmetz
Francesco W Flosi
Kadeem O Oldroyd
Smith Z Ferencz
Maria B Iturbide
Misaki V Morasca
Francesco C Figeroa
Deepesh H Caldarera
Morrow E Ruta
Greenwood J Bolognia
Kaitlin N Sergi
James D Royster
Aruna J Ostrosky
Darci W Ferencz
Stacey X Chui
Kaitlin V Chui
Kadeem J Schemmer
Ashley J Nestle
Morrow M Caldarera
Jones H Ferencz
Ricardo D Dilliard
Munro Y Darakjy
Nicolas Z Garufi
Alejandro B Kusko
Silvio F Foller
Greenwood O Slusarski
Mujtaba S Doe
Emily L Rim
Claire H Gillian
Francesco M Kolmetz
Misaki P Royster
Jones B Shinko
IdCountryDate
1000Japan2024-05-16
1001Argentina2024-06-05
1002Spain2024-05-29
1003India2024-05-22
1004Germany2024-05-23
1005Italy2024-05-20
1006Argentina2024-05-28
1007Spain2024-05-16
1008United Kingdom2024-05-23
1009Australia2024-06-01
1010India2024-05-25
1011France2024-06-14
1012Australia2024-06-05
1013Brazil2024-06-03
1014Brazil2024-06-06
1015Canada2024-05-23
1016Italy2024-05-20
1017Brazil2024-05-25
1018France2024-05-16
1019India2024-05-25
1020Russia2024-05-29
1021Argentina2024-06-06
1022Brazil2024-05-31
1023Canada2024-06-08
1024Italy2024-05-27
1025Italy2024-05-17
1026Japan2024-06-07
1027India2024-05-23
1028Spain2024-06-13
1029Australia2024-06-07
1030Argentina2024-06-14
1031Germany2024-06-10
1032Brazil2024-05-21
1033India2024-05-30
1034Russia2024-05-20
1035Australia2024-05-20
1036United Kingdom2024-06-06
1037Japan2024-06-13
1038Brazil2024-06-06
1039Italy2024-05-24
1040Italy2024-05-26
1041France2024-05-22
1042Germany2024-05-17
1043Italy2024-05-24
1044Italy2024-05-27
1045Australia2024-06-03
1046India2024-06-11
1047Argentina2024-06-07
1048Australia2024-05-27
1049Australia2024-05-21

On-Demand Data

NameIdCountryDate
Nicolas B Venere1000United Kingdom2024-05-29
Cody T Perin1001Canada2024-06-03
James C Shinko1002Germany2024-05-22
Izzy T Darakjy1003Japan2024-06-07
Aruna Y Dilliard1004France2024-06-06
Adams C Briddick1005Brazil2024-06-09
Tony Q Slusarski1006France2024-06-10
Nicolas H Shinko1007United Kingdom2024-06-03
Misaki X Briddick1008Spain2024-05-27
Izzy N Oldroyd1009Canada2024-05-19
Jennifer G Albares1010Germany2024-05-20
Maisha F Malet1011Japan2024-05-29
Clifford N Ostrosky1012Brazil2024-05-30
Faith I Doe1013Canada2024-05-30
Murillo Q Rulapaugh1014Germany2024-06-07
Claire F Maclead1015Japan2024-06-02
Sinclair S Schemmer1016France2024-05-21
Stacey V Schemmer1017India2024-05-26
Isabel I Garufi1018Spain2024-05-27
Emily M Morasca1019Spain2024-05-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony G VocelkaJapanAmy Elsner QUALIFIED
Chavez Q RutaGermanyAnna Fali RENEWAL
Smith C NestleArgentinaIoni Bowcher PROPOSAL
Greenwood Z GarufiFranceElwin Sharvill NEGOTIATION
Octavia A MaletBrazilAsiya Javayant PROPOSAL
Stacey N RoysterItalyAnna Fali PROPOSAL
Jones F NickaBrazilIvan Magalhaes NEW
Mujtaba Q CaldareraGermanyIoni Bowcher NEGOTIATION
Ricardo N AmigonJapanAmy Elsner NEW
Greenwood B RimSpainElwin Sharvill RENEWAL
Deepesh K PaprockiIndiaBernardo Dominic NEGOTIATION
Deepesh V AlbaresFranceAnna Fali RENEWAL
Ivar I ShinkoRussiaXuxue Feng UNQUALIFIED
Salvatore B MaletJapanAnna Fali QUALIFIED
Ivar B GauchoArgentinaStephen Shaw RENEWAL
Darci Q RoysterCanadaElwin Sharvill QUALIFIED
Chavez Z DarakjyGermanyStephen Shaw RENEWAL
Darci N IturbideUnited KingdomXuxue Feng NEW
Isabel O CaudyUnited KingdomIoni Bowcher PROPOSAL
Clifford F DoeSpainAnna Fali RENEWAL
Munro V PoquetteFranceElwin Sharvill NEGOTIATION
Cody V RulapaughIndiaIoni Bowcher QUALIFIED
Aditya P SchemmerFranceIoni Bowcher NEW
Julie Q BologniaUnited KingdomOnyama Limba PROPOSAL
Aika A FerenczSpainElwin Sharvill NEGOTIATION
Isabel Y VocelkaBrazilAsiya Javayant UNQUALIFIED
Izzy Z SchemmerIndiaAmy Elsner UNQUALIFIED
Claire G SaylorsArgentinaBernardo Dominic QUALIFIED
Kaitlin G ButtCanadaIoni Bowcher QUALIFIED
Aditya E MarrierSpainXuxue Feng RENEWAL
Maisha I WhobreyFranceAnna Fali UNQUALIFIED
Mayumi K MorascaItalyIvan Magalhaes QUALIFIED
Leja U PerinAustraliaStephen Shaw NEGOTIATION
Johnson H CaudyJapanAnna Fali UNQUALIFIED
Isabel M PaprockiJapanIvan Magalhaes PROPOSAL
Ricardo X TollnerIndiaIvan Magalhaes NEW
Kaitlin Z CaudyGermanyIoni Bowcher NEW
Ashley T KolmetzArgentinaElwin Sharvill QUALIFIED
Munro U DilliardAustraliaIvan Magalhaes NEW
Deepesh T IturbideJapanOnyama Limba 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>