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
Adams J SergiGermanyAnna Fali NEGOTIATION
Izzy S GauchoUnited KingdomOnyama Limba QUALIFIED
Izzy F WhobreyBrazilAnna Fali PROPOSAL
Leja R PerinUnited KingdomAsiya Javayant UNQUALIFIED
Silvio P OstroskyUnited KingdomIvan Magalhaes RENEWAL
Mayumi V DarakjyUnited KingdomAnna Fali NEW
Jefferson X PerinFranceOnyama Limba QUALIFIED
Darci E StensethSpainBernardo Dominic NEGOTIATION
Munro C RulapaughIndiaAsiya Javayant PROPOSAL
Aditya N MarrierJapanAmy Elsner UNQUALIFIED
Antonio M BologniaItalyElwin Sharvill QUALIFIED
Leja I SaylorsSpainIvan Magalhaes NEW
Ivar B NickaFranceBernardo Dominic NEGOTIATION
Antonio W FollerFranceAnna Fali RENEWAL
Murillo D GillianCanadaAmy Elsner PROPOSAL
Greenwood Q VocelkaIndiaIoni Bowcher QUALIFIED
Arvin Y ShinkoFranceBernardo Dominic NEGOTIATION
David Y WaycottArgentinaBernardo Dominic PROPOSAL
Kadeem K RulapaughCanadaIvan Magalhaes NEGOTIATION
Jennifer T KuskoIndiaStephen Shaw NEW
Cody X SlusarskiFranceAsiya Javayant UNQUALIFIED
James N StockhamGermanyAmy Elsner QUALIFIED
Murillo I PoquetteIndiaAmy Elsner RENEWAL
Rodrigues N OldroydUnited KingdomStephen Shaw RENEWAL
Juan B WieserSpainAnna Fali PROPOSAL
Murillo Z TollnerCanadaAsiya Javayant UNQUALIFIED
Aruna Z RimJapanXuxue Feng PROPOSAL
Cody H WieserIndiaStephen Shaw QUALIFIED
Rodrigues R GillianSpainStephen Shaw PROPOSAL
Claire B FigeroaRussiaAmy Elsner QUALIFIED
Juan V FollerSpainIvan Magalhaes UNQUALIFIED
Mujtaba D VenereItalyIvan Magalhaes UNQUALIFIED
Cody M RutaSpainIoni Bowcher NEGOTIATION
Ashley G VocelkaAustraliaElwin Sharvill QUALIFIED
Kadeem K WaycottJapanBernardo Dominic UNQUALIFIED
Leja A GarufiArgentinaAnna Fali PROPOSAL
Jones A VocelkaBrazilAmy Elsner NEGOTIATION
Nicolas C IturbideGermanyIvan Magalhaes NEW
Clifford Y InouyeBrazilElwin Sharvill QUALIFIED
Greenwood P PerinFranceAnna Fali NEGOTIATION
Arvin Q GlickBrazilElwin Sharvill QUALIFIED
Leon H WaycottJapanAnna Fali QUALIFIED
Aruna F WhobreyJapanAsiya Javayant PROPOSAL
Jennifer O MacleadItalyAnna Fali NEGOTIATION
Isabel U RulapaughIndiaElwin Sharvill NEW
Leon L ButtItalyOnyama Limba QUALIFIED
Smith T GlickGermanyStephen Shaw NEGOTIATION
Johnson D PerinBrazilOnyama Limba UNQUALIFIED
Kaitlin Z StensethJapanAmy Elsner QUALIFIED
Aditya M AlbaresFranceAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson N RimSpainOnyama Limba RENEWAL
Emily K GlickGermanyAmy Elsner QUALIFIED
Chavez Z MaletArgentinaBernardo Dominic UNQUALIFIED
Clifford J ShinkoBrazilStephen Shaw NEW
Nicolas G DilliardIndiaAnna Fali UNQUALIFIED
Kadeem X SchemmerAustraliaIvan Magalhaes NEGOTIATION
Murillo L RimGermanyOnyama Limba PROPOSAL
Maisha C MaletBrazilOnyama Limba QUALIFIED
Jeanfrancois K VenereIndiaAmy Elsner NEGOTIATION
Clifford Q VocelkaItalyElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David W OldroydUnited Kingdom2024-05-26Buckley Miller Wright NEW84Ioni Bowcher
1001Jeanfrancois Z GillianUnited Kingdom2024-05-31Feltz Printing Service RENEWAL52Ivan Magalhaes
1002Alejandro A IturbideAustralia2024-05-22Chanay, Jeffrey A Esq NEW22Elwin Sharvill
1003Leon V GlickSpain2024-05-26Printing Dimensions UNQUALIFIED57Xuxue Feng
1004Jefferson Y FigeroaItaly2024-06-02Chapman, Ross E Esq QUALIFIED94Onyama Limba
1005Leon M FerenczIndia2024-06-12Benton, John B Jr UNQUALIFIED79Ioni Bowcher
1006Clifford K PerinRussia2024-05-28Truhlar And Truhlar Attys QUALIFIED72Asiya Javayant
1007Costa E FlosiArgentina2024-05-23Rangoni Of Florence QUALIFIED43Elwin Sharvill
1008Ivar G NestleJapan2024-05-29Benton, John B Jr UNQUALIFIED91Stephen Shaw
1009Kadeem M StockhamFrance2024-06-12Rousseaux, Michael Esq UNQUALIFIED45Stephen Shaw
1010Greenwood X ButtFrance2024-05-21Commercial Press QUALIFIED84Ivan Magalhaes
1011Juan U TollnerAustralia2024-05-25Chapman, Ross E Esq PROPOSAL71Anna Fali
1012Antonio D RutaFrance2024-05-26Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1013Munro K OstroskyIndia2024-06-08King, Christopher A Esq NEGOTIATION6Ivan Magalhaes
1014Claire U RoysterIndia2024-05-31Feltz Printing Service RENEWAL71Anna Fali
1015Sinclair E VocelkaItaly2024-06-10Commercial Press NEW1Ioni Bowcher
1016Cody V WieserItaly2024-05-22Rousseaux, Michael Esq QUALIFIED48Elwin Sharvill
1017Maisha I GarufiFrance2024-06-14Truhlar And Truhlar Attys PROPOSAL76Asiya Javayant
1018David O DilliardItaly2024-06-04Commercial Press NEW99Amy Elsner
1019Leja R DilliardIndia2024-05-26Dorl, James J Esq UNQUALIFIED96Bernardo Dominic
1020Silvio K InouyeFrance2024-05-26Rousseaux, Michael Esq PROPOSAL42Elwin Sharvill
1021Stacey V AmigonRussia2024-06-02Chapman, Ross E Esq QUALIFIED57Bernardo Dominic
1022Alejandro H FollerItaly2024-06-03Feltz Printing Service NEW3Elwin Sharvill
1023Maisha S StensethGermany2024-06-11Dorl, James J Esq QUALIFIED3Amy Elsner
1024Deepesh I RulapaughItaly2024-06-05Feltz Printing Service NEW52Ioni Bowcher
1025Mujtaba K FerenczBrazil2024-05-20Chapman, Ross E Esq NEGOTIATION97Amy Elsner
1026Maisha Y VocelkaCanada2024-05-22Benton, John B Jr UNQUALIFIED20Elwin Sharvill
1027Morrow D RoysterIndia2024-05-29Printing Dimensions RENEWAL23Stephen Shaw
1028Misaki H MaletGermany2024-06-11King, Christopher A Esq PROPOSAL89Ivan Magalhaes
1029Nicolas R MorascaSpain2024-05-24King, Christopher A Esq NEW67Xuxue Feng
1030Cody H MaletCanada2024-05-29Commercial Press NEW69Stephen Shaw
1031Claire F GauchoBrazil2024-06-11Commercial Press PROPOSAL72Onyama Limba
1032Juan C WaycottAustralia2024-05-20Feltz Printing Service PROPOSAL87Stephen Shaw
1033Faith Z FlosiSpain2024-06-02Rangoni Of Florence NEW54Xuxue Feng
1034Tony V FigeroaFrance2024-05-25Rousseaux, Michael Esq RENEWAL62Ioni Bowcher
1035Aditya J OldroydAustralia2024-06-10Morlong Associates NEW58Xuxue Feng
1036Murillo R SchemmerItaly2024-05-25Morlong Associates UNQUALIFIED12Xuxue Feng
1037Misaki M BologniaArgentina2024-06-13Commercial Press PROPOSAL38Bernardo Dominic
1038Chavez T BologniaAustralia2024-05-31Dorl, James J Esq NEW9Amy Elsner
1039Ricardo N PoquetteItaly2024-05-27Rangoni Of Florence PROPOSAL2Amy Elsner
1040Johnson D SlusarskiFrance2024-06-06Buckley Miller Wright QUALIFIED33Stephen Shaw
1041Chavez M AlbaresGermany2024-06-02Printing Dimensions NEGOTIATION92Anna Fali
1042Rodrigues W SergiArgentina2024-05-28Buckley Miller Wright NEGOTIATION54Amy Elsner
1043Alejandro U NickaCanada2024-06-18Morlong Associates NEGOTIATION12Stephen Shaw
1044Greenwood O GillianUnited Kingdom2024-06-07Chapman, Ross E Esq NEW31Ioni Bowcher
1045Silvio O FlosiCanada2024-06-08Benton, John B Jr RENEWAL17Ivan Magalhaes
1046Maria F MaletGermany2024-06-17Benton, John B Jr NEW18Amy Elsner
1047Misaki Y VenereBrazil2024-06-05Morlong Associates NEGOTIATION98Bernardo Dominic
1048Francesco X MorascaUnited Kingdom2024-05-28Rangoni Of Florence NEW47Stephen Shaw
1049Aika A SergiJapan2024-06-15Rousseaux, Michael Esq UNQUALIFIED83Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Chavez A WieserSpainAnna Fali UNQUALIFIED
Jeanfrancois K WaycottBrazilIvan Magalhaes NEGOTIATION
Munro K GlickArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois L StockhamCanadaStephen Shaw UNQUALIFIED
Adams G GillianItalyXuxue Feng QUALIFIED
Arvin H IturbideArgentinaElwin Sharvill NEGOTIATION
James P OldroydRussiaAnna Fali RENEWAL
Jennifer S TollnerGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois Y GauchoGermanyAnna Fali NEGOTIATION
Kaitlin K PoquetteCanadaXuxue Feng NEGOTIATION
Nicolas Z SlusarskiFranceXuxue Feng NEW
Murillo B PerinJapanIvan Magalhaes RENEWAL
Emily C PerinBrazilXuxue Feng NEW
Leon A FerenczIndiaAmy Elsner PROPOSAL
Arvin O SaylorsAustraliaAnna Fali RENEWAL
Ashley Q NickaUnited KingdomElwin Sharvill NEGOTIATION
Cody V FlosiAustraliaIvan Magalhaes NEW
Octavia K GlickIndiaAsiya Javayant PROPOSAL
Morrow N IturbideGermanyAsiya Javayant NEW
Emily G CampainFranceAmy Elsner UNQUALIFIED
Tony S BowleyCanadaIvan Magalhaes NEW
Tony H AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Chavez G DarakjyJapanBernardo Dominic UNQUALIFIED
Clifford N MorascaItalyAmy Elsner UNQUALIFIED
Wickens E FigeroaAustraliaXuxue Feng NEGOTIATION
Kaitlin S CaldareraBrazilAmy Elsner RENEWAL
Maisha I SaylorsFranceAmy Elsner RENEWAL
Maria I CaldareraRussiaIvan Magalhaes NEGOTIATION
Ivar A GlickSpainStephen Shaw UNQUALIFIED
Murillo D StensethAustraliaIvan Magalhaes QUALIFIED
Darci V SaylorsItalyStephen Shaw NEW
David D StensethCanadaXuxue Feng QUALIFIED
Leja H RutaGermanyElwin Sharvill NEGOTIATION
James H TollnerFranceBernardo Dominic QUALIFIED
Francesco M ShinkoIndiaBernardo Dominic NEGOTIATION
Stacey V MacleadFranceOnyama Limba PROPOSAL
Munro U GillianUnited KingdomIoni Bowcher PROPOSAL
Julie N InouyeAustraliaAsiya Javayant PROPOSAL
Jennifer U FlosiBrazilAsiya Javayant NEW
Arvin A IturbideGermanyElwin Sharvill QUALIFIED
Stacey F RimAustraliaIoni Bowcher NEW
Isabel K BowleyRussiaAmy Elsner QUALIFIED
Jones K CaudyRussiaIvan Magalhaes NEGOTIATION
Julie T PaprockiBrazilIoni Bowcher UNQUALIFIED
Arvin E FerenczUnited KingdomAsiya Javayant NEW
Jennifer R KolmetzJapanStephen Shaw QUALIFIED
Octavia G FollerAustraliaAmy Elsner NEW
Ricardo L ShinkoArgentinaOnyama Limba RENEWAL
Sinclair D ShinkoArgentinaOnyama Limba RENEWAL
Cody H CampainRussiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Aruna E Stockham
Ivar G Bolognia
Johnson H Oldroyd
Jones B Bolognia
Chavez E Flosi
Arvin Y Caldarera
Maisha N Waycott
Ivar S Nestle
Ricardo P Ruta
Tony R Kolmetz
Misaki K Marrier
Maria G Nestle
James V Figeroa
Wickens C Amigon
Mujtaba K Bowley
Leon O Nestle
Ashley K Slusarski
Cody D Schemmer
Darci S Caldarera
Maisha H Kusko
Maria K Stenseth
James B Poquette
Ivar J Marrier
Misaki G Shinko
Ricardo U Bowley
Deepesh P Ostrosky
Cody S Dilliard
Faith T Gillian
Chavez A Whobrey
Nicolas L Morasca
Francesco O Malet
Cody U Tollner
Kaitlin H Stockham
Greenwood D Morasca
Aika J Albares
Ivar D Bolognia
Ricardo V Oldroyd
Adams Y Stenseth
Sinclair W Marrier
Costa Z Paprocki
Munro X Bowley
Rodrigues W Rim
Smith N Foller
Aruna J Kolmetz
Mujtaba G Stenseth
David O Oldroyd
Stacey Q Kusko
Aruna W Marrier
Kadeem M Venere
Cody G Tollner
IdCountryDate
1000Spain2024-06-12
1001Italy2024-05-31
1002Canada2024-05-24
1003Italy2024-06-17
1004Italy2024-06-12
1005Argentina2024-06-05
1006Japan2024-05-28
1007Brazil2024-05-24
1008Argentina2024-05-21
1009Japan2024-06-16
1010Argentina2024-05-23
1011India2024-06-17
1012Australia2024-06-08
1013France2024-06-04
1014Australia2024-05-25
1015France2024-06-15
1016Australia2024-05-21
1017Spain2024-05-29
1018Italy2024-06-15
1019Argentina2024-05-25
1020France2024-06-10
1021Brazil2024-06-01
1022United Kingdom2024-06-09
1023United Kingdom2024-06-16
1024Germany2024-05-24
1025Japan2024-06-07
1026France2024-06-10
1027Russia2024-06-10
1028India2024-06-14
1029Germany2024-05-28
1030Germany2024-05-31
1031United Kingdom2024-06-04
1032Russia2024-06-14
1033Japan2024-06-15
1034Australia2024-06-01
1035India2024-06-13
1036Canada2024-05-26
1037United Kingdom2024-06-10
1038United Kingdom2024-06-07
1039Spain2024-05-27
1040Argentina2024-06-17
1041India2024-06-11
1042France2024-06-04
1043Russia2024-06-14
1044United Kingdom2024-05-31
1045Japan2024-05-29
1046Argentina2024-05-25
1047Brazil2024-06-04
1048Germany2024-06-17
1049Japan2024-06-06

On-Demand Data

NameIdCountryDate
Jones T Bowley1000Spain2024-05-25
Ricardo A Maclead1001Brazil2024-05-25
Octavia N Bowley1002France2024-06-02
Antonio Z Malet1003Argentina2024-06-09
James B Stenseth1004Brazil2024-06-17
Juan I Oldroyd1005Australia2024-06-08
Kadeem A Vocelka1006Brazil2024-05-27
Izzy X Ferencz1007United Kingdom2024-06-12
Cody K Bowley1008Brazil2024-06-14
Johnson Q Chui1009Spain2024-06-06
Rodrigues C Tollner1010United Kingdom2024-05-21
Adams A Saylors1011Australia2024-06-02
Deepesh X Stockham1012Italy2024-06-15
Johnson L Vocelka1013United Kingdom2024-05-20
Rodrigues L Venere1014Germany2024-05-22
Jennifer Z Figeroa1015Spain2024-06-04
Claire N Bolognia1016Italy2024-06-10
Salvatore B Chui1017Italy2024-06-17
Emily L Marrier1018United Kingdom2024-05-22
Antonio A Kolmetz1019United Kingdom2024-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson W PaprockiJapanBernardo Dominic NEGOTIATION
Smith W DarakjyUnited KingdomAsiya Javayant RENEWAL
Leja O GillianCanadaAsiya Javayant PROPOSAL
Clifford U PaprockiJapanOnyama Limba NEGOTIATION
Greenwood E FerenczCanadaOnyama Limba NEW
Stacey A RimCanadaAsiya Javayant QUALIFIED
Murillo M MacleadAustraliaAsiya Javayant PROPOSAL
Kadeem R FerenczIndiaIvan Magalhaes PROPOSAL
David M AmigonArgentinaIvan Magalhaes PROPOSAL
Sinclair P CaudyItalyAmy Elsner UNQUALIFIED
Clifford I RoysterCanadaBernardo Dominic UNQUALIFIED
Leja D CaldareraItalyIoni Bowcher UNQUALIFIED
Clifford Y BowleyItalyBernardo Dominic NEW
Mayumi C InouyeSpainAsiya Javayant NEGOTIATION
Jones P MaletCanadaIoni Bowcher RENEWAL
David Q AlbaresJapanIoni Bowcher NEGOTIATION
Nicolas N BowleyJapanIoni Bowcher NEGOTIATION
Faith E RimRussiaElwin Sharvill PROPOSAL
Clifford I BologniaBrazilAnna Fali QUALIFIED
Francesco R KolmetzSpainIvan Magalhaes PROPOSAL
Morrow X KuskoFranceElwin Sharvill QUALIFIED
Silvio O PoquetteBrazilIvan Magalhaes PROPOSAL
Aditya S NestleCanadaAnna Fali UNQUALIFIED
Adams Z RulapaughJapanBernardo Dominic RENEWAL
Aruna S ButtGermanyAsiya Javayant QUALIFIED
Nicolas G VocelkaBrazilAnna Fali UNQUALIFIED
Deepesh L NestleFranceElwin Sharvill QUALIFIED
Mujtaba T DoeJapanIvan Magalhaes UNQUALIFIED
Mujtaba C ShinkoRussiaIvan Magalhaes UNQUALIFIED
Maria O ChuiItalyIvan Magalhaes NEGOTIATION
Salvatore E CampainArgentinaBernardo Dominic NEGOTIATION
Wickens S WaycottBrazilXuxue Feng PROPOSAL
Nicolas B FerenczUnited KingdomBernardo Dominic NEW
Misaki I DoeCanadaBernardo Dominic RENEWAL
Murillo C RoysterUnited KingdomBernardo Dominic QUALIFIED
Wickens M MarrierIndiaAmy Elsner QUALIFIED
Emily Q FlosiItalyIvan Magalhaes NEW
Mujtaba X SergiCanadaIvan Magalhaes RENEWAL
James B VenereBrazilAnna Fali NEGOTIATION
Nicolas Y NestleJapanIoni 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>