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
Faith R MaletIndiaElwin Sharvill NEW
Ashley E StockhamGermanyXuxue Feng NEW
Alejandro T WaycottSpainOnyama Limba RENEWAL
Jefferson U RulapaughCanadaXuxue Feng QUALIFIED
Jones L DoeRussiaAsiya Javayant NEGOTIATION
Antonio J RulapaughAustraliaAsiya Javayant UNQUALIFIED
Izzy W SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Octavia D StockhamItalyAmy Elsner NEGOTIATION
Mujtaba I SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Jones A DoeUnited KingdomOnyama Limba UNQUALIFIED
David G ChuiItalyStephen Shaw QUALIFIED
Sinclair M FigeroaFranceIoni Bowcher NEGOTIATION
Clifford N IturbideIndiaIvan Magalhaes NEW
James C CaudyArgentinaOnyama Limba UNQUALIFIED
Faith C TollnerSpainBernardo Dominic QUALIFIED
Arvin O BologniaItalyAsiya Javayant QUALIFIED
David W KuskoItalyStephen Shaw PROPOSAL
Francesco V OldroydRussiaAsiya Javayant PROPOSAL
Munro C PaprockiArgentinaBernardo Dominic NEGOTIATION
Leon O NestleSpainXuxue Feng PROPOSAL
Leon J AmigonItalyIvan Magalhaes QUALIFIED
James L MaletSpainAmy Elsner RENEWAL
Clifford A MacleadRussiaXuxue Feng PROPOSAL
Stacey C MaletGermanyAmy Elsner NEW
Ivar I MaletRussiaAmy Elsner QUALIFIED
Chavez A BowleyIndiaIvan Magalhaes NEGOTIATION
Faith E FollerArgentinaBernardo Dominic NEGOTIATION
Clifford B BriddickItalyBernardo Dominic PROPOSAL
Jones T FollerGermanyElwin Sharvill UNQUALIFIED
Morrow H FigeroaIndiaAnna Fali QUALIFIED
Mujtaba R BologniaRussiaElwin Sharvill RENEWAL
Kaitlin N VocelkaArgentinaAsiya Javayant QUALIFIED
Chavez X AmigonIndiaIoni Bowcher QUALIFIED
Mayumi X DoeArgentinaXuxue Feng NEW
Sinclair S StensethBrazilAmy Elsner RENEWAL
James P StensethIndiaStephen Shaw NEGOTIATION
Jefferson M RulapaughJapanIoni Bowcher UNQUALIFIED
Rodrigues U RulapaughJapanAnna Fali UNQUALIFIED
Munro H FigeroaItalyStephen Shaw UNQUALIFIED
Misaki M WhobreySpainAsiya Javayant QUALIFIED
Nicolas M DilliardBrazilIoni Bowcher QUALIFIED
Octavia Y CaudyGermanyIvan Magalhaes NEGOTIATION
Chavez T WhobreyUnited KingdomXuxue Feng NEW
Arvin I RimItalyAsiya Javayant NEW
Jefferson A SchemmerGermanyAmy Elsner RENEWAL
Tony B FigeroaAustraliaAsiya Javayant RENEWAL
David J BowleyJapanBernardo Dominic NEW
Tony B KolmetzGermanyOnyama Limba QUALIFIED
Cody M MarrierUnited KingdomOnyama Limba UNQUALIFIED
Leja I TollnerUnited KingdomStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Aruna C ShinkoUnited KingdomIvan Magalhaes RENEWAL
Johnson K GauchoFranceAnna Fali UNQUALIFIED
David Y ButtJapanElwin Sharvill PROPOSAL
Aditya H KuskoRussiaAmy Elsner QUALIFIED
Sinclair M VenereArgentinaAnna Fali UNQUALIFIED
Jones J SlusarskiSpainXuxue Feng NEGOTIATION
Claire V MarrierRussiaAsiya Javayant NEGOTIATION
Izzy Q NickaSpainAmy Elsner RENEWAL
Aika B RimGermanyIoni Bowcher NEW
Sinclair V GillianItalyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba N ChuiAustralia2026-08-01Feiner Bros PROPOSAL22Elwin Sharvill
1001David R RutaJapan2026-08-10Morlong Associates NEGOTIATION84Elwin Sharvill
1002Julie M CaudyRussia2026-08-08Rangoni Of Florence NEGOTIATION90Ivan Magalhaes
1003Jeanfrancois H WaycottJapan2026-08-14King, Christopher A Esq NEGOTIATION42Elwin Sharvill
1004Cody M ChuiArgentina2026-08-01King, Christopher A Esq UNQUALIFIED86Bernardo Dominic
1005Johnson J MacleadArgentina2026-08-21Morlong Associates RENEWAL20Amy Elsner
1006Alejandro Q FigeroaCanada2026-08-12Feiner Bros NEW3Ivan Magalhaes
1007Jeanfrancois O RoysterRussia2026-08-21Chapman, Ross E Esq RENEWAL45Bernardo Dominic
1008Isabel I SergiItaly2026-07-25Morlong Associates NEW3Stephen Shaw
1009Misaki F NestleCanada2026-08-01Feltz Printing Service PROPOSAL99Anna Fali
1010Maisha V BowleyBrazil2026-08-09Feltz Printing Service NEGOTIATION18Xuxue Feng
1011Costa C FerenczAustralia2026-07-23Chanay, Jeffrey A Esq NEW1Bernardo Dominic
1012Rodrigues Q IturbideFrance2026-07-23Printing Dimensions RENEWAL50Xuxue Feng
1013Octavia K NestleSpain2026-08-20Chapman, Ross E Esq QUALIFIED35Amy Elsner
1014Maisha M SaylorsBrazil2026-07-28Chemel, James L Cpa RENEWAL66Asiya Javayant
1015Aruna T GillianRussia2026-07-29King, Christopher A Esq PROPOSAL31Amy Elsner
1016Emily G InouyeAustralia2026-08-07Feiner Bros UNQUALIFIED52Onyama Limba
1017Jones S OldroydArgentina2026-07-23Feiner Bros UNQUALIFIED90Amy Elsner
1018Leon G BriddickGermany2026-07-29Rangoni Of Florence RENEWAL9Xuxue Feng
1019Isabel Y GauchoGermany2026-08-21Benton, John B Jr PROPOSAL10Onyama Limba
1020Alejandro T OstroskyItaly2026-07-27Rangoni Of Florence NEW49Anna Fali
1021Smith K BowleyBrazil2026-07-28Chapman, Ross E Esq NEGOTIATION29Bernardo Dominic
1022Kaitlin I SchemmerCanada2026-08-10Chanay, Jeffrey A Esq RENEWAL48Xuxue Feng
1023Clifford N CaudyRussia2026-07-28Chapman, Ross E Esq UNQUALIFIED24Stephen Shaw
1024Francesco P MarrierBrazil2026-07-24Chanay, Jeffrey A Esq RENEWAL87Amy Elsner
1025Mujtaba X OldroydJapan2026-08-11Buckley Miller Wright UNQUALIFIED81Elwin Sharvill
1026Claire G PaprockiJapan2026-08-17Printing Dimensions UNQUALIFIED28Anna Fali
1027Murillo M RutaSpain2026-08-10Benton, John B Jr UNQUALIFIED98Anna Fali
1028Francesco J NickaRussia2026-08-05Chapman, Ross E Esq NEGOTIATION72Ivan Magalhaes
1029Julie C ShinkoItaly2026-07-29King, Christopher A Esq RENEWAL96Elwin Sharvill
1030Tony T CaldareraIndia2026-08-11Rousseaux, Michael Esq PROPOSAL82Onyama Limba
1031Chavez B RutaFrance2026-07-26Truhlar And Truhlar Attys QUALIFIED88Bernardo Dominic
1032Cody G InouyeJapan2026-08-01Rangoni Of Florence NEW99Amy Elsner
1033Morrow R GauchoIndia2026-08-06Dorl, James J Esq NEGOTIATION51Stephen Shaw
1034Morrow X AlbaresItaly2026-07-29Printing Dimensions UNQUALIFIED55Ivan Magalhaes
1035Sinclair L OldroydSpain2026-08-03Buckley Miller Wright RENEWAL50Amy Elsner
1036Nicolas R CaudyItaly2026-08-13King, Christopher A Esq UNQUALIFIED42Bernardo Dominic
1037Tony F MorascaCanada2026-08-07Benton, John B Jr UNQUALIFIED49Amy Elsner
1038Octavia S CampainCanada2026-08-12Morlong Associates RENEWAL38Elwin Sharvill
1039Wickens Z CaldareraAustralia2026-07-25Commercial Press RENEWAL91Xuxue Feng
1040Alejandro L RoysterBrazil2026-08-13Morlong Associates NEGOTIATION50Asiya Javayant
1041Kadeem Q DoeSpain2026-07-31Morlong Associates UNQUALIFIED3Bernardo Dominic
1042Smith X AlbaresRussia2026-07-30Feiner Bros PROPOSAL59Ivan Magalhaes
1043Darci R SaylorsJapan2026-08-01Truhlar And Truhlar Attys UNQUALIFIED90Bernardo Dominic
1044Misaki E StensethUnited Kingdom2026-07-27Rangoni Of Florence RENEWAL6Xuxue Feng
1045Octavia F ChuiBrazil2026-08-20Benton, John B Jr UNQUALIFIED21Amy Elsner
1046Francesco E OldroydBrazil2026-08-10Dorl, James J Esq NEW18Amy Elsner
1047Deepesh D DarakjySpain2026-08-17Feiner Bros NEGOTIATION67Elwin Sharvill
1048Smith P OstroskyItaly2026-07-24Feiner Bros NEW98Xuxue Feng
1049Aditya V StockhamArgentina2026-08-06Dorl, James J Esq RENEWAL37Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci K DarakjyAustraliaStephen Shaw UNQUALIFIED
Jennifer D BriddickRussiaAnna Fali PROPOSAL
Faith K RimSpainIoni Bowcher RENEWAL
Jennifer L FollerItalyAmy Elsner QUALIFIED
Octavia O CaudySpainXuxue Feng NEW
Leon L SaylorsUnited KingdomAmy Elsner PROPOSAL
Leon C BowleyBrazilAmy Elsner NEGOTIATION
James R OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Chavez B InouyeJapanAsiya Javayant UNQUALIFIED
Kadeem T FigeroaItalyIoni Bowcher UNQUALIFIED
Stacey P RulapaughAustraliaBernardo Dominic UNQUALIFIED
Kadeem Q MacleadIndiaAnna Fali UNQUALIFIED
Jefferson P PaprockiRussiaOnyama Limba NEW
Kaitlin G StensethGermanyAsiya Javayant PROPOSAL
Claire S StockhamAustraliaIoni Bowcher NEW
Silvio D BologniaCanadaIoni Bowcher NEGOTIATION
Ivar S StensethSpainIoni Bowcher NEGOTIATION
Faith X DilliardIndiaAmy Elsner PROPOSAL
Izzy H BowleyBrazilBernardo Dominic NEW
Juan F GillianFranceIoni Bowcher NEW
Maria G DilliardAustraliaXuxue Feng NEGOTIATION
Nicolas B StensethArgentinaXuxue Feng PROPOSAL
Adams B OstroskyJapanStephen Shaw RENEWAL
James W ChuiItalyAmy Elsner QUALIFIED
David G NestleUnited KingdomIoni Bowcher QUALIFIED
Chavez U BologniaJapanIoni Bowcher QUALIFIED
Smith O FerenczRussiaIoni Bowcher RENEWAL
Isabel P MaletFranceAnna Fali RENEWAL
Misaki L BriddickRussiaBernardo Dominic NEW
Greenwood I NickaIndiaAnna Fali UNQUALIFIED
Ashley J MorascaArgentinaIvan Magalhaes PROPOSAL
Silvio X VenereBrazilOnyama Limba RENEWAL
Johnson B RutaFranceStephen Shaw NEGOTIATION
Julie B MacleadItalyAmy Elsner QUALIFIED
Aditya W ShinkoGermanyIoni Bowcher RENEWAL
Leja A SlusarskiRussiaAnna Fali QUALIFIED
Darci N ChuiSpainIvan Magalhaes UNQUALIFIED
Darci Q CaldareraBrazilOnyama Limba PROPOSAL
Smith B ChuiCanadaOnyama Limba PROPOSAL
Costa Q PaprockiJapanXuxue Feng QUALIFIED
Antonio Y KuskoSpainAnna Fali NEW
Cody R StockhamAustraliaXuxue Feng QUALIFIED
Silvio K ShinkoBrazilElwin Sharvill RENEWAL
Stacey B MorascaArgentinaAsiya Javayant UNQUALIFIED
Chavez A NickaAustraliaXuxue Feng RENEWAL
Jennifer G KuskoFranceAmy Elsner PROPOSAL
Nicolas L MaletJapanXuxue Feng QUALIFIED
Salvatore D RimFranceBernardo Dominic PROPOSAL
David Q NickaBrazilBernardo Dominic NEGOTIATION
Jennifer H MaletAustraliaIoni Bowcher PROPOSAL
Frozen Columns
Name
Leon E Amigon
Clifford O Waycott
Aruna B Amigon
Ashley M Caudy
Mujtaba U Marrier
Juan A Garufi
Jones I Ostrosky
Mujtaba I Schemmer
Rodrigues T Gaucho
Jefferson V Oldroyd
Maisha R Briddick
Misaki T Malet
Isabel C Marrier
Salvatore I Stockham
Darci X Marrier
David J Chui
Isabel Z Kolmetz
Antonio M Venere
Ivar E Chui
James K Marrier
Chavez U Foller
Smith O Doe
Arvin D Poquette
Rodrigues K Bowley
Aruna R Albares
Nicolas O Campain
Deepesh K Tollner
Alejandro W Albares
Jones V Waycott
Nicolas N Gillian
Smith T Rulapaugh
Deepesh M Morasca
Aditya S Figeroa
Silvio G Iturbide
Jeanfrancois L Ferencz
Wickens K Dilliard
Johnson F Caudy
Cody H Tollner
Stacey I Stenseth
Morrow D Slusarski
Cody S Ostrosky
Misaki O Waycott
Francesco T Nicka
Morrow K Ostrosky
Isabel I Morasca
Leon H Doe
James V Nestle
Misaki G Briddick
Tony Y Maclead
James D Stenseth
IdCountryDate
1000Argentina2026-08-12
1001Italy2026-08-01
1002Australia2026-08-19
1003Germany2026-08-08
1004Canada2026-08-06
1005Spain2026-08-09
1006Japan2026-08-17
1007Japan2026-08-07
1008Australia2026-08-15
1009Japan2026-07-26
1010Russia2026-07-29
1011France2026-08-10
1012Italy2026-08-01
1013Spain2026-08-21
1014Italy2026-08-05
1015France2026-08-06
1016Argentina2026-08-13
1017United Kingdom2026-07-28
1018India2026-08-09
1019Australia2026-08-17
1020Italy2026-08-08
1021Japan2026-08-10
1022Germany2026-08-18
1023United Kingdom2026-08-07
1024India2026-07-24
1025Germany2026-08-21
1026United Kingdom2026-07-28
1027Germany2026-08-12
1028Brazil2026-08-03
1029Argentina2026-08-08
1030India2026-07-29
1031United Kingdom2026-08-12
1032Canada2026-07-26
1033Japan2026-08-20
1034Canada2026-08-16
1035United Kingdom2026-08-16
1036India2026-07-25
1037Germany2026-08-05
1038United Kingdom2026-08-10
1039France2026-08-15
1040Brazil2026-08-10
1041India2026-08-05
1042Spain2026-08-21
1043France2026-08-11
1044Argentina2026-08-16
1045United Kingdom2026-07-28
1046Brazil2026-08-12
1047Spain2026-08-18
1048United Kingdom2026-08-12
1049Italy2026-07-28

On-Demand Data

NameIdCountryDate
Rodrigues U Tollner1000France2026-08-14
Murillo H Chui1001Italy2026-08-15
Misaki Z Schemmer1002Germany2026-08-02
Octavia T Bowley1003France2026-08-14
Emily R Kolmetz1004Brazil2026-08-04
Silvio T Garufi1005India2026-08-06
Tony E Amigon1006Argentina2026-07-23
Alejandro B Inouye1007Canada2026-08-07
Greenwood C Caldarera1008Russia2026-07-31
Antonio A Malet1009Japan2026-07-29
Arvin L Poquette1010Brazil2026-07-25
Maisha D Briddick1011Germany2026-07-23
Munro D Kusko1012Italy2026-07-28
Ricardo K Amigon1013Australia2026-07-27
Silvio R Venere1014Australia2026-08-18
Aditya K Glick1015Germany2026-07-27
Julie U Perin1016Japan2026-07-30
Misaki I Doe1017United Kingdom2026-08-17
Maisha S Flosi1018Canada2026-08-07
Mujtaba B Kusko1019Canada2026-08-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy G GillianFranceIvan Magalhaes NEW
Johnson U MacleadGermanyIvan Magalhaes PROPOSAL
Aika N DoeFranceIoni Bowcher NEGOTIATION
Misaki P KolmetzCanadaStephen Shaw RENEWAL
Chavez W CampainRussiaElwin Sharvill PROPOSAL
Mayumi T ChuiUnited KingdomAnna Fali NEGOTIATION
Adams T SaylorsGermanyIvan Magalhaes RENEWAL
Smith J DoeRussiaIvan Magalhaes QUALIFIED
Aditya G PaprockiIndiaAmy Elsner RENEWAL
Chavez R BologniaArgentinaOnyama Limba RENEWAL
Costa J NickaAustraliaIvan Magalhaes RENEWAL
Arvin U KuskoGermanyStephen Shaw RENEWAL
Sinclair A SlusarskiIndiaStephen Shaw PROPOSAL
Clifford U RutaAustraliaAnna Fali RENEWAL
Aruna K SlusarskiBrazilStephen Shaw NEW
Greenwood G PoquetteBrazilStephen Shaw RENEWAL
Antonio A NickaSpainAsiya Javayant PROPOSAL
Sinclair Q MaletRussiaAsiya Javayant RENEWAL
Alejandro J IturbideCanadaIvan Magalhaes RENEWAL
Maria V OstroskyIndiaXuxue Feng PROPOSAL
Adams A FigeroaJapanAsiya Javayant NEW
Costa U SlusarskiGermanyBernardo Dominic NEGOTIATION
Aruna N WaycottAustraliaElwin Sharvill RENEWAL
Clifford O DilliardItalyStephen Shaw NEW
Isabel E MorascaSpainElwin Sharvill UNQUALIFIED
Deepesh O VenereItalyAsiya Javayant NEGOTIATION
Leja K PoquetteItalyAsiya Javayant RENEWAL
Maria P KolmetzFranceAsiya Javayant UNQUALIFIED
Clifford F NickaAustraliaStephen Shaw QUALIFIED
Julie O GlickAustraliaIvan Magalhaes PROPOSAL
Emily B GillianSpainStephen Shaw RENEWAL
Adams E FollerAustraliaAnna Fali QUALIFIED
Stacey G VocelkaCanadaAnna Fali PROPOSAL
Greenwood C NickaAustraliaIoni Bowcher NEGOTIATION
Leja G ButtFranceOnyama Limba UNQUALIFIED
Misaki B CaudyArgentinaIoni Bowcher PROPOSAL
Jefferson V VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Arvin F DarakjyFranceElwin Sharvill NEW
Leon V CampainIndiaAnna Fali NEGOTIATION
Jones I MaletJapanOnyama Limba RENEWAL

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