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
Greenwood B GarufiBrazilIvan Magalhaes NEGOTIATION
Cody R FlosiGermanyXuxue Feng QUALIFIED
Deepesh L NickaBrazilAnna Fali PROPOSAL
Rodrigues K ShinkoItalyElwin Sharvill NEW
Alejandro S WieserCanadaStephen Shaw PROPOSAL
Izzy Z ShinkoSpainAnna Fali PROPOSAL
Johnson Z AmigonCanadaAmy Elsner PROPOSAL
Mujtaba R CampainFranceOnyama Limba RENEWAL
Izzy U InouyeItalyElwin Sharvill NEW
Ivar H NestleCanadaBernardo Dominic UNQUALIFIED
Mayumi V GillianSpainOnyama Limba NEW
Isabel K FollerRussiaBernardo Dominic RENEWAL
Maisha X SlusarskiSpainIvan Magalhaes PROPOSAL
Maria S AmigonBrazilAnna Fali UNQUALIFIED
Clifford M FerenczArgentinaIoni Bowcher PROPOSAL
Costa M PoquetteRussiaIoni Bowcher QUALIFIED
Ricardo G BowleyFranceOnyama Limba NEGOTIATION
Jefferson G GlickJapanElwin Sharvill QUALIFIED
Johnson E BriddickFranceIvan Magalhaes NEGOTIATION
Antonio W DoeArgentinaIvan Magalhaes PROPOSAL
Aditya N RoysterItalyAsiya Javayant QUALIFIED
Leja F AlbaresJapanOnyama Limba RENEWAL
Mujtaba A KuskoRussiaIvan Magalhaes PROPOSAL
Maisha C BowleyItalyIvan Magalhaes PROPOSAL
Cody G RimJapanAmy Elsner RENEWAL
Morrow B MorascaArgentinaElwin Sharvill RENEWAL
Mayumi F MarrierArgentinaIvan Magalhaes PROPOSAL
James I WaycottJapanStephen Shaw NEGOTIATION
Salvatore N BriddickJapanAnna Fali QUALIFIED
Leon L GarufiBrazilElwin Sharvill NEGOTIATION
Mayumi Z MacleadCanadaElwin Sharvill UNQUALIFIED
Ivar Z ShinkoArgentinaElwin Sharvill PROPOSAL
Izzy L SchemmerSpainOnyama Limba NEW
David P DilliardItalyAmy Elsner PROPOSAL
Adams D MorascaFranceBernardo Dominic NEW
Silvio C RulapaughIndiaAmy Elsner UNQUALIFIED
David A WaycottFranceElwin Sharvill RENEWAL
Francesco F DilliardCanadaAsiya Javayant UNQUALIFIED
Chavez R BowleyJapanBernardo Dominic NEW
Nicolas B ButtAustraliaAnna Fali UNQUALIFIED
Murillo K OstroskyFranceOnyama Limba RENEWAL
Octavia F MorascaItalyOnyama Limba RENEWAL
Wickens V AlbaresBrazilXuxue Feng NEGOTIATION
Murillo V MaletIndiaXuxue Feng NEGOTIATION
Smith W PerinBrazilAmy Elsner UNQUALIFIED
Kaitlin J SaylorsArgentinaBernardo Dominic QUALIFIED
Munro F OldroydUnited KingdomAnna Fali UNQUALIFIED
Jennifer H AmigonCanadaIoni Bowcher QUALIFIED
Morrow D RulapaughFranceStephen Shaw NEGOTIATION
Alejandro J IturbideJapanAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues I SaylorsUnited KingdomBernardo Dominic NEW
Kadeem F IturbideArgentinaIvan Magalhaes NEGOTIATION
Kadeem N MaletIndiaIvan Magalhaes UNQUALIFIED
Jeanfrancois Q MorascaAustraliaStephen Shaw NEW
Wickens R ButtBrazilOnyama Limba NEGOTIATION
Costa G PaprockiFranceBernardo Dominic RENEWAL
Jeanfrancois K GarufiArgentinaAmy Elsner PROPOSAL
Darci J CaudyItalyAnna Fali NEGOTIATION
Misaki A BowleyGermanyAnna Fali UNQUALIFIED
Mujtaba O CaldareraBrazilBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire K TollnerGermany2024-06-11Commercial Press RENEWAL8Ioni Bowcher
1001Kadeem R BowleyAustralia2024-06-01Truhlar And Truhlar Attys UNQUALIFIED33Bernardo Dominic
1002Francesco W NickaFrance2024-06-01Chapman, Ross E Esq PROPOSAL84Amy Elsner
1003Murillo Z SchemmerFrance2024-06-08Chanay, Jeffrey A Esq QUALIFIED44Amy Elsner
1004Johnson N BowleyCanada2024-06-08Chapman, Ross E Esq PROPOSAL53Asiya Javayant
1005Johnson J CampainFrance2024-06-04Feiner Bros PROPOSAL12Elwin Sharvill
1006Chavez Q RimUnited Kingdom2024-05-28Chemel, James L Cpa NEGOTIATION61Amy Elsner
1007Octavia H DoeAustralia2024-06-24Feiner Bros NEGOTIATION85Anna Fali
1008Antonio P WieserIndia2024-06-17Feiner Bros NEW90Xuxue Feng
1009Claire R StensethAustralia2024-05-30Printing Dimensions NEGOTIATION32Asiya Javayant
1010Jones M OstroskyJapan2024-06-23Dorl, James J Esq NEGOTIATION68Asiya Javayant
1011Jones S IturbideIndia2024-06-10Rangoni Of Florence PROPOSAL73Stephen Shaw
1012Nicolas T MaletFrance2024-06-11Buckley Miller Wright NEGOTIATION35Asiya Javayant
1013Claire P MorascaJapan2024-06-08Rousseaux, Michael Esq NEGOTIATION49Elwin Sharvill
1014Kadeem T KolmetzRussia2024-06-19Rangoni Of Florence NEGOTIATION85Ioni Bowcher
1015Ricardo Q MaletCanada2024-06-13Printing Dimensions NEGOTIATION35Onyama Limba
1016Ricardo A WieserJapan2024-06-10King, Christopher A Esq RENEWAL0Anna Fali
1017Salvatore Y RimFrance2024-05-31Chapman, Ross E Esq NEGOTIATION81Ioni Bowcher
1018Mayumi B StensethCanada2024-06-07Commercial Press PROPOSAL88Bernardo Dominic
1019Misaki X DarakjyFrance2024-06-20Dorl, James J Esq PROPOSAL26Asiya Javayant
1020Ivar Z VenereRussia2024-06-03Chapman, Ross E Esq RENEWAL79Ivan Magalhaes
1021Wickens O SchemmerIndia2024-06-03Chapman, Ross E Esq NEGOTIATION91Ivan Magalhaes
1022Jefferson S NickaFrance2024-06-16Dorl, James J Esq NEGOTIATION46Stephen Shaw
1023Ricardo R TollnerRussia2024-06-20Rousseaux, Michael Esq PROPOSAL61Stephen Shaw
1024Aika V NickaIndia2024-06-12Rousseaux, Michael Esq UNQUALIFIED39Ioni Bowcher
1025Greenwood P PerinJapan2024-06-23Buckley Miller Wright NEGOTIATION24Ioni Bowcher
1026Ricardo K DoeIndia2024-05-31Commercial Press QUALIFIED80Amy Elsner
1027Clifford G FigeroaSpain2024-06-21Chanay, Jeffrey A Esq QUALIFIED87Asiya Javayant
1028Julie C ShinkoCanada2024-06-09Morlong Associates RENEWAL49Bernardo Dominic
1029Aditya R WhobreyCanada2024-06-13Printing Dimensions RENEWAL0Anna Fali
1030Greenwood H SchemmerGermany2024-06-08Truhlar And Truhlar Attys NEW66Anna Fali
1031Kadeem C DoeGermany2024-06-19Dorl, James J Esq RENEWAL4Stephen Shaw
1032Munro N InouyeBrazil2024-06-08Truhlar And Truhlar Attys RENEWAL78Ioni Bowcher
1033Julie G CaldareraBrazil2024-06-07Buckley Miller Wright NEGOTIATION89Ivan Magalhaes
1034Jones G FerenczBrazil2024-06-08Feiner Bros NEW32Amy Elsner
1035Isabel U RoysterUnited Kingdom2024-06-20Rangoni Of Florence NEW93Bernardo Dominic
1036Emily G PaprockiFrance2024-06-08Chanay, Jeffrey A Esq QUALIFIED88Anna Fali
1037Darci C GarufiItaly2024-06-10Morlong Associates PROPOSAL8Stephen Shaw
1038Jones P CampainRussia2024-05-26Benton, John B Jr NEW83Ioni Bowcher
1039Wickens W DoeCanada2024-06-24King, Christopher A Esq PROPOSAL36Ioni Bowcher
1040Maria K BologniaIndia2024-06-16Printing Dimensions NEW92Anna Fali
1041Emily P AlbaresItaly2024-05-30Feiner Bros RENEWAL66Stephen Shaw
1042Stacey S FlosiIndia2024-06-13Feltz Printing Service RENEWAL75Amy Elsner
1043Emily G AlbaresBrazil2024-06-15Morlong Associates RENEWAL84Ivan Magalhaes
1044Munro C CaldareraCanada2024-06-01Feltz Printing Service RENEWAL94Xuxue Feng
1045Ashley K ShinkoSpain2024-06-12Buckley Miller Wright NEW21Onyama Limba
1046Ivar X FerenczCanada2024-06-08Feiner Bros PROPOSAL2Amy Elsner
1047Juan I FlosiBrazil2024-06-23Buckley Miller Wright PROPOSAL85Bernardo Dominic
1048Faith T WieserJapan2024-06-12Truhlar And Truhlar Attys NEGOTIATION42Amy Elsner
1049Aika V RimBrazil2024-06-08Truhlar And Truhlar Attys QUALIFIED32Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Octavia A PoquetteSpainXuxue Feng RENEWAL
Misaki X StensethBrazilIvan Magalhaes RENEWAL
Stacey R VocelkaFranceOnyama Limba NEW
Jones B BowleyFranceOnyama Limba RENEWAL
Juan L NickaIndiaAmy Elsner QUALIFIED
Salvatore J RulapaughBrazilAnna Fali QUALIFIED
Claire Q GillianSpainBernardo Dominic RENEWAL
Alejandro B PaprockiSpainIvan Magalhaes NEGOTIATION
Darci E WieserCanadaAnna Fali NEW
Mayumi C MarrierFranceIvan Magalhaes QUALIFIED
Juan H RulapaughItalyElwin Sharvill UNQUALIFIED
Darci I FollerRussiaAnna Fali NEW
Jennifer P GillianAustraliaStephen Shaw NEGOTIATION
Isabel M InouyeBrazilBernardo Dominic NEGOTIATION
Mayumi U BriddickGermanyElwin Sharvill PROPOSAL
Smith K PaprockiArgentinaIoni Bowcher PROPOSAL
Rodrigues S OstroskyRussiaIoni Bowcher NEGOTIATION
Maria C RoysterIndiaIoni Bowcher QUALIFIED
Wickens G InouyeIndiaAmy Elsner NEGOTIATION
Ricardo U MorascaFranceIvan Magalhaes NEGOTIATION
Aditya F TollnerArgentinaAsiya Javayant NEW
Salvatore M AlbaresBrazilAsiya Javayant UNQUALIFIED
Ivar X PaprockiSpainAmy Elsner NEW
Mujtaba C SaylorsUnited KingdomAsiya Javayant RENEWAL
Wickens F OldroydFranceAsiya Javayant UNQUALIFIED
Izzy T RimSpainAmy Elsner NEGOTIATION
Ricardo P ShinkoItalyAsiya Javayant NEW
Clifford H OldroydUnited KingdomAsiya Javayant NEW
Costa C GarufiArgentinaAnna Fali NEW
Wickens W GarufiJapanOnyama Limba NEW
Aruna I SlusarskiUnited KingdomStephen Shaw RENEWAL
Morrow S RulapaughAustraliaElwin Sharvill NEW
Johnson Y NickaBrazilStephen Shaw PROPOSAL
Munro U OstroskyIndiaStephen Shaw PROPOSAL
Wickens E GlickRussiaXuxue Feng PROPOSAL
Mujtaba V DilliardSpainIoni Bowcher RENEWAL
Mujtaba M WaycottGermanyIoni Bowcher UNQUALIFIED
Izzy W FerenczBrazilIvan Magalhaes QUALIFIED
Murillo U SaylorsUnited KingdomOnyama Limba PROPOSAL
David K SchemmerArgentinaAnna Fali UNQUALIFIED
Salvatore V StockhamCanadaAsiya Javayant NEW
Alejandro A GarufiUnited KingdomAnna Fali PROPOSAL
Nicolas Y FigeroaCanadaAmy Elsner PROPOSAL
Jefferson R SaylorsCanadaAnna Fali RENEWAL
Salvatore X RutaIndiaIoni Bowcher QUALIFIED
Ashley V CampainJapanXuxue Feng QUALIFIED
Claire Q KolmetzRussiaElwin Sharvill QUALIFIED
Arvin F GauchoJapanOnyama Limba UNQUALIFIED
Emily L GlickIndiaAmy Elsner NEW
Costa Z BologniaJapanIoni Bowcher NEW
Frozen Columns
Name
Cody T Poquette
Maisha K Gillian
Jeanfrancois L Foller
Jones Y Sergi
Isabel I Briddick
Aika Y Stenseth
Octavia B Amigon
Chavez V Morasca
Faith T Inouye
Alejandro K Gillian
Deepesh Z Paprocki
Nicolas Q Ferencz
Julie W Nestle
Jennifer I Morasca
Darci G Bowley
Aruna L Stockham
Cody W Darakjy
Isabel U Marrier
Misaki N Tollner
Alejandro N Saylors
Aika C Chui
Adams D Gillian
Tony R Dilliard
Johnson T Doe
Jefferson C Stenseth
Johnson N Perin
Alejandro V Bolognia
James V Venere
Darci D Rim
Aruna N Perin
Jeanfrancois J Flosi
Deepesh X Malet
Stacey W Slusarski
Leja Z Caudy
Munro U Butt
Deepesh D Maclead
Emily Z Whobrey
Isabel W Stenseth
Rodrigues Y Venere
Cody S Gillian
Munro T Marrier
Greenwood D Flosi
Octavia V Briddick
Aika K Butt
Ashley G Nestle
Aditya C Gillian
Munro G Rim
Chavez Z Dilliard
Misaki E Saylors
Emily L Nicka
IdCountryDate
1000Germany2024-06-09
1001Argentina2024-06-20
1002Australia2024-05-28
1003Argentina2024-06-11
1004Argentina2024-06-14
1005Brazil2024-05-26
1006Italy2024-05-30
1007Spain2024-06-07
1008Japan2024-05-30
1009Russia2024-06-16
1010India2024-06-17
1011France2024-06-13
1012Argentina2024-06-24
1013India2024-06-03
1014Australia2024-06-23
1015Italy2024-06-05
1016Brazil2024-06-20
1017India2024-05-31
1018Russia2024-05-29
1019United Kingdom2024-06-08
1020Brazil2024-06-05
1021Spain2024-06-22
1022Russia2024-06-04
1023Canada2024-06-22
1024Argentina2024-06-18
1025Canada2024-05-28
1026France2024-06-02
1027Australia2024-06-19
1028Spain2024-06-22
1029Spain2024-06-15
1030United Kingdom2024-06-09
1031Russia2024-06-23
1032Japan2024-06-08
1033Italy2024-06-09
1034India2024-06-04
1035Australia2024-06-08
1036Australia2024-06-03
1037France2024-06-11
1038Canada2024-06-05
1039Germany2024-06-12
1040India2024-06-23
1041Japan2024-06-10
1042Russia2024-05-30
1043Italy2024-06-01
1044Canada2024-06-02
1045Argentina2024-06-02
1046Spain2024-06-20
1047Australia2024-06-12
1048Argentina2024-06-01
1049Canada2024-05-29

On-Demand Data

NameIdCountryDate
Ashley Y Garufi1000India2024-06-15
Sinclair V Nestle1001Canada2024-05-26
Salvatore Z Doe1002France2024-06-09
Chavez Y Vocelka1003Canada2024-06-03
Misaki P Gillian1004Argentina2024-06-11
Salvatore S Paprocki1005Russia2024-06-11
Maria Z Rim1006Italy2024-06-19
Maisha T Malet1007Canada2024-06-05
Greenwood R Foller1008India2024-06-24
Ashley T Stockham1009Russia2024-06-15
Emily Z Kusko1010France2024-06-15
Jeanfrancois D Iturbide1011Australia2024-06-10
Jennifer H Whobrey1012Italy2024-05-27
Ricardo G Caldarera1013Australia2024-06-11
Kaitlin W Sergi1014United Kingdom2024-06-13
Smith H Kolmetz1015India2024-06-12
Faith H Butt1016France2024-06-24
Tony G Briddick1017Brazil2024-05-26
Salvatore H Bolognia1018India2024-06-13
Arvin J Paprocki1019India2024-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia X BologniaJapanAsiya Javayant UNQUALIFIED
Darci N MaletIndiaAmy Elsner QUALIFIED
Chavez A ChuiBrazilAmy Elsner NEGOTIATION
Sinclair F KuskoSpainBernardo Dominic RENEWAL
Kaitlin Z RimAustraliaElwin Sharvill NEW
Izzy L BowleyUnited KingdomStephen Shaw NEW
Tony G OldroydUnited KingdomStephen Shaw RENEWAL
Juan L NickaSpainXuxue Feng UNQUALIFIED
Faith I GauchoAustraliaIvan Magalhaes PROPOSAL
David S DilliardBrazilAnna Fali QUALIFIED
Ivar S MarrierCanadaAmy Elsner QUALIFIED
Octavia R WhobreyGermanyAnna Fali PROPOSAL
Claire Y WaycottSpainAnna Fali NEGOTIATION
Kaitlin I MacleadRussiaIvan Magalhaes UNQUALIFIED
Jefferson T SchemmerRussiaElwin Sharvill QUALIFIED
Ricardo H CaudyAustraliaIvan Magalhaes NEGOTIATION
Jennifer F BologniaIndiaXuxue Feng NEGOTIATION
David A CampainUnited KingdomXuxue Feng NEW
Aruna N RutaUnited KingdomIoni Bowcher NEGOTIATION
Aditya T WhobreyAustraliaStephen Shaw RENEWAL
Ricardo X GillianSpainOnyama Limba UNQUALIFIED
Izzy C BowleyFranceAnna Fali PROPOSAL
Misaki R SchemmerFranceIoni Bowcher QUALIFIED
Adams T PaprockiSpainIoni Bowcher NEGOTIATION
Faith Y FigeroaFranceAnna Fali RENEWAL
Cody Z MacleadRussiaIoni Bowcher RENEWAL
Nicolas G AlbaresFranceAnna Fali UNQUALIFIED
Maria L FigeroaBrazilElwin Sharvill NEGOTIATION
Sinclair R PerinAustraliaAmy Elsner UNQUALIFIED
Stacey Q MorascaGermanyBernardo Dominic NEGOTIATION
Leon U InouyeBrazilElwin Sharvill UNQUALIFIED
Antonio L WaycottArgentinaElwin Sharvill UNQUALIFIED
Deepesh H DarakjyFranceIvan Magalhaes NEGOTIATION
Deepesh H GillianJapanElwin Sharvill PROPOSAL
Cody H BologniaCanadaOnyama Limba NEW
Ashley C IturbideItalyIvan Magalhaes QUALIFIED
Adams I ShinkoIndiaStephen Shaw NEGOTIATION
Julie G StensethJapanAmy Elsner RENEWAL
Salvatore Q OstroskySpainXuxue Feng NEGOTIATION
Kaitlin A MorascaArgentinaStephen Shaw QUALIFIED

<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>