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
Morrow K VocelkaAustraliaXuxue Feng RENEWAL
Tony R RimAustraliaAnna Fali RENEWAL
Arvin O RutaAustraliaOnyama Limba PROPOSAL
Nicolas I BriddickItalyIoni Bowcher NEGOTIATION
Leja M RoysterFranceStephen Shaw UNQUALIFIED
Isabel Y CaldareraBrazilBernardo Dominic NEGOTIATION
Salvatore L IturbideRussiaBernardo Dominic RENEWAL
Aruna W MaletSpainOnyama Limba NEGOTIATION
Darci T AmigonCanadaIoni Bowcher QUALIFIED
Johnson S BowleyFranceBernardo Dominic UNQUALIFIED
Kaitlin R PerinAustraliaStephen Shaw UNQUALIFIED
Silvio T PaprockiItalyIvan Magalhaes UNQUALIFIED
Ashley P MacleadIndiaAmy Elsner UNQUALIFIED
Francesco C InouyeGermanyIoni Bowcher NEGOTIATION
Ashley P WhobreyJapanStephen Shaw NEGOTIATION
James N VenereItalyBernardo Dominic UNQUALIFIED
Deepesh T VocelkaRussiaAsiya Javayant PROPOSAL
Emily E FollerSpainBernardo Dominic NEW
Juan V FigeroaFranceAnna Fali NEGOTIATION
Aika T VenereJapanElwin Sharvill QUALIFIED
Ashley Y DoeAustraliaIvan Magalhaes UNQUALIFIED
Wickens S DarakjyRussiaXuxue Feng PROPOSAL
Munro F GarufiJapanAmy Elsner RENEWAL
Julie I IturbideAustraliaXuxue Feng NEW
Emily L ShinkoCanadaOnyama Limba NEGOTIATION
Kaitlin V GillianCanadaOnyama Limba PROPOSAL
Smith X FlosiJapanIvan Magalhaes UNQUALIFIED
Antonio M StockhamIndiaBernardo Dominic NEGOTIATION
David F OldroydUnited KingdomBernardo Dominic NEGOTIATION
Leja I NestleIndiaOnyama Limba NEW
Arvin R InouyeSpainOnyama Limba RENEWAL
Aruna R MaletFranceAnna Fali QUALIFIED
Antonio K GauchoArgentinaAsiya Javayant PROPOSAL
Aruna P RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Jefferson X TollnerArgentinaAsiya Javayant PROPOSAL
Morrow X PaprockiArgentinaBernardo Dominic UNQUALIFIED
Salvatore W SchemmerGermanyAmy Elsner PROPOSAL
Sinclair S GlickJapanElwin Sharvill NEGOTIATION
Aruna I WieserItalyXuxue Feng PROPOSAL
Chavez J FlosiCanadaAmy Elsner UNQUALIFIED
Maria F VenereAustraliaBernardo Dominic PROPOSAL
Tony F MorascaFranceElwin Sharvill RENEWAL
Leja V InouyeRussiaBernardo Dominic NEGOTIATION
Aruna G BologniaCanadaIoni Bowcher NEW
James O ShinkoItalyStephen Shaw UNQUALIFIED
Faith A DarakjyBrazilOnyama Limba NEW
Aika I AlbaresSpainBernardo Dominic UNQUALIFIED
Alejandro L FigeroaJapanAnna Fali QUALIFIED
Emily E CaldareraCanadaStephen Shaw UNQUALIFIED
Nicolas L StensethFranceXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson W VocelkaArgentinaAnna Fali QUALIFIED
Leja X BowleyArgentinaElwin Sharvill UNQUALIFIED
Nicolas W GarufiJapanAsiya Javayant UNQUALIFIED
Misaki F VenereUnited KingdomBernardo Dominic RENEWAL
Jefferson A DarakjyItalyXuxue Feng RENEWAL
Aditya I FigeroaBrazilAnna Fali QUALIFIED
Aika T RoysterArgentinaOnyama Limba UNQUALIFIED
Smith M BriddickJapanAmy Elsner PROPOSAL
Misaki P CaudyRussiaIoni Bowcher PROPOSAL
Tony B PaprockiRussiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel F SaylorsJapan2025-06-13Rangoni Of Florence PROPOSAL46Elwin Sharvill
1001Salvatore K TollnerUnited Kingdom2025-05-30Morlong Associates UNQUALIFIED28Amy Elsner
1002Clifford Y GarufiSpain2025-05-21Dorl, James J Esq PROPOSAL35Anna Fali
1003Jefferson B CampainUnited Kingdom2025-05-28Rangoni Of Florence QUALIFIED46Ioni Bowcher
1004Claire S AlbaresItaly2025-06-09Commercial Press RENEWAL10Bernardo Dominic
1005Francesco Q FollerRussia2025-06-03Buckley Miller Wright RENEWAL71Bernardo Dominic
1006Smith F OstroskyCanada2025-05-29Truhlar And Truhlar Attys NEW27Ivan Magalhaes
1007Aika F WieserSpain2025-06-06Feiner Bros UNQUALIFIED71Ivan Magalhaes
1008Leon T AlbaresBrazil2025-06-15Morlong Associates UNQUALIFIED77Bernardo Dominic
1009Jennifer U DoeAustralia2025-06-04Benton, John B Jr NEGOTIATION85Ivan Magalhaes
1010Izzy Z FerenczUnited Kingdom2025-06-09Feltz Printing Service QUALIFIED35Bernardo Dominic
1011Kadeem E RutaCanada2025-05-22Rousseaux, Michael Esq NEW63Amy Elsner
1012Adams E ShinkoCanada2025-06-13Rangoni Of Florence RENEWAL63Asiya Javayant
1013Arvin N FollerJapan2025-06-02Feiner Bros RENEWAL91Xuxue Feng
1014Morrow H CampainCanada2025-05-27Buckley Miller Wright QUALIFIED35Ioni Bowcher
1015Aditya O RoysterUnited Kingdom2025-05-24Rangoni Of Florence NEGOTIATION33Ioni Bowcher
1016Kaitlin T MaletCanada2025-06-01King, Christopher A Esq QUALIFIED0Ioni Bowcher
1017Julie M TollnerUnited Kingdom2025-06-09Morlong Associates PROPOSAL92Xuxue Feng
1018Leja W AlbaresUnited Kingdom2025-05-27Chapman, Ross E Esq UNQUALIFIED64Stephen Shaw
1019Smith W CampainAustralia2025-05-19Morlong Associates NEW19Elwin Sharvill
1020Faith W FollerAustralia2025-06-06Commercial Press NEGOTIATION85Ioni Bowcher
1021Wickens S DarakjyGermany2025-06-03Printing Dimensions UNQUALIFIED63Bernardo Dominic
1022Deepesh V GillianArgentina2025-05-19Printing Dimensions PROPOSAL61Elwin Sharvill
1023Leon N MarrierItaly2025-06-08Buckley Miller Wright RENEWAL95Elwin Sharvill
1024Aditya F RoysterUnited Kingdom2025-06-06Morlong Associates NEW86Stephen Shaw
1025Adams O DilliardArgentina2025-05-26King, Christopher A Esq NEGOTIATION37Ivan Magalhaes
1026Isabel Y OstroskyFrance2025-05-19King, Christopher A Esq PROPOSAL28Stephen Shaw
1027Cody Y NestleFrance2025-06-07Commercial Press NEGOTIATION32Ioni Bowcher
1028Misaki F VocelkaRussia2025-06-14Rousseaux, Michael Esq RENEWAL38Elwin Sharvill
1029Leon N RutaItaly2025-06-13King, Christopher A Esq QUALIFIED40Stephen Shaw
1030Adams E RutaAustralia2025-05-28Buckley Miller Wright NEW41Xuxue Feng
1031Alejandro U ChuiAustralia2025-05-30Printing Dimensions PROPOSAL84Ioni Bowcher
1032Octavia R KolmetzJapan2025-06-01Printing Dimensions PROPOSAL30Xuxue Feng
1033Clifford K PaprockiJapan2025-06-11Chemel, James L Cpa NEGOTIATION25Elwin Sharvill
1034Clifford Z FlosiIndia2025-05-29Rousseaux, Michael Esq RENEWAL32Amy Elsner
1035Leja H PaprockiCanada2025-05-20Feiner Bros NEGOTIATION68Ioni Bowcher
1036Ricardo X WaycottItaly2025-06-05Feiner Bros NEW31Bernardo Dominic
1037Wickens Y FollerArgentina2025-06-08Rousseaux, Michael Esq NEW75Amy Elsner
1038Silvio H RoysterArgentina2025-06-08Rangoni Of Florence RENEWAL35Xuxue Feng
1039Maisha S DoeBrazil2025-06-16Chanay, Jeffrey A Esq UNQUALIFIED71Elwin Sharvill
1040Aika V VenereBrazil2025-06-01Feiner Bros NEW88Ivan Magalhaes
1041Morrow R GarufiAustralia2025-05-27Rangoni Of Florence QUALIFIED11Bernardo Dominic
1042Jones Q IturbideCanada2025-06-03Chemel, James L Cpa NEGOTIATION4Elwin Sharvill
1043Alejandro W GlickArgentina2025-05-27Rangoni Of Florence PROPOSAL72Elwin Sharvill
1044Isabel Z StensethFrance2025-05-26Printing Dimensions RENEWAL47Onyama Limba
1045Sinclair U FollerIndia2025-05-27Rangoni Of Florence PROPOSAL62Ivan Magalhaes
1046Morrow N MarrierSpain2025-05-22Benton, John B Jr NEW36Ivan Magalhaes
1047Smith Z RoysterCanada2025-05-30Commercial Press QUALIFIED89Ivan Magalhaes
1048Francesco V SlusarskiRussia2025-05-30Feltz Printing Service UNQUALIFIED37Bernardo Dominic
1049Ashley R OstroskyIndia2025-06-03Commercial Press PROPOSAL16Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar J SchemmerUnited KingdomElwin Sharvill RENEWAL
Silvio L BowleyRussiaIvan Magalhaes QUALIFIED
Leja W SaylorsArgentinaXuxue Feng NEGOTIATION
Izzy I PaprockiItalyIoni Bowcher RENEWAL
Stacey E KuskoCanadaIoni Bowcher UNQUALIFIED
Aika C VenereItalyStephen Shaw PROPOSAL
Munro P BowleyBrazilOnyama Limba RENEWAL
Wickens C GillianCanadaStephen Shaw RENEWAL
Leon U MarrierSpainAnna Fali NEW
Deepesh P ChuiUnited KingdomIoni Bowcher RENEWAL
Francesco H KolmetzArgentinaAnna Fali PROPOSAL
Izzy P PoquetteBrazilXuxue Feng NEW
Ashley V PoquetteGermanyAsiya Javayant PROPOSAL
Julie L RulapaughCanadaOnyama Limba PROPOSAL
Claire Y MorascaItalyXuxue Feng NEGOTIATION
Morrow M ShinkoArgentinaOnyama Limba QUALIFIED
Stacey A RutaUnited KingdomIoni Bowcher RENEWAL
Juan D GillianCanadaIoni Bowcher RENEWAL
Aika K KolmetzUnited KingdomBernardo Dominic NEGOTIATION
David Q IturbideItalyAnna Fali PROPOSAL
Adams P CaudyRussiaElwin Sharvill PROPOSAL
Chavez A ShinkoJapanIoni Bowcher NEW
Isabel C DoeSpainAmy Elsner PROPOSAL
Adams R DilliardGermanyStephen Shaw NEW
Julie N MaletJapanIvan Magalhaes NEW
Mayumi B GarufiJapanIoni Bowcher PROPOSAL
Mujtaba T ButtAustraliaAmy Elsner UNQUALIFIED
Deepesh P FollerSpainXuxue Feng QUALIFIED
Nicolas V BriddickArgentinaAsiya Javayant RENEWAL
Kadeem T InouyeIndiaOnyama Limba NEGOTIATION
Aruna C WieserIndiaIvan Magalhaes NEW
Francesco G KolmetzGermanyAmy Elsner PROPOSAL
Wickens Z WaycottIndiaIoni Bowcher NEW
Leon B SlusarskiItalyXuxue Feng QUALIFIED
Antonio H PaprockiBrazilElwin Sharvill PROPOSAL
Nicolas M FerenczBrazilElwin Sharvill UNQUALIFIED
Francesco Z WhobreyGermanyStephen Shaw NEGOTIATION
Wickens B VenereRussiaBernardo Dominic NEGOTIATION
Johnson V CampainSpainXuxue Feng UNQUALIFIED
Isabel X BowleyCanadaStephen Shaw RENEWAL
Munro D SlusarskiUnited KingdomAmy Elsner RENEWAL
Darci T OstroskyUnited KingdomAnna Fali NEW
Aika I RoysterCanadaAmy Elsner NEW
Ashley V MaletSpainIoni Bowcher NEGOTIATION
Salvatore J PaprockiIndiaAnna Fali QUALIFIED
Izzy X FollerCanadaBernardo Dominic NEW
Costa G GillianSpainElwin Sharvill QUALIFIED
Leja R TollnerArgentinaBernardo Dominic NEGOTIATION
Kadeem L RimJapanAsiya Javayant UNQUALIFIED
Maria O SchemmerBrazilIoni Bowcher PROPOSAL
Frozen Columns
Name
Aditya S Campain
Adams T Malet
Rodrigues S Iturbide
Silvio X Foller
Alejandro T Doe
Stacey T Garufi
Alejandro H Ferencz
Nicolas W Schemmer
Morrow L Rim
Johnson V Perin
Octavia F Nicka
Greenwood V Bolognia
Francesco Q Campain
Juan L Figeroa
Maisha T Inouye
Rodrigues N Schemmer
David Y Wieser
Johnson U Stenseth
Izzy R Malet
Claire U Royster
Ricardo L Wieser
Maria Q Maclead
Cody P Caldarera
Faith L Tollner
Ivar U Ruta
Jefferson J Rim
Izzy B Garufi
Tony R Whobrey
Salvatore S Caudy
Aditya J Flosi
Salvatore I Rim
Kadeem K Vocelka
Francesco X Foller
Nicolas W Poquette
Kaitlin F Gillian
Octavia K Vocelka
Kadeem F Ferencz
Silvio Y Wieser
Nicolas O Shinko
Jefferson T Oldroyd
Faith Q Paprocki
Leon Y Butt
Aruna H Glick
Misaki D Chui
Kadeem P Butt
Clifford J Stockham
Jones S Flosi
Jones B Kusko
Johnson D Briddick
Mujtaba K Slusarski
IdCountryDate
1000Australia2025-06-09
1001Canada2025-05-31
1002Germany2025-06-07
1003Australia2025-05-29
1004Russia2025-06-11
1005Spain2025-05-27
1006Brazil2025-06-10
1007Brazil2025-06-08
1008Russia2025-06-16
1009United Kingdom2025-06-09
1010Argentina2025-06-04
1011United Kingdom2025-06-16
1012Spain2025-06-07
1013India2025-05-29
1014Canada2025-06-16
1015Brazil2025-06-04
1016Brazil2025-05-24
1017Canada2025-05-19
1018Japan2025-05-30
1019France2025-05-24
1020Australia2025-06-15
1021Russia2025-05-30
1022Germany2025-05-29
1023Spain2025-06-05
1024Germany2025-05-31
1025Russia2025-06-16
1026Italy2025-06-02
1027Japan2025-05-24
1028Argentina2025-06-04
1029Russia2025-06-15
1030Russia2025-06-14
1031United Kingdom2025-06-08
1032Australia2025-05-28
1033Spain2025-05-30
1034Italy2025-06-11
1035France2025-06-16
1036Italy2025-05-20
1037Italy2025-05-21
1038Germany2025-05-30
1039Russia2025-06-06
1040France2025-06-13
1041Argentina2025-05-31
1042Spain2025-06-06
1043Germany2025-05-21
1044United Kingdom2025-06-07
1045India2025-05-24
1046Germany2025-06-13
1047India2025-05-25
1048Spain2025-06-15
1049Japan2025-06-06

On-Demand Data

NameIdCountryDate
Smith R Shinko1000Spain2025-06-16
Cody W Chui1001Argentina2025-06-11
Silvio U Ruta1002Argentina2025-05-29
Ashley L Wieser1003Brazil2025-06-09
Jones U Malet1004Australia2025-06-02
Johnson D Butt1005United Kingdom2025-05-21
Juan N Ruta1006India2025-06-05
Antonio B Vocelka1007Germany2025-05-31
Faith P Garufi1008Australia2025-05-19
Salvatore F Butt1009Russia2025-06-10
Aruna I Wieser1010Argentina2025-05-26
Costa T Nicka1011France2025-06-09
Isabel U Nestle1012United Kingdom2025-05-22
Salvatore H Caldarera1013Italy2025-05-23
Aruna I Perin1014Australia2025-06-03
Rodrigues F Vocelka1015France2025-06-06
Ashley V Butt1016United Kingdom2025-06-02
Smith U Albares1017Canada2025-05-23
Johnson L Inouye1018Japan2025-06-01
Tony F Glick1019Japan2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody M OldroydAustraliaIoni Bowcher NEGOTIATION
James G BologniaFranceXuxue Feng PROPOSAL
Morrow O MarrierBrazilAsiya Javayant QUALIFIED
Costa S OldroydCanadaAsiya Javayant UNQUALIFIED
Kadeem J BowleyArgentinaOnyama Limba NEW
Tony U NestleArgentinaIvan Magalhaes NEW
Kadeem T PoquetteSpainAnna Fali QUALIFIED
Ashley W BowleyUnited KingdomOnyama Limba UNQUALIFIED
Deepesh D GlickItalyElwin Sharvill QUALIFIED
David P TollnerSpainBernardo Dominic QUALIFIED
Munro K GillianJapanAnna Fali RENEWAL
Octavia N NickaArgentinaIvan Magalhaes NEGOTIATION
Aika R CaudyJapanBernardo Dominic UNQUALIFIED
Chavez N GauchoItalyElwin Sharvill RENEWAL
Rodrigues F PaprockiArgentinaElwin Sharvill RENEWAL
Francesco Q FlosiJapanXuxue Feng NEGOTIATION
Costa W SergiGermanyIoni Bowcher RENEWAL
Jones H OldroydAustraliaStephen Shaw NEGOTIATION
Greenwood E NickaSpainBernardo Dominic PROPOSAL
Aruna E AmigonAustraliaAsiya Javayant NEW
Chavez U VenereIndiaIvan Magalhaes UNQUALIFIED
Deepesh F DarakjyGermanyStephen Shaw NEGOTIATION
Murillo V WaycottCanadaAnna Fali QUALIFIED
Kaitlin N BriddickSpainIvan Magalhaes UNQUALIFIED
Emily U BriddickIndiaXuxue Feng UNQUALIFIED
Alejandro O MarrierIndiaAnna Fali PROPOSAL
Silvio S OstroskyRussiaStephen Shaw RENEWAL
Johnson N MacleadArgentinaOnyama Limba PROPOSAL
Leja B PoquetteSpainOnyama Limba NEGOTIATION
Leon W SaylorsCanadaElwin Sharvill PROPOSAL
Ashley A FigeroaAustraliaIoni Bowcher NEGOTIATION
Cody S ChuiAustraliaAsiya Javayant NEGOTIATION
Kaitlin M MaletArgentinaElwin Sharvill UNQUALIFIED
Mayumi P OstroskyArgentinaElwin Sharvill RENEWAL
Salvatore T DilliardItalyAmy Elsner RENEWAL
Leja U ChuiIndiaIoni Bowcher RENEWAL
Tony K MarrierJapanAnna Fali QUALIFIED
Aditya U FigeroaIndiaStephen Shaw QUALIFIED
Isabel W DarakjyGermanyAmy Elsner PROPOSAL
Octavia T FerenczItalyAsiya Javayant PROPOSAL

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