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
Ivar S WieserUnited KingdomAnna Fali UNQUALIFIED
Izzy O OldroydItalyStephen Shaw QUALIFIED
Johnson X KuskoBrazilOnyama Limba NEW
Leon H RoysterBrazilElwin Sharvill NEGOTIATION
Sinclair L GillianGermanyIvan Magalhaes PROPOSAL
Mayumi K FlosiFranceElwin Sharvill QUALIFIED
Sinclair B WieserCanadaXuxue Feng PROPOSAL
Maisha R CampainAustraliaBernardo Dominic NEGOTIATION
Adams B PerinBrazilIvan Magalhaes PROPOSAL
Izzy Y KuskoSpainAmy Elsner PROPOSAL
Maria N CaldareraUnited KingdomStephen Shaw RENEWAL
Maria D MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Izzy U NestleArgentinaBernardo Dominic RENEWAL
Wickens N OldroydItalyElwin Sharvill PROPOSAL
Nicolas V SlusarskiAustraliaAmy Elsner UNQUALIFIED
Claire U RutaArgentinaXuxue Feng NEGOTIATION
Izzy O SchemmerIndiaAsiya Javayant RENEWAL
Adams N GlickBrazilIoni Bowcher QUALIFIED
Greenwood U CaudyArgentinaBernardo Dominic NEW
Faith Y GauchoAustraliaAsiya Javayant NEW
Maria I AlbaresArgentinaIoni Bowcher NEGOTIATION
Sinclair G KuskoCanadaOnyama Limba RENEWAL
Ashley R MaletArgentinaAsiya Javayant RENEWAL
Julie P AmigonItalyBernardo Dominic RENEWAL
Morrow C InouyeRussiaStephen Shaw RENEWAL
Jennifer B SlusarskiArgentinaAmy Elsner UNQUALIFIED
Salvatore B IturbideRussiaOnyama Limba PROPOSAL
Morrow Z ChuiJapanIoni Bowcher UNQUALIFIED
Stacey N GlickArgentinaOnyama Limba UNQUALIFIED
Costa N InouyeCanadaXuxue Feng PROPOSAL
Darci B VenereArgentinaOnyama Limba RENEWAL
Leja P SergiIndiaXuxue Feng RENEWAL
Claire A RulapaughArgentinaXuxue Feng PROPOSAL
Ricardo Z StockhamFranceXuxue Feng QUALIFIED
Claire Z BologniaCanadaIoni Bowcher PROPOSAL
Johnson V ChuiRussiaIoni Bowcher RENEWAL
Izzy Q GauchoJapanAnna Fali NEGOTIATION
Leon L RutaRussiaIvan Magalhaes NEW
David T DarakjyRussiaAsiya Javayant QUALIFIED
Adams S TollnerBrazilElwin Sharvill UNQUALIFIED
Leon D CampainItalyAsiya Javayant RENEWAL
Johnson R StockhamFranceIoni Bowcher QUALIFIED
Kadeem J MacleadArgentinaIoni Bowcher RENEWAL
Alejandro T NestleGermanyOnyama Limba RENEWAL
Aditya B OldroydAustraliaBernardo Dominic QUALIFIED
Ricardo P FlosiArgentinaAsiya Javayant NEW
Arvin M FlosiItalyBernardo Dominic NEGOTIATION
Izzy X KuskoBrazilAsiya Javayant QUALIFIED
Darci G GillianGermanyIvan Magalhaes PROPOSAL
Maria E BriddickItalyOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Juan Y MaletFranceIoni Bowcher RENEWAL
Mayumi Y FollerSpainAsiya Javayant UNQUALIFIED
Maisha W OstroskyItalyAnna Fali NEW
Aruna Z GauchoJapanElwin Sharvill UNQUALIFIED
Wickens O KuskoJapanAnna Fali NEGOTIATION
Chavez E FollerUnited KingdomXuxue Feng NEGOTIATION
Leon I ShinkoSpainElwin Sharvill NEGOTIATION
Sinclair S GauchoFranceXuxue Feng NEGOTIATION
Leon I RulapaughCanadaIvan Magalhaes UNQUALIFIED
Jefferson U RimCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey I MaletJapan2026-07-26Buckley Miller Wright QUALIFIED23Elwin Sharvill
1001Rodrigues F FerenczUnited Kingdom2026-07-27Truhlar And Truhlar Attys RENEWAL15Amy Elsner
1002Ricardo L ShinkoRussia2026-07-02Feiner Bros UNQUALIFIED66Anna Fali
1003Jeanfrancois S SaylorsAustralia2026-07-14Truhlar And Truhlar Attys UNQUALIFIED71Onyama Limba
1004Misaki T NickaArgentina2026-07-07Printing Dimensions QUALIFIED76Amy Elsner
1005Adams X KolmetzSpain2026-07-18Chemel, James L Cpa PROPOSAL67Anna Fali
1006Aditya U AmigonJapan2026-07-13Buckley Miller Wright QUALIFIED98Elwin Sharvill
1007Wickens N RimGermany2026-07-24Chanay, Jeffrey A Esq RENEWAL28Amy Elsner
1008Alejandro I FigeroaSpain2026-07-29Feiner Bros QUALIFIED11Onyama Limba
1009Antonio L VocelkaJapan2026-07-13King, Christopher A Esq QUALIFIED22Xuxue Feng
1010Tony J ShinkoAustralia2026-07-15Chapman, Ross E Esq PROPOSAL1Ioni Bowcher
1011Munro F OldroydBrazil2026-07-22Dorl, James J Esq UNQUALIFIED87Anna Fali
1012Sinclair M AlbaresSpain2026-07-23Commercial Press QUALIFIED94Bernardo Dominic
1013David T SaylorsJapan2026-07-20Feiner Bros NEGOTIATION22Xuxue Feng
1014Deepesh D FlosiIndia2026-07-14Feltz Printing Service RENEWAL28Bernardo Dominic
1015Claire Y WhobreyItaly2026-07-25Feiner Bros QUALIFIED79Xuxue Feng
1016Silvio Z GarufiBrazil2026-07-03Rousseaux, Michael Esq PROPOSAL33Anna Fali
1017Kaitlin V RimBrazil2026-07-20Printing Dimensions QUALIFIED1Stephen Shaw
1018Johnson K BologniaArgentina2026-07-23Printing Dimensions RENEWAL79Stephen Shaw
1019Isabel J MarrierAustralia2026-07-03Benton, John B Jr RENEWAL64Ivan Magalhaes
1020Alejandro S FollerJapan2026-07-21Chapman, Ross E Esq UNQUALIFIED99Ioni Bowcher
1021Rodrigues Z StockhamJapan2026-07-13Truhlar And Truhlar Attys NEW10Xuxue Feng
1022Costa W WaycottRussia2026-07-15Chapman, Ross E Esq NEW59Ioni Bowcher
1023Adams D ButtRussia2026-07-11Printing Dimensions RENEWAL90Onyama Limba
1024Murillo V BriddickJapan2026-07-20Chanay, Jeffrey A Esq QUALIFIED14Ivan Magalhaes
1025Aruna H DarakjyAustralia2026-07-27Feltz Printing Service PROPOSAL33Amy Elsner
1026Maria R VenereItaly2026-07-10Rangoni Of Florence NEW2Ioni Bowcher
1027Maria G SchemmerUnited Kingdom2026-07-14Chapman, Ross E Esq NEGOTIATION75Ioni Bowcher
1028Clifford M VenereIndia2026-07-07Benton, John B Jr NEGOTIATION5Onyama Limba
1029Claire I AlbaresAustralia2026-07-08Feltz Printing Service NEW29Elwin Sharvill
1030Chavez C MarrierCanada2026-07-02Feltz Printing Service PROPOSAL28Stephen Shaw
1031Juan F ShinkoUnited Kingdom2026-07-21Commercial Press RENEWAL64Amy Elsner
1032Izzy X AmigonSpain2026-07-09Morlong Associates QUALIFIED28Elwin Sharvill
1033Silvio A IturbideSpain2026-07-10Morlong Associates RENEWAL80Amy Elsner
1034Izzy N ChuiFrance2026-07-02Printing Dimensions UNQUALIFIED92Asiya Javayant
1035Antonio K FollerAustralia2026-07-20Chapman, Ross E Esq NEGOTIATION14Asiya Javayant
1036Deepesh Q KolmetzJapan2026-07-06King, Christopher A Esq QUALIFIED97Elwin Sharvill
1037Maria E GlickSpain2026-07-16Benton, John B Jr PROPOSAL39Ioni Bowcher
1038Leon F WhobreySpain2026-07-25Morlong Associates NEGOTIATION18Anna Fali
1039Leon O DarakjySpain2026-07-13Morlong Associates QUALIFIED90Elwin Sharvill
1040Munro K SchemmerSpain2026-07-26Chanay, Jeffrey A Esq NEGOTIATION51Anna Fali
1041David Z BowleyBrazil2026-07-09Morlong Associates PROPOSAL74Bernardo Dominic
1042Mujtaba Y MorascaIndia2026-07-28Chanay, Jeffrey A Esq NEW47Amy Elsner
1043Ricardo V NickaIndia2026-07-09Dorl, James J Esq NEW77Amy Elsner
1044Leon O OldroydAustralia2026-07-11Rangoni Of Florence NEGOTIATION82Xuxue Feng
1045James G StockhamItaly2026-07-19Printing Dimensions QUALIFIED57Stephen Shaw
1046Darci C MaletIndia2026-07-21Truhlar And Truhlar Attys UNQUALIFIED33Elwin Sharvill
1047Emily G KolmetzFrance2026-07-03Commercial Press PROPOSAL59Asiya Javayant
1048Greenwood X TollnerFrance2026-07-30Benton, John B Jr RENEWAL29Ivan Magalhaes
1049Mayumi H VenereArgentina2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED12Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey V RulapaughIndiaStephen Shaw NEGOTIATION
Stacey N PaprockiSpainElwin Sharvill RENEWAL
Salvatore E MorascaGermanyIvan Magalhaes PROPOSAL
Ricardo O CaldareraGermanyAmy Elsner NEGOTIATION
Alejandro B RoysterItalyElwin Sharvill NEGOTIATION
James K IturbideCanadaAsiya Javayant NEGOTIATION
Leon N AmigonIndiaXuxue Feng NEGOTIATION
Mujtaba J BologniaIndiaOnyama Limba PROPOSAL
Maisha T StensethFranceIvan Magalhaes UNQUALIFIED
Izzy X PaprockiArgentinaElwin Sharvill NEGOTIATION
Greenwood A GlickUnited KingdomAmy Elsner QUALIFIED
Tony I DilliardUnited KingdomXuxue Feng NEGOTIATION
Cody Q RimIndiaOnyama Limba NEW
Chavez N TollnerItalyIoni Bowcher NEW
Leon H InouyeJapanIoni Bowcher QUALIFIED
Maria C CaudyFranceAmy Elsner PROPOSAL
Aruna U DilliardFranceElwin Sharvill RENEWAL
Leon Q AlbaresSpainStephen Shaw PROPOSAL
Stacey H KuskoGermanyIoni Bowcher QUALIFIED
Costa Q ButtBrazilAnna Fali PROPOSAL
Jones M RutaGermanyIvan Magalhaes RENEWAL
Murillo Z TollnerCanadaStephen Shaw NEW
Adams N VenereCanadaXuxue Feng PROPOSAL
Cody P GillianJapanOnyama Limba RENEWAL
Cody I BriddickSpainAsiya Javayant NEW
David T MacleadBrazilElwin Sharvill UNQUALIFIED
Izzy M OstroskyRussiaOnyama Limba PROPOSAL
Jefferson Z GauchoRussiaElwin Sharvill QUALIFIED
Leja C SchemmerJapanAnna Fali UNQUALIFIED
Octavia S BriddickSpainBernardo Dominic QUALIFIED
Jeanfrancois L ChuiArgentinaStephen Shaw NEW
Juan G PoquetteSpainElwin Sharvill UNQUALIFIED
Silvio N TollnerGermanyBernardo Dominic NEGOTIATION
Costa W CaudyArgentinaIoni Bowcher UNQUALIFIED
Faith Y DoeBrazilIvan Magalhaes PROPOSAL
Kaitlin C MacleadGermanyIoni Bowcher QUALIFIED
Faith P StockhamRussiaStephen Shaw NEGOTIATION
Kaitlin Y KolmetzSpainAsiya Javayant UNQUALIFIED
Isabel L NestleUnited KingdomIvan Magalhaes PROPOSAL
Clifford T PerinUnited KingdomAsiya Javayant RENEWAL
Johnson D RulapaughSpainAmy Elsner QUALIFIED
Julie D DarakjyFranceAnna Fali RENEWAL
Mayumi Q FollerUnited KingdomAmy Elsner NEW
Munro B NestleItalyOnyama Limba NEW
Maisha P MaletRussiaAnna Fali PROPOSAL
Cody Y NestleArgentinaAmy Elsner NEW
Rodrigues X VenereSpainElwin Sharvill PROPOSAL
Salvatore H IturbideRussiaAmy Elsner QUALIFIED
Alejandro M ButtIndiaElwin Sharvill QUALIFIED
Aditya O VocelkaRussiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Deepesh F Caldarera
Silvio U Briddick
Juan K Darakjy
Emily O Darakjy
Greenwood S Marrier
David A Albares
Rodrigues Z Rulapaugh
Octavia K Marrier
Alejandro I Garufi
Juan A Tollner
Aika C Gillian
Maria Z Butt
Antonio V Kusko
Adams P Poquette
Wickens Y Stockham
Francesco X Maclead
Jefferson P Stenseth
Morrow X Perin
Morrow K Stenseth
Octavia W Butt
Jennifer Y Sergi
Greenwood I Inouye
Munro H Kusko
James W Rim
Deepesh F Ferencz
Munro R Inouye
Costa U Slusarski
Nicolas G Garufi
Francesco Q Morasca
Faith C Inouye
Sinclair K Amigon
Leon C Caldarera
Aditya W Albares
Faith W Ruta
Francesco I Nicka
Kaitlin R Ostrosky
Jefferson Q Gaucho
Maisha Y Malet
David S Marrier
Sinclair M Gillian
Wickens L Caudy
Sinclair G Wieser
Sinclair N Caudy
Mujtaba Z Oldroyd
David N Kusko
Costa I Garufi
Kaitlin B Royster
Leja Z Slusarski
Jones A Saylors
Antonio U Morasca
IdCountryDate
1000Italy2026-07-10
1001Japan2026-07-17
1002Russia2026-07-29
1003Germany2026-07-05
1004Germany2026-07-30
1005United Kingdom2026-07-06
1006United Kingdom2026-07-29
1007Argentina2026-07-11
1008Russia2026-07-30
1009France2026-07-15
1010Italy2026-07-29
1011Australia2026-07-20
1012Germany2026-07-04
1013Italy2026-07-14
1014United Kingdom2026-07-08
1015United Kingdom2026-07-16
1016Argentina2026-07-15
1017Japan2026-07-20
1018Canada2026-07-03
1019France2026-07-28
1020Italy2026-07-27
1021Canada2026-07-31
1022Italy2026-07-10
1023Canada2026-07-08
1024Germany2026-07-22
1025Germany2026-07-15
1026India2026-07-04
1027France2026-07-13
1028Brazil2026-07-05
1029Argentina2026-07-13
1030Brazil2026-07-03
1031Italy2026-07-09
1032Brazil2026-07-13
1033Germany2026-07-02
1034Japan2026-07-28
1035France2026-07-09
1036Australia2026-07-30
1037Spain2026-07-13
1038India2026-07-19
1039Brazil2026-07-06
1040Australia2026-07-17
1041Japan2026-07-22
1042Argentina2026-07-20
1043United Kingdom2026-07-05
1044Japan2026-07-17
1045Japan2026-07-11
1046Germany2026-07-31
1047Australia2026-07-03
1048Canada2026-07-19
1049India2026-07-18

On-Demand Data

NameIdCountryDate
Isabel Z Malet1000Japan2026-07-09
Octavia F Maclead1001Australia2026-07-12
Antonio U Kolmetz1002Russia2026-07-02
Cody O Bowley1003Australia2026-07-07
Maria W Sergi1004Russia2026-07-22
Mujtaba T Stockham1005Brazil2026-07-06
Leon R Kusko1006Australia2026-07-18
Juan B Butt1007Japan2026-07-10
Julie O Chui1008Brazil2026-07-08
Kaitlin R Rim1009United Kingdom2026-07-27
Julie G Oldroyd1010India2026-07-05
Kadeem H Saylors1011France2026-07-22
Adams X Tollner1012Argentina2026-07-06
Izzy L Butt1013Australia2026-07-23
Stacey T Chui1014Australia2026-07-12
Johnson O Stenseth1015Japan2026-07-17
Morrow D Rulapaugh1016Canada2026-07-03
Costa S Bolognia1017Italy2026-07-24
Clifford T Nestle1018France2026-07-25
Morrow E Albares1019Germany2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya C DarakjyBrazilAsiya Javayant NEGOTIATION
Antonio Z SergiRussiaElwin Sharvill UNQUALIFIED
Cody Y AlbaresCanadaOnyama Limba RENEWAL
Octavia N MorascaIndiaBernardo Dominic PROPOSAL
Claire T SergiUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford B VenereSpainIoni Bowcher PROPOSAL
Rodrigues H InouyeJapanBernardo Dominic QUALIFIED
Tony M KolmetzFranceBernardo Dominic PROPOSAL
Kadeem B RoysterItalyIvan Magalhaes UNQUALIFIED
Aditya V FollerItalyAsiya Javayant PROPOSAL
Darci S FigeroaSpainOnyama Limba UNQUALIFIED
Aika C RutaJapanAnna Fali NEW
Ivar V VenereSpainIoni Bowcher RENEWAL
Tony T IturbideItalyAnna Fali NEGOTIATION
Salvatore U OstroskySpainAmy Elsner UNQUALIFIED
Aruna R VocelkaSpainAsiya Javayant NEGOTIATION
Jones I SaylorsRussiaXuxue Feng UNQUALIFIED
Johnson G PaprockiGermanyIvan Magalhaes NEGOTIATION
Claire N SlusarskiGermanyStephen Shaw RENEWAL
Maria Q GauchoRussiaOnyama Limba PROPOSAL
Kadeem J CaudyBrazilIoni Bowcher UNQUALIFIED
Deepesh Y AlbaresGermanyXuxue Feng RENEWAL
Costa P TollnerSpainIoni Bowcher QUALIFIED
Salvatore D BriddickJapanBernardo Dominic PROPOSAL
Izzy M FigeroaJapanIoni Bowcher PROPOSAL
Maria C ButtArgentinaElwin Sharvill NEGOTIATION
Misaki L MarrierIndiaIoni Bowcher RENEWAL
Costa R OldroydJapanIvan Magalhaes PROPOSAL
Izzy L AmigonGermanyXuxue Feng NEW
David R SlusarskiCanadaStephen Shaw PROPOSAL
Julie T WaycottSpainAnna Fali NEGOTIATION
Ivar D OldroydSpainAsiya Javayant RENEWAL
Maisha E SaylorsSpainXuxue Feng NEW
Juan D GauchoUnited KingdomOnyama Limba NEGOTIATION
Silvio E DarakjyItalyElwin Sharvill RENEWAL
Maisha V SchemmerRussiaAnna Fali PROPOSAL
Octavia M MorascaIndiaBernardo Dominic UNQUALIFIED
Emily Y RoysterCanadaAsiya Javayant PROPOSAL
Munro L NickaGermanyAsiya Javayant UNQUALIFIED
Emily V OldroydBrazilElwin Sharvill UNQUALIFIED

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