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
Mujtaba Y MacleadBrazilAnna Fali UNQUALIFIED
Emily X RulapaughBrazilAnna Fali UNQUALIFIED
Jennifer W CampainRussiaStephen Shaw PROPOSAL
Murillo Y KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Munro U AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Morrow O SchemmerSpainElwin Sharvill PROPOSAL
Silvio O BologniaGermanyOnyama Limba NEGOTIATION
Francesco M RulapaughItalyStephen Shaw PROPOSAL
Jones G AlbaresCanadaXuxue Feng PROPOSAL
Maisha T MorascaSpainIoni Bowcher NEGOTIATION
Mayumi Z CampainRussiaAnna Fali PROPOSAL
Octavia A WhobreyFranceIvan Magalhaes NEW
Deepesh K StockhamCanadaXuxue Feng QUALIFIED
Jennifer D RutaUnited KingdomIoni Bowcher NEW
Francesco S MaletIndiaStephen Shaw UNQUALIFIED
Isabel Q ShinkoGermanyAsiya Javayant NEW
Nicolas H GarufiJapanAmy Elsner PROPOSAL
Murillo E DilliardRussiaElwin Sharvill PROPOSAL
Leja V VenereJapanElwin Sharvill PROPOSAL
Aika D GarufiRussiaAmy Elsner RENEWAL
Salvatore J NestleBrazilAmy Elsner UNQUALIFIED
Maisha H MaletJapanXuxue Feng PROPOSAL
Smith C SchemmerArgentinaOnyama Limba NEW
Munro G RutaFranceIvan Magalhaes NEW
Isabel Z RimFranceStephen Shaw UNQUALIFIED
Jones H BriddickCanadaAsiya Javayant RENEWAL
Tony L OldroydSpainBernardo Dominic NEW
Murillo X GarufiArgentinaBernardo Dominic NEW
Ashley R SergiRussiaIvan Magalhaes NEGOTIATION
Rodrigues L FigeroaJapanBernardo Dominic QUALIFIED
James L WieserAustraliaAsiya Javayant NEW
Johnson Q ButtIndiaAmy Elsner RENEWAL
Isabel A KuskoItalyIoni Bowcher NEW
Octavia Z VenereSpainStephen Shaw UNQUALIFIED
Johnson V FigeroaGermanyOnyama Limba UNQUALIFIED
Deepesh Z CampainSpainIoni Bowcher QUALIFIED
David E SlusarskiArgentinaBernardo Dominic QUALIFIED
Maria M OldroydGermanyStephen Shaw NEW
Juan X ChuiCanadaAsiya Javayant UNQUALIFIED
Greenwood Y OldroydGermanyAsiya Javayant QUALIFIED
Jeanfrancois X FollerGermanyIoni Bowcher UNQUALIFIED
Arvin B VocelkaItalyAnna Fali NEGOTIATION
Jefferson A BologniaGermanyAmy Elsner NEGOTIATION
Smith H DoeItalyAnna Fali NEGOTIATION
Munro Z CampainItalyAnna Fali NEGOTIATION
Faith M InouyeItalyAsiya Javayant PROPOSAL
Faith X OstroskyCanadaElwin Sharvill PROPOSAL
Aika N MacleadFranceOnyama Limba RENEWAL
Arvin D WieserJapanOnyama Limba UNQUALIFIED
Greenwood E GillianAustraliaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Stacey J FollerIndiaAmy Elsner QUALIFIED
Cody Y FlosiRussiaAmy Elsner NEGOTIATION
Johnson X WaycottSpainOnyama Limba UNQUALIFIED
James N AmigonBrazilAmy Elsner QUALIFIED
Francesco X VenereSpainXuxue Feng NEW
Silvio L ChuiAustraliaBernardo Dominic UNQUALIFIED
Greenwood R KuskoCanadaOnyama Limba QUALIFIED
Isabel V GarufiGermanyOnyama Limba RENEWAL
Chavez X InouyeArgentinaXuxue Feng NEW
David I NestleBrazilAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford C StensethJapan2025-06-12Dorl, James J Esq QUALIFIED31Asiya Javayant
1001Antonio O NestleCanada2025-06-04Rangoni Of Florence NEGOTIATION93Bernardo Dominic
1002Faith Z VocelkaItaly2025-06-11King, Christopher A Esq PROPOSAL7Stephen Shaw
1003Aruna M OstroskyCanada2025-06-04Chanay, Jeffrey A Esq PROPOSAL5Xuxue Feng
1004Isabel M AmigonArgentina2025-06-10Dorl, James J Esq NEGOTIATION71Anna Fali
1005Aika H ShinkoFrance2025-06-10Dorl, James J Esq QUALIFIED56Bernardo Dominic
1006Julie Q StockhamIndia2025-05-17Benton, John B Jr QUALIFIED29Stephen Shaw
1007Maria G OstroskyGermany2025-06-02Chemel, James L Cpa UNQUALIFIED78Anna Fali
1008Juan M ShinkoBrazil2025-06-09Truhlar And Truhlar Attys PROPOSAL25Onyama Limba
1009Jefferson I DarakjyAustralia2025-05-25King, Christopher A Esq RENEWAL2Bernardo Dominic
1010Ashley S DilliardUnited Kingdom2025-06-13Commercial Press RENEWAL43Asiya Javayant
1011Smith Y OldroydItaly2025-05-19Feltz Printing Service NEGOTIATION84Ivan Magalhaes
1012Jefferson V FigeroaAustralia2025-06-04Feltz Printing Service UNQUALIFIED80Onyama Limba
1013Mayumi R BowleyAustralia2025-06-09Chemel, James L Cpa QUALIFIED6Anna Fali
1014Aditya I SaylorsJapan2025-06-08Benton, John B Jr NEGOTIATION38Stephen Shaw
1015Greenwood X MacleadSpain2025-06-12Buckley Miller Wright RENEWAL30Stephen Shaw
1016Salvatore I WaycottSpain2025-06-13Chapman, Ross E Esq UNQUALIFIED30Xuxue Feng
1017Alejandro Q FlosiBrazil2025-06-11Buckley Miller Wright UNQUALIFIED59Xuxue Feng
1018Leon M ShinkoArgentina2025-06-07Truhlar And Truhlar Attys NEW83Ioni Bowcher
1019David K PaprockiIndia2025-06-12Rousseaux, Michael Esq PROPOSAL50Ioni Bowcher
1020Izzy U MacleadBrazil2025-05-26Commercial Press PROPOSAL4Anna Fali
1021Maria E SergiGermany2025-05-31Chapman, Ross E Esq PROPOSAL59Asiya Javayant
1022Maisha Q WhobreyBrazil2025-05-18Rangoni Of Florence RENEWAL84Asiya Javayant
1023Aditya W FollerUnited Kingdom2025-06-04Buckley Miller Wright QUALIFIED0Xuxue Feng
1024Leon Z PoquetteBrazil2025-06-03Truhlar And Truhlar Attys UNQUALIFIED11Asiya Javayant
1025Ricardo E SaylorsAustralia2025-05-25Buckley Miller Wright NEW21Onyama Limba
1026Octavia E WieserFrance2025-05-27Printing Dimensions NEGOTIATION76Ivan Magalhaes
1027Maisha G PaprockiFrance2025-05-16Chemel, James L Cpa NEW29Ioni Bowcher
1028Silvio R AlbaresGermany2025-05-17Printing Dimensions NEW91Ivan Magalhaes
1029Clifford K ChuiCanada2025-06-09Rangoni Of Florence NEW36Amy Elsner
1030Sinclair V FigeroaFrance2025-05-31King, Christopher A Esq PROPOSAL53Amy Elsner
1031Stacey A SergiBrazil2025-05-28Morlong Associates UNQUALIFIED65Ivan Magalhaes
1032Costa D FigeroaArgentina2025-05-25Rousseaux, Michael Esq PROPOSAL59Ioni Bowcher
1033Kadeem B DoeJapan2025-05-17Buckley Miller Wright NEW71Bernardo Dominic
1034Leja H FerenczItaly2025-06-07Rousseaux, Michael Esq QUALIFIED22Amy Elsner
1035Smith E PoquetteFrance2025-05-20Feiner Bros QUALIFIED59Stephen Shaw
1036Leon T AmigonSpain2025-06-12Feiner Bros RENEWAL81Stephen Shaw
1037Misaki I ChuiRussia2025-06-07Printing Dimensions NEGOTIATION24Elwin Sharvill
1038Leja K MorascaAustralia2025-06-10Commercial Press PROPOSAL72Ioni Bowcher
1039Nicolas G RimGermany2025-05-28Feltz Printing Service NEW84Asiya Javayant
1040Morrow P RulapaughItaly2025-06-04Benton, John B Jr NEGOTIATION45Elwin Sharvill
1041Wickens S WaycottGermany2025-06-07Commercial Press UNQUALIFIED6Anna Fali
1042Kaitlin U MaletUnited Kingdom2025-05-26Commercial Press QUALIFIED27Xuxue Feng
1043Sinclair E SergiFrance2025-05-19Chapman, Ross E Esq NEGOTIATION36Ioni Bowcher
1044Wickens J FigeroaIndia2025-05-19Dorl, James J Esq PROPOSAL41Xuxue Feng
1045Ivar H MaletGermany2025-05-16Commercial Press RENEWAL19Onyama Limba
1046Morrow I FollerSpain2025-05-27Rangoni Of Florence QUALIFIED42Anna Fali
1047David E FigeroaIndia2025-06-11Feiner Bros PROPOSAL95Onyama Limba
1048Jefferson M VenereCanada2025-05-17Morlong Associates UNQUALIFIED9Bernardo Dominic
1049Aika M BriddickSpain2025-06-14Printing Dimensions RENEWAL79Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Francesco S StockhamArgentinaXuxue Feng NEGOTIATION
Salvatore G ButtGermanyAmy Elsner QUALIFIED
Morrow N WaycottRussiaElwin Sharvill NEGOTIATION
Darci A NickaRussiaIoni Bowcher QUALIFIED
Aruna G CaldareraIndiaElwin Sharvill QUALIFIED
Stacey B MorascaFranceOnyama Limba UNQUALIFIED
Ashley R GarufiAustraliaXuxue Feng QUALIFIED
Ashley W TollnerRussiaAmy Elsner RENEWAL
Rodrigues L OstroskyUnited KingdomElwin Sharvill RENEWAL
Mayumi K BriddickArgentinaStephen Shaw RENEWAL
Jeanfrancois N FerenczJapanAmy Elsner RENEWAL
Murillo E OstroskyCanadaBernardo Dominic RENEWAL
James M BriddickArgentinaAmy Elsner NEGOTIATION
Kaitlin A ChuiGermanyElwin Sharvill UNQUALIFIED
James A MacleadCanadaXuxue Feng PROPOSAL
Kadeem W MorascaSpainElwin Sharvill UNQUALIFIED
Munro G MacleadArgentinaAsiya Javayant NEW
Smith K CaudyGermanyIvan Magalhaes UNQUALIFIED
Murillo K OldroydUnited KingdomIoni Bowcher PROPOSAL
Maisha V WhobreyIndiaBernardo Dominic UNQUALIFIED
Izzy U BologniaAustraliaElwin Sharvill UNQUALIFIED
Ricardo C InouyeJapanElwin Sharvill NEGOTIATION
Ashley U VenereJapanOnyama Limba NEGOTIATION
Antonio C PaprockiSpainXuxue Feng RENEWAL
Leon Z CaudyCanadaXuxue Feng RENEWAL
Murillo B GarufiBrazilAmy Elsner PROPOSAL
Ashley L BowleyItalyOnyama Limba NEW
Maria C ChuiUnited KingdomIoni Bowcher NEW
Wickens W StockhamArgentinaAmy Elsner QUALIFIED
Jeanfrancois I StensethUnited KingdomElwin Sharvill NEW
Darci O OstroskyGermanyXuxue Feng NEW
Costa F TollnerRussiaIoni Bowcher NEGOTIATION
Rodrigues G ChuiAustraliaStephen Shaw NEW
Leja L FollerAustraliaIoni Bowcher QUALIFIED
Claire B WieserGermanyStephen Shaw PROPOSAL
Leon I OldroydIndiaXuxue Feng NEW
Ashley V GlickBrazilIoni Bowcher UNQUALIFIED
Julie J VenereIndiaElwin Sharvill NEGOTIATION
Cody B CaudyItalyAnna Fali NEW
Maisha S MaletCanadaAsiya Javayant QUALIFIED
Stacey K MaletGermanyAsiya Javayant QUALIFIED
Claire M ShinkoCanadaStephen Shaw NEGOTIATION
Deepesh C FerenczBrazilXuxue Feng UNQUALIFIED
Deepesh I MorascaBrazilStephen Shaw RENEWAL
Francesco T FerenczArgentinaXuxue Feng UNQUALIFIED
Stacey G FlosiJapanAmy Elsner NEW
Darci Q BriddickRussiaOnyama Limba PROPOSAL
James L OldroydJapanStephen Shaw NEW
Misaki D WieserAustraliaAsiya Javayant QUALIFIED
Kaitlin I RimFranceStephen Shaw RENEWAL
Frozen Columns
Name
Aika P Flosi
Aditya B Ruta
Octavia K Gillian
Alejandro Y Tollner
Murillo K Glick
Munro W Malet
Salvatore L Venere
Mujtaba C Inouye
Octavia T Venere
Murillo Y Saylors
Ashley P Ostrosky
Rodrigues P Butt
Mujtaba N Caudy
Sinclair P Oldroyd
Murillo S Inouye
Julie H Kolmetz
Greenwood C Ostrosky
Morrow A Oldroyd
Chavez R Sergi
Octavia Z Venere
Misaki M Gillian
Francesco I Saylors
Darci Q Whobrey
Ashley N Dilliard
Claire U Nicka
Kadeem F Ferencz
Smith G Foller
Cody W Kusko
Jeanfrancois Q Campain
Jones G Garufi
Johnson V Caudy
Izzy N Malet
Maria W Nestle
Deepesh T Foller
Smith T Dilliard
Jones K Vocelka
Aruna V Bowley
Smith L Rim
Murillo J Rim
Clifford Q Flosi
Tony J Malet
Claire N Waycott
Chavez S Stockham
Murillo H Ostrosky
David F Ostrosky
Deepesh O Darakjy
Deepesh F Gillian
Aruna Z Chui
Leon S Waycott
Aruna R Butt
IdCountryDate
1000Germany2025-06-02
1001Japan2025-06-05
1002Argentina2025-06-05
1003United Kingdom2025-06-06
1004Argentina2025-05-23
1005Australia2025-06-06
1006Italy2025-06-01
1007Germany2025-06-10
1008Japan2025-06-06
1009Russia2025-05-20
1010Canada2025-05-22
1011France2025-06-05
1012Japan2025-05-22
1013France2025-05-18
1014India2025-06-04
1015Brazil2025-05-28
1016Japan2025-06-05
1017Germany2025-05-21
1018France2025-05-24
1019Canada2025-06-09
1020Canada2025-05-18
1021Australia2025-06-06
1022Russia2025-05-19
1023Australia2025-05-27
1024India2025-05-20
1025Canada2025-06-08
1026Argentina2025-06-10
1027Australia2025-06-14
1028Russia2025-05-29
1029India2025-06-11
1030Germany2025-05-27
1031Australia2025-05-29
1032Spain2025-05-27
1033Brazil2025-06-12
1034United Kingdom2025-06-10
1035Brazil2025-06-10
1036Australia2025-05-24
1037Canada2025-06-10
1038Italy2025-06-03
1039Germany2025-06-05
1040Italy2025-06-01
1041Russia2025-05-22
1042Japan2025-06-07
1043India2025-06-10
1044Canada2025-05-29
1045Japan2025-06-11
1046Brazil2025-05-19
1047Italy2025-05-22
1048Italy2025-06-12
1049Australia2025-05-31

On-Demand Data

NameIdCountryDate
Jones K Bolognia1000Brazil2025-05-30
Misaki F Albares1001Australia2025-05-20
Maisha L Royster1002Germany2025-06-14
Maria C Gillian1003Spain2025-06-06
Ashley X Briddick1004Brazil2025-05-31
Emily I Shinko1005France2025-05-27
Chavez G Tollner1006France2025-05-25
Emily M Morasca1007United Kingdom2025-05-19
Octavia Q Inouye1008United Kingdom2025-06-11
Darci A Iturbide1009Russia2025-05-30
Ivar D Briddick1010Germany2025-05-20
Wickens P Caudy1011France2025-05-21
Izzy R Nestle1012Russia2025-05-26
Darci X Paprocki1013Argentina2025-05-17
Wickens V Campain1014Japan2025-05-16
Salvatore P Rim1015Russia2025-06-08
Murillo T Briddick1016Spain2025-06-13
Sinclair K Paprocki1017Brazil2025-05-27
Jones G Ferencz1018Canada2025-05-26
Nicolas U Stockham1019Japan2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa G AmigonUnited KingdomAsiya Javayant RENEWAL
Tony S PaprockiJapanAsiya Javayant RENEWAL
Tony U CaudyCanadaAnna Fali NEW
Mujtaba U MaletItalyAnna Fali NEGOTIATION
Deepesh W BologniaGermanyIoni Bowcher QUALIFIED
Morrow N WaycottAustraliaIvan Magalhaes NEW
Leja Q OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Tony U PaprockiIndiaStephen Shaw PROPOSAL
Julie D ChuiFranceBernardo Dominic NEW
Murillo I AmigonIndiaOnyama Limba UNQUALIFIED
Ricardo R SergiArgentinaAsiya Javayant QUALIFIED
Nicolas Q GillianUnited KingdomAsiya Javayant PROPOSAL
Greenwood B TollnerBrazilAnna Fali NEW
Francesco U SchemmerBrazilAnna Fali PROPOSAL
Chavez P RutaRussiaIoni Bowcher NEGOTIATION
James S ShinkoRussiaAmy Elsner RENEWAL
Ricardo U GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer U NickaIndiaBernardo Dominic PROPOSAL
Jeanfrancois U WaycottGermanyIvan Magalhaes NEW
Arvin N SaylorsBrazilXuxue Feng PROPOSAL
Deepesh B MacleadBrazilStephen Shaw NEGOTIATION
Ivar K GillianAustraliaAmy Elsner NEW
Ashley C BowleyIndiaBernardo Dominic NEW
Kadeem Y CaudyFranceIoni Bowcher UNQUALIFIED
Costa T OstroskyBrazilIvan Magalhaes QUALIFIED
Francesco A GillianJapanBernardo Dominic RENEWAL
Salvatore Z NestleAustraliaIvan Magalhaes QUALIFIED
Ashley S GillianBrazilAmy Elsner PROPOSAL
Maisha K WaycottArgentinaIvan Magalhaes QUALIFIED
Antonio Y MaletFranceIoni Bowcher NEGOTIATION
Rodrigues V MaletUnited KingdomIoni Bowcher RENEWAL
Costa Z GillianAustraliaIvan Magalhaes UNQUALIFIED
Ivar T CampainBrazilStephen Shaw QUALIFIED
Mujtaba D BriddickGermanyOnyama Limba NEW
Silvio N FollerFranceAmy Elsner QUALIFIED
Isabel F GillianJapanAnna Fali QUALIFIED
Ricardo V SaylorsRussiaAnna Fali NEGOTIATION
Leon Z FerenczAustraliaOnyama Limba UNQUALIFIED
Alejandro C ButtGermanyStephen Shaw QUALIFIED
Darci H MaletItalyElwin Sharvill 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>