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 F CampainFranceIoni Bowcher UNQUALIFIED
Isabel T BriddickRussiaIoni Bowcher QUALIFIED
Kadeem S ChuiArgentinaBernardo Dominic PROPOSAL
Wickens J AlbaresSpainAnna Fali UNQUALIFIED
Adams R IturbideFranceIoni Bowcher NEGOTIATION
Costa O SlusarskiBrazilIoni Bowcher UNQUALIFIED
Jennifer I SlusarskiGermanyAnna Fali PROPOSAL
Morrow V OstroskyItalyAsiya Javayant PROPOSAL
Isabel N FlosiGermanyIvan Magalhaes UNQUALIFIED
Silvio E VenereArgentinaBernardo Dominic PROPOSAL
Izzy Y ShinkoCanadaElwin Sharvill NEGOTIATION
Leja Y GarufiUnited KingdomAnna Fali RENEWAL
Isabel E PerinArgentinaBernardo Dominic RENEWAL
Wickens K PaprockiAustraliaAsiya Javayant RENEWAL
Sinclair R VocelkaJapanAnna Fali PROPOSAL
Faith O ButtJapanIvan Magalhaes NEGOTIATION
Arvin P FigeroaUnited KingdomAnna Fali PROPOSAL
Jefferson O GlickRussiaAsiya Javayant NEW
Darci H FlosiRussiaOnyama Limba NEW
Jones L RulapaughRussiaStephen Shaw RENEWAL
Cody W PoquetteJapanIoni Bowcher NEW
Maria U WieserCanadaAmy Elsner UNQUALIFIED
Kadeem A WhobreyItalyIvan Magalhaes NEW
Kadeem N SergiRussiaIvan Magalhaes RENEWAL
Morrow P MarrierRussiaIoni Bowcher RENEWAL
Maisha K FigeroaCanadaXuxue Feng PROPOSAL
Isabel X SlusarskiAustraliaStephen Shaw NEW
Misaki V IturbideFranceAmy Elsner UNQUALIFIED
Faith F IturbideItalyStephen Shaw PROPOSAL
Jefferson F MarrierBrazilIoni Bowcher QUALIFIED
Aditya Y BologniaArgentinaIoni Bowcher NEW
Adams V SergiBrazilIoni Bowcher PROPOSAL
Smith X WieserRussiaIvan Magalhaes PROPOSAL
Alejandro G ShinkoGermanyElwin Sharvill PROPOSAL
Adams O BowleyGermanyIvan Magalhaes UNQUALIFIED
Jones E MaletIndiaOnyama Limba QUALIFIED
Juan J CampainSpainIoni Bowcher NEW
Smith Q RutaCanadaAmy Elsner NEGOTIATION
Darci M AmigonIndiaOnyama Limba PROPOSAL
Jennifer Z PaprockiUnited KingdomAnna Fali RENEWAL
Chavez Z ButtItalyBernardo Dominic UNQUALIFIED
Maria Q BriddickUnited KingdomAsiya Javayant QUALIFIED
Julie Y FerenczJapanAnna Fali UNQUALIFIED
Ashley P GarufiRussiaIoni Bowcher UNQUALIFIED
Darci Q BriddickIndiaStephen Shaw QUALIFIED
Misaki L NestleItalyIoni Bowcher QUALIFIED
Adams F BowleySpainIoni Bowcher UNQUALIFIED
Darci T IturbideGermanyAnna Fali UNQUALIFIED
Chavez V DarakjyItalyOnyama Limba NEW
Smith N FerenczItalyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones B MorascaItalyOnyama Limba PROPOSAL
Leon Y ShinkoIndiaOnyama Limba NEW
Mujtaba T BriddickSpainStephen Shaw PROPOSAL
Maria O AmigonItalyAsiya Javayant NEGOTIATION
Arvin Y BowleyIndiaAnna Fali UNQUALIFIED
Stacey Z StockhamJapanAmy Elsner RENEWAL
Juan I ButtArgentinaXuxue Feng UNQUALIFIED
Francesco G VocelkaSpainIoni Bowcher UNQUALIFIED
Octavia B DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro E ButtBrazilBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair Y StockhamCanada2026-07-01Chanay, Jeffrey A Esq RENEWAL2Amy Elsner
1001Silvio N KolmetzIndia2026-07-01Rousseaux, Michael Esq RENEWAL52Onyama Limba
1002Alejandro M DarakjyArgentina2026-07-20Buckley Miller Wright RENEWAL73Bernardo Dominic
1003Rodrigues U ChuiGermany2026-07-14Chapman, Ross E Esq NEGOTIATION73Xuxue Feng
1004Wickens U AlbaresArgentina2026-07-28Morlong Associates RENEWAL31Bernardo Dominic
1005Stacey K FollerCanada2026-06-30Rousseaux, Michael Esq NEGOTIATION75Ioni Bowcher
1006Isabel S FollerIndia2026-07-07Buckley Miller Wright NEGOTIATION95Amy Elsner
1007Munro J SchemmerJapan2026-07-27Rousseaux, Michael Esq QUALIFIED0Stephen Shaw
1008Tony B RimBrazil2026-07-07Commercial Press QUALIFIED25Elwin Sharvill
1009Salvatore O ChuiIndia2026-07-07Rangoni Of Florence QUALIFIED68Stephen Shaw
1010Maisha R KolmetzRussia2026-07-13Feltz Printing Service RENEWAL36Onyama Limba
1011Antonio Z WieserFrance2026-07-18King, Christopher A Esq RENEWAL30Ioni Bowcher
1012Ricardo M AmigonCanada2026-07-02Morlong Associates UNQUALIFIED71Asiya Javayant
1013Kaitlin C OstroskyCanada2026-07-14Chapman, Ross E Esq QUALIFIED27Elwin Sharvill
1014Nicolas A SlusarskiFrance2026-07-24Chemel, James L Cpa RENEWAL60Elwin Sharvill
1015Octavia M DilliardItaly2026-07-27Morlong Associates NEW17Amy Elsner
1016Sinclair N BologniaItaly2026-07-05Rangoni Of Florence RENEWAL29Stephen Shaw
1017Leon H PoquetteFrance2026-07-23Chemel, James L Cpa PROPOSAL26Ivan Magalhaes
1018Juan D RoysterFrance2026-07-06Morlong Associates RENEWAL15Ioni Bowcher
1019Izzy C CaldareraArgentina2026-07-18Feiner Bros NEGOTIATION29Bernardo Dominic
1020Leja O StensethGermany2026-07-04Rousseaux, Michael Esq RENEWAL20Asiya Javayant
1021Isabel O BologniaBrazil2026-07-14Benton, John B Jr UNQUALIFIED77Stephen Shaw
1022Maisha O BriddickRussia2026-07-19Truhlar And Truhlar Attys QUALIFIED80Asiya Javayant
1023Jefferson B SchemmerRussia2026-07-14Rousseaux, Michael Esq NEW21Asiya Javayant
1024Mayumi V WhobreyUnited Kingdom2026-07-12Commercial Press RENEWAL15Ivan Magalhaes
1025Ivar E DarakjyIndia2026-06-30Chapman, Ross E Esq PROPOSAL80Amy Elsner
1026Chavez C OldroydUnited Kingdom2026-07-29Benton, John B Jr NEW44Ioni Bowcher
1027Salvatore A OstroskyItaly2026-07-20Feiner Bros QUALIFIED27Ioni Bowcher
1028Johnson J KuskoSpain2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED61Amy Elsner
1029Aditya X AlbaresJapan2026-07-03Benton, John B Jr RENEWAL13Elwin Sharvill
1030Juan H GauchoUnited Kingdom2026-07-11Feltz Printing Service NEW84Elwin Sharvill
1031Deepesh L PerinUnited Kingdom2026-07-12Chemel, James L Cpa NEW49Anna Fali
1032Nicolas R WaycottSpain2026-07-03Rousseaux, Michael Esq RENEWAL78Onyama Limba
1033Jones L SergiBrazil2026-07-24Chapman, Ross E Esq NEGOTIATION14Elwin Sharvill
1034Salvatore G TollnerIndia2026-07-16Chapman, Ross E Esq QUALIFIED49Ivan Magalhaes
1035Kadeem V WieserRussia2026-07-10Benton, John B Jr NEGOTIATION10Ivan Magalhaes
1036Stacey L StockhamCanada2026-07-10Benton, John B Jr NEW27Bernardo Dominic
1037Izzy L CampainFrance2026-07-27Chapman, Ross E Esq QUALIFIED47Xuxue Feng
1038Kaitlin Q GlickItaly2026-07-28Dorl, James J Esq PROPOSAL17Xuxue Feng
1039Salvatore M KuskoCanada2026-07-25Chanay, Jeffrey A Esq NEGOTIATION94Ioni Bowcher
1040Ricardo L MarrierRussia2026-07-01Commercial Press NEW3Xuxue Feng
1041Ivar S KolmetzRussia2026-07-29Rangoni Of Florence UNQUALIFIED1Amy Elsner
1042Ashley O FollerSpain2026-07-12Benton, John B Jr PROPOSAL39Asiya Javayant
1043Sinclair X FlosiAustralia2026-07-07Feiner Bros QUALIFIED44Stephen Shaw
1044Juan A PoquetteUnited Kingdom2026-07-27Chanay, Jeffrey A Esq NEW37Elwin Sharvill
1045Kaitlin G FollerAustralia2026-07-14Dorl, James J Esq UNQUALIFIED54Onyama Limba
1046Claire D InouyeFrance2026-07-22Benton, John B Jr RENEWAL1Anna Fali
1047Alejandro T InouyeCanada2026-07-22Rousseaux, Michael Esq QUALIFIED2Bernardo Dominic
1048Francesco U BriddickCanada2026-07-20Rangoni Of Florence NEGOTIATION47Anna Fali
1049Tony Q AmigonCanada2026-07-17Chanay, Jeffrey A Esq NEW77Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan V PerinIndiaAsiya Javayant QUALIFIED
Sinclair K CaldareraBrazilAnna Fali RENEWAL
Greenwood C CaudyItalyIoni Bowcher NEGOTIATION
Silvio X PoquetteBrazilBernardo Dominic RENEWAL
Jefferson F ButtArgentinaXuxue Feng RENEWAL
Leon J AmigonBrazilIoni Bowcher RENEWAL
Octavia D ChuiJapanElwin Sharvill RENEWAL
Francesco O ChuiJapanElwin Sharvill NEGOTIATION
Murillo F DarakjyFranceAmy Elsner NEGOTIATION
James Q MaletArgentinaXuxue Feng RENEWAL
James Z PaprockiCanadaOnyama Limba PROPOSAL
Chavez J PaprockiItalyAsiya Javayant QUALIFIED
Sinclair T BologniaAustraliaAnna Fali PROPOSAL
Maisha J MaletUnited KingdomAsiya Javayant NEW
Nicolas L AlbaresSpainAmy Elsner RENEWAL
Nicolas W RoysterItalyIoni Bowcher NEW
Kadeem R ButtCanadaIoni Bowcher UNQUALIFIED
Johnson B VocelkaItalyBernardo Dominic NEGOTIATION
Juan Z ShinkoArgentinaBernardo Dominic QUALIFIED
Aika E OldroydRussiaIvan Magalhaes UNQUALIFIED
Silvio I NestleJapanOnyama Limba QUALIFIED
Sinclair H PaprockiSpainIoni Bowcher QUALIFIED
Francesco T GauchoFranceAmy Elsner QUALIFIED
Emily P SaylorsCanadaAmy Elsner UNQUALIFIED
Misaki J DoeCanadaAnna Fali RENEWAL
Arvin R CaudySpainBernardo Dominic PROPOSAL
Jeanfrancois A PaprockiFranceIoni Bowcher UNQUALIFIED
Misaki F MacleadAustraliaElwin Sharvill UNQUALIFIED
Jeanfrancois L RutaArgentinaAsiya Javayant PROPOSAL
Maisha B FollerSpainIvan Magalhaes NEW
Misaki O MaletArgentinaOnyama Limba QUALIFIED
Costa T FigeroaFranceBernardo Dominic NEGOTIATION
Morrow D OldroydArgentinaAsiya Javayant QUALIFIED
Rodrigues V DoeSpainAnna Fali NEW
Izzy U MarrierJapanXuxue Feng PROPOSAL
Jefferson Z VocelkaItalyBernardo Dominic UNQUALIFIED
Arvin T ButtIndiaStephen Shaw RENEWAL
Tony E MarrierFranceXuxue Feng QUALIFIED
Tony P RimFranceIvan Magalhaes UNQUALIFIED
Silvio Y RutaIndiaStephen Shaw NEGOTIATION
Leja Z VenereAustraliaOnyama Limba NEW
Jennifer G DoeItalyIvan Magalhaes QUALIFIED
Tony F DoeBrazilStephen Shaw RENEWAL
Leon T BowleyRussiaStephen Shaw NEGOTIATION
Kaitlin V FlosiFranceIvan Magalhaes QUALIFIED
Kadeem W WaycottCanadaStephen Shaw PROPOSAL
Deepesh Y CaldareraRussiaXuxue Feng UNQUALIFIED
Ricardo R CampainJapanIoni Bowcher QUALIFIED
Smith C NickaJapanAmy Elsner QUALIFIED
Maria B CaudyCanadaIvan Magalhaes NEW
Frozen Columns
Name
Cody G Ruta
Jennifer V Bolognia
Aika A Gaucho
Jones V Ferencz
Antonio E Briddick
Chavez N Paprocki
Nicolas Z Glick
Tony R Kusko
Octavia U Gaucho
Leja U Royster
Isabel W Dilliard
Murillo M Schemmer
Cody B Nestle
Munro Y Bolognia
Stacey Z Royster
Stacey M Maclead
Wickens M Flosi
Nicolas E Paprocki
Mujtaba P Figeroa
Chavez Y Whobrey
Rodrigues U Oldroyd
Aruna R Slusarski
Leja U Marrier
Aika B Bolognia
Stacey U Chui
Murillo B Venere
Murillo Z Flosi
Silvio D Briddick
Jeanfrancois B Glick
Isabel W Saylors
Aruna B Bowley
Tony Y Dilliard
David S Butt
Chavez H Paprocki
Kaitlin P Marrier
Tony Q Butt
Leja J Maclead
Izzy Z Campain
Claire F Rim
Wickens A Ferencz
Deepesh D Morasca
Ivar E Gaucho
Tony Q Malet
Rodrigues B Waycott
Deepesh Q Paprocki
Cody T Flosi
James S Malet
Aditya V Nestle
Morrow V Stenseth
Munro B Wieser
IdCountryDate
1000Australia2026-07-22
1001Italy2026-07-28
1002Spain2026-07-24
1003Japan2026-07-09
1004Spain2026-07-17
1005United Kingdom2026-07-15
1006Australia2026-07-15
1007India2026-07-03
1008Australia2026-07-04
1009Spain2026-07-16
1010Japan2026-06-30
1011Brazil2026-07-11
1012Russia2026-07-10
1013Russia2026-07-14
1014Argentina2026-07-22
1015United Kingdom2026-07-16
1016United Kingdom2026-07-02
1017Japan2026-07-11
1018Brazil2026-07-06
1019India2026-07-28
1020Argentina2026-07-14
1021Japan2026-07-29
1022Spain2026-07-22
1023Russia2026-07-07
1024United Kingdom2026-07-10
1025France2026-07-26
1026Spain2026-07-01
1027Argentina2026-07-17
1028Brazil2026-07-21
1029Germany2026-07-09
1030Australia2026-07-17
1031Australia2026-07-13
1032France2026-07-14
1033Argentina2026-07-15
1034France2026-07-21
1035Brazil2026-07-11
1036Canada2026-07-15
1037Canada2026-07-04
1038Australia2026-07-22
1039Argentina2026-07-25
1040United Kingdom2026-07-05
1041India2026-07-12
1042Australia2026-07-15
1043Canada2026-07-25
1044Canada2026-07-02
1045Australia2026-06-30
1046Argentina2026-07-15
1047Brazil2026-07-13
1048Germany2026-07-09
1049Italy2026-07-28

On-Demand Data

NameIdCountryDate
Wickens D Bowley1000Brazil2026-07-20
Adams H Royster1001Canada2026-07-25
Julie N Campain1002Italy2026-07-01
Sinclair D Morasca1003Argentina2026-07-24
Darci O Royster1004Argentina2026-07-02
Tony W Chui1005Japan2026-07-09
Murillo E Sergi1006Spain2026-07-17
Jefferson N Bowley1007United Kingdom2026-07-10
Jennifer A Shinko1008Italy2026-07-01
Mujtaba R Paprocki1009Canada2026-07-28
Kadeem L Perin1010Spain2026-07-03
Stacey P Butt1011India2026-07-12
Aruna T Nestle1012Germany2026-07-15
Isabel U Bolognia1013Brazil2026-07-15
Stacey J Rulapaugh1014Australia2026-07-15
Maria V Chui1015India2026-07-16
Cody U Bolognia1016Spain2026-07-21
Deepesh F Iturbide1017United Kingdom2026-07-28
Sinclair C Caldarera1018Germany2026-07-24
Tony C Briddick1019Japan2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair T NestleItalyIvan Magalhaes QUALIFIED
Cody R NestleRussiaOnyama Limba NEW
Mayumi V GarufiFranceBernardo Dominic PROPOSAL
Jennifer S PaprockiItalyAsiya Javayant UNQUALIFIED
Ashley X MacleadRussiaOnyama Limba QUALIFIED
Antonio W RutaArgentinaAsiya Javayant PROPOSAL
Faith Q MaletBrazilAmy Elsner NEW
Francesco I WieserBrazilStephen Shaw RENEWAL
Leon L GlickJapanAmy Elsner PROPOSAL
Darci X RulapaughSpainIvan Magalhaes NEW
Arvin P MaletSpainStephen Shaw NEGOTIATION
Leja X RulapaughArgentinaStephen Shaw PROPOSAL
Nicolas E StockhamUnited KingdomIvan Magalhaes NEW
Chavez K StensethRussiaAsiya Javayant RENEWAL
Octavia I KuskoUnited KingdomAsiya Javayant QUALIFIED
Maisha O SergiBrazilAmy Elsner RENEWAL
Aruna D StensethJapanAmy Elsner NEGOTIATION
Ivar M SergiUnited KingdomStephen Shaw RENEWAL
Salvatore W KuskoBrazilOnyama Limba NEW
Cody N AlbaresUnited KingdomAmy Elsner QUALIFIED
Costa Y WieserItalyAmy Elsner PROPOSAL
Jeanfrancois C MacleadJapanIvan Magalhaes PROPOSAL
Francesco R CaudyGermanyAsiya Javayant QUALIFIED
Juan J VocelkaCanadaIoni Bowcher NEW
Munro H PoquetteRussiaAnna Fali QUALIFIED
Kadeem W DilliardIndiaXuxue Feng PROPOSAL
Greenwood A FigeroaJapanAmy Elsner UNQUALIFIED
Mujtaba L PerinIndiaXuxue Feng NEW
Ivar L ButtJapanElwin Sharvill PROPOSAL
Clifford K DarakjyArgentinaBernardo Dominic RENEWAL
Julie A RutaJapanXuxue Feng NEW
Rodrigues Z MarrierRussiaStephen Shaw NEGOTIATION
Sinclair S WhobreySpainElwin Sharvill RENEWAL
Deepesh R GlickCanadaOnyama Limba UNQUALIFIED
Isabel G PoquetteIndiaXuxue Feng RENEWAL
Silvio G PoquetteRussiaElwin Sharvill UNQUALIFIED
Maisha F WieserBrazilIvan Magalhaes UNQUALIFIED
Stacey Q GillianItalyIoni Bowcher UNQUALIFIED
Ashley I SergiIndiaIoni Bowcher RENEWAL
Stacey M SaylorsGermanyBernardo Dominic 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>