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
Tony V AmigonIndiaAsiya Javayant PROPOSAL
Adams Y SergiUnited KingdomAmy Elsner PROPOSAL
Aditya V WieserSpainBernardo Dominic UNQUALIFIED
Mayumi B SchemmerRussiaIoni Bowcher NEGOTIATION
Arvin N KolmetzJapanIoni Bowcher RENEWAL
Julie X MorascaSpainElwin Sharvill NEW
Jefferson Y StockhamIndiaElwin Sharvill RENEWAL
Aditya S StockhamItalyAnna Fali RENEWAL
Morrow L WieserCanadaStephen Shaw QUALIFIED
Cody H MaletSpainBernardo Dominic RENEWAL
Antonio L AmigonGermanyBernardo Dominic QUALIFIED
Chavez K FlosiGermanyIoni Bowcher RENEWAL
Ivar D MaletAustraliaXuxue Feng QUALIFIED
Greenwood R GlickUnited KingdomOnyama Limba NEW
Smith H NickaCanadaAnna Fali PROPOSAL
Ivar L DoeItalyAsiya Javayant PROPOSAL
Alejandro S ChuiFranceBernardo Dominic NEW
Aika K SlusarskiIndiaOnyama Limba PROPOSAL
Octavia G InouyeAustraliaAmy Elsner NEW
Kaitlin D ShinkoIndiaXuxue Feng RENEWAL
Arvin R OstroskyFranceIvan Magalhaes NEGOTIATION
James J IturbideSpainAsiya Javayant QUALIFIED
James F ChuiBrazilStephen Shaw QUALIFIED
Munro E FigeroaIndiaAsiya Javayant QUALIFIED
Tony H FerenczRussiaIvan Magalhaes PROPOSAL
Kadeem M KolmetzItalyOnyama Limba QUALIFIED
Aruna F BologniaArgentinaAsiya Javayant UNQUALIFIED
Mayumi F FigeroaBrazilXuxue Feng NEW
David B VocelkaSpainAmy Elsner NEGOTIATION
Rodrigues U RimIndiaIvan Magalhaes QUALIFIED
David A FerenczBrazilBernardo Dominic NEGOTIATION
Clifford R OldroydGermanyBernardo Dominic QUALIFIED
Rodrigues U GillianBrazilIoni Bowcher NEW
Juan B AlbaresArgentinaIvan Magalhaes QUALIFIED
Sinclair Q OldroydSpainStephen Shaw PROPOSAL
Kadeem A GarufiGermanyXuxue Feng NEW
Rodrigues R GlickBrazilElwin Sharvill RENEWAL
Aditya M NickaBrazilIvan Magalhaes RENEWAL
Smith Q MaletIndiaXuxue Feng RENEWAL
Nicolas I RutaGermanyBernardo Dominic QUALIFIED
Aditya Z WhobreyIndiaElwin Sharvill NEGOTIATION
Jones U BowleyArgentinaXuxue Feng UNQUALIFIED
Jennifer M SchemmerIndiaXuxue Feng RENEWAL
Leja R FerenczAustraliaAnna Fali NEW
Smith W RulapaughGermanyAsiya Javayant QUALIFIED
Isabel A PaprockiIndiaAnna Fali RENEWAL
Jennifer F DilliardBrazilXuxue Feng PROPOSAL
Greenwood I StockhamRussiaIoni Bowcher RENEWAL
Julie W NestleFranceBernardo Dominic NEW
Jones O StensethCanadaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa P NickaItalyElwin Sharvill RENEWAL
Jennifer D MacleadBrazilAnna Fali NEW
Jefferson R WaycottItalyXuxue Feng NEGOTIATION
Sinclair O PoquetteBrazilOnyama Limba NEGOTIATION
Juan A BologniaSpainElwin Sharvill NEW
Aika T PoquetteFranceAsiya Javayant UNQUALIFIED
David W BologniaBrazilIvan Magalhaes UNQUALIFIED
David V GauchoGermanyIvan Magalhaes PROPOSAL
Octavia E BologniaBrazilStephen Shaw QUALIFIED
Julie W IturbideGermanyStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel H CaldareraItaly2026-07-11Printing Dimensions QUALIFIED67Ioni Bowcher
1001Mayumi V MacleadJapan2026-06-23Morlong Associates UNQUALIFIED37Ivan Magalhaes
1002Maria H GlickBrazil2026-06-20Dorl, James J Esq NEGOTIATION83Xuxue Feng
1003Clifford W VocelkaUnited Kingdom2026-07-13Rousseaux, Michael Esq NEW20Xuxue Feng
1004Darci F MaletCanada2026-07-08Benton, John B Jr NEGOTIATION25Asiya Javayant
1005Octavia K BowleyCanada2026-07-04Chanay, Jeffrey A Esq NEGOTIATION57Onyama Limba
1006Jefferson C SlusarskiUnited Kingdom2026-07-11Chanay, Jeffrey A Esq NEW79Xuxue Feng
1007Misaki J OstroskyRussia2026-06-24Rangoni Of Florence QUALIFIED51Ioni Bowcher
1008Octavia L MaletArgentina2026-07-07Chanay, Jeffrey A Esq RENEWAL92Bernardo Dominic
1009Julie E RulapaughItaly2026-07-06Rousseaux, Michael Esq NEW52Xuxue Feng
1010Juan G WaycottUnited Kingdom2026-07-19Chapman, Ross E Esq NEW94Ioni Bowcher
1011Jennifer M MarrierSpain2026-07-01Chemel, James L Cpa QUALIFIED60Elwin Sharvill
1012Tony B WhobreyCanada2026-06-20Commercial Press UNQUALIFIED66Ioni Bowcher
1013Sinclair E KolmetzFrance2026-07-12Truhlar And Truhlar Attys RENEWAL70Onyama Limba
1014Salvatore S FigeroaArgentina2026-07-02Buckley Miller Wright RENEWAL43Amy Elsner
1015Murillo Z CampainBrazil2026-07-17Rangoni Of Florence QUALIFIED24Elwin Sharvill
1016Aika Z StockhamFrance2026-07-19Buckley Miller Wright PROPOSAL70Ivan Magalhaes
1017Maria X OldroydCanada2026-06-22Truhlar And Truhlar Attys NEW15Xuxue Feng
1018Cody B PaprockiItaly2026-06-29Benton, John B Jr NEGOTIATION44Asiya Javayant
1019Clifford Q ChuiFrance2026-07-12Dorl, James J Esq NEW65Asiya Javayant
1020Faith Y GarufiAustralia2026-07-11Chanay, Jeffrey A Esq QUALIFIED46Amy Elsner
1021Julie Q OstroskyCanada2026-07-01Benton, John B Jr PROPOSAL39Amy Elsner
1022Leja M SchemmerRussia2026-06-23Dorl, James J Esq NEW0Stephen Shaw
1023Cody H VocelkaGermany2026-06-23Truhlar And Truhlar Attys QUALIFIED26Stephen Shaw
1024Salvatore P OstroskyGermany2026-06-27Rangoni Of Florence NEGOTIATION64Onyama Limba
1025Julie A RoysterUnited Kingdom2026-07-16Commercial Press QUALIFIED10Anna Fali
1026Mayumi N PaprockiJapan2026-07-05Printing Dimensions RENEWAL48Bernardo Dominic
1027Isabel K FerenczAustralia2026-07-08Printing Dimensions QUALIFIED40Asiya Javayant
1028Deepesh Q StensethRussia2026-07-16Benton, John B Jr PROPOSAL16Onyama Limba
1029Morrow V MaletCanada2026-07-03Truhlar And Truhlar Attys RENEWAL73Stephen Shaw
1030Misaki X AlbaresIndia2026-07-11Feltz Printing Service RENEWAL74Elwin Sharvill
1031Cody G InouyeAustralia2026-07-19Feltz Printing Service QUALIFIED3Ivan Magalhaes
1032Chavez D OldroydUnited Kingdom2026-06-26Rousseaux, Michael Esq RENEWAL78Stephen Shaw
1033Faith N KolmetzArgentina2026-06-27Chanay, Jeffrey A Esq NEW70Elwin Sharvill
1034Wickens L CaldareraIndia2026-07-01Rangoni Of Florence NEW70Anna Fali
1035Francesco K CaudyIndia2026-07-09Rousseaux, Michael Esq RENEWAL93Asiya Javayant
1036Silvio J RulapaughAustralia2026-06-21Morlong Associates NEW14Elwin Sharvill
1037Adams S FerenczUnited Kingdom2026-07-02Chemel, James L Cpa NEW25Bernardo Dominic
1038Jeanfrancois A WaycottFrance2026-07-08Buckley Miller Wright UNQUALIFIED67Amy Elsner
1039Wickens A NickaArgentina2026-07-02Feiner Bros QUALIFIED31Xuxue Feng
1040Kaitlin J BriddickJapan2026-07-01Truhlar And Truhlar Attys NEGOTIATION60Onyama Limba
1041Claire U TollnerFrance2026-07-04Rangoni Of Florence NEW66Asiya Javayant
1042Wickens B StockhamJapan2026-07-01Dorl, James J Esq QUALIFIED86Ioni Bowcher
1043Jeanfrancois E SchemmerSpain2026-06-28King, Christopher A Esq UNQUALIFIED94Ioni Bowcher
1044Sinclair K RutaAustralia2026-06-28Chapman, Ross E Esq NEW30Amy Elsner
1045Adams W RimSpain2026-06-27Feltz Printing Service NEW31Onyama Limba
1046Clifford K ShinkoGermany2026-07-02Rousseaux, Michael Esq UNQUALIFIED50Ivan Magalhaes
1047Aruna G CaudyUnited Kingdom2026-07-14Dorl, James J Esq NEGOTIATION79Elwin Sharvill
1048Claire I MacleadFrance2026-07-15Dorl, James J Esq QUALIFIED98Stephen Shaw
1049Jeanfrancois G InouyeCanada2026-06-24Buckley Miller Wright NEW45Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jones M AmigonSpainOnyama Limba UNQUALIFIED
Murillo R InouyeCanadaElwin Sharvill RENEWAL
Francesco B ShinkoItalyAmy Elsner NEGOTIATION
Munro U MaletFranceBernardo Dominic QUALIFIED
Aruna J WaycottUnited KingdomIoni Bowcher PROPOSAL
Isabel A FollerRussiaXuxue Feng UNQUALIFIED
Jones U AmigonFranceIvan Magalhaes QUALIFIED
Maria Z ChuiRussiaAnna Fali NEW
Rodrigues D MorascaJapanXuxue Feng UNQUALIFIED
Faith P PerinIndiaAsiya Javayant RENEWAL
Isabel B ChuiIndiaIvan Magalhaes UNQUALIFIED
Kadeem G RoysterSpainElwin Sharvill RENEWAL
Nicolas K IturbideJapanStephen Shaw UNQUALIFIED
Francesco F GillianIndiaBernardo Dominic NEGOTIATION
Claire K BowleyCanadaAsiya Javayant QUALIFIED
Jeanfrancois X MaletItalyOnyama Limba NEW
Jefferson F IturbideUnited KingdomElwin Sharvill NEW
Murillo O RutaRussiaXuxue Feng QUALIFIED
Greenwood W SchemmerBrazilAmy Elsner QUALIFIED
Mujtaba C PerinRussiaXuxue Feng PROPOSAL
James C SlusarskiRussiaAnna Fali NEW
Izzy Q SchemmerSpainBernardo Dominic RENEWAL
Kadeem X StensethGermanyXuxue Feng RENEWAL
James I RoysterJapanAsiya Javayant QUALIFIED
Maria W BologniaBrazilOnyama Limba QUALIFIED
Emily A StockhamUnited KingdomAnna Fali PROPOSAL
Jefferson Z KuskoCanadaElwin Sharvill UNQUALIFIED
Jennifer E BriddickArgentinaBernardo Dominic PROPOSAL
Murillo Q IturbideRussiaIvan Magalhaes QUALIFIED
Aika X FlosiIndiaIoni Bowcher UNQUALIFIED
Costa Y OldroydCanadaElwin Sharvill RENEWAL
Kadeem Z VocelkaGermanyIoni Bowcher UNQUALIFIED
Darci D GauchoAustraliaXuxue Feng RENEWAL
Aruna Y BologniaGermanyElwin Sharvill NEW
Tony G WieserBrazilElwin Sharvill NEW
Claire R OldroydCanadaIoni Bowcher RENEWAL
Francesco D DarakjyCanadaStephen Shaw NEGOTIATION
Ashley P ShinkoAustraliaStephen Shaw QUALIFIED
Deepesh F MaletSpainAsiya Javayant NEGOTIATION
Jennifer A PaprockiUnited KingdomAmy Elsner NEGOTIATION
Aika M AmigonItalyBernardo Dominic QUALIFIED
Leja E ChuiCanadaStephen Shaw QUALIFIED
Rodrigues P SaylorsAustraliaOnyama Limba RENEWAL
Emily W ChuiUnited KingdomXuxue Feng NEW
Octavia X BologniaArgentinaBernardo Dominic NEW
Juan L DilliardSpainAnna Fali RENEWAL
Juan I CampainBrazilAnna Fali PROPOSAL
Mayumi X GarufiRussiaXuxue Feng PROPOSAL
Jennifer R FerenczBrazilAmy Elsner PROPOSAL
Darci H InouyeArgentinaAmy Elsner RENEWAL
Frozen Columns
Name
Juan J Kusko
Morrow B Briddick
Claire R Foller
Clifford K Ferencz
Kaitlin P Perin
Deepesh I Perin
Darci A Wieser
Claire I Vocelka
Salvatore X Wieser
Adams I Sergi
Tony D Butt
Salvatore O Shinko
Isabel M Bolognia
Costa T Garufi
Aruna R Venere
Sinclair X Poquette
Morrow K Ferencz
Misaki O Venere
Leja V Oldroyd
Leon U Stenseth
Morrow T Doe
James E Tollner
Silvio H Inouye
Jennifer W Ferencz
Emily P Gaucho
Izzy D Bowley
Deepesh B Venere
Francesco I Darakjy
Faith B Flosi
Sinclair V Chui
David L Butt
Francesco K Darakjy
Mujtaba N Oldroyd
Kaitlin M Doe
Claire J Foller
Aika X Venere
Maisha K Figeroa
Jefferson Q Vocelka
Faith Z Amigon
Isabel Y Stenseth
James L Butt
Octavia L Figeroa
Kaitlin I Marrier
Munro A Morasca
Jeanfrancois A Ostrosky
Emily R Caudy
Arvin G Waycott
Salvatore W Waycott
Deepesh B Stenseth
Johnson Q Royster
IdCountryDate
1000Russia2026-06-20
1001India2026-07-05
1002Canada2026-06-21
1003Germany2026-07-02
1004Canada2026-07-16
1005France2026-06-21
1006Spain2026-06-25
1007Brazil2026-06-29
1008Spain2026-07-12
1009Italy2026-07-12
1010Spain2026-07-08
1011Canada2026-07-19
1012United Kingdom2026-07-13
1013Argentina2026-06-22
1014France2026-07-07
1015Germany2026-06-22
1016Spain2026-07-14
1017Canada2026-07-13
1018Brazil2026-07-01
1019Japan2026-07-07
1020Italy2026-07-08
1021Italy2026-07-02
1022Argentina2026-07-03
1023Brazil2026-07-18
1024France2026-07-03
1025Australia2026-07-08
1026Russia2026-06-24
1027Australia2026-07-15
1028Japan2026-07-15
1029Russia2026-07-02
1030Spain2026-07-15
1031Russia2026-07-14
1032Japan2026-07-01
1033Spain2026-06-25
1034Russia2026-07-03
1035Australia2026-07-09
1036United Kingdom2026-07-10
1037United Kingdom2026-06-25
1038Canada2026-07-17
1039Russia2026-07-12
1040Australia2026-07-14
1041Italy2026-07-01
1042Spain2026-07-08
1043Australia2026-07-12
1044Argentina2026-07-01
1045Brazil2026-07-05
1046India2026-07-03
1047India2026-07-13
1048Australia2026-07-14
1049India2026-07-18

On-Demand Data

NameIdCountryDate
Wickens B Paprocki1000Germany2026-07-14
Jeanfrancois D Garufi1001Canada2026-06-29
Ashley N Morasca1002Spain2026-06-26
Leja H Slusarski1003Italy2026-07-05
Darci Z Poquette1004United Kingdom2026-07-14
Misaki H Darakjy1005United Kingdom2026-06-21
Misaki I Stenseth1006Brazil2026-07-09
Claire P Chui1007India2026-06-29
Silvio W Flosi1008India2026-07-02
Mujtaba Y Darakjy1009Russia2026-07-04
Leja K Bowley1010United Kingdom2026-07-10
Darci Z Caldarera1011Spain2026-07-10
Clifford Z Ostrosky1012United Kingdom2026-06-29
Aruna Q Kolmetz1013France2026-06-30
Faith Z Whobrey1014Russia2026-07-17
Isabel W Amigon1015France2026-07-01
Rodrigues B Inouye1016Australia2026-06-29
Morrow B Stockham1017Germany2026-07-03
Smith H Morasca1018Australia2026-07-14
Aika R Maclead1019Italy2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel M GillianGermanyIvan Magalhaes RENEWAL
Costa T OstroskyRussiaStephen Shaw NEGOTIATION
Leon S BologniaItalyXuxue Feng PROPOSAL
Clifford T SaylorsBrazilIvan Magalhaes UNQUALIFIED
Aditya M MorascaRussiaAnna Fali NEW
Arvin V RimJapanIvan Magalhaes PROPOSAL
Deepesh D KuskoBrazilAnna Fali QUALIFIED
Johnson J MacleadRussiaXuxue Feng NEGOTIATION
Isabel Y GauchoBrazilXuxue Feng QUALIFIED
Misaki X BriddickItalyXuxue Feng NEGOTIATION
Julie R DilliardRussiaIvan Magalhaes PROPOSAL
Maria Q IturbideIndiaOnyama Limba RENEWAL
Greenwood R MorascaArgentinaBernardo Dominic PROPOSAL
Smith W VocelkaRussiaAsiya Javayant PROPOSAL
Smith L GarufiRussiaIoni Bowcher UNQUALIFIED
Claire A WieserUnited KingdomAmy Elsner RENEWAL
Chavez G RutaGermanyIoni Bowcher PROPOSAL
Morrow U TollnerItalyXuxue Feng PROPOSAL
Deepesh N NestleJapanBernardo Dominic NEGOTIATION
Salvatore N BriddickIndiaOnyama Limba UNQUALIFIED
Darci D RulapaughAustraliaOnyama Limba QUALIFIED
Jones M ButtRussiaAsiya Javayant RENEWAL
Greenwood S GauchoAustraliaAsiya Javayant NEW
Costa F RimArgentinaIoni Bowcher NEW
Mayumi X IturbideItalyOnyama Limba RENEWAL
Jefferson X FigeroaFranceElwin Sharvill RENEWAL
Stacey D SergiItalyAmy Elsner RENEWAL
Jones S GlickSpainIvan Magalhaes UNQUALIFIED
Chavez C FigeroaAustraliaXuxue Feng QUALIFIED
Sinclair C NickaUnited KingdomBernardo Dominic RENEWAL
Greenwood T VenereCanadaIoni Bowcher RENEWAL
Faith M NickaSpainBernardo Dominic NEW
Jeanfrancois D ShinkoUnited KingdomOnyama Limba QUALIFIED
Darci F SaylorsArgentinaAsiya Javayant QUALIFIED
Claire Y GauchoFranceIvan Magalhaes NEW
Wickens G RimRussiaAsiya Javayant RENEWAL
Ashley A RoysterBrazilAmy Elsner NEW
Mayumi Z TollnerJapanIoni Bowcher NEW
Morrow S NestleBrazilIoni Bowcher UNQUALIFIED
Mujtaba C KolmetzGermanyAsiya Javayant 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>