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
Izzy C MaletFranceAmy Elsner RENEWAL
Leon P FlosiAustraliaIoni Bowcher RENEWAL
Salvatore U DilliardJapanXuxue Feng QUALIFIED
Murillo O TollnerArgentinaElwin Sharvill PROPOSAL
Isabel N IturbideSpainElwin Sharvill QUALIFIED
Octavia Z FlosiRussiaAmy Elsner NEW
Smith P CampainGermanyIvan Magalhaes UNQUALIFIED
Aruna U WaycottCanadaAnna Fali UNQUALIFIED
Isabel A RimGermanyAsiya Javayant RENEWAL
Ashley Z IturbideIndiaIvan Magalhaes PROPOSAL
Jefferson O KolmetzArgentinaOnyama Limba NEW
Octavia T PerinIndiaIvan Magalhaes NEW
Salvatore H BriddickItalyAnna Fali UNQUALIFIED
Jones M GarufiJapanXuxue Feng NEGOTIATION
Claire F MaletJapanBernardo Dominic RENEWAL
Ashley W WieserArgentinaAmy Elsner PROPOSAL
Smith T GauchoFranceOnyama Limba UNQUALIFIED
Aditya W GarufiRussiaElwin Sharvill PROPOSAL
Morrow I NestleFranceIoni Bowcher UNQUALIFIED
Kadeem D CaldareraArgentinaAmy Elsner NEW
David M MorascaIndiaAmy Elsner NEGOTIATION
Claire I DoeSpainAsiya Javayant RENEWAL
Costa U MacleadUnited KingdomIvan Magalhaes RENEWAL
Arvin J SaylorsUnited KingdomIvan Magalhaes RENEWAL
Murillo C MaletItalyAsiya Javayant UNQUALIFIED
Leja O CaudyFranceAmy Elsner QUALIFIED
Tony F KolmetzJapanAnna Fali RENEWAL
Julie A DoeRussiaElwin Sharvill QUALIFIED
Antonio R CaldareraBrazilIoni Bowcher PROPOSAL
Clifford W FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Munro C MaletAustraliaIvan Magalhaes UNQUALIFIED
Deepesh A FerenczFranceBernardo Dominic PROPOSAL
Claire I PerinCanadaElwin Sharvill QUALIFIED
Tony P GauchoUnited KingdomOnyama Limba NEGOTIATION
Isabel P StensethAustraliaIoni Bowcher NEGOTIATION
Jones F CampainFranceStephen Shaw NEGOTIATION
Maisha P SergiRussiaIoni Bowcher PROPOSAL
Aika G StensethSpainIvan Magalhaes NEW
Adams B ChuiCanadaBernardo Dominic QUALIFIED
Ashley D BriddickFranceStephen Shaw PROPOSAL
Chavez D WieserAustraliaBernardo Dominic NEGOTIATION
Arvin Y OldroydArgentinaXuxue Feng NEW
Leja T MaletArgentinaBernardo Dominic NEGOTIATION
James P TollnerBrazilAmy Elsner NEGOTIATION
Arvin F StensethBrazilOnyama Limba QUALIFIED
Silvio D MaletUnited KingdomAmy Elsner NEW
David E StensethArgentinaElwin Sharvill RENEWAL
Kaitlin A FollerSpainIvan Magalhaes QUALIFIED
Maisha J ButtAustraliaStephen Shaw UNQUALIFIED
James L GillianArgentinaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford K WieserBrazilElwin Sharvill NEGOTIATION
Arvin S RoysterFranceIoni Bowcher PROPOSAL
Nicolas S GlickAustraliaIvan Magalhaes NEW
Darci R PaprockiGermanyIvan Magalhaes NEW
Jones Q TollnerUnited KingdomStephen Shaw NEGOTIATION
Stacey R BriddickFranceAmy Elsner PROPOSAL
Mujtaba X MorascaCanadaOnyama Limba QUALIFIED
Alejandro B SaylorsRussiaBernardo Dominic QUALIFIED
Alejandro P AlbaresSpainBernardo Dominic UNQUALIFIED
Isabel G KuskoAustraliaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki I InouyeJapan2024-05-27Rousseaux, Michael Esq QUALIFIED4Xuxue Feng
1001Costa X PaprockiItaly2024-06-01Buckley Miller Wright RENEWAL66Xuxue Feng
1002Jeanfrancois H MaletCanada2024-05-27King, Christopher A Esq NEGOTIATION71Ioni Bowcher
1003Nicolas Z NestleAustralia2024-06-15Feiner Bros QUALIFIED14Ioni Bowcher
1004Mayumi K WhobreyArgentina2024-06-22Chapman, Ross E Esq NEGOTIATION40Amy Elsner
1005Murillo D SergiGermany2024-06-17Chanay, Jeffrey A Esq QUALIFIED80Ivan Magalhaes
1006Aika D PoquetteCanada2024-06-22Buckley Miller Wright RENEWAL30Bernardo Dominic
1007Misaki I TollnerIndia2024-05-31Printing Dimensions RENEWAL63Ioni Bowcher
1008Smith X NestleSpain2024-06-13Feiner Bros QUALIFIED32Amy Elsner
1009Maria O StockhamRussia2024-06-12Feiner Bros UNQUALIFIED59Ioni Bowcher
1010Aika V FlosiBrazil2024-06-09Dorl, James J Esq PROPOSAL81Ivan Magalhaes
1011Mujtaba I NickaJapan2024-06-01Chapman, Ross E Esq QUALIFIED43Stephen Shaw
1012Ricardo S MarrierBrazil2024-06-16Truhlar And Truhlar Attys NEW29Anna Fali
1013Aditya N FollerCanada2024-06-23Buckley Miller Wright UNQUALIFIED59Stephen Shaw
1014Maria B FigeroaIndia2024-06-03Benton, John B Jr PROPOSAL92Anna Fali
1015Francesco O MacleadJapan2024-06-10Commercial Press RENEWAL48Ivan Magalhaes
1016Aditya C RoysterAustralia2024-05-31Feltz Printing Service NEGOTIATION74Asiya Javayant
1017Stacey Z RulapaughJapan2024-06-02Dorl, James J Esq NEW9Bernardo Dominic
1018Izzy U ChuiItaly2024-06-22Rousseaux, Michael Esq NEW87Amy Elsner
1019Juan C VenereItaly2024-05-26Truhlar And Truhlar Attys PROPOSAL17Amy Elsner
1020Izzy U WaycottAustralia2024-06-18Chemel, James L Cpa QUALIFIED49Asiya Javayant
1021Octavia P StensethFrance2024-06-11Truhlar And Truhlar Attys PROPOSAL72Xuxue Feng
1022Emily V InouyeFrance2024-05-29Truhlar And Truhlar Attys NEW58Elwin Sharvill
1023Darci E BologniaCanada2024-06-01Dorl, James J Esq UNQUALIFIED9Stephen Shaw
1024Greenwood W WieserUnited Kingdom2024-06-24Feltz Printing Service UNQUALIFIED20Onyama Limba
1025Tony M CaldareraItaly2024-06-19Benton, John B Jr QUALIFIED6Amy Elsner
1026Kaitlin S KuskoBrazil2024-06-05Chapman, Ross E Esq UNQUALIFIED50Ioni Bowcher
1027Mujtaba U IturbideGermany2024-06-16Dorl, James J Esq NEW78Bernardo Dominic
1028Jennifer H WaycottItaly2024-06-13Chapman, Ross E Esq UNQUALIFIED76Asiya Javayant
1029Antonio N PaprockiSpain2024-06-12King, Christopher A Esq RENEWAL76Ivan Magalhaes
1030Arvin O RulapaughJapan2024-06-05Morlong Associates QUALIFIED4Onyama Limba
1031Julie M PoquetteArgentina2024-06-10Feltz Printing Service PROPOSAL83Stephen Shaw
1032Rodrigues R FollerGermany2024-05-26Feltz Printing Service NEW72Ioni Bowcher
1033Murillo I CaudyCanada2024-06-22Feltz Printing Service NEGOTIATION90Stephen Shaw
1034Chavez C KuskoArgentina2024-06-19Chapman, Ross E Esq UNQUALIFIED3Stephen Shaw
1035Antonio B IturbideFrance2024-06-15Chanay, Jeffrey A Esq RENEWAL15Ioni Bowcher
1036Arvin D RimIndia2024-06-06Morlong Associates RENEWAL39Ioni Bowcher
1037Izzy D BologniaBrazil2024-06-08Dorl, James J Esq QUALIFIED0Elwin Sharvill
1038Salvatore I FlosiRussia2024-06-14Chanay, Jeffrey A Esq QUALIFIED79Elwin Sharvill
1039Faith I CaldareraSpain2024-06-08Benton, John B Jr PROPOSAL57Xuxue Feng
1040Aditya U BowleyBrazil2024-06-11Buckley Miller Wright QUALIFIED94Ivan Magalhaes
1041Jennifer F ShinkoArgentina2024-06-08Buckley Miller Wright NEW92Ioni Bowcher
1042Silvio U RulapaughUnited Kingdom2024-06-19King, Christopher A Esq UNQUALIFIED52Amy Elsner
1043Morrow Q KuskoIndia2024-06-21Chanay, Jeffrey A Esq QUALIFIED88Ioni Bowcher
1044Morrow Z DoeGermany2024-06-01Buckley Miller Wright RENEWAL8Ivan Magalhaes
1045Ashley D CampainGermany2024-06-23Truhlar And Truhlar Attys NEW36Onyama Limba
1046Wickens Y GarufiCanada2024-05-30Rangoni Of Florence NEGOTIATION30Asiya Javayant
1047Munro N MacleadArgentina2024-06-10Morlong Associates RENEWAL44Xuxue Feng
1048Jones U MacleadCanada2024-06-07Printing Dimensions NEGOTIATION0Ivan Magalhaes
1049Adams H GlickSpain2024-06-09Truhlar And Truhlar Attys NEW57Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson V GillianJapanIoni Bowcher UNQUALIFIED
Murillo W ShinkoRussiaOnyama Limba QUALIFIED
Aruna P ButtJapanStephen Shaw NEW
Ivar K CaudyArgentinaElwin Sharvill NEW
Ricardo C MaletCanadaBernardo Dominic PROPOSAL
Sinclair A BriddickIndiaOnyama Limba QUALIFIED
Alejandro C CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Leon K MaletSpainStephen Shaw UNQUALIFIED
Darci H OldroydGermanyIvan Magalhaes NEW
Juan G AmigonBrazilAsiya Javayant UNQUALIFIED
Nicolas I DoeGermanyAmy Elsner QUALIFIED
Juan A WhobreyRussiaIoni Bowcher RENEWAL
Aika Y ButtBrazilStephen Shaw QUALIFIED
Juan W ShinkoJapanStephen Shaw PROPOSAL
Jones A SlusarskiFranceIvan Magalhaes RENEWAL
Kadeem R NickaCanadaAnna Fali UNQUALIFIED
Maisha Y BriddickSpainAsiya Javayant RENEWAL
Sinclair C OstroskyItalyIoni Bowcher NEGOTIATION
Jennifer G DoeAustraliaOnyama Limba NEGOTIATION
Nicolas H RoysterItalyIvan Magalhaes PROPOSAL
Misaki Y BowleyAustraliaOnyama Limba NEW
Aruna I DarakjyCanadaIoni Bowcher PROPOSAL
Munro Q ShinkoBrazilAsiya Javayant NEW
Antonio P NickaFranceXuxue Feng NEGOTIATION
Mujtaba D DarakjyBrazilElwin Sharvill NEW
Leon G RutaIndiaOnyama Limba RENEWAL
Arvin L ShinkoIndiaStephen Shaw PROPOSAL
Kadeem V ShinkoAustraliaOnyama Limba UNQUALIFIED
Leja C BowleyArgentinaAnna Fali NEGOTIATION
Leon S PaprockiSpainOnyama Limba UNQUALIFIED
Emily Y GlickArgentinaIvan Magalhaes QUALIFIED
Mayumi A MacleadRussiaXuxue Feng RENEWAL
Deepesh Z PerinUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair D PoquetteGermanyStephen Shaw PROPOSAL
Octavia M MaletIndiaElwin Sharvill QUALIFIED
James H PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Antonio F CaldareraArgentinaOnyama Limba PROPOSAL
Mujtaba A SlusarskiSpainBernardo Dominic RENEWAL
Rodrigues J GauchoJapanOnyama Limba NEW
Maisha T CampainGermanyOnyama Limba RENEWAL
Costa T AlbaresGermanyIoni Bowcher NEGOTIATION
Darci L RoysterIndiaAnna Fali PROPOSAL
Leja N BowleyBrazilBernardo Dominic NEW
Aruna K MaletUnited KingdomIvan Magalhaes PROPOSAL
Ivar R VocelkaSpainBernardo Dominic UNQUALIFIED
Costa L MaletUnited KingdomOnyama Limba RENEWAL
Kadeem X MaletBrazilBernardo Dominic RENEWAL
Sinclair M OldroydFranceIvan Magalhaes NEW
Aruna T WieserUnited KingdomAnna Fali NEGOTIATION
Darci H BriddickFranceAnna Fali NEGOTIATION
Frozen Columns
Name
Aditya X Royster
David P Malet
Claire B Perin
Leja P Kusko
Silvio D Sergi
Ashley A Waycott
Ashley P Kusko
Salvatore J Maclead
Octavia O Glick
Octavia P Amigon
Silvio O Whobrey
Mujtaba W Campain
Cody H Ostrosky
Kaitlin V Inouye
Wickens N Caldarera
Deepesh Y Morasca
Faith Y Wieser
Rodrigues X Sergi
Jeanfrancois B Figeroa
Tony H Stockham
Wickens S Nestle
Adams F Ostrosky
Murillo Y Marrier
Maria U Briddick
Emily Y Nicka
Salvatore Z Doe
Kadeem T Malet
Salvatore C Dilliard
Izzy Q Inouye
Jones J Nestle
Arvin N Bolognia
Maria K Venere
Antonio I Waycott
James W Caudy
Greenwood W Perin
Adams S Perin
Munro G Ruta
Antonio L Paprocki
Maria X Maclead
Emily N Garufi
Maria Z Amigon
Jennifer X Figeroa
Johnson B Shinko
Emily Z Slusarski
Costa L Stenseth
Cody K Ruta
Jeanfrancois L Caudy
Chavez C Gaucho
Kaitlin B Doe
Cody Y Flosi
IdCountryDate
1000Argentina2024-05-29
1001Russia2024-06-19
1002India2024-06-20
1003Italy2024-05-29
1004Australia2024-06-06
1005Japan2024-05-29
1006Japan2024-06-17
1007Spain2024-05-27
1008Japan2024-05-26
1009Spain2024-06-24
1010Canada2024-06-02
1011Germany2024-06-06
1012Canada2024-05-29
1013Brazil2024-06-09
1014Russia2024-06-03
1015Argentina2024-06-16
1016France2024-06-16
1017Australia2024-06-10
1018Brazil2024-06-19
1019Germany2024-05-28
1020Italy2024-06-04
1021Argentina2024-06-14
1022India2024-06-12
1023Argentina2024-06-01
1024Italy2024-06-21
1025Germany2024-06-02
1026Japan2024-06-21
1027France2024-06-18
1028Canada2024-06-20
1029Brazil2024-06-14
1030Australia2024-06-17
1031Italy2024-06-12
1032Argentina2024-06-14
1033United Kingdom2024-06-21
1034Russia2024-06-05
1035Germany2024-06-12
1036Japan2024-05-28
1037Japan2024-06-11
1038Spain2024-06-11
1039Spain2024-06-07
1040Russia2024-06-01
1041Argentina2024-06-08
1042Italy2024-05-28
1043Brazil2024-06-20
1044United Kingdom2024-06-07
1045France2024-06-17
1046Italy2024-05-27
1047Russia2024-06-02
1048Italy2024-05-28
1049Brazil2024-05-26

On-Demand Data

NameIdCountryDate
Cody S Kusko1000Brazil2024-06-05
Sinclair P Glick1001Brazil2024-06-23
David D Vocelka1002Argentina2024-06-20
David L Kolmetz1003India2024-06-04
Kaitlin X Gaucho1004Italy2024-06-11
Clifford C Schemmer1005Russia2024-06-02
Faith Q Darakjy1006Argentina2024-06-18
Wickens P Wieser1007Italy2024-06-05
Kadeem W Kusko1008United Kingdom2024-05-28
Isabel I Waycott1009Brazil2024-06-10
Clifford K Nicka1010United Kingdom2024-06-19
Francesco Y Wieser1011France2024-06-20
Maria S Bowley1012Australia2024-06-19
Cody T Ferencz1013Japan2024-06-19
Smith I Inouye1014Australia2024-06-10
Smith Q Sergi1015Italy2024-06-15
Kaitlin R Sergi1016Australia2024-06-23
Morrow K Ferencz1017Argentina2024-06-02
Wickens B Marrier1018Italy2024-06-21
Misaki O Gaucho1019Spain2024-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi M WaycottIndiaXuxue Feng NEGOTIATION
Izzy D MarrierItalyAsiya Javayant NEGOTIATION
Sinclair L SchemmerIndiaBernardo Dominic UNQUALIFIED
Adams I VocelkaGermanyElwin Sharvill UNQUALIFIED
Smith Q PoquetteFranceAnna Fali PROPOSAL
Smith E CampainSpainIoni Bowcher NEGOTIATION
Francesco X PaprockiAustraliaIoni Bowcher RENEWAL
Alejandro R SaylorsIndiaStephen Shaw NEW
Ashley W FerenczBrazilIoni Bowcher NEGOTIATION
Silvio B RoysterIndiaAnna Fali NEGOTIATION
Misaki P VenereIndiaIvan Magalhaes UNQUALIFIED
Faith E GarufiJapanAnna Fali QUALIFIED
Nicolas G GlickArgentinaStephen Shaw NEGOTIATION
Maisha C GillianGermanyXuxue Feng NEW
Leon B DoeCanadaAsiya Javayant NEGOTIATION
Juan L RutaItalyIoni Bowcher RENEWAL
Izzy M KuskoRussiaElwin Sharvill NEGOTIATION
Jefferson R MacleadIndiaAnna Fali RENEWAL
Antonio P DoeSpainXuxue Feng QUALIFIED
Emily M BologniaRussiaAsiya Javayant RENEWAL
Misaki H AlbaresAustraliaAsiya Javayant RENEWAL
Jefferson J FigeroaArgentinaIvan Magalhaes PROPOSAL
Emily C DoeFranceAmy Elsner QUALIFIED
Kadeem Z PaprockiIndiaAnna Fali PROPOSAL
Maria C DilliardRussiaAnna Fali UNQUALIFIED
Ricardo F IturbideFranceBernardo Dominic QUALIFIED
Wickens D NestleSpainAsiya Javayant QUALIFIED
Claire X OldroydRussiaIoni Bowcher NEGOTIATION
Antonio E StensethFranceOnyama Limba UNQUALIFIED
Darci I MorascaUnited KingdomAsiya Javayant RENEWAL
Claire W ChuiSpainIvan Magalhaes NEW
Aika U MaletSpainIvan Magalhaes NEW
Julie E StockhamJapanStephen Shaw RENEWAL
Morrow O NickaJapanIoni Bowcher NEGOTIATION
Misaki J IturbideIndiaBernardo Dominic PROPOSAL
Alejandro V AmigonItalyAsiya Javayant UNQUALIFIED
Alejandro X RoysterRussiaBernardo Dominic UNQUALIFIED
Jefferson W PerinGermanyIoni Bowcher QUALIFIED
Aika I CaldareraBrazilAsiya Javayant NEGOTIATION
Adams J RimAustraliaAsiya Javayant 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>